]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/net: packetdrill: improve tcp_rcv_neg_window.pkt
authorSimon Baatz <gmbnomis@gmail.com>
Mon, 16 Mar 2026 18:51:10 +0000 (19:51 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 19 Mar 2026 09:26:25 +0000 (10:26 +0100)
The test depends on accepting a packet that is larger than the
advertised window and that does not trigger an immediate ACK.

Previously, the test might still pass even if kernel behavior changed
unexpectedly. Add assertions verifying that the large packet was
accepted and no ACK was sent.

Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
Link: https://patch.msgid.link/20260316-improve_tcp_neg_usable_wnd_test-v1-1-f16d5e365107@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/net/packetdrill/tcp_rcv_neg_window.pkt

index 15a9b4938f16d175ac54f3fd192ed2b59b0a4399..b9ab264b2a118f273af269d83a371740ae47359c 100644 (file)
@@ -1,4 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
+// Test maximum advertised window limit when rcv_nxt advances past
+// rcv_mwnd_seq. The "usable window" must be properly clamped to zero
+// rather than becoming negative.
 
 --mss=1000
 
 
    +0 accept(3, ..., ...) = 4
 
-// A too big packet is accepted if the receive queue is empty
+// A too big packet is accepted if the receive queue is empty. It
+// does not trigger an immediate ACK.
    +0 < P. 1:20001(20000) ack 1 win 257
+   +0 %{ assert tcpi_bytes_received == 20000, tcpi_bytes_received; }%
+
 // Send a RST immediately so that there is no rcv_wup/rcv_mwnd_seq update yet
    +0 < R. 20001:20001(0) ack 1 win 257
 
-  +.1 %{ assert tcpi_state == TCP_CLOSE, tcpi_state }%
-
+// Verify that the RST was accepted. Indirectly this also verifies that no
+// immediate ACK was sent for the data packet above.
+   +0 < . 20001:20001(0) ack 1 win 257
+   +0 > R 1:1(0)