Skip to content

fix(bbr): bbr controller was not accounting correctly#657

Open
Arqu wants to merge 2 commits into
mainfrom
fix/bbr3-on-packet-sent
Open

fix(bbr): bbr controller was not accounting correctly#657
Arqu wants to merge 2 commits into
mainfrom
fix/bbr3-on-packet-sent

Conversation

@Arqu
Copy link
Copy Markdown
Collaborator

@Arqu Arqu commented May 15, 2026

Description

Ensure the congestion controller is notified for per-packet send which BBR requires. on_sent does 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

  • Self-review.
  • Documentation updates following the style guide, if relevant.
  • Tests if relevant.
  • All breaking changes documented.

@Arqu Arqu requested review from dignifiedquire and flub May 15, 2026 15:13
@Arqu Arqu self-assigned this May 15, 2026
@Arqu Arqu added this to iroh May 15, 2026
@github-project-automation github-project-automation Bot moved this to 🚑 Needs Triage in iroh May 15, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 15, 2026

Performance Comparison Report

dfc592ab98091ca2e473e70ce1862d73c76fd06b - artifacts

No results available

---
0e4782adaae2d2187c3604960c4456c9d2616071 - artifacts

Raw Benchmarks (localhost)

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

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 15, 2026

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

@flub
Copy link
Copy Markdown
Collaborator

flub commented May 15, 2026

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.

@Arqu
Copy link
Copy Markdown
Collaborator Author

Arqu commented May 15, 2026

The upstream quinn works fine, however we have slight drift from it. They use a Controller trait and override on_sent for BBR with their custom bw math

The noq implementation has drifted apart a little and has a separate hook for on_packet_sent which BBR was built around but never wired through. Ref

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.

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

Labels

None yet

Projects

Status: 🚑 Needs Triage

Development

Successfully merging this pull request may close these issues.

2 participants