From 96a584db75bb21781562dc79f11932ce38a1205f Mon Sep 17 00:00:00 2001 From: Simon Baatz Date: Mon, 16 Mar 2026 19:51:10 +0100 Subject: selftests/net: packetdrill: improve tcp_rcv_neg_window.pkt 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 Signed-off-by: Simon Baatz Link: https://patch.msgid.link/20260316-improve_tcp_neg_usable_wnd_test-v1-1-f16d5e365107@gmail.com Signed-off-by: Paolo Abeni --- .../selftests/net/packetdrill/tcp_rcv_neg_window.pkt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'tools/testing') 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 15a9b4938f16..b9ab264b2a11 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) -- cgit v1.2.3