[PATCH net-next v2 0/4] tcp: fix tcp_base_mss on passive connections and test MTU probing

From: Yongjian Wang via B4 Relay

Date: Sun Nov 08 2026 - 09:42:15 EST


With tcp_mtu_probing=2, passive TCP connections can start at the full
MSS because they sync MSS before initializing MTU probing. Patch 1
moves initialization next to the existing MSS sync in the passive
paths and in the active SYN-ACK path. Patch 2 adds a regression test.

Patches 3 and 4 add coverage for black hole detection and the MTU
search on active connections.

Tested on x86_64 KVM with all 496 packetdrill cases passing, plus
targeted checks for simultaneous open and Fast Open with MTU probing
enabled. The three affected TCP objects also build with W=1 under
allyesconfig and allmodconfig.

---
Changes in v2:
- Move tcp_mtup_init() before the existing MSS sync in IPv4 and IPv6
passive opens and in the active SYN-ACK path. Remove the late
initialization from tcp_init_transfer() (Kuniyuki and Neal).
- Keep the three packetdrill patches unchanged.
- Link to v1: https://lore.kernel.org/netdev/20261103-mtu-probing-series-v1-0-a2809e725aaa@xxxxxxxxx/

---
Yongjian Wang (4):
tcp: initialize MTU probing before syncing MSS at connection setup
selftests/net: packetdrill: test tcp_base_mss on passive connections
selftests/net: packetdrill: add TCP black hole detection test
selftests/net: packetdrill: add TCP MTU probing test

net/ipv4/tcp_input.c | 2 +-
net/ipv4/tcp_ipv4.c | 1 +
net/ipv6/tcp_ipv6.c | 1 +
.../net/packetdrill/tcp_mtu_probing_blackhole.pkt | 37 +++++++++++++++++++
.../net/packetdrill/tcp_mtu_probing_passive.pkt | 27 ++++++++++++++
.../net/packetdrill/tcp_mtu_probing_search.pkt | 43 ++++++++++++++++++++++
6 files changed, 110 insertions(+), 1 deletion(-)
---
base-commit: fa5196392691051963726787944db872420dfa75
change-id: 20261103-mtu-probing-series-a87b39fdbedf

Best regards,
--
Yongjian Wang <echoowall@xxxxxxxxx>