]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: sr: remove SKB_GSO_IPXIP6 on End.D* actions
authorYuki Taguchi <tagyounit@gmail.com>
Mon, 20 Jan 2020 04:48:37 +0000 (13:48 +0900)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jan 2020 09:17:07 +0000 (10:17 +0100)
commit77bcb736fb26fe5a8f046fe5e178cd9b3907e1b4
tree979d878622a91ac0f84b7a07c5fc6073b83edd2d
parentc344f3d44b69a54b13c9473ccc45310f6b03ca60
ipv6: sr: remove SKB_GSO_IPXIP6 on End.D* actions

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: 789e661717c9 ("ipv6: sr: add helper functions for seg6local")
Signed-off-by: Yuki Taguchi <tagyounit@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/seg6_local.c