gfe-relnote: Default-initialize some QUIC BBRv2 parameters from flags. Protected by --gfe2_reloadable_flag_quic_default_to_bbr_v2. This allows us to try different probe_bw cycle lengths and probe_rtt frequencies. PiperOrigin-RevId: 261923384 Change-Id: I4345e62d22e2e62ade2f8dd843d4ac00279892c0
diff --git a/quic/core/congestion_control/bbr2_misc.cc b/quic/core/congestion_control/bbr2_misc.cc index f5e3d18..56e7270 100644 --- a/quic/core/congestion_control/bbr2_misc.cc +++ b/quic/core/congestion_control/bbr2_misc.cc
@@ -15,8 +15,6 @@ // Sensitivity in response to losses. 0 means no loss response. // 0.3 is also used by TCP bbr and cubic. const float kBeta = 0.3; - -const QuicTime::Delta kMinRttExpiry = QuicTime::Delta::FromSeconds(10); } // namespace RoundTripCounter::RoundTripCounter() : round_trip_count_(0) {} @@ -264,7 +262,8 @@ bool Bbr2NetworkModel::MaybeExpireMinRtt( const Bbr2CongestionEvent& congestion_event) { - if (congestion_event.event_time < (MinRttTimestamp() + kMinRttExpiry)) { + if (congestion_event.event_time < + (MinRttTimestamp() + Params().probe_rtt_period)) { return false; } if (congestion_event.sample_min_rtt.IsInfinite()) {
diff --git a/quic/core/congestion_control/bbr2_misc.h b/quic/core/congestion_control/bbr2_misc.h index 1b695e3..d38163b 100644 --- a/quic/core/congestion_control/bbr2_misc.h +++ b/quic/core/congestion_control/bbr2_misc.h
@@ -15,6 +15,7 @@ #include "net/third_party/quiche/src/quic/core/quic_time.h" #include "net/third_party/quiche/src/quic/core/quic_types.h" #include "net/third_party/quiche/src/quic/platform/api/quic_export.h" +#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h" #include "net/quic/platform/impl/quic_export_impl.h" namespace quic { @@ -111,11 +112,13 @@ // Minimum duration for BBR-native probes. QuicTime::Delta probe_bw_probe_base_duration = - QuicTime::Delta::FromSeconds(2); + QuicTime::Delta::FromMilliseconds( + GetQuicFlag(FLAGS_quic_bbr2_default_probe_bw_base_duration_ms)); - // The upper bound of the random amound of BBR-native probes. + // The upper bound of the random amount of BBR-native probes. QuicTime::Delta probe_bw_probe_max_rand_duration = - QuicTime::Delta::FromSeconds(1); + QuicTime::Delta::FromMilliseconds( + GetQuicFlag(FLAGS_quic_bbr2_default_probe_bw_max_rand_duration_ms)); // Multiplier to get target inflight (as multiple of BDP) for PROBE_UP phase. float probe_bw_probe_inflight_gain = 1.25; @@ -131,6 +134,8 @@ * PROBE_RTT parameters. */ float probe_rtt_inflight_target_bdp_fraction = 0.5; + QuicTime::Delta probe_rtt_period = QuicTime::Delta::FromMilliseconds( + GetQuicFlag(FLAGS_quic_bbr2_default_probe_rtt_period_ms)); QuicTime::Delta probe_rtt_duration = QuicTime::Delta::FromMilliseconds(200); /*