Hi,
I have recently been implementing and testing BBRv3 with PIE AQM in a network modeller.
Should BBR wait for a full round in BW_PROBE_DOWN before transitioning to BW_PROBE_REFILL after seeing ECN in order to improve fairness (particularly if a new flow in entering when an existing flow has already filled the Pipe)?
/* If we seem to be at an operating point where we are not seeing loss
* but we are seeing ECN marks, then when the ECN marks cease we reprobe
* quickly (in case cross-traffic has ceased and freed up bw).
*/
if (bbr_param(sk, ecn_reprobe_gain) && bbr->ecn_eligible &&
bbr->ecn_in_cycle && !bbr->loss_in_cycle && bbr->round_start &&
inet_csk(sk)->icsk_ca_state == TCP_CA_Open) {
/* Calculate n so that when bbr_raise_inflight_hi_slope()
* computes growth_this_round as 2^n it will be roughly the
* desired volume of data (inflight_hi*ecn_reprobe_gain).
*/
n = ilog2((((u64)bbr->inflight_hi *
bbr_param(sk, ecn_reprobe_gain)) >> BBR_SCALE));
bbr_start_bw_probe_refill(sk, n);
return true;
}
Thanks
Frank