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. Paolo Abeni (8): udp: fixup csum for GSO receive slow path udp: skip fwd/list GRO for tunnel packets udp: properly complete L4 GRO over UDP tunnel packet udp: never accept GSO_FRAGLIST packets vxlan: allow L4 GRO passthrou 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 | 15 +- include/net/udp.h | 18 ++ net/ipv4/udp.c | 22 +- net/ipv4/udp_offload.c | 27 ++- net/ipv6/udp.c | 5 + net/ipv6/udp_offload.c | 3 +- tools/testing/selftests/net/Makefile | 1 + tools/testing/selftests/net/udpgro_fwd.sh | 251 ++++++++++++++++++++++ 11 files changed, 330 insertions(+), 15 deletions(-) create mode 100755 tools/testing/selftests/net/udpgro_fwd.sh -- 2.26.2