From: Frederic Lecaille Date: Thu, 28 May 2026 13:08:07 +0000 (+0200) Subject: BUG/MEDIUM: quic: reset cwnd in slow_start on persistent congestion (cubic) X-Git-Tag: v3.4.0~63 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=ab8603c6d5b035be89a0e9239d80221ec115380d;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: quic: reset cwnd in slow_start on persistent congestion (cubic) The cubic slow_start callback was only resetting the internal cubic state without reducing the congestion window, unlike newreno which calls quic_cc_path_reset(). Per RFC 9002, persistent congestion should trigger both entry into slow start and a reduction of the congestion window. Must be backported to all versions. --- diff --git a/src/quic_cc_cubic.c b/src/quic_cc_cubic.c index 2532b54dc..98ba360b8 100644 --- a/src/quic_cc_cubic.c +++ b/src/quic_cc_cubic.c @@ -390,7 +390,10 @@ static inline void quic_cubic_update(struct quic_cc *cc, uint32_t acked) static void quic_cc_cubic_slow_start(struct quic_cc *cc) { + struct quic_cc_path *path = container_of(cc, struct quic_cc_path, cc); + TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc); + quic_cc_path_reset(path); quic_cc_cubic_reset(cc); TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc); }