This series improves the UDP L4 - either 'forward' or 'frag_list' - co-existence with UDP tunnel GRO, allowing the first to take place correctly even for encapsulated UDP traffic.
The first for patches are mostly bugfixes, addressing some GRO edge-cases when both tunnels and L4 are present, enabled and in use. The next 3 patches avoid unneeded segmentation when UDP GRO traffic traverses in the receive path UDP tunnels. Finally, some self-tests are included, covering the relevant GRO scenarios. Even if most patches are actually bugfixes, this series is targeting net-next, as overall it makes available a new feature. v2 -> v3: - no code changes, more verbose commit messages and comment in patch 1/8 v1 -> v2: - restrict post segmentation csum fixup to the only the relevant pkts - use individual 'accept_gso_type' fields instead of whole gso bitmask (Willem) - use only ipv6 addesses from test range in self-tests (Willem) - hopefully clarified most individual patches commit messages Paolo Abeni (8): udp: fixup csum for GSO receive slow path udp: skip L4 aggregation for UDP tunnel packets udp: properly complete L4 GRO over UDP tunnel packet udp: never accept GSO_FRAGLIST packets vxlan: allow L4 GRO passthrough geneve: allow UDP L4 GRO passthrou bareudp: allow UDP L4 GRO passthrou selftests: net: add UDP GRO forwarding self-tests drivers/net/bareudp.c | 1 + drivers/net/geneve.c | 1 + drivers/net/vxlan.c | 1 + include/linux/udp.h | 22 +- include/net/udp.h | 23 ++ net/ipv4/udp.c | 5 + net/ipv4/udp_offload.c | 27 ++- net/ipv6/udp.c | 1 + net/ipv6/udp_offload.c | 3 +- tools/testing/selftests/net/Makefile | 1 + tools/testing/selftests/net/udpgro_fwd.sh | 251 ++++++++++++++++++++++ 11 files changed, 323 insertions(+), 13 deletions(-) create mode 100755 tools/testing/selftests/net/udpgro_fwd.sh -- 2.26.2