From: Frederic Lecaille Date: Fri, 13 Dec 2024 10:56:49 +0000 (+0100) Subject: BUG/MINOR: quic: too permissive exit condition for high loss detection in Startup... X-Git-Tag: v3.2-dev2~80 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=178109f608ae1e446d9ea898bf5c83e4e8313bb5;p=thirdparty%2Fhaproxy.git 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. --- 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)) {