In uStreamer, add a quic_enable_bandwidth_overestimate_avoidance experiment flag and use it to enable bandwidth overestimate avoidance(connection option BSAO) for BBR and BBRv2.
In a follow up cl, I'll add two more experiments to QuicBbrV2Study, one for BBR+BSAO, another for BBRv2+BSAO.
(n/a) no behavior change.
PiperOrigin-RevId: 321646584
Change-Id: I35e3e037418d12bdd28355e13d3ae2401de4c7c0
diff --git a/quic/core/congestion_control/bbr2_sender.cc b/quic/core/congestion_control/bbr2_sender.cc
index 3f80f42..3c7ba2f 100644
--- a/quic/core/congestion_control/bbr2_sender.cc
+++ b/quic/core/congestion_control/bbr2_sender.cc
@@ -95,9 +95,6 @@
if (config.HasClientRequestedIndependentOption(kBBR9, perspective)) {
params_.flexible_app_limited = true;
}
- if (config.HasClientRequestedIndependentOption(kBSAO, perspective)) {
- model_.EnableOverestimateAvoidance();
- }
if (config.HasClientRequestedIndependentOption(kB2NA, perspective)) {
params_.add_ack_height_to_queueing_threshold = false;
}
@@ -139,6 +136,9 @@
params_.startup_cwnd_gain = 2;
params_.drain_cwnd_gain = 2;
}
+ if (ContainsQuicTag(connection_options, kBSAO)) {
+ model_.EnableOverestimateAvoidance();
+ }
}
Limits<QuicByteCount> Bbr2Sender::GetCwndLimitsByMode() const {