fix(bbr): bbr controller was not accounting correctly#657
Conversation
Performance Comparison Report
|
| Scenario | noq | upstream | Delta | CPU (avg/max) |
|---|---|---|---|---|
| large-single | 5401.3 Mbps | 7949.8 Mbps | -32.1% | 95.9% / 100.0% |
| medium-concurrent | 5501.6 Mbps | 7966.5 Mbps | -30.9% | 95.6% / 147.0% |
| medium-single | 3907.2 Mbps | 4734.5 Mbps | -17.5% | 89.1% / 97.2% |
| small-concurrent | 3816.0 Mbps | 5114.0 Mbps | -25.4% | 92.8% / 101.0% |
| small-single | 3522.3 Mbps | 4811.2 Mbps | -26.8% | 95.7% / 153.0% |
Netsim Benchmarks (network simulation)
| Condition | noq | upstream | Delta |
|---|---|---|---|
| ideal | 3095.9 Mbps | 4064.4 Mbps | -23.8% |
| lan | 782.4 Mbps | 810.4 Mbps | -3.5% |
| lossy | 69.8 Mbps | 55.9 Mbps | +25.0% |
| wan | 83.8 Mbps | 83.8 Mbps | ~0% |
Summary
noq is 26.4% slower on average
|
Documentation for this PR has been generated and is available at: https://n0-computer.github.io/noq/pr/657/docs/noq/ Last updated: 2026-05-15T15:18:33Z |
|
Have you looked if the upstream PR has fixed this yet? Ideally we keep tracking upstream for now, while we haven't started working on this in earnest yet. |
|
The upstream quinn works fine, however we have slight drift from it. They use a Controller trait and override The noq implementation has drifted apart a little and has a separate hook for So whether we want to re-align with upstream is another question but in the meantime this is missing wiring which popped up while working on some other benchmarking. Also we're fairly close to quinn main as it is right now, the above code has not changed in ~5 months so its us that deliberately drifted apart but haven't wired it in. |
Description
Ensure the congestion controller is notified for per-packet send which BBR requires.
on_sentdoes not carry the per packet info it needs.BBR controller bench now goes form 1.3 to 55 MiB/s on my setup and matches quinn and s2n.
Breaking Changes
Notes & open questions
Change checklist