• Bill Sommerfeld's avatar
    udp6: fix UDP/IPv6 encap resubmit path · 355b7d7b
    Bill Sommerfeld authored
    [ Upstream commit 59dca1d8 ]
    
    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: default avatarBill Sommerfeld <wsommerfeld@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
    355b7d7b
udp.c 38.7 KB