Skip to content

Don't send datagrams combined with PMTUD packets since lost datagrams…#3472

Open
jesup wants to merge 1 commit intousers/jesup/stats_overheadfrom
users/jesup/avoid_PMTUD
Open

Don't send datagrams combined with PMTUD packets since lost datagrams…#3472
jesup wants to merge 1 commit intousers/jesup/stats_overheadfrom
users/jesup/avoid_PMTUD

Conversation

@jesup
Copy link
Copy Markdown
Member

@jesup jesup commented Mar 16, 2026

… can't be retried

Copilot AI review requested due to automatic review settings March 16, 2026 04:51
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prevents QUIC datagrams from being included in PMTUD (Path MTU Discovery) probe packets. Since datagrams are unreliable and cannot be retried, including them in probe packets risks silent data loss when middleboxes drop oversized probes.

Changes:

  • Added an is_pmtud_probe flag to write_appdata_frames that skips datagram frame writing when the current packet is a PMTUD probe.
  • Extracted the PMTUD probe condition into a reusable is_pmtud_probe local variable, passed through to the frame-writing logic.
  • Added a test verifying datagrams are excluded from PMTUD probes and sent in subsequent normal packets.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
neqo-transport/src/connection/mod.rs Adds is_pmtud_probe parameter to write_appdata_frames and skips datagram writing when it's a probe packet
neqo-transport/src/connection/tests/datagram.rs New test datagram_not_in_pmtud_probe verifying datagrams are excluded from PMTUD probes

Copy link
Copy Markdown
Member

@mxinden mxinden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sending QUIC datagrams in PMTUD probes is a good idea.

Comment thread neqo-transport/src/connection/tests/datagram.rs Outdated
Comment thread neqo-transport/src/connection/tests/datagram.rs
Comment thread neqo-transport/src/connection/tests/datagram.rs Outdated
@larseggert larseggert added the needs-rebase PR needs rebasing before it can be merged. label Apr 8, 2026
@jesup jesup force-pushed the users/jesup/stats_overhead branch from ae31280 to cdc8278 Compare May 1, 2026 15:13
@jesup
Copy link
Copy Markdown
Member Author

jesup commented May 1, 2026

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

Failed Interop Tests

None ❓

All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-pr as client

None ❓

neqo-pr as server

None ❓

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-pr as client

None ❓

neqo-pr as server

None ❓

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-rebase PR needs rebasing before it can be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants