#include <linux/dccp.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/skbuff.h>
#include <linux/netdevice.h>
#include <linux/in.h>
#include <linux/if_arp.h>
#include <linux/init.h>
#include <linux/random.h>
#include <linux/slab.h>
#include <net/checksum.h>
#include <net/inet_sock.h>
#include <net/inet_common.h>
#include <net/sock.h>
#include <net/xfrm.h>
#include <asm/ioctls.h>
#include <linux/spinlock.h>
#include <linux/timer.h>
#include <linux/delay.h>
#include <linux/poll.h>
#include "ccid.h"
#include "dccp.h"
#include "feat.h"
#define CREATE_TRACE_POINTS
#include "trace.h"
DEFINE_SNMP_STAT(struct dccp_mib, dccp_statistics) __read_mostly;
EXPORT_SYMBOL_GPL(…);
DEFINE_PER_CPU(unsigned int, dccp_orphan_count);
EXPORT_PER_CPU_SYMBOL_GPL(…);
struct inet_hashinfo dccp_hashinfo;
EXPORT_SYMBOL_GPL(…);
int sysctl_dccp_tx_qlen __read_mostly = …;
#ifdef CONFIG_IP_DCCP_DEBUG
static const char *dccp_state_name(const int state)
{ … }
#endif
void dccp_set_state(struct sock *sk, const int state)
{ … }
EXPORT_SYMBOL_GPL(…);
static void dccp_finish_passive_close(struct sock *sk)
{ … }
void dccp_done(struct sock *sk)
{ … }
EXPORT_SYMBOL_GPL(…);
const char *dccp_packet_name(const int type)
{ … }
EXPORT_SYMBOL_GPL(…);
void dccp_destruct_common(struct sock *sk)
{ … }
EXPORT_SYMBOL_GPL(…);
static void dccp_sk_destruct(struct sock *sk)
{ … }
int dccp_init_sock(struct sock *sk, const __u8 ctl_sock_initialized)
{ … }
EXPORT_SYMBOL_GPL(…);
void dccp_destroy_sock(struct sock *sk)
{ … }
EXPORT_SYMBOL_GPL(…);
static inline int dccp_need_reset(int state)
{ … }
int dccp_disconnect(struct sock *sk, int flags)
{ … }
EXPORT_SYMBOL_GPL(…);
__poll_t dccp_poll(struct file *file, struct socket *sock,
poll_table *wait)
{ … }
EXPORT_SYMBOL_GPL(…);
int dccp_ioctl(struct sock *sk, int cmd, int *karg)
{ … }
EXPORT_SYMBOL_GPL(…);
static int dccp_setsockopt_service(struct sock *sk, const __be32 service,
sockptr_t optval, unsigned int optlen)
{ … }
static int dccp_setsockopt_cscov(struct sock *sk, int cscov, bool rx)
{ … }
static int dccp_setsockopt_ccid(struct sock *sk, int type,
sockptr_t optval, unsigned int optlen)
{ … }
static int do_dccp_setsockopt(struct sock *sk, int level, int optname,
sockptr_t optval, unsigned int optlen)
{ … }
int dccp_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval,
unsigned int optlen)
{ … }
EXPORT_SYMBOL_GPL(…);
static int dccp_getsockopt_service(struct sock *sk, int len,
__be32 __user *optval,
int __user *optlen)
{ … }
static int do_dccp_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen)
{ … }
int dccp_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen)
{ … }
EXPORT_SYMBOL_GPL(…);
static int dccp_msghdr_parse(struct msghdr *msg, struct sk_buff *skb)
{ … }
int dccp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
{ … }
EXPORT_SYMBOL_GPL(…);
int dccp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int flags,
int *addr_len)
{ … }
EXPORT_SYMBOL_GPL(…);
int inet_dccp_listen(struct socket *sock, int backlog)
{ … }
EXPORT_SYMBOL_GPL(…);
static void dccp_terminate_connection(struct sock *sk)
{ … }
void dccp_close(struct sock *sk, long timeout)
{ … }
EXPORT_SYMBOL_GPL(…);
void dccp_shutdown(struct sock *sk, int how)
{ … }
EXPORT_SYMBOL_GPL(…);
static inline int __init dccp_mib_init(void)
{ … }
static inline void dccp_mib_exit(void)
{ … }
static int thash_entries;
module_param(thash_entries, int, 0444);
MODULE_PARM_DESC(…) …;
#ifdef CONFIG_IP_DCCP_DEBUG
bool dccp_debug;
module_param(dccp_debug, bool, 0644);
MODULE_PARM_DESC(…) …;
EXPORT_SYMBOL_GPL(…);
#endif
static int __init dccp_init(void)
{ … }
static void __exit dccp_fini(void)
{ … }
module_init(…) …;
module_exit(dccp_fini);
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;