[IPV6]: Seperate sit driver to extra module
authorJoerg Roedel <joro-lkml@zlug.org>
Tue, 10 Oct 2006 21:47:44 +0000 (14:47 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 12 Oct 2006 06:59:50 +0000 (23:59 -0700)
This patch removes the driver of the IPv6-in-IPv4 tunnel driver (sit)
from the IPv6 module. It adds an option to Kconfig which makes it
possible to compile it as a seperate module.

Signed-off-by: Joerg Roedel <joro-lkml@zlug.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/Kconfig
net/ipv6/Makefile
net/ipv6/af_inet6.c
net/ipv6/sit.c

index a460e8132b4d471c0b282f47c58996ddd4f35315..ef5eaad448518aa02061d888f0cf2e83a6621001 100644 (file)
@@ -153,6 +153,19 @@ config INET6_XFRM_MODE_ROUTEOPTIMIZATION
        ---help---
          Support for MIPv6 route optimization mode.
 
+config IPV6_SIT
+       tristate "IPv6: IPv6-in-IPv4 tunnel (SIT driver)"
+       depends on IPV6
+       default y
+       ---help---
+         Tunneling means encapsulating data of one protocol type within
+         another protocol and sending it over a channel that understands the
+         encapsulating protocol. This driver implements encapsulation of IPv6
+         into IPv4 packets. This is useful if you want to connect two IPv6
+         networks over an IPv4-only path.
+
+         Saying M here will produce a module called sit.ko. If unsure, say Y.
+
 config IPV6_TUNNEL
        tristate "IPv6: IPv6-in-IPv6 tunnel"
        select INET6_TUNNEL
index 87274e47fe32736d7ec0261f44ef3d34ecd0ef64..addcc011bc01c2146577e0d1e2253cef64e0a93d 100644 (file)
@@ -4,7 +4,7 @@
 
 obj-$(CONFIG_IPV6) += ipv6.o
 
-ipv6-objs :=   af_inet6.o anycast.o ip6_output.o ip6_input.o addrconf.o sit.o \
+ipv6-objs :=   af_inet6.o anycast.o ip6_output.o ip6_input.o addrconf.o \
                route.o ip6_fib.o ipv6_sockglue.o ndisc.o udp.o raw.o \
                protocol.o icmp.o mcast.o reassembly.o tcp_ipv6.o \
                exthdrs.o sysctl_net_ipv6.o datagram.o proc.o \
@@ -29,6 +29,7 @@ obj-$(CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION) += xfrm6_mode_ro.o
 obj-$(CONFIG_INET6_XFRM_MODE_BEET) += xfrm6_mode_beet.o
 obj-$(CONFIG_NETFILTER)        += netfilter/
 
+obj-$(CONFIG_IPV6_SIT) += sit.o
 obj-$(CONFIG_IPV6_TUNNEL) += ip6_tunnel.o
 
 obj-y += exthdrs_core.o
index e94eccb99707991c80409ebce8a157e1beaba3e7..858cae29581c8e129289ce09cf644fd5d70c9184 100644 (file)
@@ -850,7 +850,6 @@ static int __init inet6_init(void)
        err = addrconf_init();
        if (err)
                goto addrconf_fail;
-       sit_init();
 
        /* Init v6 extension headers. */
        ipv6_rthdr_init();
@@ -927,7 +926,6 @@ static void __exit inet6_exit(void)
        mip6_fini();
 #endif
        /* Cleanup code parts. */
-       sit_cleanup();
        ip6_flowlabel_cleanup();
        addrconf_cleanup();
        ip6_route_cleanup();
index 836eecd7e62bfaa100a616d5aeda26ecc652ada9..dc5765b62b87eabe461366e7aaad4f3ef1130d1b 100644 (file)
@@ -850,3 +850,6 @@ int __init sit_init(void)
        inet_del_protocol(&sit_protocol, IPPROTO_IPV6);
        goto out;
 }
+
+module_init(sit_init);
+module_exit(sit_cleanup);