Hi, this series implements the receiver-side requirements for TCP window retraction as specified in RFC 7323 and adds packetdrill tests to cover the new behavior.
Please see the first patch for background and implementation details. Since MPTCP adjusts the TCP receive window on subflows, the relevant MPTCP code paths are updated accordingly. Signed-off-by: Simon Baatz <[email protected]> --- Changes in v3: - Address MPTCP subflow-level rcv_wnd adjustments - Removed RFC status - Adapt tcp_rcv_wnd_shrink_nomem.pkt to reflect 026dfef287c0 ("tcp: give up on stronger sk_rcvbuf checks (for now)") - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - tcp_rcv_wnd_shrink_nomem.pkt tests more RX code paths using various segment types. It also uses a more drastic rcv. buffer reduction (1MB to 16KB). - Setting the TCP_REPAIR_WINDOW socket option initializes rcv_mwnd_seq. - SKB_DROP_REASON_TCP_OVERWINDOW increases LINUX_MIB_BEYOND_WINDOW now. - Moved rcv_mwnd_seq into rcv_wnd's cacheline group. - Small editorial changes - Link to v1: https://lore.kernel.org/r/[email protected] --- Simon Baatz (6): tcp: implement RFC 7323 window retraction receiver requirements mptcp: keep rcv_mwnd_seq in sync with subflow rcv_wnd tcp: increase LINUX_MIB_BEYOND_WINDOW for SKB_DROP_REASON_TCP_OVERWINDOW selftests/net: packetdrill: add tcp_rcv_wnd_shrink_nomem.pkt selftests/net: packetdrill: add tcp_rcv_wnd_shrink_allowed.pkt selftests/net: packetdrill: add tcp_rcv_neg_window.pkt .../networking/net_cachelines/tcp_sock.rst | 1 + include/linux/tcp.h | 3 + include/net/tcp.h | 22 ++++ net/ipv4/tcp.c | 2 + net/ipv4/tcp_fastopen.c | 1 + net/ipv4/tcp_input.c | 11 +- net/ipv4/tcp_minisocks.c | 1 + net/ipv4/tcp_output.c | 3 + net/mptcp/options.c | 6 +- .../net/packetdrill/tcp_rcv_big_endseq.pkt | 2 +- .../net/packetdrill/tcp_rcv_neg_window.pkt | 26 ++++ .../net/packetdrill/tcp_rcv_wnd_shrink_allowed.pkt | 40 +++++++ .../net/packetdrill/tcp_rcv_wnd_shrink_nomem.pkt | 132 +++++++++++++++++++++ 13 files changed, 242 insertions(+), 8 deletions(-) --- base-commit: 0bcac7b11262557c990da1ac564d45777eb6b005 change-id: 20260220-tcp_rfc7323_retract_wnd_rfc-c8a2d2baebde Best regards, -- Simon Baatz <[email protected]>

