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