Deprecate --gfe2_reloadable_flag_quic_fix_pacing_sender_bursts.
PiperOrigin-RevId: 477245196
diff --git a/quiche/quic/core/congestion_control/bbr2_simulator_test.cc b/quiche/quic/core/congestion_control/bbr2_simulator_test.cc
index 9c0d106..8dce6bd 100644
--- a/quiche/quic/core/congestion_control/bbr2_simulator_test.cc
+++ b/quiche/quic/core/congestion_control/bbr2_simulator_test.cc
@@ -672,11 +672,7 @@
EXPECT_APPROX_EQ(params.BottleneckBandwidth(),
sender_->ExportDebugState().bandwidth_hi, 0.01f);
- if (GetQuicReloadableFlag(quic_fix_pacing_sender_bursts)) {
- EXPECT_EQ(sender_loss_rate_in_packets(), 0);
- } else {
- EXPECT_LE(sender_loss_rate_in_packets(), 0.05);
- }
+ EXPECT_EQ(sender_loss_rate_in_packets(), 0);
// The margin here is high, because both link level aggregation and ack
// decimation can greatly increase smoothed rtt.
EXPECT_GE(params.RTT() * 5, rtt_stats()->smoothed_rtt());
@@ -698,11 +694,7 @@
EXPECT_APPROX_EQ(params.BottleneckBandwidth(),
sender_->ExportDebugState().bandwidth_hi, 0.5f);
- if (GetQuicReloadableFlag(quic_fix_pacing_sender_bursts)) {
- EXPECT_LE(sender_loss_rate_in_packets(), 0.01);
- } else {
- EXPECT_LE(sender_loss_rate_in_packets(), 0.05);
- }
+ EXPECT_LE(sender_loss_rate_in_packets(), 0.01);
// The margin here is high, because both link level aggregation and ack
// decimation can greatly increase smoothed rtt.
EXPECT_GE(params.RTT() * 5, rtt_stats()->smoothed_rtt());
diff --git a/quiche/quic/core/congestion_control/pacing_sender.cc b/quiche/quic/core/congestion_control/pacing_sender.cc
index 1978158..46ba8a1 100644
--- a/quiche/quic/core/congestion_control/pacing_sender.cc
+++ b/quiche/quic/core/congestion_control/pacing_sender.cc
@@ -94,9 +94,7 @@
// is about 10ms of queueing.
lumpy_tokens_ = 1u;
}
- if (GetQuicReloadableFlag(quic_fix_pacing_sender_bursts) &&
- (bytes_in_flight + bytes) >= sender_->GetCongestionWindow()) {
- QUIC_RELOADABLE_FLAG_COUNT(quic_fix_pacing_sender_bursts);
+ if ((bytes_in_flight + bytes) >= sender_->GetCongestionWindow()) {
// Don't add lumpy_tokens if the congestion controller is CWND limited.
lumpy_tokens_ = 1u;
}
diff --git a/quiche/quic/core/congestion_control/pacing_sender_test.cc b/quiche/quic/core/congestion_control/pacing_sender_test.cc
index f53f445..7206b4c 100644
--- a/quiche/quic/core/congestion_control/pacing_sender_test.cc
+++ b/quiche/quic/core/congestion_control/pacing_sender_test.cc
@@ -18,7 +18,6 @@
using testing::_;
using testing::AtMost;
-using testing::IsEmpty;
using testing::Return;
using testing::StrictMock;
@@ -340,8 +339,8 @@
lost_packets.push_back(
LostPacket(QuicPacketNumber(1), kMaxOutgoingPacketSize));
AckedPacketVector empty_acked;
- EXPECT_CALL(*mock_sender_,
- OnCongestionEvent(true, kMaxOutgoingPacketSize, _, IsEmpty(), _));
+ EXPECT_CALL(*mock_sender_, OnCongestionEvent(true, kMaxOutgoingPacketSize, _,
+ testing::IsEmpty(), _));
pacing_sender_->OnCongestionEvent(true, kMaxOutgoingPacketSize, clock_.Now(),
empty_acked, lost_packets);
// One packet is sent immediately, because of 1ms pacing granularity.
@@ -501,23 +500,13 @@
CheckPacketIsSentImmediately(HAS_RETRANSMITTABLE_DATA,
10 * kMaxOutgoingPacketSize, false, 10);
- if (GetQuicReloadableFlag(quic_fix_pacing_sender_bursts)) {
- // The last sent packet made the connection CWND limited, so no lumpy tokens
- // should be available.
- EXPECT_EQ(0u, pacing_sender_->lumpy_tokens());
- CheckPacketIsSentImmediately(HAS_RETRANSMITTABLE_DATA,
- 10 * kMaxOutgoingPacketSize, false, 10);
- EXPECT_EQ(0u, pacing_sender_->lumpy_tokens());
- CheckPacketIsDelayed(2 * inter_packet_delay);
- } else {
- EXPECT_EQ(1u, pacing_sender_->lumpy_tokens());
- // Repeatedly send single packets to make the sender CWND limited and
- // observe that there's no pacing without the fix.
- for (int i = 0; i < 10; ++i) {
- CheckPacketIsSentImmediately(HAS_RETRANSMITTABLE_DATA,
- 10 * kMaxOutgoingPacketSize, false, 10);
- }
- }
+ // The last sent packet made the connection CWND limited, so no lumpy tokens
+ // should be available.
+ EXPECT_EQ(0u, pacing_sender_->lumpy_tokens());
+ CheckPacketIsSentImmediately(HAS_RETRANSMITTABLE_DATA,
+ 10 * kMaxOutgoingPacketSize, false, 10);
+ EXPECT_EQ(0u, pacing_sender_->lumpy_tokens());
+ CheckPacketIsDelayed(2 * inter_packet_delay);
}
TEST_F(PacingSenderTest, IdealNextPacketSendTimeWithLumpyPacing) {
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index a0424b8..908286b 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -89,8 +89,6 @@
QUIC_FLAG(quic_restart_flag_quic_abstract_connection_id_generator, true)
// When true, defaults to BBR congestion control instead of Cubic.
QUIC_FLAG(quic_reloadable_flag_quic_default_to_bbr, false)
-// When true, prevents QUIC\'s PacingSender from generating bursts when the congestion controller is CWND limited and not pacing limited.
-QUIC_FLAG(quic_reloadable_flag_quic_fix_pacing_sender_bursts, true)
// When true, set the initial congestion control window from connection options in QuicSentPacketManager rather than TcpCubicSenderBytes.
QUIC_FLAG(quic_reloadable_flag_quic_unified_iw_options, true)
// When true, support draft-ietf-quic-v2-01