IPv6: add "disable" module parameter support to ipv6.ko
Subsystems (3)
PATCH 1/2 IPv6: add "disable" module parameter support to ipv6.ko
Add "disable" module parameter support to ipv6.ko by specifying "disable=1" on module load. We just do the minimum of initializing inetsw6[] so calls from other modules to inet6_register_protosw() won't OOPs, then bail out. No IPv6 addresses or sockets can be created as a result, and a reboot is required to enable IPv6.
--- Documentation/networking/ipv6.txt | 35 +++++++++++++++++++++++++++++++++++ net/ipv6/af_inet6.c | 22 ++++++++++++++++------ 2 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 Documentation/networking/ipv6.txt
Documentation/networking/ipv6.txt new file +35 -0
@@ -0,0 +1,35 @@ + +Options for the ipv6 module are supplied as parameters at load time. + +Module options may be given as command line arguments to the insmod +or modprobe command, but are usually specified in either the +/etc/modules.conf or /etc/modprobe.conf configuration file, or in a +distro-specific configuration file. + +The available ipv6 module parameters are listed below. If a parameter +is not specified the default value is used. + +The parameters are as follows: + +disable + + Specifies whether to load the IPv6 module, but disable all + its functionality. This might be used when another module + has a dependency on the IPv6 module being loaded, but no + IPv6 addresses or operations are desired. + + The possible values and their effects are: + + 0 + IPv6 is enabled. + + This is the default value. + + 1 + IPv6 is disabled. + + No IPv6 addresses will be added to interfaces, and + it will not be possible to open an IPv6 socket. + + A reboot is required to enable IPv6. +
net/ipv6/af_inet6.c +16 -6
@@ -72,6 +72,10 @@ MODULE_LICENSE("GPL");static struct list_head inetsw6[SOCK_MAX ];static DEFINE_SPINLOCK (inetsw6_lock); +static int disable_ipv6 =0 ; +module_param_named (disable, disable_ipv6, int,0 ); +MODULE_PARM_DESC (disable,"Disable IPv6 such that it is non-functional" ); +static __inline__struct ipv6_pinfo *inet6_sk_generic (struct sock *sk) {const int offset = sk->sk_prot->obj_size -sizeof (struct ipv6_pinfo );
@@ -1001,10 +1005,21 @@ static int __init inet6_init(void) {struct sk_buff *dummy_skb;struct list_head *r; -int err; +int err =0 ;BUILD_BUG_ON (sizeof (struct inet6_skb_parm ) >sizeof (dummy_skb->cb)); +/* Register the socket-side information for inet6_create. */ +for (r = &inetsw6[0 ]; r < &inetsw6[SOCK_MAX ]; ++r) +INIT_LIST_HEAD (r); + +if (disable_ipv6) { +printk (KERN_INFO +"IPv6: Loaded, but administratively disabled, " +"reboot required to enable\n" ); + goto out; + } + err =proto_register (&tcpv6_prot,1 );if (err) goto out;
@@ -1021,11 +1036,6 @@ static int __init inet6_init(void)if (err) goto out_unregister_udplite_proto; - -/* Register the socket-side information for inet6_create. */ -for (r = &inetsw6[0 ]; r < &inetsw6[SOCK_MAX ]; ++r) -INIT_LIST_HEAD (r); -/* We MUST register RAW sockets before we create the ICMP6, * IGMP6, or NDISC control sockets. */
Signature · 1 line
1.5.4.3
From: Brian Haley <[email protected]>
Date: Tue, 03 Mar 2009 21:37:19 -0500
Quoted 9 lines
Add "disable" module parameter support to ipv6.ko by specifying "disable=1" on module load. We just do the minimum of initializing inetsw6[] so calls from other modules to
inet6_register_protosw()won't OOPs, then bail out. No IPv6 addresses or sockets can be created as a result, and a reboot is required to enable IPv6.Signed-off-by Brian Haley <[email protected]>
Applied, but you have to do something about your email client and what it does to patches Brian.
Every line that starts with a single space then TABs was replaced with two space characters then the TABs. Long lines were also chopped up.
Quoted 6 lines · David Miller
Applied, but you have to do something about your email client and what it does to patches Brian.
Every line that starts with a single space then TABs was replaced with two space characters then the TABs. Long lines were also chopped up.
Sorry, I'll blame it on git-imap-send/tbird :) - I just know how people hate attachments, I can play with the settings again. I'll send it to myself first next time and see what gets corrupted, thanks for fixing it up.
I wish we didn't have to do this hack though...
-Brian