diff options
author | Daniel Lezcano <dlezcano@fr.ibm.com> | 2008-01-10 06:02:40 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:01:20 -0500 |
commit | 41a76906b3225997036efd88cbaae69d60b1e947 (patch) | |
tree | c8970051ba81d3ecc50b616ceb289d7d532a97bc /net/ipv6 | |
parent | 4990509f19e8f1e000a83a88fc46328f73b8a88a (diff) |
[NETNS][IPV6]: Make icmpv6_time sysctl per namespace.
This patch moves the icmpv6_time sysctl to the network namespace
structure.
Because the ipv6 protocol is not yet per namespace, the variable is
accessed relatively to the initial network namespace.
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/af_inet6.c | 1 | ||||
-rw-r--r-- | net/ipv6/icmp.c | 6 | ||||
-rw-r--r-- | net/ipv6/sysctl_net_ipv6.c | 1 |
3 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 3aea84a1822a..218b8b3050a1 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
@@ -734,6 +734,7 @@ static int inet6_net_init(struct net *net) | |||
734 | net->ipv6.sysctl.ip6_rt_gc_elasticity = 9; | 734 | net->ipv6.sysctl.ip6_rt_gc_elasticity = 9; |
735 | net->ipv6.sysctl.ip6_rt_mtu_expires = 10*60*HZ; | 735 | net->ipv6.sysctl.ip6_rt_mtu_expires = 10*60*HZ; |
736 | net->ipv6.sysctl.ip6_rt_min_advmss = IPV6_MIN_MTU - 20 - 40; | 736 | net->ipv6.sysctl.ip6_rt_min_advmss = IPV6_MIN_MTU - 20 - 40; |
737 | net->ipv6.sysctl.icmpv6_time = 1*HZ; | ||
737 | ipv6_frag_sysctl_init(net); | 738 | ipv6_frag_sysctl_init(net); |
738 | 739 | ||
739 | return 0; | 740 | return 0; |
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index dfe3b37c43e9..5395afe55ca5 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c | |||
@@ -154,8 +154,6 @@ static int is_ineligible(struct sk_buff *skb) | |||
154 | return 0; | 154 | return 0; |
155 | } | 155 | } |
156 | 156 | ||
157 | static int sysctl_icmpv6_time __read_mostly = 1*HZ; | ||
158 | |||
159 | /* | 157 | /* |
160 | * Check the ICMP output rate limit | 158 | * Check the ICMP output rate limit |
161 | */ | 159 | */ |
@@ -186,7 +184,7 @@ static inline int icmpv6_xrlim_allow(struct sock *sk, int type, | |||
186 | res = 1; | 184 | res = 1; |
187 | } else { | 185 | } else { |
188 | struct rt6_info *rt = (struct rt6_info *)dst; | 186 | struct rt6_info *rt = (struct rt6_info *)dst; |
189 | int tmo = sysctl_icmpv6_time; | 187 | int tmo = init_net.ipv6.sysctl.icmpv6_time; |
190 | 188 | ||
191 | /* Give more bandwidth to wider prefixes. */ | 189 | /* Give more bandwidth to wider prefixes. */ |
192 | if (rt->rt6i_dst.plen < 128) | 190 | if (rt->rt6i_dst.plen < 128) |
@@ -911,7 +909,7 @@ ctl_table ipv6_icmp_table_template[] = { | |||
911 | { | 909 | { |
912 | .ctl_name = NET_IPV6_ICMP_RATELIMIT, | 910 | .ctl_name = NET_IPV6_ICMP_RATELIMIT, |
913 | .procname = "ratelimit", | 911 | .procname = "ratelimit", |
914 | .data = &sysctl_icmpv6_time, | 912 | .data = &init_net.ipv6.sysctl.icmpv6_time, |
915 | .maxlen = sizeof(int), | 913 | .maxlen = sizeof(int), |
916 | .mode = 0644, | 914 | .mode = 0644, |
917 | .proc_handler = &proc_dointvec | 915 | .proc_handler = &proc_dointvec |
diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c index b4ba422f2714..5e0af4d46324 100644 --- a/net/ipv6/sysctl_net_ipv6.c +++ b/net/ipv6/sysctl_net_ipv6.c | |||
@@ -125,6 +125,7 @@ static int ipv6_sysctl_net_init(struct net *net) | |||
125 | ipv6_route_table[8].data = &net->ipv6.sysctl.ip6_rt_min_advmss; | 125 | ipv6_route_table[8].data = &net->ipv6.sysctl.ip6_rt_min_advmss; |
126 | ipv6_table[0].child = ipv6_route_table; | 126 | ipv6_table[0].child = ipv6_route_table; |
127 | 127 | ||
128 | ipv6_icmp_table[0].data = &net->ipv6.sysctl.icmpv6_time; | ||
128 | ipv6_table[1].child = ipv6_icmp_table; | 129 | ipv6_table[1].child = ipv6_icmp_table; |
129 | 130 | ||
130 | ipv6_table[2].data = &net->ipv6.sysctl.bindv6only; | 131 | ipv6_table[2].data = &net->ipv6.sysctl.bindv6only; |