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
10struct ctl_table_header;
11struct ipv4_devconf;
12struct fib_rules_ops;
13struct hlist_head;
14struct sock;
15
16struct 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