[PATCH net-next] selftests/net: packetdrill: improve tcp_rcv_neg_window.pkt

From: Simon Baatz via B4 Relay

Date: Mon Mar 16 2026 - 14:51:37 EST


From: Simon Baatz <gmbnomis@xxxxxxxxx>

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@xxxxxxxxxx>
Signed-off-by: Simon Baatz <gmbnomis@xxxxxxxxx>
---
.../selftests/net/packetdrill/tcp_rcv_neg_window.pkt | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/net/packetdrill/tcp_rcv_neg_window.pkt b/tools/testing/selftests/net/packetdrill/tcp_rcv_neg_window.pkt
index 15a9b4938f16d175ac54f3fd192ed2b59b0a4399..b9ab264b2a118f273af269d83a371740ae47359c 100644
--- a/tools/testing/selftests/net/packetdrill/tcp_rcv_neg_window.pkt
+++ b/tools/testing/selftests/net/packetdrill/tcp_rcv_neg_window.pkt
@@ -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

@@ -17,10 +20,15 @@

+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)

---
base-commit: 5446b8691eb8278f10deca92048fad84ffd1e4d5
change-id: 20260315-improve_tcp_neg_usable_wnd_test-2a1329d4ca15

Best regards,
--
Simon Baatz <gmbnomis@xxxxxxxxx>