From: Simon Baatz <[email protected]>

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 <[email protected]>
Signed-off-by: Simon Baatz <[email protected]>
---
 .../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 <[email protected]>



Reply via email to