Eric Dumazet
20e1954fe2
ipv6: RFC 4884 partial support for SIT/GRE tunnels
...
When receiving an ICMPv4 message containing extensions as
defined in RFC 4884, and translating it to ICMPv6 at SIT
or GRE tunnel, we need some extra manipulation in order
to properly forward the extensions.
This patch only takes care of Time Exceeded messages as they
are the ones that typically carry information from various
routers in a fabric during a traceroute session.
It also avoids complex skb logic if the data_len is not
a multiple of 8.
RFC states :
The "original datagram" field MUST contain at least 128 octets.
If the original datagram did not contain 128 octets, the
"original datagram" field MUST be zero padded to 128 octets.
In practice routers use 128 bytes of original datagram, not more.
Initial translation was added in commit ca15a078bd
("sit: generate icmpv6 error when receiving icmpv4 error")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Oussama Ghorbel <ghorbel@pivasoftware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-06-18 22:11:39 -07:00
..
ila
ila: Fix checksum neutral mapping
2016-06-15 21:40:00 -07:00
netfilter
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
2016-06-01 17:54:19 -07:00
addrconf.c
net: ipv6: Address selection needs to consider L3 domains
2016-06-17 21:25:29 -07:00
addrconf_core.c
ipv6: change ipv6_stub_impl.ipv6_dst_lookup to take net argument
2015-07-31 15:21:30 -07:00
addrlabel.c
ipv6/addrlabel: fix ip6addrlbl_get()
2015-12-22 15:57:54 -05:00
af_inet6.c
net: vrf: Fix crash when IPv6 is disabled at boot time
2016-06-09 23:34:42 -07:00
ah6.c
ah6: fix error return code
2015-08-25 13:37:31 -07:00
anycast.c
ipv6: coding style: comparison for equality with NULL
2015-03-31 13:51:54 -04:00
datagram.c
sock: propagate __sock_cmsg_send() error
2016-05-16 13:46:23 -04:00
esp6.c
esp6: Switch to new AEAD interface
2015-05-28 11:23:20 +08:00
exthdrs.c
ipv6: rename IP6_INC_STATS_BH()
2016-04-27 22:48:24 -04:00
exthdrs_core.c
ipv6: re-enable fragment header matching in ipv6_find_hdr
2016-03-03 16:35:20 -05:00
exthdrs_offload.c
ipv6: fix exthdrs offload registration in out_rt path
2015-09-02 15:31:00 -07:00
fib6_rules.c
net: Add l3mdev rule
2016-06-08 11:36:02 -07:00
fou6.c
fou: add Kconfig options for IPv6 support
2016-05-29 22:24:21 -07:00
icmp.c
ipv6: RFC 4884 partial support for SIT/GRE tunnels
2016-06-18 22:11:39 -07:00
inet6_connection_sock.c
soreuseport: fast reuseport TCP socket selection
2016-02-11 03:54:15 -05:00
inet6_hashtables.c
net: rename NET_{ADD|INC}_STATS_BH()
2016-04-27 22:48:24 -04:00
ip6_checksum.c
ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short
2016-03-13 23:55:13 -04:00
ip6_fib.c
net: vrf: Create FIB tables on link create
2016-05-06 15:51:47 -04:00
ip6_flowlabel.c
ipv6: add new struct ipcm6_cookie
2016-05-03 16:08:14 -04:00
ip6_gre.c
ip6gre: Allow live link address change
2016-06-08 22:35:44 -07:00
ip6_icmp.c
ipv6: icmp: add a force_saddr param to icmp6_send()
2016-06-18 22:11:38 -07:00
ip6_input.c
net: vrf: ipv6 support for local traffic to local addresses
2016-06-08 00:25:38 -07:00
ip6_offload.c
ip4ip6: Support for GSO/GRO
2016-05-20 18:03:17 -04:00
ip6_offload.h
udp: Add GRO functions to UDP socket
2016-04-07 16:53:29 -04:00
ip6_output.c
net: vrf: Implement get_saddr for IPv6
2016-06-17 21:25:29 -07:00
ip6_tunnel.c
ipv6: Don't reset inner headers in ip6_tnl_xmit
2016-05-20 18:03:17 -04:00
ip6_udp_tunnel.c
ip_tunnel: add support for setting flow label via collect metadata
2016-03-11 15:14:26 -05:00
ip6_vti.c
net: replace dst_cache ip6_tunnel implementation with the generic one
2016-02-16 20:21:48 -05:00
ip6mr.c
ipv6: rename IP6_INC_STATS_BH()
2016-04-27 22:48:24 -04:00
ipcomp6.c
ipv6_sockglue.c
ipv6: add new struct ipcm6_cookie
2016-05-03 16:08:14 -04:00
Kconfig
fou: fix IPv6 Kconfig options
2016-05-31 14:07:49 -07:00
Makefile
fou: fix IPv6 Kconfig options
2016-05-31 14:07:49 -07:00
mcast.c
mld, igmp: Fix reserved tailroom calculation
2016-03-03 15:41:07 -05:00
mcast_snoop.c
net: fix wrong skb_get() usage / crash in IGMP/MLD parsing code
2015-08-13 17:08:39 -07:00
mip6.c
ipv6: use ktime_t for internal timestamps
2015-10-05 03:16:47 -07:00
ndisc.c
ipv6: export several functions
2016-06-15 20:41:23 -07:00
netfilter.c
ipv6: Pass struct net into ip6_route_me_harder
2015-09-29 20:21:32 +02:00
output_core.c
ipv4, ipv6: Pass net into ip_local_out and ip6_local_out
2015-10-08 04:27:02 -07:00
ping.c
ipv6: use TOS marks from sockets for routing decision
2016-06-11 15:33:26 -07:00
proc.c
protocol.c
raw.c
ipv6: use TOS marks from sockets for routing decision
2016-06-11 15:33:26 -07:00
reassembly.c
ipv6: rename IP6_INC_STATS_BH()
2016-04-27 22:48:24 -04:00
route.c
net: ipv6: Move ip6_route_get_saddr to inline
2016-06-17 21:25:29 -07:00
sit.c
ipv6: RFC 4884 partial support for SIT/GRE tunnels
2016-06-18 22:11:39 -07:00
syncookies.c
net: rename NET_{ADD|INC}_STATS_BH()
2016-04-27 22:48:24 -04:00
sysctl_net_ipv6.c
ipv6: Implement different admin modes for automatic flow labels
2015-07-31 17:07:11 -07:00
tcp_ipv6.c
tcp: record TLP and ER timer stats in v6 stats
2016-06-07 17:12:22 -07:00
tcpv6_offload.c
tcp: cleanup static functions
2015-02-28 16:56:51 -05:00
tunnel6.c
ipv6: fix tunnel error handling
2015-11-03 10:52:13 -05:00
udp.c
ipv6: use TOS marks from sockets for routing decision
2016-06-11 15:33:26 -07:00
udp_impl.h
net: Remove iocb argument from sendmsg and recvmsg
2015-03-02 13:06:31 -05:00
udp_offload.c
gso: Remove arbitrary checks for unsupported GSO
2016-05-20 18:03:15 -04:00
udplite.c
xfrm6_input.c
netfilter: Pass struct net into the netfilter hooks
2015-09-17 17:18:37 -07:00
xfrm6_mode_beet.c
xfrm: simplify xfrm_address_t use
2015-03-31 13:58:35 -04:00
xfrm6_mode_ro.c
xfrm6_mode_transport.c
xfrm6_mode_tunnel.c
ipv6: update skb->csum when CE mark is propagated
2016-01-15 15:07:23 -05:00
xfrm6_output.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-10-24 06:54:12 -07:00
xfrm6_policy.c
net: xfrm: fix old-style declaration
2016-06-16 22:06:30 -07:00
xfrm6_protocol.c
xfrm6_state.c
xfrm6_tunnel.c