linux-stable/net/ipv6
Herbert Xu 50fba2aa7c [INET]: Move no-tunnel ICMP error to tunnel4/tunnel6
This patch moves the sending of ICMP messages when there are no IPv4/IPv6
tunnels present to tunnel4/tunnel6 respectively.  Please note that for now
if xfrm4_tunnel/xfrm6_tunnel is loaded then no ICMP messages will ever be
sent.  This is similar to how we handle AH/ESP/IPCOMP.

This move fixes the bug where we always send an ICMP message when there is
no ip6_tunnel device present for a given packet even if it is later handled
by IPsec.  It also causes ICMP messages to be sent when no IPIP tunnel is
present.

I've decided to use the "port unreachable" ICMP message over the current
value of "address unreachable" (and "protocol unreachable" by GRE) because
it is not ambiguous unlike the other ones which can be triggered by other
conditions.  There seems to be no standard specifying what value must be
used so this change should be OK.  In fact we should change GRE to use
this value as well.

Incidentally, this patch also fixes a fairly serious bug in xfrm6_tunnel
where we don't check whether the embedded IPv6 header is present before
dereferencing it for the inside source address.

This patch is inspired by a previous patch by Hugo Santos <hsantos@av.it.pt>.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-04-09 22:25:25 -07:00
..
netfilter [NETFILTER]: x_tables: unify IPv4/IPv6 multiport match 2006-04-01 02:22:54 -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 [IPSEC]: Kill unused decap state argument 2006-04-01 00:52:46 -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 [IPSEC]: Kill unused decap state argument 2006-04-01 00:52:46 -08:00
exthdrs.c [IPV6]: Move nextheader offset to the IP6CB 2006-01-07 12:57:29 -08:00
exthdrs_core.c [SELINUX]: Fix ipv6_skip_exthdr() invocation causing OOPS. 2005-04-24 20:16:19 -07: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]: Move no-tunnel ICMP error to tunnel4/tunnel6 2006-04-09 22:25:25 -07:00
ipcomp6.c [IPSEC]: Kill unused decap state argument 2006-04-01 00:52:46 -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]: Move no-tunnel ICMP error to tunnel4/tunnel6 2006-04-09 22:25:25 -07:00
udp.c [NET]: Identation & other cleanups related to compat_[gs]etsockopt cset 2006-03-20 22:48:35 -08:00
xfrm6_input.c [IPSEC]: Kill unused decap state structure 2006-04-01 00:54:16 -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 [IPSEC]: Kill unused decap state argument 2006-04-01 00:52:46 -08:00