1
linux/net/ipv6
Herbert Xu d2acc3479c [INET]: Introduce tunnel4/tunnel6
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>
2006-03-28 17:02:46 -08:00
..
netfilter [NETFILTER]: nf_conntrack: support for layer 3 protocol load on demand 2006-03-22 13:56:08 -08:00
addrconf.c [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
af_inet6.c [NET]: Identation & other cleanups related to compat_[gs]etsockopt cset 2006-03-20 22:48:35 -08:00
ah6.c [IPV6]: Nearly complete kzalloc cleanup for net/ipv6 2006-03-20 23:01:32 -08:00
anycast.c [IPV6]: Nearly complete kzalloc cleanup for net/ipv6 2006-03-20 23:01:32 -08:00
datagram.c [PATCH] capable/capability.h (net/) 2006-01-11 18:42:14 -08:00
esp6.c [IPV6]: Nearly complete kzalloc cleanup for net/ipv6 2006-03-20 23:01:32 -08:00
exthdrs_core.c [SELINUX]: Fix ipv6_skip_exthdr() invocation causing OOPS. 2005-04-24 20:16:19 -07:00
exthdrs.c [IPV6]: Move nextheader offset to the IP6CB 2006-01-07 12:57:29 -08:00
icmp.c [NETFILTER]: nf_conntrack: attach conntrack to locally generated ICMPv6 error 2006-02-15 15:24:15 -08:00
inet6_connection_sock.c [IPV6]: small cleanups 2006-01-07 13:24:25 -08:00
inet6_hashtables.c [TCP]: Fix zero port problem in IPv6 2006-03-13 14:26:12 -08:00
ip6_fib.c [IPV6]: ROUTE: Eliminate lock for default route pointer. 2006-03-20 17:00:26 -08:00
ip6_flowlabel.c [IPV6]: Nearly complete kzalloc cleanup for net/ipv6 2006-03-20 23:01:32 -08:00
ip6_input.c [IPV4/6]: Netfilter IPsec input hooks 2006-01-07 12:57:31 -08:00
ip6_output.c [IPV6]: ip6_xmit: remove unnecessary NULL ptr check 2006-03-23 01:17:25 -08:00
ip6_tunnel.c [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00
ipcomp6.c [IPSEC]: Fix tunnel error handling in ipcomp6 2006-03-26 17:37:54 -08:00
ipv6_sockglue.c [NETFILTER]: Fix ip6tables breakage from {get,set}sockopt compat layer 2006-03-22 13:53:20 -08:00
ipv6_syms.c [NET]: Identation & other cleanups related to compat_[gs]etsockopt cset 2006-03-20 22:48:35 -08:00
Kconfig [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00
Makefile [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00
mcast.c [IPV6]: Nearly complete kzalloc cleanup for net/ipv6 2006-03-20 23:01:32 -08:00
ndisc.c [IPV6]: ROUTE: Add accept_ra_rt_info_max_plen sysctl. 2006-03-20 17:07:03 -08:00
netfilter.c [IPV6]: Fix modular build with netfilter enabled. 2006-01-10 21:02:21 -08:00
proc.c [PATCH] percpu data: only iterate over possible CPUs 2006-02-05 11:06:51 -08:00
protocol.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raw.c [IPV6]: Nearly complete kzalloc cleanup for net/ipv6 2006-03-20 23:01:32 -08:00
reassembly.c [IPV6]: Cleanup of net/ipv6/reassambly.c 2006-03-20 23:01:17 -08:00
route.c [IPV6]: Nearly complete kzalloc cleanup for net/ipv6 2006-03-20 23:01:32 -08:00
sit.c [PATCH] capable/capability.h (net/) 2006-01-11 18:42:14 -08:00
sysctl_net_ipv6.c [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
tcp_ipv6.c [NET]: Identation & other cleanups related to compat_[gs]etsockopt cset 2006-03-20 22:48:35 -08:00
tunnel6.c [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00
udp.c [NET]: Identation & other cleanups related to compat_[gs]etsockopt cset 2006-03-20 22:48:35 -08:00
xfrm6_input.c [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00
xfrm6_output.c [NETFILTER]: Fix xfrm lookup in ip_route_me_harder/ip6_route_me_harder 2006-01-07 12:57:33 -08:00
xfrm6_policy.c [PATCH] remove bogus asm/bug.h includes. 2006-02-07 20:56:35 -05:00
xfrm6_state.c [XFRM]: IPsec tunnel wildcard address support 2006-01-13 14:34:36 -08:00
xfrm6_tunnel.c [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00