Simon Horman
d5d8760b78
sit: correct IP protocol used in ipip6_err
...
Since 32b8a8e59c ("sit: add IPv4 over IPv4 support")
ipip6_err() may be called for packets whose IP protocol is
IPPROTO_IPIP as well as those whose IP protocol is IPPROTO_IPV6.
In the case of IPPROTO_IPIP packets the correct protocol value is not
passed to ipv4_update_pmtu() or ipv4_redirect().
This patch resolves this problem by using the IP protocol of the packet
rather than a hard-coded value. This appears to be consistent
with the usage of the protocol of a packet by icmp_socket_deliver()
the caller of ipip6_err().
I was able to exercise the redirect case by using a setup where an ICMP
redirect was received for the destination of the encapsulated packet.
However, it appears that although incorrect the protocol field is not used
in this case and thus no problem manifests. On inspection it does not
appear that a problem will manifest in the fragmentation needed/update pmtu
case either.
In short I believe this is a cosmetic fix. None the less, the use of
IPPROTO_IPV6 seems wrong and confusing.
Reviewed-by: Dinan Gunawardena <dinan.gunawardena@netronome.com>
Signed-off-by: Simon Horman <simon.horman@netronome.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-06-16 17:10:30 -07:00
..
ila
ila: ipv6/ila: fix nlsize calculation for lwtunnel
2016-05-10 16:00:25 -04:00
netfilter
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
2016-06-01 17:54:19 -07:00
addrconf.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2016-04-27 15:43:10 -04: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
udp: Add GRO functions to UDP socket
2016-04-07 16:53:29 -04: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
ipv6: fix the incorrect return value of throw route
2015-10-23 02:38:18 -07:00
fou6.c
fou: add Kconfig options for IPv6 support
2016-05-29 22:24:21 -07:00
icmp.c
ipv6: fix endianness error in icmpv6_err
2016-06-14 15:24:35 -04: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: fix checksum annotation in udp6_csum_init
2016-06-14 15:26:42 -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
gre: fix error handler
2016-06-15 22:15:21 -07:00
ip6_icmp.c
ip6_input.c
ipv6: Change "final" protocol processing for encapsulation
2016-05-20 18:03:16 -04: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
ipv6: Skip XFRM lookup if dst_entry in socket cache is valid
2016-06-08 11:16:06 -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: add option to drop unsolicited neighbor advertisements
2016-02-11 04:27:36 -05: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: add new struct ipcm6_cookie
2016-05-03 16:08:14 -04:00
proc.c
protocol.c
raw.c
ipv6: add new struct ipcm6_cookie
2016-05-03 16:08:14 -04:00
reassembly.c
ipv6: rename IP6_INC_STATS_BH()
2016-04-27 22:48:24 -04:00
route.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2016-05-15 13:32:48 -04:00
sit.c
sit: correct IP protocol used in ipip6_err
2016-06-16 17:10:30 -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
ipv6: tcp: fix endianness annotation in tcp_v6_send_response
2016-06-14 15:25:35 -04:00
tcpv6_offload.c
tunnel6.c
ipv6: fix tunnel error handling
2015-11-03 10:52:13 -05:00
udp.c
udp reuseport: fix packet of same flow hashed to different socket
2016-06-14 17:23:09 -04: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
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec
2015-12-22 16:26:31 -05:00
xfrm6_protocol.c
xfrm6_state.c
xfrm6_tunnel.c