Conversation
The WebTransport spec replaced outgoingHighWaterMark with outgoingMaxBufferedDatagrams. Follow it: DatagramQueue::set_high_water_mark and Connection::set_datagram_high_water_mark become set_max_buffered_datagrams, and DatagramQueueOutcome::AboveWatermark becomes MaxBufferedReached.
|
This PR is part of a stack of 9 bookmarks:
Created with jj-stack |
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The terminology change is consistently propagated through implementations, callers, documentation, and tests.
Review effort: Balanced
Findings: None
What changed in this PR
Renames datagram backpressure terminology from “high water mark” to “max buffered datagrams” across transport and HTTP/3 without changing behavior.
Changes:
- Renames public methods and
DatagramQueueOutcome::MaxBufferedReached. - Updates internal fields, constants, documentation, and tracing.
- Updates transport, WebTransport, and CONNECT-UDP tests.
| File | Description |
|---|---|
neqo-transport/src/quic_datagrams.rs |
Renames queue configuration API. |
neqo-transport/src/datagram_queue.rs |
Renames core queue terminology and outcome. |
neqo-transport/src/connection/tests/datagram.rs |
Updates transport tests. |
neqo-transport/src/connection/mod.rs |
Renames the connection API. |
neqo-http3/tests/connect_udp.rs |
Updates CONNECT-UDP tests. |
neqo-http3/src/webtransport.rs |
Renames the test-only session setter. |
neqo-http3/src/features/extended_connect/tests/webtransport/datagrams.rs |
Updates WebTransport tests. |
neqo-http3/src/features/extended_connect/session.rs |
Propagates the renamed setter. |
neqo-http3/src/connection.rs |
Renames the extended-connect helper. |
neqo-http3/src/connect_udp.rs |
Renames the default buffering constant and calls. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
I found no problems in PR #4036: it only renames things, and nothing about how the code behaves changes.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4036 +/- ##
==========================================
- Coverage 97.10% 96.98% -0.13%
==========================================
Files 114 118 +4
Lines 41005 41441 +436
Branches 41005 41441 +436
==========================================
+ Hits 39817 40190 +373
- Misses 1174 1227 +53
- Partials 14 24 +10
Flags with carried forward coverage won't be shown. Click here to find out more.
|
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
|
Merging this PR will degrade performance by 0.61%
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing |
Client/server transfer resultsPerformance differences relative to ea3f3d7. 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 ea3f3d7. All resultstransfer/1-conn/1-100mb-req (aka. Upload)/mtu-1500 time: [50.524 ms 50.560 ms 50.597 ms]
thrpt: [1.9301 GiB/s 1.9315 GiB/s 1.9329 GiB/s]
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low mild
2 (2.00%) high severetransfer/1-conn/1-100mb-resp (aka. Download)/mtu-1500 time: [51.418 ms 51.453 ms 51.487 ms]
thrpt: [1.8967 GiB/s 1.8980 GiB/s 1.8993 GiB/s]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mildtransfer/1-conn/1-1b-resp (aka. HPS)/mtu-1500 time: [2.9631 ms 2.9645 ms 2.9659 ms]
thrpt: [337.16 B/s 337.32 B/s 337.48 B/s]transfer/1-conn/10_000-parallel-1b-resp (aka. RPS)/mtu-1500 time: [65.980 ms 66.242 ms 66.509 ms]
thrpt: [150.36 Kelem/s 150.96 Kelem/s 151.56 Kelem/s]
Found 6 outliers among 100 measurements (6.00%)
2 (2.00%) low mild
4 (4.00%) high mildstreams-flow-controlled/walltime/1-streams/each-4194304-bytes time: [10.769 ms 10.772 ms 10.776 ms]
thrpt: [371.20 MiB/s 371.32 MiB/s 371.44 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.552 ms 28.572 ms 28.589 ms]
thrpt: [349.78 MiB/s 349.99 MiB/s 350.24 MiB/s]
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) low severe
2 (2.00%) high mildstreams/walltime/1-streams/each-1000-bytes time: [130.13 µs 130.65 µs 131.31 µs]
thrpt: [7.2626 MiB/s 7.2995 MiB/s 7.3288 MiB/s]
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mildstreams/walltime/1000-streams/each-1-bytes time: [3.8332 ms 3.8453 ms 3.8568 ms]
thrpt: [253.20 KiB/s 253.97 KiB/s 254.77 KiB/s]streams/walltime/1000-streams/each-1000-bytes time: [12.490 ms 12.499 ms 12.507 ms]
thrpt: [76.252 MiB/s 76.303 MiB/s 76.354 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.0529 ms 2.0537 ms 2.0546 ms]
thrpt: [1.9012 GiB/s 1.9020 GiB/s 1.9028 GiB/s]transfer/walltime/pacing-false/varying-seeds time: [2.0381 ms 2.0392 ms 2.0405 ms]
thrpt: [1.9143 GiB/s 1.9156 GiB/s 1.9166 GiB/s]transfer/walltime/pacing-true/same-seed time: [2.0370 ms 2.0382 ms 2.0397 ms]
thrpt: [1.9151 GiB/s 1.9165 GiB/s 1.9177 GiB/s]transfer/walltime/pacing-true/varying-seeds time: [2.0906 ms 2.0927 ms 2.0951 ms]
thrpt: [1.8645 GiB/s 1.8666 GiB/s 1.8685 GiB/s]Instructions per cycleCriterion reported no significant timing changes. All benchmarks
Profiles for profiler.firefox.com (62)
Download data for |
No description provided.