On Sun, Feb 22, 2026 at 4:35 AM Simon Baatz via B4 Relay <[email protected]> wrote: > > From: Simon Baatz <[email protected]> > > Add a packetdrill test that verifies we accept bare FIN packets when > the advertised receive window is zero. > > Signed-off-by: Simon Baatz <[email protected]>
Reviewed-by: Kuniyuki Iwashima <[email protected]> > --- > .../net/packetdrill/tcp_rcv_zero_wnd_fin.pkt | 27 > ++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/tools/testing/selftests/net/packetdrill/tcp_rcv_zero_wnd_fin.pkt > b/tools/testing/selftests/net/packetdrill/tcp_rcv_zero_wnd_fin.pkt > new file mode 100644 > index > 0000000000000000000000000000000000000000..e245359a1a91d4b6d7ef64496681cea57792cb71 > --- /dev/null > +++ b/tools/testing/selftests/net/packetdrill/tcp_rcv_zero_wnd_fin.pkt > @@ -0,0 +1,27 @@ > +// SPDX-License-Identifier: GPL-2.0 > + > +// Some TCP stacks send FINs even though the window is closed. We break > +// a possible FIN/ACK loop by accepting the FIN. > + > +--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 <mss 1460,nop,wscale 0> > + +0 < . 1:1(0) ack 1 win 257 > + > + +0 accept(3, ..., ...) = 4 > + > + +0 < P. 1:60001(60000) ack 1 win 257 > + * > . 1:1(0) ack 60001 win 0 > + > + +0 < F. 60001:60001(0) ack 1 win 257 > + +0 > . 1:1(0) ack 60002 win 0 > > -- > 2.53.0 > >

