I'm pleased to announce the release of BBR' - an Implementation of Bottleneck Bandwidth and Round-trip Time congestion control for ns-3. A git repository is available at:
The repository has details (and a patchfile) for how to integrate BBR' with ns-3 (v3.27).
The BBR' implementation includes the core congestion control in BBR: max BW, min RTT, BDP computation, and protocol states of STARTUP, DRAIN, PROBE_BW and PROBE_RTT. Pacing is implemented outside of the BBR' code at the TCP layer by modifying some ns-3 classes (e.g., TcpSocketBase).
Note: some aspects of BBR are still not implemented in BBR', as detailed in a subsection of the repository README (
https://github.com/mark-claypool/bbr#todo). And probably most parts of BBR' could use more scrutiny and evaluation.
For more details, there is an associated technical report describing the BBR' implementation, providing validation and a bit of evaluation at:
Mark Claypool, Jae Chung, and Feng Li. "BBR' - An Implementation of Bottleneck Bandwidth and Round-trip Time Congestion Control for
ns-3", Technical Report WPI-CS-TR-18-01, Computer Science Department, Worcester Polytechnic Institute, January 2018.
Comments welcome!
-- Mark