![Herbert Xu](/assets/img/avatar_default.png)
Basically this patch moves the generic tunnel protocol stuff out of xfrm4_tunnel/xfrm6_tunnel and moves it into the new files of tunnel4.c and tunnel6 respectively. The reason for this is that the problem that Hugo uncovered is only the tip of the iceberg. The real problem is that when we removed the dependency of ipip on xfrm4_tunnel we didn't really consider the module case at all. For instance, as it is it's possible to build both ipip and xfrm4_tunnel as modules and if the latter is loaded then ipip simply won't load. After considering the alternatives I've decided that the best way out of this is to restore the dependency of ipip on the non-xfrm-specific part of xfrm4_tunnel. This is acceptable IMHO because the intention of the removal was really to be able to use ipip without the xfrm subsystem. This is still preserved by this patch. So now both ipip/xfrm4_tunnel depend on the new tunnel4.c which handles the arbitration between the two. The order of processing is determined by a simple integer which ensures that ipip gets processed before xfrm4_tunnel. The situation for ICMP handling is a little bit more complicated since we may not have enough information to determine who it's for. It's not a big deal at the moment since the xfrm ICMP handlers are basically no-ops. In future we can deal with this when we look at ICMP caching in general. The user-visible change to this is the removal of the TUNNEL Kconfig prompts. This makes sense because it can only be used through IPCOMP as it stands. The addition of the new modules shouldn't introduce any problems since module dependency will cause them to be loaded. Oh and I also turned some unnecessary pskb's in IPv6 related to this patch to skb's. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
118 lines
2.9 KiB
Text
118 lines
2.9 KiB
Text
#
|
|
# IPv6 configuration
|
|
#
|
|
|
|
# IPv6 as module will cause a CRASH if you try to unload it
|
|
config IPV6
|
|
tristate "The IPv6 protocol"
|
|
default m
|
|
---help---
|
|
This is complemental support for the IP version 6.
|
|
You will still be able to do traditional IPv4 networking as well.
|
|
|
|
For general information about IPv6, see
|
|
<http://playground.sun.com/pub/ipng/html/ipng-main.html>.
|
|
For Linux IPv6 development information, see <http://www.linux-ipv6.org>.
|
|
For specific information about IPv6 under Linux, read the HOWTO at
|
|
<http://www.bieringer.de/linux/IPv6/>.
|
|
|
|
To compile this protocol support as a module, choose M here: the
|
|
module will be called ipv6.
|
|
|
|
config IPV6_PRIVACY
|
|
bool "IPv6: Privacy Extensions support"
|
|
depends on IPV6
|
|
---help---
|
|
Privacy Extensions for Stateless Address Autoconfiguration in IPv6
|
|
support. With this option, additional periodically-alter
|
|
pseudo-random global-scope unicast address(es) will assigned to
|
|
your interface(s).
|
|
|
|
We use our standard pseudo random algorithm to generate randomized
|
|
interface identifier, instead of one described in RFC 3041.
|
|
|
|
By default, kernel do not generate temporary addresses.
|
|
To use temporary addresses, do
|
|
|
|
echo 2 >/proc/sys/net/ipv6/conf/all/use_tempaddr
|
|
|
|
See <file:Documentation/networking/ip-sysctl.txt> for details.
|
|
|
|
config IPV6_ROUTER_PREF
|
|
bool "IPv6: Router Preference (RFC 4191) support"
|
|
depends on IPV6
|
|
---help---
|
|
Router Preference is an optional extension to the Router
|
|
Advertisement message to improve the ability of hosts
|
|
to pick more appropriate router, especially when the hosts
|
|
is placed in a multi-homed network.
|
|
|
|
If unsure, say N.
|
|
|
|
config IPV6_ROUTE_INFO
|
|
bool "IPv6: Route Information (RFC 4191) support (EXPERIMENTAL)"
|
|
depends on IPV6_ROUTER_PREF && EXPERIMENTAL
|
|
---help---
|
|
This is experimental support of Route Information.
|
|
|
|
If unsure, say N.
|
|
|
|
config INET6_AH
|
|
tristate "IPv6: AH transformation"
|
|
depends on IPV6
|
|
select XFRM
|
|
select CRYPTO
|
|
select CRYPTO_HMAC
|
|
select CRYPTO_MD5
|
|
select CRYPTO_SHA1
|
|
---help---
|
|
Support for IPsec AH.
|
|
|
|
If unsure, say Y.
|
|
|
|
config INET6_ESP
|
|
tristate "IPv6: ESP transformation"
|
|
depends on IPV6
|
|
select XFRM
|
|
select CRYPTO
|
|
select CRYPTO_HMAC
|
|
select CRYPTO_MD5
|
|
select CRYPTO_SHA1
|
|
select CRYPTO_DES
|
|
---help---
|
|
Support for IPsec ESP.
|
|
|
|
If unsure, say Y.
|
|
|
|
config INET6_IPCOMP
|
|
tristate "IPv6: IPComp transformation"
|
|
depends on IPV6
|
|
select XFRM
|
|
select INET6_XFRM_TUNNEL
|
|
select CRYPTO
|
|
select CRYPTO_DEFLATE
|
|
---help---
|
|
Support for IP Payload Compression Protocol (IPComp) (RFC3173),
|
|
typically needed for IPsec.
|
|
|
|
If unsure, say Y.
|
|
|
|
config INET6_XFRM_TUNNEL
|
|
tristate
|
|
select INET6_TUNNEL
|
|
default n
|
|
|
|
config INET6_TUNNEL
|
|
tristate
|
|
default n
|
|
|
|
config IPV6_TUNNEL
|
|
tristate "IPv6: IPv6-in-IPv6 tunnel"
|
|
select INET6_TUNNEL
|
|
depends on IPV6
|
|
---help---
|
|
Support for IPv6-in-IPv6 tunnels described in RFC 2473.
|
|
|
|
If unsure, say N.
|
|
|