From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 52270370D64 for ; Tue, 10 Mar 2026 23:09:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773184158; cv=none; b=cjX18Qw7DNNULdogFz3eMZJVr/SxCv24HnLYcrvbkyVWm0NuGHRfj3PiWta3mT3fKkO+ReuPPKKyaMNhKfiPAkCuUX7TPx2pwQHm292OvAybvkkpkErmQjr/sYrF11gVTRnn//Mib+u88ypYGDvo9l+llAir391kN49dqlfp1Xc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773184158; c=relaxed/simple; bh=pZ58cNGp7FiVPONqDxgEYxZYyOKBMFQVjpjV6yX9SsQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=da6xsAbqZCUrMJUp97dkuXWkmKJNBdGg9aIc0n6tDNtpoB+4SpzPwRHzg8dOvyUzPkbjOacWHT1U16jMiGvFp4i3usdANnbrTvglMAdLSyDtayDNa7vuvll+bIdakjaFjBYH0NOisVDle9T/mhmTUKSiOV1o54LIB4yYXA4wwi4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PxKoj/ko; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PxKoj/ko" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4853c1ca73aso22970825e9.2 for ; Tue, 10 Mar 2026 16:09:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773184156; x=1773788956; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=DbJBr0HEiXYCW71Jk8MuoGm/RlPukS0X9H3Qzzqpl0U=; b=PxKoj/koMG1EKEnLP8c4P1pMUdx6ABVSrlNJzSuUyQyTpQBwzVebz1TdWympwqvPCF Zi+tpSjUGkRoaPVyHE+wmrFxwSETTO8tqCdg2jNljYPCxKa8Mm8pnkbupVJLQTtfcfe2 UPUZ7lzp7D1Y47TK4tS6gIVChDgrgwjOJb08+b93BQADN5ECHK2FTdu+WrD0LpnRZ9HR JlQliJ7asZ9NzQRh1B9LlwvYOHZU0r/mStlWzu+rpoOx4eLMUybHit5q/u+Ld2VwhTdH eezWmVHjvFiuKQylEQvEVLMFN2qeOfVL8GpNLvTmHt5tjpANQyD/Q6io9EQ+d0Q1R5zP mz/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773184156; x=1773788956; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DbJBr0HEiXYCW71Jk8MuoGm/RlPukS0X9H3Qzzqpl0U=; b=ck6RRemhffBMg6yyLpEMpbrGMs4c/uPEfbxBStK4UzNjf5I6krAc9ohQdNrryVemg5 wuDrveSLXb5qRyZ4fd3N15m1Ty0wwFmlUxz1x6wxWMmmyXFUhceY5f9yyTcr0r+axg5v BEHHyaI6LEawBJc0EkbQ8UKGgUXjdAE9e8R+9njZdJyTuhHJs4ZG9xoZM8EKj0KEmwLk 4FCcSvEUfIVjXfsN+iIZEv/0QKd4sjQA/t7DTEdjcg+A5wODUlmTgqvxaQBiQHnE6Em5 cSCUbPlrtbjKuObro9fLPEOGX2F/U/TZS4FpiYMPoS/DCRA9bOlYXZI6tCgyKwQVPkNV 6JVQ== X-Forwarded-Encrypted: i=1; AJvYcCWS6eKhmnfPhNJf0EWupBSDJVLDNwGoY+Y49nsTbjK+k5vnmOjEc/h6BYYlQLr5eAodnRAlIZpWqNzXTSE=@vger.kernel.org X-Gm-Message-State: AOJu0YzXWQPYqEfUi2hAFM1QtZecrbZPijChIDVdp/XhaVmjtG3vUv/I m+hWt3cMC6HJEZVK0v3rsmQf2+UgNcPwTjdyICQRnYBPDVjO5n4AfTl5 X-Gm-Gg: ATEYQzy1EEmVDNgE0k2yeu4o87WtbARcL5SKqo53JcSHFDKfOI85RrvK7+hVmF/oP5M aVlIhyg29Lx7Oze6zY/O9yEdhcDp9UPaPOjymOc1MFwQw/HFjX58xJojnCYlOO2mHAxfssk91vV xuCNu6D7dxJ1iv9lqCA040wahc40hFkH4xZ7VweEpqkdPMSXMFMQB1mKzt0bqT+peQPD4XVl+zG MXheJ0DzYsANqBKnU//mRFM4SdT7/BP/nhgx6xyulyNF55JILsTZwmuHZjbwTXWs9OCG3cuqwP2 RRngfynct8kKJqDdF4SGbBR1Js3ICjS2QtOOFuayLlmy4xgxo328eKTZLw8swS4voYq+tREPllq ckIws1yF+mQttUjN742oUJFBRlzipZkaV0Ztv9xleDSxRo6N0B3swz33WUTnMDtD4WtvzcmpjvC bO5nh3TpyKG9ysbOEdvkpoy57s+LIYfy0DI4rfHNAd9x49dTfOQrj/1NHS50I3cw== X-Received: by 2002:a05:600c:4710:b0:485:3b00:f939 with SMTP id 5b1f17b1804b1-4854b0bafa5mr8549225e9.8.1773184155268; Tue, 10 Mar 2026 16:09:15 -0700 (PDT) Received: from gandalf.schnuecks.de (p5b2e2ef5.dip0.t-ipconnect.de. [91.46.46.245]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4854a18bcf4sm11438625e9.0.2026.03.10.16.09.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 16:09:14 -0700 (PDT) Received: by gandalf.schnuecks.de (Postfix, from userid 500) id 390E7302C898; Wed, 11 Mar 2026 00:09:14 +0100 (CET) Date: Wed, 11 Mar 2026 00:09:14 +0100 From: Simon Baatz To: Eric Dumazet Cc: Neal Cardwell , Kuniyuki Iwashima , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Simon Horman , Jonathan Corbet , Shuah Khan , David Ahern , Jon Maloy , Jason Xing , mfreemon@cloudflare.com, Shuah Khan , Stefano Brivio , Matthieu Baerts , Mat Martineau , Geliang Tang , 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 Message-ID: References: <20260309-tcp_rfc7323_retract_wnd_rfc-v3-0-4c7f96b1ec69@gmail.com> <20260309-tcp_rfc7323_retract_wnd_rfc-v3-6-4c7f96b1ec69@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: 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 > wrote: > > > > From: Simon Baatz > > > > 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 > > --- > > .../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 > > + +0 > S. 0:0(0) ack 1 win 18980 > > + +.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.