linux/net/ipv6
Herbert Xu 227620e295 [IPSEC]: Separate inner/outer mode processing on input
With inter-family transforms the inner mode differs from the outer
mode.  Attempting to handle both sides from the same function means
that it needs to handle both IPv4 and IPv6 which creates duplication
and confusion.

This patch separates the two parts on the input path so that each
function deals with one family only.

In particular, the functions xfrm4_extract_inut/xfrm6_extract_inut
moves the pertinent fields from the IPv4/IPv6 IP headers into a
neutral format stored in skb->cb.  This is then used by the inner mode
input functions to modify the inner IP header.  In this way the input
function no longer has to know about the outer address family.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-28 14:53:46 -08:00
..
netfilter [NETFILTER]: ip6t_eui64: Fixes calculation of Universal/Local bit 2008-01-10 22:40:39 -08:00
addrconf_core.c [IPV6]: ipv6_addr_type() doesn't know about RFC4193 addresses. 2007-07-31 02:28:21 -07:00
addrconf.c [NET]: Convert init_timer into setup_timer 2008-01-28 14:53:35 -08:00
af_inet6.c [TCP] splice: add tcp_splice_read() to IPV6 2008-01-28 14:53:32 -08:00
ah6.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
anycast.c [NET]: Make core networking code use seq_open_private 2007-10-10 16:55:33 -07:00
datagram.c [IPV6]: IPV6_MULTICAST_IF setting is ignored on link-local connect() 2008-01-08 23:52:21 -08:00
esp6.c [IPv6] ESP: Discard dummy packets introduced in rfc4303 2007-12-11 02:45:27 -08:00
exthdrs_core.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
exthdrs.c [NET]: Eliminate duplicate copies of dst_discard 2008-01-28 14:53:37 -08:00
fib6_rules.c [INET]: Small possible memory leak in FIB rules 2007-11-10 22:12:03 -08:00
icmp.c [IPV6]: ICMP6_MIB_OUTMSGS increment duplicated 2008-01-21 03:05:20 -08:00
inet6_connection_sock.c [IPV6] __inet6_csk_dst_store(): fix check-after-use 2007-10-15 12:26:32 -07:00
inet6_hashtables.c [IPV6]: Mischecked tw match in __inet6_check_established. 2008-01-20 20:31:36 -08:00
ip6_fib.c [IPv6]: use container_of() macro in fib6_clean_node() 2007-10-10 16:54:58 -07:00
ip6_flowlabel.c [IPV6]: Fix again the fl6_sock_lookup() fixed locking 2007-10-18 05:38:48 -07:00
ip6_input.c [IPV6]: Replace sk_buff ** with sk_buff * in input handlers 2007-10-15 12:50:28 -07:00
ip6_output.c [IPV6]: Move nfheader_len into rt6_info 2008-01-28 14:53:37 -08:00
ip6_tunnel.c [INET]: Give outer DSCP directly to ip*_copy_dscp 2008-01-28 14:53:45 -08:00
ipcomp6.c [IPSEC]: Forbid BEET + ipcomp for now 2008-01-28 14:53:43 -08:00
ipv6_sockglue.c [IPV6]: Fix the return value of ipv6_getsockopt 2007-12-16 13:39:57 -08:00
Kconfig [IPV6] MIP6: Loadable module support for MIPv6. 2007-07-10 22:15:42 -07:00
Makefile [IPV6] MIP6: Loadable module support for MIPv6. 2007-07-10 22:15:42 -07:00
mcast.c [NET]: Convert init_timer into setup_timer 2008-01-28 14:53:35 -08:00
mip6.c [IPSEC]: Replace x->type->{local,remote}_addr with flags 2008-01-28 14:53:41 -08:00
ndisc.c IPoIB: improve IPv4/IPv6 to IB mcast mapping functions 2008-01-25 14:15:37 -08:00
netfilter.c [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
proc.c [IPV6]: RFC 2011 compatibility broken 2008-01-21 03:05:43 -08:00
protocol.c [IPV6]: Decentralize EXPORT_SYMBOLs. 2007-04-25 22:23:36 -07:00
raw.c [IPV6]: Add raw6 drops counter. 2008-01-28 14:53:34 -08:00
reassembly.c [INET]: Consolidate frag queues freeing 2007-10-17 19:48:26 -07:00
route.c [NET]: Eliminate duplicate copies of dst_discard 2008-01-28 14:53:37 -08:00
sit.c [NET]: Treat the sign of the result of skb_headroom() consistently 2007-10-23 21:27:55 -07:00
sysctl_net_ipv6.c [INET]: Collect common frag sysctl variables together 2007-10-15 12:26:40 -07:00
tcp_ipv6.c [IPV6] TCPMD5: Fix deleting key operation. 2007-11-20 17:31:23 -08:00
tunnel6.c [IPV6]: Replace sk_buff ** with sk_buff * in input handlers 2007-10-15 12:50:28 -07:00
udp_impl.h [IPV6]: Replace sk_buff ** with sk_buff * in input handlers 2007-10-15 12:50:28 -07:00
udp.c [IPV6]: Use the {DEFINE|REF}_PROTO_INUSE infrastructure 2007-11-07 04:08:59 -08:00
udplite.c [IPV6]: Use the {DEFINE|REF}_PROTO_INUSE infrastructure 2007-11-07 04:08:59 -08:00
xfrm6_input.c [IPSEC]: Separate inner/outer mode processing on input 2008-01-28 14:53:46 -08:00
xfrm6_mode_beet.c [IPSEC]: Separate inner/outer mode processing on input 2008-01-28 14:53:46 -08:00
xfrm6_mode_ro.c [IPSEC]: Move x->outer_mode->output out of locked section 2008-01-28 14:53:44 -08:00
xfrm6_mode_transport.c [IPSEC]: Use IPv6 calling convention as the convention for x->mode->output 2007-10-10 16:55:54 -07:00
xfrm6_mode_tunnel.c [IPSEC]: Separate inner/outer mode processing on input 2008-01-28 14:53:46 -08:00
xfrm6_output.c [IPSEC]: Separate inner/outer mode processing on input 2008-01-28 14:53:46 -08:00
xfrm6_policy.c [IPSEC]: Merge common code into xfrm_bundle_create 2008-01-28 14:53:43 -08:00
xfrm6_state.c [IPSEC]: Separate inner/outer mode processing on input 2008-01-28 14:53:46 -08:00
xfrm6_tunnel.c [IPSEC]: Get nexthdr from caller in xfrm6_rcv_spi 2007-10-17 21:29:25 -07:00