From 33888565d7eb5bbbf6dec4826654e712827ba824 Mon Sep 17 00:00:00 2001 From: Frederic Lecaille Date: Thu, 12 Dec 2024 11:50:26 +0100 Subject: [PATCH] BUG/MINOR: quic: remove max_bw filter from delivery rate sampling This filter is no more needed after this commit: BUG/MINOR: quic: fix BBB max bandwidth oscillation issue. Indeed, one added this filter at delivery rate sampling level to filter the BBR max bandwidth estimations and was inspired from ngtcp2 code source when trying to fix the oscillation issue. But this BBR max bandwidth oscillation issue was fixed by the aforementioned commit. Furthermore this code tends to always increment the BBR max bandwidth. From my point of view, this is not a good idea at all. Must be backported to 3.1. (cherry picked from commit 22ab45a3a84d0a9a61cc90c6efedd893dd1cbe4a) Signed-off-by: Christopher Faulet --- include/haproxy/quic_cc_drs.h | 1 - src/quic_cc_drs.c | 8 ++------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/include/haproxy/quic_cc_drs.h b/include/haproxy/quic_cc_drs.h index a910306..89acb6f 100644 --- a/include/haproxy/quic_cc_drs.h +++ b/include/haproxy/quic_cc_drs.h @@ -20,7 +20,6 @@ struct quic_cc_rs { /* Delivery rate sampling */ struct quic_cc_drs { struct quic_cc_rs rs; - struct wf wf; uint64_t round_count; uint64_t next_round_delivered; uint64_t delivered; diff --git a/src/quic_cc_drs.c b/src/quic_cc_drs.c index 8e9d311..8a0b52c 100644 --- a/src/quic_cc_drs.c +++ b/src/quic_cc_drs.c @@ -26,7 +26,6 @@ static void quic_cc_rs_init(struct quic_cc_rs *rs) void quic_cc_drs_init(struct quic_cc_drs *drs) { quic_cc_rs_init(&drs->rs); - wf_init(&drs->wf, 12, 0, ~0U); drs->round_count = 0; drs->next_round_delivered = 0; drs->delivered = 0; @@ -122,7 +121,6 @@ void quic_cc_drs_on_ack_recv(struct quic_cc_drs *drs, struct quic_cc_path *path, uint64_t pkt_delivered) { struct quic_cc_rs *rs = &drs->rs; - uint64_t rate; if (drs->app_limited && drs->delivered > drs->app_limited) drs->app_limited = 0; @@ -150,8 +148,6 @@ void quic_cc_drs_on_ack_recv(struct quic_cc_drs *drs, struct quic_cc_path *path, if (!rs->interval_us) return; - /* is in bytes/s. */ - rate = rs->delivered * 1000000 / rs->interval_us; - if (rate >= wf_get_max(&drs->wf) || !drs->app_limited) - path->delivery_rate = wf_max_update(&drs->wf, rate, drs->round_count); + /* is in bytes/s. */ + path->delivery_rate = rs->delivered * 1000000 / rs->interval_us; } -- 1.7.10.4