The kernel can form aggregate packets whether or not GSO is enabled. Disabling GSO is not a useful suggestion in this case. Fixes: 05628cdd677d (doc: describe behaviour of {ip,ip6} length) --- doc/payload-expression.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/doc/payload-expression.txt b/doc/payload-expression.txt index 7bc24a8a6502..18ad0215baaa 100644 --- a/doc/payload-expression.txt +++ b/doc/payload-expression.txt @@ -134,13 +134,12 @@ Destination address | ipv4_addr |====================== -Careful with matching on *ip length*: If GRO/GSO is enabled, then the Linux -kernel might aggregate several packets into one big packet that is larger than -MTU. Moreover, if GRO/GSO maximum size is larger than 65535 (see man ip-link(8), -specifically gro_ipv6_max_size and gso_ipv6_max_size), then *ip length* might -be 0 for such jumbo packets. *meta length* allows you to match on the packet -length including the IP header size. If you want to perform heuristics on the -*ip length* field, then disable GRO/GSO. +Careful with matching on *ip length*: The Linux kernel might aggregate several +packets into one big packet that is larger than MTU. Moreover, if GRO/GSO +maximum size is larger than 65535 (see man ip-link(8), specifically +gro_ipv6_max_size and gso_ipv6_max_size), then *ip length* might be 0 for such +jumbo packets. *meta length* allows you to match on the packet length including +the IP header size. ICMP HEADER EXPRESSION ~~~~~~~~~~~~~~~~~~~~~~ -- 2.46.2