Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/net: packetdrill: add tcp_ooo_rcv_mss.pkt

We make sure tcpi_rcv_mss and tp->scaling_ratio
are correctly updated if no in-order packet has been received yet.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20250711114006.480026-6-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Eric Dumazet and committed by
Jakub Kicinski
445e0cc3 38d7e444

+27
+27
tools/testing/selftests/net/packetdrill/tcp_ooo_rcv_mss.pkt
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + 3 + --mss=1000 4 + 5 + `./defaults.sh 6 + sysctl -q net.ipv4.tcp_rmem="4096 131072 $((32*1024*1024))"` 7 + 8 + +0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3 9 + +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 10 + +0 bind(3, ..., ...) = 0 11 + +0 listen(3, 1) = 0 12 + 13 + +0 < S 0:0(0) win 65535 <mss 1000,nop,nop,sackOK,nop,wscale 7> 14 + +0 > S. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK,nop,wscale 10> 15 + +.1 < . 1:1(0) ack 1 win 257 16 + 17 + +0 accept(3, ..., ...) = 4 18 + 19 + +0 < . 2001:11001(9000) ack 1 win 257 20 + +0 > . 1:1(0) ack 1 win 81 <nop,nop,sack 2001:11001> 21 + 22 + // check that ooo packet properly updates tcpi_rcv_mss 23 + +0 %{ assert tcpi_rcv_mss == 1000, tcpi_rcv_mss }% 24 + 25 + +0 < . 11001:21001(10000) ack 1 win 257 26 + +0 > . 1:1(0) ack 1 win 81 <nop,nop,sack 2001:21001> 27 +