[IPV6]: Seperate sit driver to extra module
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>
This commit is contained in:
committed by
David S. Miller
parent
effee6a000
commit
989e5b96e1
@@ -153,6 +153,19 @@ config INET6_XFRM_MODE_ROUTEOPTIMIZATION
|
|||||||
---help---
|
---help---
|
||||||
Support for MIPv6 route optimization mode.
|
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
|
config IPV6_TUNNEL
|
||||||
tristate "IPv6: IPv6-in-IPv6 tunnel"
|
tristate "IPv6: IPv6-in-IPv6 tunnel"
|
||||||
select INET6_TUNNEL
|
select INET6_TUNNEL
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
obj-$(CONFIG_IPV6) += ipv6.o
|
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 \
|
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 \
|
protocol.o icmp.o mcast.o reassembly.o tcp_ipv6.o \
|
||||||
exthdrs.o sysctl_net_ipv6.o datagram.o proc.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_INET6_XFRM_MODE_BEET) += xfrm6_mode_beet.o
|
||||||
obj-$(CONFIG_NETFILTER) += netfilter/
|
obj-$(CONFIG_NETFILTER) += netfilter/
|
||||||
|
|
||||||
|
obj-$(CONFIG_IPV6_SIT) += sit.o
|
||||||
obj-$(CONFIG_IPV6_TUNNEL) += ip6_tunnel.o
|
obj-$(CONFIG_IPV6_TUNNEL) += ip6_tunnel.o
|
||||||
|
|
||||||
obj-y += exthdrs_core.o
|
obj-y += exthdrs_core.o
|
||||||
|
@@ -850,7 +850,6 @@ static int __init inet6_init(void)
|
|||||||
err = addrconf_init();
|
err = addrconf_init();
|
||||||
if (err)
|
if (err)
|
||||||
goto addrconf_fail;
|
goto addrconf_fail;
|
||||||
sit_init();
|
|
||||||
|
|
||||||
/* Init v6 extension headers. */
|
/* Init v6 extension headers. */
|
||||||
ipv6_rthdr_init();
|
ipv6_rthdr_init();
|
||||||
@@ -927,7 +926,6 @@ static void __exit inet6_exit(void)
|
|||||||
mip6_fini();
|
mip6_fini();
|
||||||
#endif
|
#endif
|
||||||
/* Cleanup code parts. */
|
/* Cleanup code parts. */
|
||||||
sit_cleanup();
|
|
||||||
ip6_flowlabel_cleanup();
|
ip6_flowlabel_cleanup();
|
||||||
addrconf_cleanup();
|
addrconf_cleanup();
|
||||||
ip6_route_cleanup();
|
ip6_route_cleanup();
|
||||||
|
@@ -850,3 +850,6 @@ int __init sit_init(void)
|
|||||||
inet_del_protocol(&sit_protocol, IPPROTO_IPV6);
|
inet_del_protocol(&sit_protocol, IPPROTO_IPV6);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module_init(sit_init);
|
||||||
|
module_exit(sit_cleanup);
|
||||||
|
Reference in New Issue
Block a user