From: Simon Baatz <gmbnomis@gmail.com>
To: Eric Dumazet <edumazet@google.com>
Cc: Neal Cardwell <ncardwell@google.com>,
Kuniyuki Iwashima <kuniyu@google.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
David Ahern <dsahern@kernel.org>, Jon Maloy <jmaloy@redhat.com>,
Jason Xing <kerneljasonxing@gmail.com>,
mfreemon@cloudflare.com, Shuah Khan <shuah@kernel.org>,
Stefano Brivio <sbrivio@redhat.com>,
Matthieu Baerts <matttbe@kernel.org>,
Mat Martineau <martineau@kernel.org>,
Geliang Tang <geliang@kernel.org>,
netdev@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
mptcp@lists.linux.dev
Subject: Re: [PATCH net-next v3 6/6] selftests/net: packetdrill: add tcp_rcv_neg_window.pkt
Date: Wed, 11 Mar 2026 00:09:14 +0100 [thread overview]
Message-ID: <abCkmiCSPkmxzECa@gandalf.schnuecks.de> (raw)
In-Reply-To: <CANn89i+PypF1cK4mnp8L_eCG_z+3Aj6uxJoohm_=DwGfR1=4FA@mail.gmail.com>
Hi Eric,
On Tue, Mar 10, 2026 at 09:54:58AM +0100, Eric Dumazet wrote:
> On Mon, Mar 9, 2026 at 9:03???AM Simon Baatz via B4 Relay
> <devnull+gmbnomis.gmail.com@kernel.org> wrote:
> >
> > From: Simon Baatz <gmbnomis@gmail.com>
> >
> > The test ensures we correctly apply the maximum advertised window limit
> > when rcv_nxt advances past rcv_mwnd_seq, so that the "usable window"
> > is properly clamped to zero rather than becoming negative.
> >
> > Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
> > ---
> > .../net/packetdrill/tcp_rcv_neg_window.pkt | 26 ++++++++++++++++++++++
> > 1 file changed, 26 insertions(+)
> >
> > diff --git a/tools/testing/selftests/net/packetdrill/tcp_rcv_neg_window.pkt b/tools/testing/selftests/net/packetdrill/tcp_rcv_neg_window.pkt
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..15a9b4938f16d175ac54f3fd192ed2b59b0a4399
> > --- /dev/null
> > +++ b/tools/testing/selftests/net/packetdrill/tcp_rcv_neg_window.pkt
> > @@ -0,0 +1,26 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +
> > +--mss=1000
> > +
> > +`./defaults.sh`
> > +
> > +// Establish a connection.
> > + +0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
> > + +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
> > + +0 setsockopt(3, SOL_SOCKET, SO_RCVBUF, [20000], 4) = 0
> > + +0 bind(3, ..., ...) = 0
> > + +0 listen(3, 1) = 0
> > +
> > + +0 < S 0:0(0) win 32792 <mss 1000,nop,wscale 7>
> > + +0 > S. 0:0(0) ack 1 win 18980 <mss 1460,nop,wscale 0>
> > + +.1 < . 1:1(0) ack 1 win 257
> > +
> > + +0 accept(3, ..., ...) = 4
> > +
> > +// A too big packet is accepted if the receive queue is empty
> > + +0 < P. 1:20001(20000) ack 1 win 257
>
> We do not see the answer, it seems this test is not complete ?
Actually we do not want to see an answer. The packet won't trigger
an immediate ACK (it is larger than the advertised window, but does
not cause immediate memory pressure).
When we then send a RST before the delayed ACK would be generated:
> > +// 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
We are in a state where rcv_wup, rcv_wnd, and rcv_mwnd_seq have not
been updated yet, but we must still accept the RST
(rcv_nxt == 20001 > rcv_mwnd_seq, tcp_max_receive_window() == 0)
> > +
> > + +.1 %{ assert tcpi_state == TCP_CLOSE, tcpi_state }%
And we verify that we accepted the RST here.
Given how subtle this sequence is, and considering the limited value
of this test, I am also fine with dropping it if it is too fragile or
confusing.
next prev parent reply other threads:[~2026-03-10 23:09 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-09 8:02 [PATCH net-next v3 0/6] tcp: RFC 7323-compliant window retraction handling Simon Baatz via B4 Relay
2026-03-09 8:02 ` [PATCH net-next v3 1/6] tcp: implement RFC 7323 window retraction receiver requirements Simon Baatz via B4 Relay
2026-03-09 9:22 ` Eric Dumazet
2026-03-09 18:35 ` Simon Baatz
2026-03-10 7:40 ` Eric Dumazet
2026-03-10 8:58 ` Stefano Brivio
2026-03-10 22:34 ` Simon Baatz
2026-03-09 8:02 ` [PATCH net-next v3 2/6] mptcp: keep rcv_mwnd_seq in sync with subflow rcv_wnd Simon Baatz via B4 Relay
2026-03-10 8:46 ` Eric Dumazet
2026-03-11 18:27 ` Matthieu Baerts
2026-03-11 22:08 ` Simon Baatz
2026-03-12 11:01 ` Matthieu Baerts
2026-03-09 8:02 ` [PATCH net-next v3 3/6] tcp: increase LINUX_MIB_BEYOND_WINDOW for SKB_DROP_REASON_TCP_OVERWINDOW Simon Baatz via B4 Relay
2026-03-09 9:27 ` Eric Dumazet
2026-03-09 8:02 ` [PATCH net-next v3 4/6] selftests/net: packetdrill: add tcp_rcv_wnd_shrink_nomem.pkt Simon Baatz via B4 Relay
2026-03-10 8:46 ` Eric Dumazet
2026-03-09 8:02 ` [PATCH net-next v3 5/6] selftests/net: packetdrill: add tcp_rcv_wnd_shrink_allowed.pkt Simon Baatz via B4 Relay
2026-03-10 8:52 ` Eric Dumazet
2026-03-09 8:02 ` [PATCH net-next v3 6/6] selftests/net: packetdrill: add tcp_rcv_neg_window.pkt Simon Baatz via B4 Relay
2026-03-10 8:54 ` Eric Dumazet
2026-03-10 23:09 ` Simon Baatz [this message]
2026-03-14 3:58 ` Eric Dumazet
2026-03-14 14:55 ` Eric Dumazet
2026-03-14 15:01 ` Jakub Kicinski
2026-03-14 17:07 ` Simon Baatz
2026-03-16 21:51 ` Simon Baatz
2026-03-14 15:40 ` [PATCH net-next v3 0/6] tcp: RFC 7323-compliant window retraction handling patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=abCkmiCSPkmxzECa@gandalf.schnuecks.de \
--to=gmbnomis@gmail.com \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=geliang@kernel.org \
--cc=horms@kernel.org \
--cc=jmaloy@redhat.com \
--cc=kerneljasonxing@gmail.com \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=martineau@kernel.org \
--cc=matttbe@kernel.org \
--cc=mfreemon@cloudflare.com \
--cc=mptcp@lists.linux.dev \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sbrivio@redhat.com \
--cc=shuah@kernel.org \
--cc=skhan@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox