diff options
| author | Bill Sommerfeld <wsommerfeld@google.com> | 2016-03-04 14:47:21 -0800 |
|---|---|---|
| committer | Ben Hutchings <ben@decadent.org.uk> | 2016-05-01 00:06:13 +0200 |
| commit | 513425f3bedcb38a6adbcdd7b71ba2b31127e593 (patch) | |
| tree | b5a9d120029f38749165f5ce45b40ddeafb16d69 /include/linux/netdevice.h | |
| parent | 0948b11f0938d509d86d81c1f56527a25b29ac31 (diff) | |
udp6: fix UDP/IPv6 encap resubmit path
[ Upstream commit 59dca1d8a6725a121dae6c452de0b2611d5865dc ]
IPv4 interprets a negative return value from a protocol handler as a
request to redispatch to a new protocol. In contrast, IPv6 interprets a
negative value as an error, and interprets a positive value as a request
for redispatch.
UDP for IPv6 was unaware of this difference. Change __udp6_lib_rcv() to
return a positive value for redispatch. Note that the socket's
encap_rcv hook still needs to return a negative value to request
dispatch, and in the case of IPv6 packets, adjust IP6CB(skb)->nhoff to
identify the byte containing the next protocol.
Signed-off-by: Bill Sommerfeld <wsommerfeld@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'include/linux/netdevice.h')
0 files changed, 0 insertions, 0 deletions
