Repository navigation
Conversation
|
This PR is part of a stack of 15 bookmarks:
Created with jj-stack |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The boundary still permits frames exceeding the peer’s encoded-frame limit and performs rejection after allocating the oversized buffer.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Open (2)
What changed in this PR
Adds synchronous peer-size validation for HTTP/3 datagrams before queueing.
Changes:
- Validates encoded WebTransport and CONNECT-UDP datagram sizes.
- Adds boundary tests for accepted and rejected payloads.
- Documents transport-layer sizing assumptions.
| File | Description |
|---|---|
neqo-transport/src/connection/mod.rs |
Documents queue size-check responsibilities. |
neqo-http3/src/features/extended_connect/session.rs |
Rejects oversized encoded datagrams. |
neqo-http3/src/features/extended_connect/tests/webtransport/datagrams.rs |
Tests WebTransport size boundaries. |
neqo-http3/tests/connect_udp.rs |
Tests CONNECT-UDP prefix-inclusive sizing. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## users/jesup/hook_up_queue #4025 +/- ##
=============================================================
- Coverage 97.10% 97.08% -0.03%
=============================================================
Files 114 114
Lines 41061 41067 +6
Branches 41061 41067 +6
=============================================================
- Hits 39873 39869 -4
- Misses 1174 1184 +10
Partials 14 14
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
6a222ee to
4b80085
Compare
…queue_datagram An encoded datagram exceeding the peer's max_datagram_frame_size used to be accepted into the queue and only fail (or silently never fit) at packet-build time. enqueue_datagram now returns TooMuchData, as the legacy add_datagram did, and send_datagram propagates it.
6c1685e to
a372889
Compare
4b80085 to
e4665bf
Compare
Failed Interop TestsQUIC Interop Runner, client vs. server, differences relative to
All resultsSucceeded Interop TestsQUIC Interop Runner, client vs. server neqo-pr as client
neqo-pr as server
Unsupported Interop TestsQUIC Interop Runner, client vs. server neqo-pr as client
neqo-pr as server
|
Client/server transfer resultsPerformance differences relative to a372889. Transfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.
Table above only shows statistically significant changes. See all results below. All resultsTransfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.
Download data for |
Benchmark resultsNo significant performance differences relative to a372889. All resultstransfer/1-conn/1-100mb-req (aka. Upload)/mtu-1500 time: [48.731 ms 48.880 ms 49.091 ms]
thrpt: [1.9893 GiB/s 1.9979 GiB/s 2.0040 GiB/s]
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severetransfer/1-conn/1-100mb-resp (aka. Download)/mtu-1500 time: [50.005 ms 50.069 ms 50.137 ms]
thrpt: [1.9478 GiB/s 1.9504 GiB/s 1.9529 GiB/s]
Found 4 outliers among 100 measurements (4.00%)
4 (4.00%) high mildtransfer/1-conn/1-1b-resp (aka. HPS)/mtu-1500 time: [2.9340 ms 2.9351 ms 2.9363 ms]
thrpt: [340.57 B/s 340.70 B/s 340.84 B/s]
Found 9 outliers among 100 measurements (9.00%)
6 (6.00%) high mild
3 (3.00%) high severetransfer/1-conn/10_000-parallel-1b-resp (aka. RPS)/mtu-1500 time: [67.247 ms 67.516 ms 67.787 ms]
thrpt: [147.52 Kelem/s 148.11 Kelem/s 148.70 Kelem/s]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mildstreams-flow-controlled/walltime/1-streams/each-4194304-bytes time: [10.344 ms 10.348 ms 10.353 ms]
thrpt: [386.36 MiB/s 386.54 MiB/s 386.71 MiB/s]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mildstreams-flow-controlled/walltime/10-streams/each-1048576-bytes time: [28.414 ms 28.427 ms 28.440 ms]
thrpt: [351.62 MiB/s 351.78 MiB/s 351.93 MiB/s]streams/walltime/1-streams/each-1000-bytes time: [131.80 µs 132.37 µs 133.10 µs]
thrpt: [7.1649 MiB/s 7.2044 MiB/s 7.2356 MiB/s]
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mildstreams/walltime/1000-streams/each-1-bytes time: [3.8402 ms 3.8521 ms 3.8637 ms]
thrpt: [252.75 KiB/s 253.51 KiB/s 254.30 KiB/s]streams/walltime/1000-streams/each-1000-bytes time: [12.494 ms 12.503 ms 12.512 ms]
thrpt: [76.223 MiB/s 76.278 MiB/s 76.333 MiB/s]
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) low mild
1 (1.00%) high mildtransfer/walltime/pacing-false/same-seed time: [2.0463 ms 2.0471 ms 2.0481 ms]
thrpt: [1.9073 GiB/s 1.9082 GiB/s 1.9089 GiB/s]transfer/walltime/pacing-false/varying-seeds time: [2.0303 ms 2.0314 ms 2.0327 ms]
thrpt: [1.9217 GiB/s 1.9229 GiB/s 1.9240 GiB/s]transfer/walltime/pacing-true/same-seed time: [2.0895 ms 2.0911 ms 2.0931 ms]
thrpt: [1.8663 GiB/s 1.8680 GiB/s 1.8695 GiB/s]transfer/walltime/pacing-true/varying-seeds time: [2.0558 ms 2.0568 ms 2.0579 ms]
thrpt: [1.8982 GiB/s 1.8992 GiB/s 1.9001 GiB/s]Instructions per cycleCriterion reported no significant timing changes. All benchmarks
Profiles for profiler.firefox.com (62)
Download data for |


No description provided.