1 #ifndef __NETNS_CONNTRACK_H 2 #define __NETNS_CONNTRACK_H 3 4 #include <linux/list.h> 5 #include <linux/list_nulls.h> 6 #include <linux/atomic.h> 7 #include <linux/netfilter/nf_conntrack_tcp.h> 8 9 struct ctl_table_header; 10 struct nf_conntrack_ecache; 11 12 struct nf_proto_net { 13 #ifdef CONFIG_SYSCTL 14 struct ctl_table_header *ctl_table_header; 15 struct ctl_table *ctl_table; 16 #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT 17 struct ctl_table_header *ctl_compat_header; 18 struct ctl_table *ctl_compat_table; 19 #endif 20 #endif 21 unsigned int users; 22 }; 23 24 struct nf_generic_net { 25 struct nf_proto_net pn; 26 unsigned int timeout; 27 }; 28 29 struct nf_tcp_net { 30 struct nf_proto_net pn; 31 unsigned int timeouts[TCP_CONNTRACK_TIMEOUT_MAX]; 32 unsigned int tcp_loose; 33 unsigned int tcp_be_liberal; 34 unsigned int tcp_max_retrans; 35 }; 36 37 enum udp_conntrack { 38 UDP_CT_UNREPLIED, 39 UDP_CT_REPLIED, 40 UDP_CT_MAX 41 }; 42 43 struct nf_udp_net { 44 struct nf_proto_net pn; 45 unsigned int timeouts[UDP_CT_MAX]; 46 }; 47 48 struct nf_icmp_net { 49 struct nf_proto_net pn; 50 unsigned int timeout; 51 }; 52 53 struct nf_ip_net { 54 struct nf_generic_net generic; 55 struct nf_tcp_net tcp; 56 struct nf_udp_net udp; 57 struct nf_icmp_net icmp; 58 struct nf_icmp_net icmpv6; 59 #if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT) 60 struct ctl_table_header *ctl_table_header; 61 struct ctl_table *ctl_table; 62 #endif 63 }; 64 65 struct netns_ct { 66 atomic_t count; 67 unsigned int expect_count; 68 unsigned int htable_size; 69 struct kmem_cache *nf_conntrack_cachep; 70 struct hlist_nulls_head *hash; 71 struct hlist_head *expect_hash; 72 struct hlist_nulls_head unconfirmed; 73 struct hlist_nulls_head dying; 74 struct hlist_nulls_head tmpl; 75 struct ip_conntrack_stat __percpu *stat; 76 struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb; 77 struct nf_exp_event_notifier __rcu *nf_expect_event_cb; 78 int sysctl_events; 79 unsigned int sysctl_events_retry_timeout; 80 int sysctl_acct; 81 int sysctl_tstamp; 82 int sysctl_checksum; 83 unsigned int sysctl_log_invalid; /* Log invalid packets */ 84 int sysctl_auto_assign_helper; 85 bool auto_assign_helper_warned; 86 struct nf_ip_net nf_ct_proto; 87 #if defined(CONFIG_NF_CONNTRACK_LABELS) 88 unsigned int labels_used; 89 u8 label_words; 90 #endif 91 #ifdef CONFIG_NF_NAT_NEEDED 92 struct hlist_head *nat_bysource; 93 unsigned int nat_htable_size; 94 #endif 95 #ifdef CONFIG_SYSCTL 96 struct ctl_table_header *sysctl_header; 97 struct ctl_table_header *acct_sysctl_header; 98 struct ctl_table_header *tstamp_sysctl_header; 99 struct ctl_table_header *event_sysctl_header; 100 struct ctl_table_header *helper_sysctl_header; 101 #endif 102 char *slabname; 103 }; 104 #endif 105