diff options
author | Yuki Taguchi <tagyounit@gmail.com> | 2020-01-20 05:48:37 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-01-21 10:17:07 +0100 |
commit | 62ebaeaedee7591c257543d040677a60e35c7aec (patch) | |
tree | 979d878622a91ac0f84b7a07c5fc6073b83edd2d /net/ipv6/inet6_hashtables.c | |
parent | Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klasse... (diff) | |
download | linux-62ebaeaedee7591c257543d040677a60e35c7aec.tar.xz linux-62ebaeaedee7591c257543d040677a60e35c7aec.zip |
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: d7a669dd2f8b ("ipv6: sr: add helper functions for seg6local")
Signed-off-by: Yuki Taguchi <tagyounit@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/inet6_hashtables.c')
0 files changed, 0 insertions, 0 deletions