BUG/MINOR: quic: too permissive exit condition for high loss detection in Startup (BBR)

This bug fixes the 3rd condition used by bbr_check_startup_high_loss() to decide
it has detected some high loss as mentioned by the BBR v3 RFC draft:

   4.3.1.3. Exiting Startup Based on Packet Loss
   ...
   There are at least BBRStartupFullLossCnt=6 discontiguous sequence ranges lost in that round trip.

where a <= operator was used in place of <.

Must be backported to 3.1.
This commit is contained in:
Frederic Lecaille 2024-12-13 11:56:49 +01:00
parent 6b4a150e3b
commit de7e56ae96

View File

@ -677,7 +677,7 @@ static void bbr_check_full_bw_reached(struct bbr *bbr, struct quic_cc_path *p)
static void bbr_check_startup_high_loss(struct bbr *bbr, struct quic_cc_path *p)
{
if (bbr->full_bw_reached ||
bbr->loss_events_in_round <= BBR_STARTUP_FULL_LOSS_COUNT ||
bbr->loss_events_in_round < BBR_STARTUP_FULL_LOSS_COUNT ||
(bbr->in_loss_recovery &&
bbr->round_count <= bbr->round_count_at_recovery) ||
!is_inflight_too_high(&bbr->drs.rs)) {