tcp_ooo_rcv_mss.pkt cares about the OOO SACK state and the resulting
tcpi_rcv_mss update.
Its exact advertised receive-window value is incidental to that test and
can legitimately move when unrelated rwnd accounting changes adjust the
ACK window.
Drop the hard-coded win 81 checks and keep only the ACK/SACK shape and
the tcpi_rcv_mss assertion.
Signed-off-by: Wesley Atwell <atwellwea@gmail.com>
---
tools/testing/selftests/net/packetdrill/tcp_ooo_rcv_mss.pkt | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/net/packetdrill/tcp_ooo_rcv_mss.pkt b/tools/testing/selftests/net/packetdrill/tcp_ooo_rcv_mss.pkt
index 7e6bc5fb0c8d78f36dc3d18842ff11d938c4e41b..0b19de9f9307b3d0ee579bc9e3a2b9219a88cd8a 100644
--- a/tools/testing/selftests/net/packetdrill/tcp_ooo_rcv_mss.pkt
+++ b/tools/testing/selftests/net/packetdrill/tcp_ooo_rcv_mss.pkt
@@ -17,11 +17,13 @@ sysctl -q net.ipv4.tcp_rmem="4096 131072 $((32*1024*1024))"`
+0 accept(3, ..., ...) = 4
+0 < . 2001:11001(9000) ack 1 win 257
- +0 > . 1:1(0) ack 1 win 81 <nop,nop,sack 2001:11001>
+// This test cares about the OOO SACK state and the resulting tcpi_rcv_mss.
+// Keep the ACK/SACK shape exact, but do not pin the precise advertised
+// receive window here because unrelated rwnd accounting changes can adjust it.
+ +0 > . 1:1(0) ack 1 <nop,nop,sack 2001:11001>
// check that ooo packet properly updates tcpi_rcv_mss
+0 %{ assert tcpi_rcv_mss == 1000, tcpi_rcv_mss }%
+0 < . 11001:21001(10000) ack 1 win 257
- +0 > . 1:1(0) ack 1 win 81 <nop,nop,sack 2001:21001>
-
+ +0 > . 1:1(0) ack 1 <nop,nop,sack 2001:21001>
--
2.43.0
On 3/17/26 7:51 AM, Wesley Atwell wrote: > tcp_ooo_rcv_mss.pkt cares about the OOO SACK state and the resulting > tcpi_rcv_mss update. > > Its exact advertised receive-window value is incidental to that test and > can legitimately move when unrelated rwnd accounting changes adjust the > ACK window. > > Drop the hard-coded win 81 checks and keep only the ACK/SACK shape and > the tcpi_rcv_mss assertion. I think it would be better to keep the test updated with the kernel behavior. Having the pktdrill tests bundled together with the kernel allows for tightly coupling. @Neal: WDYT? /P
On Thu, Mar 19, 2026 at 6:22 AM Paolo Abeni <pabeni@redhat.com> wrote: > > On 3/17/26 7:51 AM, Wesley Atwell wrote: > > tcp_ooo_rcv_mss.pkt cares about the OOO SACK state and the resulting > > tcpi_rcv_mss update. > > > > Its exact advertised receive-window value is incidental to that test and > > can legitimately move when unrelated rwnd accounting changes adjust the > > ACK window. > > > > Drop the hard-coded win 81 checks and keep only the ACK/SACK shape and > > the tcpi_rcv_mss assertion. > > I think it would be better to keep the test updated with the kernel > behavior. Having the pktdrill tests bundled together with the kernel > allows for tightly coupling. > > @Neal: WDYT? IMHO our experience internally with packetdrill tests suggests that assertions about outgoing receive window values should only be made in a small set of tests specifically focused on receive window behavior. The motivation is mainly toil and velocity. We have over 1,000 packetdrill test scripts internally, and hopefully most of these will eventually have upstream versions. If we allow assertions about receive window behavior to be sprinkled among all tests, then over time we may end up requiring edits to hundreds of packetdrill tests any time the receive window behavior changes. And the receive window values can change frequently. We have generally tried to remove receive window assertions when we've discovered they were included in a test not focused on receive window behavior. neal
© 2016 - 2026 Red Hat, Inc.