Re: [PATCH net 2/2] Revert "net: advertise TCP MSS from the configured MTU, not the learned PMTU"

From: Jiayuan Chen

Date: Tue Oct 27 2026 - 09:51:31 EST



On 10/27/26 9:12 PM, Esko Mobius wrote:
On 10/27/26 1:45 PM, Jiayuan Chen wrote:
This precondition does all the work. The server only learns the PMTU
when it sends a full-size segment itself. [...]

Please re-run the 6.12.107 case without seeding the PMTU.
You are right. Without seeding, 6.12.107 stalls the same way:

kernel PMTU seeded SYN-ACK MSS 1 MB upload
6.12.107 no 1460 stalls
6.12.107 yes (ping) 1416 OK

My reproducer took a shortcut there. What it should have modelled is
our production setup, which is the masquerading relay you describe:
the clients share the relay's address, so ordinary downloads by other
clients keep the server's PMTU entry fresh. Modelling that directly,
with no artificial seeding (cliA downloads 1 MB, then cliB, behind a
firewall dropping frag-needed, uploads 1 MB through the same relay):

kernel SYN-ACK MSS to cliB cliB upload
6.12.107 1416 OK
6.12.111 1460 stalls


Thanks Esko for the testing, and Eric for the explanation. Agreed.


So I agree it was never a designed mechanism, it is the side effect
Eric describes. We have since added MSS clamping on our relays.

If it helps, I can send a v2 that describes the masquerading case
instead of the seeded one in the changelog. And I am happy to test
the net-next follow-up on this setup.


No need for a v2 from my side, I just wanted to confirm the actual scenario.

I saw your report earlier but was swamped and could not get to it in time, sorry about that.


Reviewed-by: Jiayuan Chen <jiayuan.chen@xxxxxxxxx>


Thanks,
Esko