gfe-relnote: Deprecate previously rolled back flag gfe2_reloadable_flag_quic_bbr_app_limited_recovery. PiperOrigin-RevId: 256236011 Change-Id: I75f87f4495bf59d81774bf3e6b42fbb198e49b6b
diff --git a/quic/core/congestion_control/bbr_sender.cc b/quic/core/congestion_control/bbr_sender.cc index ef06cbf..65a637c 100644 --- a/quic/core/congestion_control/bbr_sender.cc +++ b/quic/core/congestion_control/bbr_sender.cc
@@ -125,7 +125,6 @@ flexible_app_limited_(false), recovery_state_(NOT_IN_RECOVERY), recovery_window_(max_congestion_window_), - is_app_limited_recovery_(false), slower_startup_(false), rate_based_startup_(false), startup_rate_reduction_multiplier_(0), @@ -750,11 +749,6 @@ // Since the conservation phase is meant to be lasting for a whole // round, extend the current round as if it were started right now. current_round_trip_end_ = last_sent_packet_; - if (GetQuicReloadableFlag(quic_bbr_app_limited_recovery) && - last_sample_is_app_limited_) { - QUIC_RELOADABLE_FLAG_COUNT(quic_bbr_app_limited_recovery); - is_app_limited_recovery_ = true; - } } break; @@ -768,14 +762,10 @@ // Exit recovery if appropriate. if (!has_losses && last_acked_packet > end_recovery_at_) { recovery_state_ = NOT_IN_RECOVERY; - is_app_limited_recovery_ = false; } break; } - if (recovery_state_ != NOT_IN_RECOVERY && is_app_limited_recovery_) { - sampler_.OnAppLimited(); - } } // TODO(ianswett): Move this logic into BandwidthSampler.
diff --git a/quic/core/congestion_control/bbr_sender_test.cc b/quic/core/congestion_control/bbr_sender_test.cc index 6627851..d071ee8 100644 --- a/quic/core/congestion_control/bbr_sender_test.cc +++ b/quic/core/congestion_control/bbr_sender_test.cc
@@ -706,47 +706,6 @@ EXPECT_GE(sender_->ExportDebugState().min_rtt_timestamp, probe_rtt_start); } -// Verify that the first sample after PROBE_RTT is not used as the bandwidth, -// because the round counter doesn't advance during PROBE_RTT. -TEST_F(BbrSenderTest, AppLimitedRecoveryNoBandwidthDecrease) { - SetQuicReloadableFlag(quic_bbr_app_limited_recovery, true); - CreateDefaultSetup(); - DriveOutOfStartup(); - - // We have no intention of ever finishing this transfer. - bbr_sender_.AddBytesToTransfer(100 * 1024 * 1024); - - // Wait until the connection enters PROBE_RTT. - const QuicTime::Delta timeout = QuicTime::Delta::FromSeconds(12); - bool simulator_result = simulator_.RunUntilOrTimeout( - [this]() { - return sender_->ExportDebugState().mode == BbrSender::PROBE_RTT; - }, - timeout); - ASSERT_TRUE(simulator_result); - ASSERT_EQ(BbrSender::PROBE_RTT, sender_->ExportDebugState().mode); - - const QuicBandwidth beginning_bw = sender_->BandwidthEstimate(); - - // Run for most of PROBE_RTT. - const QuicTime probe_rtt_start = clock_->Now(); - const QuicTime::Delta time_to_exit_probe_rtt = - kTestRtt + QuicTime::Delta::FromMilliseconds(200); - simulator_.RunFor(0.60 * time_to_exit_probe_rtt); - EXPECT_EQ(BbrSender::PROBE_RTT, sender_->ExportDebugState().mode); - // Lose a packet before exiting PROBE_RTT, which puts us in packet - // conservation and then continue there for a while and ensure the bandwidth - // estimate doesn't decrease. - for (int i = 0; i < 20; ++i) { - receiver_.DropNextIncomingPacket(); - simulator_.RunFor(0.9 * kTestRtt); - // Ensure the bandwidth didn't decrease and the samples are app limited. - EXPECT_LE(beginning_bw, sender_->BandwidthEstimate()); - EXPECT_TRUE(sender_->ExportDebugState().last_sample_is_app_limited); - } - EXPECT_GE(sender_->ExportDebugState().min_rtt_timestamp, probe_rtt_start); -} - // Verify that the connection enters and exits PROBE_RTT correctly. TEST_F(BbrSenderTest, ProbeRttBDPBasedCWNDTarget) { CreateDefaultSetup();