• Yossi Kuperman's avatar
    esp6_offload: Fix IP6CB(skb)->nhoff for ESP GRO · ca3a1b85
    Yossi Kuperman authored
    IP6CB(skb)->nhoff is the offset of the nexthdr field in an IPv6
    header, unless there are extension headers present, in which case
    nhoff points to the nexthdr field of the last extension header.
    
    In non-GRO code path, nhoff is set by ipv6_rcv before any XFRM code
    is executed. Conversely, in GRO code path (when esp6_offload is loaded),
    nhoff is not set. The following functions fail to read the correct value
    and eventually the packet is dropped:
    
        xfrm6_transport_finish
        xfrm6_tunnel_input
        xfrm6_rcv_tnl
    
    Set nhoff to the proper offset of nexthdr in esp6_gro_receive.
    
    Fixes: 7785bba2 ("esp: Add a software GRO codepath")
    Signed-off-by: default avatarYossi Kuperman <yossiku@mellanox.com>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    ca3a1b85
esp6_offload.c 7.25 KB