root/include/net/netns/ipv6.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * ipv6 in net namespaces
   4  */
   5 
   6 #include <net/inet_frag.h>
   7 
   8 #ifndef __NETNS_IPV6_H__
   9 #define __NETNS_IPV6_H__
  10 #include <net/dst_ops.h>
  11 #include <uapi/linux/icmpv6.h>
  12 
  13 struct ctl_table_header;
  14 
  15 struct netns_sysctl_ipv6 {
  16 #ifdef CONFIG_SYSCTL
  17         struct ctl_table_header *hdr;
  18         struct ctl_table_header *route_hdr;
  19         struct ctl_table_header *icmp_hdr;
  20         struct ctl_table_header *frags_hdr;
  21         struct ctl_table_header *xfrm6_hdr;
  22 #endif
  23         int bindv6only;
  24         int flush_delay;
  25         int ip6_rt_max_size;
  26         int ip6_rt_gc_min_interval;
  27         int ip6_rt_gc_timeout;
  28         int ip6_rt_gc_interval;
  29         int ip6_rt_gc_elasticity;
  30         int ip6_rt_mtu_expires;
  31         int ip6_rt_min_advmss;
  32         int multipath_hash_policy;
  33         int flowlabel_consistency;
  34         int auto_flowlabels;
  35         int icmpv6_time;
  36         int icmpv6_echo_ignore_all;
  37         int icmpv6_echo_ignore_multicast;
  38         int icmpv6_echo_ignore_anycast;
  39         DECLARE_BITMAP(icmpv6_ratemask, ICMPV6_MSG_MAX + 1);
  40         unsigned long *icmpv6_ratemask_ptr;
  41         int anycast_src_echo_reply;
  42         int ip_nonlocal_bind;
  43         int fwmark_reflect;
  44         int idgen_retries;
  45         int idgen_delay;
  46         int flowlabel_state_ranges;
  47         int flowlabel_reflect;
  48         int max_dst_opts_cnt;
  49         int max_hbh_opts_cnt;
  50         int max_dst_opts_len;
  51         int max_hbh_opts_len;
  52         int seg6_flowlabel;
  53         bool skip_notify_on_dev_down;
  54 };
  55 
  56 struct netns_ipv6 {
  57         struct netns_sysctl_ipv6 sysctl;
  58         struct ipv6_devconf     *devconf_all;
  59         struct ipv6_devconf     *devconf_dflt;
  60         struct inet_peer_base   *peers;
  61         struct fqdir            *fqdir;
  62 #ifdef CONFIG_NETFILTER
  63         struct xt_table         *ip6table_filter;
  64         struct xt_table         *ip6table_mangle;
  65         struct xt_table         *ip6table_raw;
  66 #ifdef CONFIG_SECURITY
  67         struct xt_table         *ip6table_security;
  68 #endif
  69         struct xt_table         *ip6table_nat;
  70 #endif
  71         struct fib6_info        *fib6_null_entry;
  72         struct rt6_info         *ip6_null_entry;
  73         struct rt6_statistics   *rt6_stats;
  74         struct timer_list       ip6_fib_timer;
  75         struct hlist_head       *fib_table_hash;
  76         struct fib6_table       *fib6_main_tbl;
  77         struct list_head        fib6_walkers;
  78         struct dst_ops          ip6_dst_ops;
  79         rwlock_t                fib6_walker_lock;
  80         spinlock_t              fib6_gc_lock;
  81         unsigned int             ip6_rt_gc_expire;
  82         unsigned long            ip6_rt_last_gc;
  83 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  84         unsigned int            fib6_rules_require_fldissect;
  85         bool                    fib6_has_custom_rules;
  86         struct rt6_info         *ip6_prohibit_entry;
  87         struct rt6_info         *ip6_blk_hole_entry;
  88         struct fib6_table       *fib6_local_tbl;
  89         struct fib_rules_ops    *fib6_rules_ops;
  90 #endif
  91         struct sock * __percpu  *icmp_sk;
  92         struct sock             *ndisc_sk;
  93         struct sock             *tcp_sk;
  94         struct sock             *igmp_sk;
  95         struct sock             *mc_autojoin_sk;
  96 #ifdef CONFIG_IPV6_MROUTE
  97 #ifndef CONFIG_IPV6_MROUTE_MULTIPLE_TABLES
  98         struct mr_table         *mrt6;
  99 #else
 100         struct list_head        mr6_tables;
 101         struct fib_rules_ops    *mr6_rules_ops;
 102 #endif
 103 #endif
 104         atomic_t                dev_addr_genid;
 105         atomic_t                fib6_sernum;
 106         struct seg6_pernet_data *seg6_data;
 107         struct fib_notifier_ops *notifier_ops;
 108         struct fib_notifier_ops *ip6mr_notifier_ops;
 109         unsigned int ipmr_seq; /* protected by rtnl_mutex */
 110         struct {
 111                 struct hlist_head head;
 112                 spinlock_t      lock;
 113                 u32             seq;
 114         } ip6addrlbl_table;
 115 };
 116 
 117 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
 118 struct netns_nf_frag {
 119         struct fqdir    *fqdir;
 120 };
 121 #endif
 122 
 123 #endif

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