Skip to content

feat(proto): add Prague/L4S congestion controller#2557

Open
HueCodes wants to merge 3 commits intoquinn-rs:mainfrom
HueCodes:feat/prague-congestion-control
Open

feat(proto): add Prague/L4S congestion controller#2557
HueCodes wants to merge 3 commits intoquinn-rs:mainfrom
HueCodes:feat/prague-congestion-control

Conversation

@HueCodes
Copy link

@HueCodes HueCodes commented Mar 7, 2026

Add a Prague congestion controller for L4S-compatible ECN-based congestion control (RFC 9331, RFC 9332, RFC 8257).

Uses DCTCP-style alpha EWMA to estimate ECN marking fraction per RTT round. Reduces the congestion window proportionally (cwnd * alpha/2) on ECN marks, with classic halving on packet loss.

Follows the same Controller/ControllerFactory patterns as NewReno, Cubic, and BBR. Includes 12 unit tests.

Closes #1498

Add a Prague congestion controller implementing L4S-compatible
ECN-based congestion control. Uses DCTCP-style alpha EWMA to
estimate the ECN marking fraction per RTT round and reduces the
congestion window proportionally (cwnd * alpha/2) on ECN marks,
falling back to classic halving on packet loss.

References: RFC 9331, RFC 9332, RFC 8257
Closes quinn-rs#1498
@mxinden
Copy link
Collaborator

mxinden commented Mar 7, 2026

🚀 out of curiosity, have you done any real-world experimentation? Do you have access to an Internet link with an L4s-capable AQM bottleneck? If so, could you share some numbers?

@HueCodes
Copy link
Author

HueCodes commented Mar 9, 2026

🚀 out of curiosity, have you done any real-world experimentation? Do you have access to an Internet link with an L4s-capable AQM bottleneck? If so, could you share some numbers?

Haven't tested on a real L4S-capable link yet, only unit tests and simulated ECN marking. Happy to run some real-world experiments if you have a recommended test setup.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider Prague (L4S-compliant) congestion control support

2 participants