linux/net
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
..
802 [SNAP]: Remove leftover unused hdr variable 2006-03-20 22:45:37 -08:00
8021q [NET]: Replace skb_pull/skb_postpull_rcsum with skb_pull_rcsum 2006-03-20 22:43:56 -08:00
appletalk [NET]: Fix ipx/econet/appletalk/irda ioctl crashes 2006-03-28 17:02:43 -08:00
atm [NET]: sem2mutex part 2 2006-03-20 22:35:41 -08:00
ax25 [AX.25]: Fix potencial memory hole. 2006-03-19 13:20:06 -08:00
bluetooth [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
bridge [BRIDGE]: Unaligned accesses in the ethernet bridge 2006-03-24 15:44:57 -08:00
core [NET]: deinline 200+ byte inlines in sock.h 2006-03-28 17:02:45 -08:00
dccp [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications 2006-03-25 08:22:56 -08:00
decnet [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
econet [ECONET]: Convert away from SOCKOPS_WRAPPED 2006-03-28 17:02:43 -08:00
ethernet [NET] ethernet: Fix first packet goes out with MAC 00:00:00:00:00:00 2006-02-23 16:18:01 -08:00
ieee80211 [PATCH] Restore channel setting after scan. 2006-03-23 16:18:47 -05:00
ipv4 [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00
ipv6 [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00
ipx [NET]: Fix ipx/econet/appletalk/irda ioctl crashes 2006-03-28 17:02:43 -08:00
irda [NET]: Fix ipx/econet/appletalk/irda ioctl crashes 2006-03-28 17:02:43 -08:00
key [NET] sem2mutex: net/ 2006-03-20 22:33:17 -08:00
lapb [NET]: Kill skb->list 2005-08-29 15:31:14 -07:00
llc [LLC]: llc_mac_hdr_init const arguments 2006-03-20 22:59:36 -08:00
netfilter [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
netlink [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
netrom [PATCH] capable/capability.h (net/) 2006-01-11 18:42:14 -08:00
packet [NET]: Fix some whitespace issues in af_packet.c 2006-01-23 16:28:02 -08:00
rose [PATCH] capable/capability.h (net/) 2006-01-11 18:42:14 -08:00
rxrpc [PATCH] fix 'defined but not used' warning in net/rxrpc/main.c::rxrpc_initialise 2006-03-25 08:22:52 -08:00
sched [NET_SCHED]: cls_u32: remove unnecessary NULL-ptr check 2006-03-23 01:16:48 -08:00
sctp Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-03-25 08:39:20 -08:00
sunrpc [PATCH] mark f_ops const in the inode 2006-03-28 09:16:05 -08:00
tipc [PATCH] s/;;/;/g 2006-03-24 07:33:24 -08:00
unix [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications 2006-03-25 08:22:56 -08:00
wanrouter [PATCH] capable/capability.h (net/) 2006-01-11 18:42:14 -08:00
x25 [X25]: dte facilities 32 64 ioctl conversion 2006-03-22 00:02:00 -08:00
xfrm [XFRM]: Fix aevent related crash 2006-03-20 22:40:54 -08:00
Kconfig Merge branch 'master' 2006-02-07 01:47:12 -05:00
Makefile [TIPC] Initial merge 2006-01-12 14:06:31 -08:00
TUNABLE Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat.c [NET]: socket timestamp 32 bit handler for 64 bit kernel 2006-03-21 23:59:39 -08:00
nonet.c [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
socket.c [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
sysctl_net.c [NET]: Fix "sysctl_net.c:36: error: 'core_table' undeclared here" 2005-10-03 14:16:34 -07:00