• Yuki Taguchi's avatar
    ipv6: sr: remove SKB_GSO_IPXIP6 on End.D* actions · d3c0a8be
    Yuki Taguchi authored
    [ Upstream commit 62ebaeae ]
    
    After LRO/GRO is applied, SRv6 encapsulated packets have
    SKB_GSO_IPXIP6 feature flag, and this flag must be removed right after
    decapulation procedure.
    
    Currently, SKB_GSO_IPXIP6 flag is not removed on End.D* actions, which
    creates inconsistent packet state, that is, a normal TCP/IP packets
    have the SKB_GSO_IPXIP6 flag. This behavior can cause unexpected
    fallback to GSO on routing to netdevices that do not support
    SKB_GSO_IPXIP6. For example, on inter-VRF forwarding, decapsulated
    packets separated into small packets by GSO because VRF devices do not
    support TSO for packets with SKB_GSO_IPXIP6 flag, and this degrades
    forwarding performance.
    
    This patch removes encapsulation related GSO flags from the skb right
    after the End.D* action is applied.
    
    Fixes: d7a669dd ("ipv6: sr: add helper functions for seg6local")
    Signed-off-by: default avatarYuki Taguchi <tagyounit@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d3c0a8be
seg6_local.c 23.1 KB