Revert the meaning of QUIC connection option 'B2SL':
- Without the option, use max_delivered for inflight_hi when exiting STARTUP due to loss. This is the new default behavior.
- With the option, use estimated bdp for inflight_hi instead.
PiperOrigin-RevId: 344868027
Change-Id: I890c3970e0d662a31c6298a093dadf83d44dda6e
diff --git a/quic/core/congestion_control/bbr2_misc.h b/quic/core/congestion_control/bbr2_misc.h
index 0b65f9d..5cf0579 100644
--- a/quic/core/congestion_control/bbr2_misc.h
+++ b/quic/core/congestion_control/bbr2_misc.h
@@ -187,8 +187,8 @@
// Can be enabled by connection option 'B2H2'.
bool limit_inflight_hi_by_max_delivered = false;
- // Can be enabled by connection option 'B2SL'.
- bool startup_loss_exit_use_max_delivered_for_inflight_hi = false;
+ // Can be disabled by connection option 'B2SL'.
+ bool startup_loss_exit_use_max_delivered_for_inflight_hi = true;
// Can be enabled by connection option 'B2DL'.
bool use_bytes_delivered_for_inflight_hi = false;
diff --git a/quic/core/congestion_control/bbr2_sender.cc b/quic/core/congestion_control/bbr2_sender.cc
index 9a9cda0..2545fa4 100644
--- a/quic/core/congestion_control/bbr2_sender.cc
+++ b/quic/core/congestion_control/bbr2_sender.cc
@@ -139,7 +139,7 @@
}
if (GetQuicReloadableFlag(quic_bbr2_startup_loss_exit_use_max_delivered) &&
ContainsQuicTag(connection_options, kB2SL)) {
- params_.startup_loss_exit_use_max_delivered_for_inflight_hi = true;
+ params_.startup_loss_exit_use_max_delivered_for_inflight_hi = false;
}
if (GetQuicReloadableFlag(quic_bbr2_startup_loss_exit_use_max_delivered) &&
ContainsQuicTag(connection_options, kB2H2)) {
diff --git a/quic/core/congestion_control/bbr2_simulator_test.cc b/quic/core/congestion_control/bbr2_simulator_test.cc
index d372cf9..fa0f31c 100644
--- a/quic/core/congestion_control/bbr2_simulator_test.cc
+++ b/quic/core/congestion_control/bbr2_simulator_test.cc
@@ -713,6 +713,7 @@
// Test exiting STARTUP earlier upon loss due to loss.
TEST_F(Bbr2DefaultTopologyTest, ExitStartupDueToLoss) {
+ SetQuicReloadableFlag(quic_bbr2_startup_loss_exit_use_max_delivered, true);
DefaultTopologyParams params;
params.switch_queue_capacity_in_bdp = 0.5;
CreateNetwork(params);
@@ -738,11 +739,14 @@
sender_->ExportDebugState().startup.round_trips_without_bandwidth_growth);
EXPECT_NE(0u, sender_connection_stats().packets_lost);
EXPECT_FALSE(sender_->ExportDebugState().last_sample_is_app_limited);
+
+ EXPECT_GT(sender_->ExportDebugState().inflight_hi, 1.2f * params.BDP());
}
// Test exiting STARTUP earlier upon loss due to loss when connection option
// B2SL is used.
TEST_F(Bbr2DefaultTopologyTest, ExitStartupDueToLossB2SL) {
+ SetQuicReloadableFlag(quic_bbr2_startup_loss_exit_use_max_delivered, true);
SetConnectionOption(kB2SL);
DefaultTopologyParams params;
params.switch_queue_capacity_in_bdp = 0.5;
@@ -770,12 +774,7 @@
EXPECT_NE(0u, sender_connection_stats().packets_lost);
EXPECT_FALSE(sender_->ExportDebugState().last_sample_is_app_limited);
- if (GetQuicReloadableFlag(quic_bbr2_startup_loss_exit_use_max_delivered)) {
- EXPECT_GT(sender_->ExportDebugState().inflight_hi, 1.2f * params.BDP());
- } else {
- EXPECT_APPROX_EQ(sender_->ExportDebugState().inflight_hi, params.BDP(),
- 0.1f);
- }
+ EXPECT_APPROX_EQ(sender_->ExportDebugState().inflight_hi, params.BDP(), 0.1f);
}
TEST_F(Bbr2DefaultTopologyTest, SenderPoliced) {