|
@@ -183,6 +183,7 @@ struct ipv6_devconf ipv6_devconf __read_mostly = {
|
|
|
#endif
|
|
|
.proxy_ndp = 0,
|
|
|
.accept_source_route = 0, /* we do not accept RH0 by default. */
|
|
|
+ .disable_ipv6 = 0,
|
|
|
};
|
|
|
|
|
|
static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
|
|
@@ -215,6 +216,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
|
|
|
#endif
|
|
|
.proxy_ndp = 0,
|
|
|
.accept_source_route = 0, /* we do not accept RH0 by default. */
|
|
|
+ .disable_ipv6 = 0,
|
|
|
};
|
|
|
|
|
|
/* IPv6 Wildcard Address and Loopback Address defined by RFC2553 */
|
|
@@ -3657,6 +3659,7 @@ static inline void ipv6_store_devconf(struct ipv6_devconf *cnf,
|
|
|
#ifdef CONFIG_IPV6_MROUTE
|
|
|
array[DEVCONF_MC_FORWARDING] = cnf->mc_forwarding;
|
|
|
#endif
|
|
|
+ array[DEVCONF_DISABLE_IPV6] = cnf->disable_ipv6;
|
|
|
}
|
|
|
|
|
|
static inline size_t inet6_if_nlmsg_size(void)
|
|
@@ -4215,6 +4218,14 @@ static struct addrconf_sysctl_table
|
|
|
.proc_handler = &proc_dointvec,
|
|
|
},
|
|
|
#endif
|
|
|
+ {
|
|
|
+ .ctl_name = CTL_UNNUMBERED,
|
|
|
+ .procname = "disable_ipv6",
|
|
|
+ .data = &ipv6_devconf.disable_ipv6,
|
|
|
+ .maxlen = sizeof(int),
|
|
|
+ .mode = 0644,
|
|
|
+ .proc_handler = &proc_dointvec,
|
|
|
+ },
|
|
|
{
|
|
|
.ctl_name = 0, /* sentinel */
|
|
|
}
|