kernel-ark/include/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
..
bluetooth [Bluetooth] Reduce L2CAP MTU for RFCOMM connections 2006-02-13 11:39:57 +01:00
irda [IRDA]: Ratelimit messages. 2006-02-13 15:34:11 -08:00
netfilter [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
sctp [NET]: {get|set}sockopt compatibility layer 2006-03-20 22:45:21 -08:00
tc_act [NETFILTER]: futher {ip,ip6,arp}_tables unification 2006-03-22 13:56:56 -08:00
tipc [TIPC] More updates of file headers 2006-01-12 14:06:39 -08:00
act_api.h [PKT_SCHED]: Convert tc action functions to single skb pointers 2006-01-09 14:16:08 -08:00
act_generic.h [PKT_SCHED]: Fixup simple action define. 2005-05-19 12:42:39 -07:00
addrconf.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
af_unix.h [NET]: sem2mutex part 2 2006-03-20 22:35:41 -08:00
ah.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
arp.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
atmclip.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
ax25.h [AX.25]: Fix potencial memory hole. 2006-03-19 13:20:06 -08:00
checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat.h [NET]: socket timestamp 32 bit handler for 64 bit kernel 2006-03-21 23:59:39 -08:00
datalink.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
dn_dev.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_fib.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_neigh.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_nsp.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_route.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dsfield.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dst.h [XFRM]: Netfilter IPsec output hooks 2006-01-07 12:57:28 -08:00
esp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
flow.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
gen_stats.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genetlink.h [PATCH] genetlink: don't touch module ref count 2006-01-13 13:06:40 -08:00
icmp.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
ieee80211_crypt.h [PATCH] ieee80211: Add TKIP crypt->build_iv 2006-01-27 17:08:07 -05:00
ieee80211_radiotap.h [PATCH] ieee80211: Added ieee80211_radiotap.h 2005-09-21 23:03:55 -04:00
ieee80211.h [PATCH] ieee80211: common wx auth code 2006-01-30 20:35:35 -05:00
ieee80211softmac_wx.h [PATCH] softmac: add copyright and license headers 2006-03-22 22:16:56 -05:00
ieee80211softmac.h [PATCH] softmac: add copyright and license headers 2006-03-22 22:16:56 -05:00
if_inet6.h [IPV6]: ADDRCONF: Use our standard algorithm for randomized ifid. 2006-03-20 16:54:09 -08:00
inet6_connection_sock.h [IPV6]: Generalise some functions 2006-01-03 13:10:46 -08:00
inet6_hashtables.h [IPV6]: Introduce inet6_timewait_sock 2006-01-03 13:10:47 -08:00
inet_common.h [NET]: move struct proto_ops to const 2006-01-03 13:11:15 -08:00
inet_connection_sock.h [ICSK] compat: Introduce inet_csk_compat_[gs]etsockopt 2006-03-20 22:46:16 -08:00
inet_ecn.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
inet_hashtables.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
inet_sock.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
inet_timewait_sock.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
inetpeer.h [IPV4]: Safer reassembly 2006-01-03 13:10:31 -08:00
ip6_checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip6_fib.h [IPV6]: V6 route events reported with wrong netlink PID and seq number 2005-06-21 13:51:04 -07:00
ip6_route.h [IPV6]: ROUTE: Add experimental support for Route Information Option in RA (RFC4191). 2006-03-20 17:06:24 -08:00
ip6_tunnel.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_fib.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
ip_mp_alg.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_vs.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
ip.h [NET]: {get|set}sockopt compatibility layer 2006-03-20 22:45:21 -08:00
ipcomp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipconfig.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipip.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipv6.h [NET]: {get|set}sockopt compatibility layer 2006-03-20 22:45:21 -08:00
ipx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iw_handler.h [PATCH] WE-20 for kernel 2.6.16 2006-03-23 07:12:57 -05:00
lapb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_ac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_ev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_st.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_conn.h [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
llc_if.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_pdu.h [LLC]: Fix typo 2005-11-14 21:58:18 -08:00
llc_s_ac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_ev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_st.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_sap.h [LLC]: Fix the accept path 2005-09-22 07:57:21 -03:00
llc.h [LLC]: llc_mac_hdr_init const arguments 2006-03-20 22:59:36 -08:00
ndisc.h [IPV6]: ROUTE: Add experimental support for Route Information Option in RA (RFC4191). 2006-03-20 17:06:24 -08:00
neighbour.h [NET]: Move destructor from neigh->ops to neigh_params 2006-03-20 22:25:41 -08:00
netlink.h [NETLINK]: Generic netlink receive queue processor 2005-11-10 02:26:40 +01:00
netrom.h drivers/net: Remove pointless checks for NULL prior to calling kfree() 2005-10-28 16:53:13 -04:00
p8022.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
pkt_act.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
pkt_cls.h [NET]: Remove explicit initializations of skb->input_dev 2005-08-29 15:33:26 -07:00
pkt_sched.h [PKT_SCHED]: Use USEC_PER_SEC 2006-01-09 14:16:05 -08:00
protocol.h [IPV6]: Move nextheader offset to the IP6CB 2006-01-07 12:57:29 -08:00
psnap.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
raw.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
rawv6.h [IPV4/6]: Check if packet was actually delivered to a raw socket to decide whether to send an ICMP unreachable 2005-08-29 15:37:22 -07:00
red.h [PKT_SCHED]: Generic RED layer 2005-11-05 22:02:24 +01:00
request_sock.h [NET]: drop duplicate assignment in request_sock 2006-03-26 17:39:55 -08:00
rose.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
route.h [IPV4]: Aggregate route entries with different TOS values 2006-03-25 01:38:55 -08:00
sch_generic.h [PKT_SCHED]: Cleanup qdisc creation and alignment macros 2005-07-05 14:15:09 -07:00
scm.h [AF_UNIX]: scm: better initialization 2006-03-20 21:31:51 -08:00
slhc_vj.h [NET]: Remove __ARGS from include/net/slhc_vj.h 2005-07-05 15:12:04 -07:00
snmp.h [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
sock.h [NET]: deinline 200+ byte inlines in sock.h 2006-03-28 17:02:45 -08:00
syncppp.h [PATCH] drivers/net/wan/: possible cleanups 2005-09-14 08:36:54 -04:00
tcp_ecn.h [NET]: Introduce inet_connection_sock 2005-08-29 15:43:19 -07:00
tcp_states.h [TCP]: Move the TCPF_ enum to tcp_states.h 2006-01-03 13:10:57 -08:00
tcp.h [NET]: {get|set}sockopt compatibility layer 2006-03-20 22:45:21 -08:00
timewait_sock.h [TWSK]: Introduce struct timewait_sock_ops 2006-01-03 13:10:54 -08:00
transp_v6.h [ICSK]: Rename struct tcp_func to struct inet_connection_sock_af_ops 2006-01-03 13:10:38 -08:00
udp.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
x25.h [X25]: allow ITU-T DTE facilities for x25 2006-03-22 00:01:31 -08:00
x25device.h [NET]: Remove explicit initializations of skb->input_dev 2005-08-29 15:33:26 -07:00
xfrm.h [INET]: Introduce tunnel4/tunnel6 2006-03-28 17:02:46 -08:00