Commit c5e7338
committed
Upgraded BBR to BBRv3 (2024 and in Linux 2.6 kernel).
• BBRv3 Update
- Replaced the legacy 700‑line Reno-like BBR with a spec-aligned BBRv3
controller that tracks STARTUP/DRAIN/PROBE_BW/PROBE_RTT states,
maintains dual filters (10‑slot max bandwidth + 10s min-RTT), cycles
pacing gains across ProbeBW phases, and applies packet-conservation on
loss (ns/flow/bbr.py:1-210, ns/flow/bbr.py:211-318). The new
implementation exposes the same public hooks but now bases pacing/cwnd
decisions on the BBRv3 gain schedule and probe-rtt timers.
- BBR’s SimPy generator now honors the controller’s updated API—timeouts
log cleanly and every ACK forwards the current simulation time so BBR
can timestamp RTT/round transitions correctly
(ns/packet/bbr_generator.py:140-210, ns/packet/
bbr_generator.py:260-365).
- Added a unit suite that feeds synthetic rate samples to confirm the
controller exits STARTUP, walks the ProbeBW phases (including UP), and
clamps cwnd during PROBE_RTT (tests/flow/test_bbrv3.py:1-69). Added an
end-to-end SimPy regression that wires up a BBRPacketGenerator/TCPSink
loop and verifies the flow reaches PROBE_BW with a positive pacing rate
(tests/flow/test_bbrv3_integration.py:1-48).1 parent 1c1f0f8 commit c5e7338
File tree
4 files changed
+386
-654
lines changed- ns
- flow
- packet
- tests/flow
4 files changed
+386
-654
lines changed
0 commit comments