Skip to content

Let Welcome carry the tunnel MTU the client should apply - #65

Open
davvd wants to merge 1 commit into
masterfrom
feat/welcome-mtu
Open

Let Welcome carry the tunnel MTU the client should apply#65
davvd wants to merge 1 commit into
masterfrom
feat/welcome-mtu

Conversation

@davvd

@davvd davvd commented Jul 29, 2026

Copy link
Copy Markdown
Member

Adds uint32 mtu = 14 to Welcome: the value, in bytes, the client is
expected to put on its own tunnel interface for the session it just
opened. Zero means the Node predates the field and the client keeps its
built-in 1420.

The Node needs it because the right value is not a constant. Over the
TCP channel it is simply the Node's own interface, since TCP segments to
the real path anyway. Over the QUIC channel every encapsulated packet
travels inside one datagram that has to fit the path whole, and what is
left for the packet depends on the Node's interface, on the framing
around it and on the length of the connection id the client itself
chose. Today a client sizes its interface for the widest path and its
largest packets vanish on anything narrower, with no ICMP to explain it.
Only the Node can compute the number, so it now says it.

One thing worth knowing about the branch: it sits on 08ee782, the commit
the Node currently pins, not on today's master. welcome.proto is
byte-identical between the two, so the diff here is only the new field,
and it keeps the Node's submodule bump to a single commit instead of
dragging in the gauges type change it is not ready for. Merging into
master should be clean.

For APN-Network/node#120.

A client that sizes its own interface for the widest path blackholes
its largest packets over the QUIC channel, where every encapsulated
packet is wrapped in a datagram that has to fit the path whole. Only
the Node knows both its own interface and the framing its transport
adds around each packet, so it now says which value to apply instead
of leaving the client to guess.

Zero keeps the built-in default of 1420, so a client talking to an
older Node behaves as it does today.

APN-Network/node#120
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant