From: Willem de Bruijn <willemb@xxxxxxxxxx> UDP_GRO was added in commit e20cf8d3f1f7 ("udp: implement GRO for plain UDP sockets.") $ git describe --contains e20cf8d3f1f7 linux/v5.0-rc1~129^2~379^2~8 Kernel source has example code in tools/testing/selftests/net/udpgro* Per https://www.kernel.org/doc/man-pages/patches.html, "Describe how you obtained the information in your patch": I reviewed the relevant UDP_GRO patches. Signed-off-by: Willem de Bruijn <willemb@xxxxxxxxxx> --- man7/udp.7 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/man7/udp.7 b/man7/udp.7 index ec16306df605..b4cc06791e47 100644 --- a/man7/udp.7 +++ b/man7/udp.7 @@ -229,6 +229,18 @@ calls by passing it as a .BR cmsg(7). A value of zero disables the feature. This option should not be used in code intended to be portable. +.TP +.BR UDP_GRO " (since Linux 5.0)" +Enables UDP receive offload. +If enabled, the socket may receive multiple datagrams worth of data as +a single large buffer, together with a +.BR cmsg(7) +that holds the segment size. +This option is the inverse of segmentation offload. +It reduces receive cost by handling multiple datagrams worth of data +as a single large packet in the kernel receive path, even when that +exceeds MTU. +This option should not be used in code intended to be portable. .SS Ioctls These ioctls can be accessed using .BR ioctl (2). -- 2.39.2.722.g9855ee24e9-goog