Restart bandwidth BOW-response triggered bandwidth resumption experiment. Protected by FLAGS_quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle_v2. PiperOrigin-RevId: 455725458
diff --git a/quiche/quic/core/http/quic_server_session_base.cc b/quiche/quic/core/http/quic_server_session_base.cc index d59602e..f94f09f 100644 --- a/quiche/quic/core/http/quic_server_session_base.cc +++ b/quiche/quic/core/http/quic_server_session_base.cc
@@ -88,7 +88,7 @@ enable_sending_bandwidth_estimate_when_network_idle_ = GetQuicRestartFlag( - quic_enable_sending_bandwidth_estimate_when_network_idle) && + quic_enable_sending_bandwidth_estimate_when_network_idle_v2) && version().HasIetfQuicFrames() && ContainsQuicTag(config()->ReceivedConnectionOptions(), kBWID); @@ -146,7 +146,7 @@ const bool success = MaybeSendAddressToken(); QUIC_BUG_IF(QUIC_BUG_25522, !success) << "Failed to send address token."; QUIC_RESTART_FLAG_COUNT_N( - quic_enable_sending_bandwidth_estimate_when_network_idle, 2, 3); + quic_enable_sending_bandwidth_estimate_when_network_idle_v2, 2, 3); } } @@ -154,9 +154,9 @@ // Sending bandwidth is no longer conditioned on if session does bandwidth // resumption. if (GetQuicRestartFlag( - quic_enable_sending_bandwidth_estimate_when_network_idle)) { + quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) { QUIC_RESTART_FLAG_COUNT_N( - quic_enable_sending_bandwidth_estimate_when_network_idle, 3, 3); + quic_enable_sending_bandwidth_estimate_when_network_idle_v2, 3, 3); return; } if (!bandwidth_resumption_enabled_) {
diff --git a/quiche/quic/core/http/quic_server_session_base_test.cc b/quiche/quic/core/http/quic_server_session_base_test.cc index df099a6..a722240 100644 --- a/quiche/quic/core/http/quic_server_session_base_test.cc +++ b/quiche/quic/core/http/quic_server_session_base_test.cc
@@ -608,7 +608,7 @@ HAS_RETRANSMITTABLE_DATA, true); if (GetQuicRestartFlag( - quic_enable_sending_bandwidth_estimate_when_network_idle)) { + quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) { EXPECT_CALL(*connection_, OnSendConnectionState(_)).Times(0); } else { // Verify that the proto has exactly the values we expect.
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h index 050f26e..2f651ad 100644 --- a/quiche/quic/core/quic_flags_list.h +++ b/quiche/quic/core/quic_flags_list.h
@@ -80,7 +80,7 @@ // If true, server proactively retires client issued connection ID on reverse path validation failure. QUIC_FLAG(quic_reloadable_flag_quic_retire_cid_on_reverse_path_validation_failure, true) // If true, server sends bandwidth eastimate when network is idle for a while. -QUIC_FLAG(quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle, false) +QUIC_FLAG(quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle_v2, false) // If true, set burst token to 2 in cwnd bootstrapping experiment. QUIC_FLAG(quic_reloadable_flag_quic_conservative_bursts, false) // If true, stop resetting ideal_next_packet_send_time_ in pacing sender.
diff --git a/quiche/quic/core/quic_idle_network_detector.cc b/quiche/quic/core/quic_idle_network_detector.cc index a5bd8ad..5a63ebc 100644 --- a/quiche/quic/core/quic_idle_network_detector.cc +++ b/quiche/quic/core/quic_idle_network_detector.cc
@@ -74,10 +74,10 @@ bandwidth_update_timeout_ = QuicTime::Delta::Infinite(); if (GetQuicRestartFlag( - quic_enable_sending_bandwidth_estimate_when_network_idle) && + quic_enable_sending_bandwidth_estimate_when_network_idle_v2) && handshake_timeout_.IsInfinite()) { QUIC_RESTART_FLAG_COUNT_N( - quic_enable_sending_bandwidth_estimate_when_network_idle, 1, 3); + quic_enable_sending_bandwidth_estimate_when_network_idle_v2, 1, 3); bandwidth_update_timeout_ = idle_network_timeout_ * 0.5; }
diff --git a/quiche/quic/core/quic_idle_network_detector_test.cc b/quiche/quic/core/quic_idle_network_detector_test.cc index 9105ec9..a139eb2 100644 --- a/quiche/quic/core/quic_idle_network_detector_test.cc +++ b/quiche/quic/core/quic_idle_network_detector_test.cc
@@ -103,7 +103,7 @@ /*handshake_timeout=*/QuicTime::Delta::Infinite(), /*idle_network_timeout=*/QuicTime::Delta::FromSeconds(600)); if (!GetQuicRestartFlag( - quic_enable_sending_bandwidth_estimate_when_network_idle)) { + quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) { EXPECT_EQ(clock_.Now() + QuicTime::Delta::FromSeconds(600), alarm_->deadline()); @@ -141,7 +141,7 @@ // Handshake completes in 200ms. const bool enable_sending_bandwidth_estimate_when_network_idle = GetQuicRestartFlag( - quic_enable_sending_bandwidth_estimate_when_network_idle); + quic_enable_sending_bandwidth_estimate_when_network_idle_v2); clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(200)); detector_->OnPacketReceived(clock_.Now()); detector_->SetTimeouts( @@ -195,7 +195,7 @@ detector_->enable_shorter_idle_timeout_on_sent_packet(); QuicTime::Delta idle_network_timeout = QuicTime::Delta::Zero(); if (GetQuicRestartFlag( - quic_enable_sending_bandwidth_estimate_when_network_idle)) { + quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) { idle_network_timeout = QuicTime::Delta::FromSeconds(60); } else { idle_network_timeout = QuicTime::Delta::FromSeconds(30); @@ -250,7 +250,7 @@ TEST_F(QuicIdleNetworkDetectorTest, ResetBandwidthTimeoutWhenHandshakeTimeoutIsSet) { if (!GetQuicRestartFlag( - quic_enable_sending_bandwidth_estimate_when_network_idle)) { + quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) { return; } detector_->SetTimeouts(