diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-07-05 19:00:03 +0200 |
|---|---|---|
| committer | Sander Vrijders <sander@ouroboros.rocks> | 2026-07-19 11:44:36 +0200 |
| commit | 37fed06ef3f9ee395c671d91b3312679aeb4e6f1 (patch) | |
| tree | 4dce3c7f9a319d9aa18edecf170cb16e7f588518 /src/lib/pol | |
| parent | d050aea4cd892d71ed7fc78b6c6149a7231db5fc (diff) | |
| download | ouroboros-37fed06ef3f9ee395c671d91b3312679aeb4e6f1.tar.gz ouroboros-37fed06ef3f9ee395c671d91b3312679aeb4e6f1.zip | |
ipcpd: Add congestion avoidance unit tests
Cover the shared per-aggregate contexts, the mb-ecn policy and the
link capacity estimator.
The controller tests pin the invariants of the algorithm: the first
mark is reported immediately, the receiver's congestion mean is
independent of packet rate and its window adapts to hold a fixed
sample count, increase and decrease are invariant under control
cadence, a starved sender still cuts and later recovers, signals age
out on rate-relative horizons, capacity feedback derives the rate
floor and recovery slope with clamps and a staleness fallback, and
the pacer bounds the burst after idle.
The estimator tests drive synthetic arrival traces: the capacity code
survives a round trip within its resolution, hops combine by MIN,
busy-period drain measures the link rate, windows extend on slow
links, sparse idle observations are tolerated where unsaturated
windows are rejected, shaped links measure at the shaped rate, stale
windows are discarded, and windows bordering an empty queue can only
lower the estimate.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/lib/pol')
0 files changed, 0 insertions, 0 deletions
