aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/sysctl_net_ipv6.c
diff options
context:
space:
mode:
authorDaniel Lezcano <dlezcano@fr.ibm.com>2008-01-10 05:56:03 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:01:18 -0500
commite71e0349eb32bc438fa80d8990c6f3592967d111 (patch)
tree1fc9565c1b8c36e5fe9ecfde20bd989f6475324f /net/ipv6/sysctl_net_ipv6.c
parent99bc9c4e45e7e783cf0b0a25cc03a103c038f254 (diff)
[NETNS][IPV6]: Make ip6_frags per namespace.
The ip6_frags is moved to the network namespace structure. Because there can be multiple instances of the network namespaces, and the ip6_frags is no longer a global static variable, a helper function has been added to facilitate the initialization of the variables. Until the ipv6 protocol is not per namespace, the variables are accessed relatively from 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/sysctl_net_ipv6.c')
-rw-r--r--net/ipv6/sysctl_net_ipv6.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
index 13be97a928cb..ae3cfd1b8e0e 100644
--- a/net/ipv6/sysctl_net_ipv6.c
+++ b/net/ipv6/sysctl_net_ipv6.c
@@ -43,7 +43,7 @@ static ctl_table ipv6_table_template[] = {
43 { 43 {
44 .ctl_name = NET_IPV6_IP6FRAG_HIGH_THRESH, 44 .ctl_name = NET_IPV6_IP6FRAG_HIGH_THRESH,
45 .procname = "ip6frag_high_thresh", 45 .procname = "ip6frag_high_thresh",
46 .data = &ip6_frags_ctl.high_thresh, 46 .data = &init_net.ipv6.sysctl.frags.high_thresh,
47 .maxlen = sizeof(int), 47 .maxlen = sizeof(int),
48 .mode = 0644, 48 .mode = 0644,
49 .proc_handler = &proc_dointvec 49 .proc_handler = &proc_dointvec
@@ -51,7 +51,7 @@ static ctl_table ipv6_table_template[] = {
51 { 51 {
52 .ctl_name = NET_IPV6_IP6FRAG_LOW_THRESH, 52 .ctl_name = NET_IPV6_IP6FRAG_LOW_THRESH,
53 .procname = "ip6frag_low_thresh", 53 .procname = "ip6frag_low_thresh",
54 .data = &ip6_frags_ctl.low_thresh, 54 .data = &init_net.ipv6.sysctl.frags.low_thresh,
55 .maxlen = sizeof(int), 55 .maxlen = sizeof(int),
56 .mode = 0644, 56 .mode = 0644,
57 .proc_handler = &proc_dointvec 57 .proc_handler = &proc_dointvec
@@ -59,7 +59,7 @@ static ctl_table ipv6_table_template[] = {
59 { 59 {
60 .ctl_name = NET_IPV6_IP6FRAG_TIME, 60 .ctl_name = NET_IPV6_IP6FRAG_TIME,
61 .procname = "ip6frag_time", 61 .procname = "ip6frag_time",
62 .data = &ip6_frags_ctl.timeout, 62 .data = &init_net.ipv6.sysctl.frags.timeout,
63 .maxlen = sizeof(int), 63 .maxlen = sizeof(int),
64 .mode = 0644, 64 .mode = 0644,
65 .proc_handler = &proc_dointvec_jiffies, 65 .proc_handler = &proc_dointvec_jiffies,
@@ -68,7 +68,7 @@ static ctl_table ipv6_table_template[] = {
68 { 68 {
69 .ctl_name = NET_IPV6_IP6FRAG_SECRET_INTERVAL, 69 .ctl_name = NET_IPV6_IP6FRAG_SECRET_INTERVAL,
70 .procname = "ip6frag_secret_interval", 70 .procname = "ip6frag_secret_interval",
71 .data = &ip6_frags_ctl.secret_interval, 71 .data = &init_net.ipv6.sysctl.frags.secret_interval,
72 .maxlen = sizeof(int), 72 .maxlen = sizeof(int),
73 .mode = 0644, 73 .mode = 0644,
74 .proc_handler = &proc_dointvec_jiffies, 74 .proc_handler = &proc_dointvec_jiffies,
@@ -117,6 +117,10 @@ static int ipv6_sysctl_net_init(struct net *net)
117 ipv6_table[1].child = ipv6_icmp_table; 117 ipv6_table[1].child = ipv6_icmp_table;
118 118
119 ipv6_table[2].data = &net->ipv6.sysctl.bindv6only; 119 ipv6_table[2].data = &net->ipv6.sysctl.bindv6only;
120 ipv6_table[3].data = &net->ipv6.sysctl.frags.high_thresh;
121 ipv6_table[4].data = &net->ipv6.sysctl.frags.low_thresh;
122 ipv6_table[5].data = &net->ipv6.sysctl.frags.timeout;
123 ipv6_table[6].data = &net->ipv6.sysctl.frags.secret_interval;
120 124
121 net->ipv6.sysctl.table = register_net_sysctl_table(net, net_ipv6_ctl_path, 125 net->ipv6.sysctl.table = register_net_sysctl_table(net, net_ipv6_ctl_path,
122 ipv6_table); 126 ipv6_table);