xref: /openbmc/linux/include/net/netns/ipv4.h (revision 7dd65feb)
1 /*
2  * ipv4 in net namespaces
3  */
4 
5 #ifndef __NETNS_IPV4_H__
6 #define __NETNS_IPV4_H__
7 
8 #include <net/inet_frag.h>
9 
10 struct ctl_table_header;
11 struct ipv4_devconf;
12 struct fib_rules_ops;
13 struct hlist_head;
14 struct sock;
15 
16 struct netns_ipv4 {
17 #ifdef CONFIG_SYSCTL
18 	struct ctl_table_header	*forw_hdr;
19 	struct ctl_table_header	*frags_hdr;
20 	struct ctl_table_header	*ipv4_hdr;
21 	struct ctl_table_header *route_hdr;
22 #endif
23 	struct ipv4_devconf	*devconf_all;
24 	struct ipv4_devconf	*devconf_dflt;
25 #ifdef CONFIG_IP_MULTIPLE_TABLES
26 	struct fib_rules_ops	*rules_ops;
27 #endif
28 	struct hlist_head	*fib_table_hash;
29 	struct sock		*fibnl;
30 
31 	struct sock		**icmp_sk;
32 	struct sock		*tcp_sock;
33 
34 	struct netns_frags	frags;
35 #ifdef CONFIG_NETFILTER
36 	struct xt_table		*iptable_filter;
37 	struct xt_table		*iptable_mangle;
38 	struct xt_table		*iptable_raw;
39 	struct xt_table		*arptable_filter;
40 	struct xt_table		*iptable_security;
41 	struct xt_table		*nat_table;
42 	struct hlist_head	*nat_bysource;
43 	int			nat_vmalloced;
44 #endif
45 
46 	int sysctl_icmp_echo_ignore_all;
47 	int sysctl_icmp_echo_ignore_broadcasts;
48 	int sysctl_icmp_ignore_bogus_error_responses;
49 	int sysctl_icmp_ratelimit;
50 	int sysctl_icmp_ratemask;
51 	int sysctl_icmp_errors_use_inbound_ifaddr;
52 	int sysctl_rt_cache_rebuild_count;
53 	int current_rt_cache_rebuild_count;
54 
55 	struct timer_list rt_secret_timer;
56 	atomic_t rt_genid;
57 
58 #ifdef CONFIG_IP_MROUTE
59 	struct sock		*mroute_sk;
60 	struct mfc_cache	**mfc_cache_array;
61 	struct vif_device	*vif_table;
62 	int			maxvif;
63 	atomic_t		cache_resolve_queue_len;
64 	int			mroute_do_assert;
65 	int			mroute_do_pim;
66 #if defined(CONFIG_IP_PIMSM_V1) || defined(CONFIG_IP_PIMSM_V2)
67 	int			mroute_reg_vif_num;
68 #endif
69 #endif
70 };
71 #endif
72