This series implements GRO support for UDP sockets, as the RX counterpart of ommit bec1f6f69736 ("udp: generate gso with UDP_SEGMENT"). The first two patches allow UDP GRO registration on demand, avoiding additional overhead when no UDP_SEGMENT sockets are created, actually decreasing the GRO engine costs for the default configuration for UDP packets. They could possibly live on their own. The third patch contains the actual UDP GRO implementation, while the 4th patch allows using the udpgso_bench_rx program under selftest to trigger UDP GRO. A full self-test is not there yet.
Paolo Abeni (4): net: add new helper to update an already registered offload net: enable UDP gro on demand. udp: implement GRO plain UDP sockets. selftests: add GRO support, fix port option processing include/linux/udp.h | 18 +- include/net/addrconf.h | 1 + include/net/protocol.h | 4 + include/net/udp.h | 12 ++ net/ipv4/protocol.c | 13 +- net/ipv4/udp.c | 3 + net/ipv4/udp_offload.c | 170 +++++++++++++++--- net/ipv4/udp_tunnel.c | 1 + net/ipv6/af_inet6.c | 1 + net/ipv6/protocol.c | 13 +- net/ipv6/udp_offload.c | 31 +++- tools/testing/selftests/net/udpgso_bench_rx.c | 18 +- 12 files changed, 244 insertions(+), 41 deletions(-) -- 2.17.1