root/include/net/netns/conntrack.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __NETNS_CONNTRACK_H
   3 #define __NETNS_CONNTRACK_H
   4 
   5 #include <linux/list.h>
   6 #include <linux/list_nulls.h>
   7 #include <linux/atomic.h>
   8 #include <linux/workqueue.h>
   9 #include <linux/netfilter/nf_conntrack_tcp.h>
  10 #ifdef CONFIG_NF_CT_PROTO_DCCP
  11 #include <linux/netfilter/nf_conntrack_dccp.h>
  12 #endif
  13 #ifdef CONFIG_NF_CT_PROTO_SCTP
  14 #include <linux/netfilter/nf_conntrack_sctp.h>
  15 #endif
  16 #include <linux/seqlock.h>
  17 
  18 struct ctl_table_header;
  19 struct nf_conntrack_ecache;
  20 
  21 struct nf_generic_net {
  22         unsigned int timeout;
  23 };
  24 
  25 struct nf_tcp_net {
  26         unsigned int timeouts[TCP_CONNTRACK_TIMEOUT_MAX];
  27         int tcp_loose;
  28         int tcp_be_liberal;
  29         int tcp_max_retrans;
  30 };
  31 
  32 enum udp_conntrack {
  33         UDP_CT_UNREPLIED,
  34         UDP_CT_REPLIED,
  35         UDP_CT_MAX
  36 };
  37 
  38 struct nf_udp_net {
  39         unsigned int timeouts[UDP_CT_MAX];
  40 };
  41 
  42 struct nf_icmp_net {
  43         unsigned int timeout;
  44 };
  45 
  46 #ifdef CONFIG_NF_CT_PROTO_DCCP
  47 struct nf_dccp_net {
  48         int dccp_loose;
  49         unsigned int dccp_timeout[CT_DCCP_MAX + 1];
  50 };
  51 #endif
  52 
  53 #ifdef CONFIG_NF_CT_PROTO_SCTP
  54 struct nf_sctp_net {
  55         unsigned int timeouts[SCTP_CONNTRACK_MAX];
  56 };
  57 #endif
  58 
  59 #ifdef CONFIG_NF_CT_PROTO_GRE
  60 enum gre_conntrack {
  61         GRE_CT_UNREPLIED,
  62         GRE_CT_REPLIED,
  63         GRE_CT_MAX
  64 };
  65 
  66 struct nf_gre_net {
  67         struct list_head        keymap_list;
  68         unsigned int            timeouts[GRE_CT_MAX];
  69 };
  70 #endif
  71 
  72 struct nf_ip_net {
  73         struct nf_generic_net   generic;
  74         struct nf_tcp_net       tcp;
  75         struct nf_udp_net       udp;
  76         struct nf_icmp_net      icmp;
  77         struct nf_icmp_net      icmpv6;
  78 #ifdef CONFIG_NF_CT_PROTO_DCCP
  79         struct nf_dccp_net      dccp;
  80 #endif
  81 #ifdef CONFIG_NF_CT_PROTO_SCTP
  82         struct nf_sctp_net      sctp;
  83 #endif
  84 #ifdef CONFIG_NF_CT_PROTO_GRE
  85         struct nf_gre_net       gre;
  86 #endif
  87 };
  88 
  89 struct ct_pcpu {
  90         spinlock_t              lock;
  91         struct hlist_nulls_head unconfirmed;
  92         struct hlist_nulls_head dying;
  93 };
  94 
  95 struct netns_ct {
  96         atomic_t                count;
  97         unsigned int            expect_count;
  98 #ifdef CONFIG_NF_CONNTRACK_EVENTS
  99         struct delayed_work ecache_dwork;
 100         bool ecache_dwork_pending;
 101 #endif
 102         bool                    auto_assign_helper_warned;
 103 #ifdef CONFIG_SYSCTL
 104         struct ctl_table_header *sysctl_header;
 105 #endif
 106         unsigned int            sysctl_log_invalid; /* Log invalid packets */
 107         int                     sysctl_events;
 108         int                     sysctl_acct;
 109         int                     sysctl_auto_assign_helper;
 110         int                     sysctl_tstamp;
 111         int                     sysctl_checksum;
 112 
 113         struct ct_pcpu __percpu *pcpu_lists;
 114         struct ip_conntrack_stat __percpu *stat;
 115         struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb;
 116         struct nf_exp_event_notifier __rcu *nf_expect_event_cb;
 117         struct nf_ip_net        nf_ct_proto;
 118 #if defined(CONFIG_NF_CONNTRACK_LABELS)
 119         unsigned int            labels_used;
 120 #endif
 121 };
 122 #endif

/* [<][>][^][v][top][bottom][index][help] */