Import 2.1.89
[davej-history.git] / net / ipv6 / sysctl_net_ipv6.c
dissimilarity index 70%
index e90fee1..6fbc022 100644 (file)
-/*
- * sysctl_net_ipv6.c: sysctl interface to net IPV6 subsystem.
- */
-
-#include <linux/mm.h>
-#include <linux/sysctl.h>
-#include <linux/config.h>
-#include <linux/in6.h>
-#include <linux/ipv6.h>
-#include <net/ndisc.h>
-#include <net/ipv6.h>
-#include <net/addrconf.h>
-
-struct ipv6_config ipv6_config =
-{
-       0,                              /* forwarding           */
-       IPV6_DEFAULT_HOPLIMIT,          /* hop limit            */
-       1,                              /* accept RAs           */
-       1,                              /* accept redirects     */
-
-       1,                              /* autoconfiguration    */
-       1,                              /* dad transmits        */
-       MAX_RTR_SOLICITATIONS,          /* router solicits      */
-       RTR_SOLICITATION_INTERVAL,      /* rtr solicit interval */
-       MAX_RTR_SOLICITATION_DELAY,     /* rtr solicit delay    */
-
-       60*HZ,                          /* rt cache timeout     */
-       30*HZ,                          /* rt gc period         */
-};
-
-#ifdef CONFIG_SYSCTL
-
-int ipv6_sysctl_forwarding(ctl_table *ctl, int write, struct file * filp,
-                          void *buffer, size_t *lenp)
-{
-       int val = ipv6_config.forwarding;
-       int retv;
-
-       retv = proc_dointvec(ctl, write, filp, buffer, lenp);
-
-       if (write) {
-               if (ipv6_config.forwarding && val == 0) {
-                       printk(KERN_DEBUG "sysctl: IPv6 forwarding enabled\n");
-                       ndisc_forwarding_on();
-                       addrconf_forwarding_on();                      
-               }
-
-               if (ipv6_config.forwarding == 0 && val)
-                       ndisc_forwarding_off();
-       }
-       return retv;
-}
-
-ctl_table ipv6_table[] = {
-        {NET_IPV6_FORWARDING, "forwarding",
-         &ipv6_config.forwarding, sizeof(int), 0644, NULL,
-         &ipv6_sysctl_forwarding},
-
-       {NET_IPV6_HOPLIMIT, "hop_limit",
-         &ipv6_config.hop_limit, sizeof(int), 0644, NULL,
-         &proc_dointvec},
-
-       {NET_IPV6_ACCEPT_RA, "accept_ra",
-         &ipv6_config.accept_ra, sizeof(int), 0644, NULL,
-         &proc_dointvec},
-
-       {NET_IPV6_ACCEPT_REDIRECTS, "accept_redirects",
-         &ipv6_config.accept_redirects, sizeof(int), 0644, NULL,
-         &proc_dointvec},
-
-       {NET_IPV6_AUTOCONF, "autoconf",
-         &ipv6_config.autoconf, sizeof(int), 0644, NULL,
-         &proc_dointvec},
-
-       {NET_IPV6_DAD_TRANSMITS, "dad_transmits",
-         &ipv6_config.dad_transmits, sizeof(int), 0644, NULL,
-         &proc_dointvec},
-
-       {NET_IPV6_RTR_SOLICITS, "router_solicitations",
-         &ipv6_config.rtr_solicits, sizeof(int), 0644, NULL,
-         &proc_dointvec},
-
-       {NET_IPV6_RTR_SOLICIT_INTERVAL, "router_solicitation_interval",
-         &ipv6_config.rtr_solicit_interval, sizeof(int), 0644, NULL,
-         &proc_dointvec},
-
-       {NET_IPV6_RTR_SOLICIT_DELAY, "router_solicitation_delay",
-         &ipv6_config.rtr_solicit_delay, sizeof(int), 0644, NULL,
-         &proc_dointvec},
-
-       {0}
-};
-
-#ifdef MODULE
-static struct ctl_table_header *ipv6_sysctl_header;
-static struct ctl_table ipv6_root_table[];
-static struct ctl_table ipv6_net_table[];
-
-
-ctl_table ipv6_root_table[] = {
-       {CTL_NET, "net", NULL, 0, 0555, ipv6_net_table},
-        {0}
-};
-
-ctl_table ipv6_net_table[] = {
-       {NET_IPV6, "ipv6", NULL, 0, 0555, ipv6_table},
-        {0}
-};
-
-void ipv6_sysctl_register(void)
-{
-       ipv6_sysctl_header = register_sysctl_table(ipv6_root_table, 0);
-}
-
-void ipv6_sysctl_unregister(void)
-{
-       unregister_sysctl_table(ipv6_sysctl_header);
-}
-#endif /* MODULE */
-
-#endif /* CONFIG_SYSCTL */
-
-
-
+/*
+ * sysctl_net_ipv6.c: sysctl interface to net IPV6 subsystem.
+ */
+
+#include <linux/mm.h>
+#include <linux/sysctl.h>
+#include <linux/config.h>
+#include <linux/in6.h>
+#include <linux/ipv6.h>
+#include <net/ndisc.h>
+#include <net/ipv6.h>
+#include <net/addrconf.h>
+
+extern ctl_table ipv6_route_table[];
+
+#ifdef CONFIG_SYSCTL
+
+ctl_table ipv6_table[] = {
+       {NET_IPV6_ROUTE, "route", NULL, 0, 0555, ipv6_route_table},
+       {0}
+};
+
+#ifdef MODULE
+static struct ctl_table_header *ipv6_sysctl_header;
+static struct ctl_table ipv6_root_table[];
+static struct ctl_table ipv6_net_table[];
+
+
+ctl_table ipv6_root_table[] = {
+       {CTL_NET, "net", NULL, 0, 0555, ipv6_net_table},
+        {0}
+};
+
+ctl_table ipv6_net_table[] = {
+       {NET_IPV6, "ipv6", NULL, 0, 0555, ipv6_table},
+        {0}
+};
+
+void ipv6_sysctl_register(void)
+{
+       ipv6_sysctl_header = register_sysctl_table(ipv6_root_table, 0);
+}
+
+void ipv6_sysctl_unregister(void)
+{
+       unregister_sysctl_table(ipv6_sysctl_header);
+}
+#endif /* MODULE */
+
+#endif /* CONFIG_SYSCTL */
+
+
+
close