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> --- Changes v1->v2 - semantic newlines: also break on comma - remove bold: section number following function name --- man7/udp.7 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/man7/udp.7 b/man7/udp.7 index 6646c1e96bb0..a350a40da340 100644 --- a/man7/udp.7 +++ b/man7/udp.7 @@ -232,6 +232,20 @@ 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