1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | #ifndef __NETNS_CONNTRACK_H #define __NETNS_CONNTRACK_H #include <linux/list.h> #include <linux/list_nulls.h> #include <linux/atomic.h> #include <linux/workqueue.h> #include <linux/netfilter/nf_conntrack_tcp.h> #ifdef [31mCONFIG_NF_CT_PROTO_DCCP[0m #include <linux/netfilter/nf_conntrack_dccp.h> #endif #ifdef [31mCONFIG_NF_CT_PROTO_SCTP[0m #include <linux/netfilter/nf_conntrack_sctp.h> #endif #include <linux/seqlock.h> struct ctl_table_header; struct nf_conntrack_ecache; struct nf_proto_net { #ifdef [31mCONFIG_SYSCTL[0m struct ctl_table_header *ctl_table_header; struct ctl_table *ctl_table; #endif unsigned int users; }; struct nf_generic_net { struct nf_proto_net pn; unsigned int timeout; }; struct nf_tcp_net { struct nf_proto_net pn; unsigned int timeouts[TCP_CONNTRACK_TIMEOUT_MAX]; unsigned int tcp_loose; unsigned int tcp_be_liberal; unsigned int tcp_max_retrans; }; enum udp_conntrack { UDP_CT_UNREPLIED, UDP_CT_REPLIED, UDP_CT_MAX }; struct nf_udp_net { struct nf_proto_net pn; unsigned int timeouts[UDP_CT_MAX]; }; struct nf_icmp_net { struct nf_proto_net pn; unsigned int timeout; }; #ifdef [31mCONFIG_NF_CT_PROTO_DCCP[0m struct nf_dccp_net { struct nf_proto_net pn; int dccp_loose; unsigned int dccp_timeout[CT_DCCP_MAX + 1]; }; #endif #ifdef [31mCONFIG_NF_CT_PROTO_SCTP[0m struct nf_sctp_net { struct nf_proto_net pn; unsigned int timeouts[SCTP_CONNTRACK_MAX]; }; #endif #ifdef [31mCONFIG_NF_CT_PROTO_UDPLITE[0m enum udplite_conntrack { UDPLITE_CT_UNREPLIED, UDPLITE_CT_REPLIED, UDPLITE_CT_MAX }; struct nf_udplite_net { struct nf_proto_net pn; unsigned int timeouts[UDPLITE_CT_MAX]; }; #endif struct nf_ip_net { struct nf_generic_net generic; struct nf_tcp_net tcp; struct nf_udp_net udp; struct nf_icmp_net icmp; struct nf_icmp_net icmpv6; #ifdef [31mCONFIG_NF_CT_PROTO_DCCP[0m struct nf_dccp_net dccp; #endif #ifdef [31mCONFIG_NF_CT_PROTO_SCTP[0m struct nf_sctp_net sctp; #endif #ifdef [31mCONFIG_NF_CT_PROTO_UDPLITE[0m struct nf_udplite_net udplite; #endif }; struct ct_pcpu { spinlock_t lock; struct hlist_nulls_head unconfirmed; struct hlist_nulls_head dying; }; struct netns_ct { atomic_t count; unsigned int expect_count; #ifdef [31mCONFIG_NF_CONNTRACK_EVENTS[0m struct delayed_work ecache_dwork; bool ecache_dwork_pending; #endif #ifdef [31mCONFIG_SYSCTL[0m struct ctl_table_header *sysctl_header; struct ctl_table_header *acct_sysctl_header; struct ctl_table_header *tstamp_sysctl_header; struct ctl_table_header *event_sysctl_header; struct ctl_table_header *helper_sysctl_header; #endif unsigned int sysctl_log_invalid; /* Log invalid packets */ int sysctl_events; int sysctl_acct; int sysctl_auto_assign_helper; bool auto_assign_helper_warned; int sysctl_tstamp; int sysctl_checksum; struct ct_pcpu __percpu *pcpu_lists; struct ip_conntrack_stat __percpu *stat; struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb; struct nf_exp_event_notifier __rcu *nf_expect_event_cb; struct nf_ip_net nf_ct_proto; #if defined([31mCONFIG_NF_CONNTRACK_LABELS[0m) unsigned int labels_used; #endif }; #endif |