Pavel Emelyanov | 8afd351 | 2007-12-16 13:29:36 -0800 | [diff] [blame] | 1 | /* |
| 2 | * ipv4 in net namespaces |
| 3 | */ |
| 4 | |
| 5 | #ifndef __NETNS_IPV4_H__ |
| 6 | #define __NETNS_IPV4_H__ |
Denis V. Lunev | e4e4971 | 2008-01-10 03:27:51 -0800 | [diff] [blame] | 7 | |
Eric W. Biederman | 7064d16 | 2012-05-24 10:34:21 -0600 | [diff] [blame] | 8 | #include <linux/uidgid.h> |
Pavel Emelyanov | ac18e75 | 2008-01-22 06:02:14 -0800 | [diff] [blame] | 9 | #include <net/inet_frag.h> |
| 10 | |
David S. Miller | 51c5d0c | 2012-07-10 00:49:14 -0700 | [diff] [blame] | 11 | struct tcpm_hash_bucket; |
Pavel Emelyanov | 752d14d | 2007-12-16 13:31:47 -0800 | [diff] [blame] | 12 | struct ctl_table_header; |
| 13 | struct ipv4_devconf; |
Denis V. Lunev | e4e4971 | 2008-01-10 03:27:51 -0800 | [diff] [blame] | 14 | struct fib_rules_ops; |
Denis V. Lunev | e4aef8a | 2008-01-10 03:28:24 -0800 | [diff] [blame] | 15 | struct hlist_head; |
David S. Miller | f4530fa | 2012-07-05 22:13:13 -0700 | [diff] [blame] | 16 | struct fib_table; |
Denis V. Lunev | 6bd48fc | 2008-01-10 03:28:55 -0800 | [diff] [blame] | 17 | struct sock; |
Eric W. Biederman | 0bbf87d | 2013-09-28 14:10:59 -0700 | [diff] [blame] | 18 | struct local_ports { |
| 19 | seqlock_t lock; |
| 20 | int range[2]; |
| 21 | }; |
Pavel Emelyanov | 752d14d | 2007-12-16 13:31:47 -0800 | [diff] [blame] | 22 | |
Pavel Emelyanov | 8afd351 | 2007-12-16 13:29:36 -0800 | [diff] [blame] | 23 | struct netns_ipv4 { |
Eric Dumazet | 2a75de0 | 2008-01-05 23:08:49 -0800 | [diff] [blame] | 24 | #ifdef CONFIG_SYSCTL |
Pavel Emelyanov | 752d14d | 2007-12-16 13:31:47 -0800 | [diff] [blame] | 25 | struct ctl_table_header *forw_hdr; |
Pavel Emelyanov | e4a2d5c | 2008-01-22 06:08:36 -0800 | [diff] [blame] | 26 | struct ctl_table_header *frags_hdr; |
Pavel Emelyanov | 68528f0 | 2008-03-26 01:56:24 -0700 | [diff] [blame] | 27 | struct ctl_table_header *ipv4_hdr; |
Denis V. Lunev | 39a23e7 | 2008-07-05 19:02:33 -0700 | [diff] [blame] | 28 | struct ctl_table_header *route_hdr; |
Michal Kubecek | 8d06887 | 2013-02-06 10:46:33 +0100 | [diff] [blame] | 29 | struct ctl_table_header *xfrm4_hdr; |
Eric Dumazet | 2a75de0 | 2008-01-05 23:08:49 -0800 | [diff] [blame] | 30 | #endif |
Pavel Emelyanov | 752d14d | 2007-12-16 13:31:47 -0800 | [diff] [blame] | 31 | struct ipv4_devconf *devconf_all; |
| 32 | struct ipv4_devconf *devconf_dflt; |
Denis V. Lunev | e4e4971 | 2008-01-10 03:27:51 -0800 | [diff] [blame] | 33 | #ifdef CONFIG_IP_MULTIPLE_TABLES |
| 34 | struct fib_rules_ops *rules_ops; |
David S. Miller | f4530fa | 2012-07-05 22:13:13 -0700 | [diff] [blame] | 35 | bool fib_has_custom_rules; |
| 36 | struct fib_table *fib_local; |
| 37 | struct fib_table *fib_main; |
| 38 | struct fib_table *fib_default; |
| 39 | #endif |
| 40 | #ifdef CONFIG_IP_ROUTE_CLASSID |
| 41 | int fib_num_tclassid_users; |
Denis V. Lunev | e4e4971 | 2008-01-10 03:27:51 -0800 | [diff] [blame] | 42 | #endif |
Denis V. Lunev | e4aef8a | 2008-01-10 03:28:24 -0800 | [diff] [blame] | 43 | struct hlist_head *fib_table_hash; |
Denis V. Lunev | 6bd48fc | 2008-01-10 03:28:55 -0800 | [diff] [blame] | 44 | struct sock *fibnl; |
Pavel Emelyanov | ac18e75 | 2008-01-22 06:02:14 -0800 | [diff] [blame] | 45 | |
Denis V. Lunev | 4a6ad7a | 2008-02-29 11:19:58 -0800 | [diff] [blame] | 46 | struct sock **icmp_sk; |
Gao feng | c8a627e | 2012-06-08 01:20:41 +0000 | [diff] [blame] | 47 | struct inet_peer_base *peers; |
David S. Miller | 51c5d0c | 2012-07-10 00:49:14 -0700 | [diff] [blame] | 48 | struct tcpm_hash_bucket *tcp_metrics_hash; |
Eric Dumazet | 5815d5e | 2012-07-19 23:02:34 +0000 | [diff] [blame] | 49 | unsigned int tcp_metrics_hash_log; |
Pavel Emelyanov | ac18e75 | 2008-01-22 06:02:14 -0800 | [diff] [blame] | 50 | struct netns_frags frags; |
Alexey Dobriyan | 9335f04 | 2008-01-31 04:03:23 -0800 | [diff] [blame] | 51 | #ifdef CONFIG_NETFILTER |
| 52 | struct xt_table *iptable_filter; |
| 53 | struct xt_table *iptable_mangle; |
| 54 | struct xt_table *iptable_raw; |
Alexey Dobriyan | 9ea0cb2 | 2008-01-31 04:05:09 -0800 | [diff] [blame] | 55 | struct xt_table *arptable_filter; |
Alexey Dobriyan | e9d3897 | 2010-01-18 08:08:37 +0100 | [diff] [blame] | 56 | #ifdef CONFIG_SECURITY |
James Morris | 560ee65 | 2008-06-09 15:57:24 -0700 | [diff] [blame] | 57 | struct xt_table *iptable_security; |
Alexey Dobriyan | e9d3897 | 2010-01-18 08:08:37 +0100 | [diff] [blame] | 58 | #endif |
Alexey Dobriyan | e099a17 | 2008-10-08 11:35:10 +0200 | [diff] [blame] | 59 | struct xt_table *nat_table; |
Alexey Dobriyan | 9335f04 | 2008-01-31 04:03:23 -0800 | [diff] [blame] | 60 | #endif |
Pavel Emelyanov | a24022e | 2008-03-26 01:55:37 -0700 | [diff] [blame] | 61 | |
| 62 | int sysctl_icmp_echo_ignore_all; |
| 63 | int sysctl_icmp_echo_ignore_broadcasts; |
| 64 | int sysctl_icmp_ignore_bogus_error_responses; |
| 65 | int sysctl_icmp_ratelimit; |
| 66 | int sysctl_icmp_ratemask; |
| 67 | int sysctl_icmp_errors_use_inbound_ifaddr; |
Denis V. Lunev | 9f5e97e | 2008-07-05 19:02:59 -0700 | [diff] [blame] | 68 | |
Eric W. Biederman | 0bbf87d | 2013-09-28 14:10:59 -0700 | [diff] [blame] | 69 | struct local_ports sysctl_local_ports; |
| 70 | |
Hannes Frederic Sowa | 5d134f1 | 2013-01-05 16:10:48 +0000 | [diff] [blame] | 71 | int sysctl_tcp_ecn; |
Hannes Frederic Sowa | 974eda1 | 2013-12-14 05:13:38 +0100 | [diff] [blame] | 72 | int sysctl_ip_no_pmtu_disc; |
Hannes Frederic Sowa | f87c10a | 2014-01-09 10:01:15 +0100 | [diff] [blame^] | 73 | int sysctl_ip_fwd_use_pmtu; |
Hannes Frederic Sowa | 5d134f1 | 2013-01-05 16:10:48 +0000 | [diff] [blame] | 74 | |
Eric W. Biederman | 7064d16 | 2012-05-24 10:34:21 -0600 | [diff] [blame] | 75 | kgid_t sysctl_ping_group_range[2]; |
Vasiliy Kulikov | c319b4d | 2011-05-13 10:01:00 +0000 | [diff] [blame] | 76 | |
David S. Miller | 436c3b6 | 2011-03-24 17:42:21 -0700 | [diff] [blame] | 77 | atomic_t dev_addr_genid; |
Benjamin Thery | 70a269e | 2009-01-22 04:56:15 +0000 | [diff] [blame] | 78 | |
| 79 | #ifdef CONFIG_IP_MROUTE |
Patrick McHardy | f0ad086 | 2010-04-13 05:03:23 +0000 | [diff] [blame] | 80 | #ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES |
Patrick McHardy | 0c12295 | 2010-04-13 05:03:22 +0000 | [diff] [blame] | 81 | struct mr_table *mrt; |
Patrick McHardy | f0ad086 | 2010-04-13 05:03:23 +0000 | [diff] [blame] | 82 | #else |
| 83 | struct list_head mr_tables; |
| 84 | struct fib_rules_ops *mr_rules_ops; |
| 85 | #endif |
Benjamin Thery | 70a269e | 2009-01-22 04:56:15 +0000 | [diff] [blame] | 86 | #endif |
fan.du | ca4c3fc | 2013-07-30 08:33:53 +0800 | [diff] [blame] | 87 | atomic_t rt_genid; |
Pavel Emelyanov | 8afd351 | 2007-12-16 13:29:36 -0800 | [diff] [blame] | 88 | }; |
| 89 | #endif |