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 #ifdef CONFIG_SECURITY
41 	struct xt_table		*iptable_security;
42 #endif
43 	struct xt_table		*nat_table;
44 	struct hlist_head	*nat_bysource;
45 	unsigned int		nat_htable_size;
46 #endif
47 
48 	int sysctl_icmp_echo_ignore_all;
49 	int sysctl_icmp_echo_ignore_broadcasts;
50 	int sysctl_icmp_ignore_bogus_error_responses;
51 	int sysctl_icmp_ratelimit;
52 	int sysctl_icmp_ratemask;
53 	int sysctl_icmp_errors_use_inbound_ifaddr;
54 	int sysctl_rt_cache_rebuild_count;
55 	int current_rt_cache_rebuild_count;
56 
57 	unsigned int sysctl_ping_group_range[2];
58 	long sysctl_tcp_mem[3];
59 
60 	atomic_t rt_genid;
61 	atomic_t dev_addr_genid;
62 
63 #ifdef CONFIG_IP_MROUTE
64 #ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES
65 	struct mr_table		*mrt;
66 #else
67 	struct list_head	mr_tables;
68 	struct fib_rules_ops	*mr_rules_ops;
69 #endif
70 #endif
71 };
72 #endif
73