From 178109f608ae1e446d9ea898bf5c83e4e8313bb5 Mon Sep 17 00:00:00 2001 From: Frederic Lecaille Date: Fri, 13 Dec 2024 11:56:49 +0100 Subject: [PATCH] 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. --- src/quic_cc_bbr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/quic_cc_bbr.c b/src/quic_cc_bbr.c index 6179c9f24b..3f49417eec 100644 --- a/src/quic_cc_bbr.c +++ b/src/quic_cc_bbr.c @@ -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)) { -- 2.47.3