Deprecate gfe2_reloadable_flag_quic_flush_after_coalesce_higher_space_packets.
PiperOrigin-RevId: 449181836
diff --git a/quiche/quic/core/quic_connection.cc b/quiche/quic/core/quic_connection.cc
index 2b611f7..af9eb4a 100644
--- a/quiche/quic/core/quic_connection.cc
+++ b/quiche/quic/core/quic_connection.cc
@@ -4874,29 +4874,19 @@
}
}
- if (connection_->flush_after_coalesce_higher_space_packets_) {
- // INITIAL or HANDSHAKE retransmission could cause peer to derive new
- // keys, such that the buffered undecryptable packets may be processed.
- // This endpoint would derive an inflated RTT sample when receiving ACKs
- // of those undecryptable packets. To mitigate this, tries to coalesce as
- // many higher space packets as possible (via for loop inside
- // MaybeCoalescePacketOfHigherSpace) to fill the remaining space in the
- // coalescer.
- QUIC_RELOADABLE_FLAG_COUNT(
- quic_flush_after_coalesce_higher_space_packets);
- if (connection_->version().CanSendCoalescedPackets()) {
- connection_->MaybeCoalescePacketOfHigherSpace();
- }
- connection_->packet_creator_.Flush();
- if (connection_->version().CanSendCoalescedPackets()) {
- connection_->FlushCoalescedPacket();
- }
- } else {
- connection_->packet_creator_.Flush();
- if (connection_->version().CanSendCoalescedPackets()) {
- connection_->MaybeCoalescePacketOfHigherSpace();
- connection_->FlushCoalescedPacket();
- }
+ // INITIAL or HANDSHAKE retransmission could cause peer to derive new
+ // keys, such that the buffered undecryptable packets may be processed.
+ // This endpoint would derive an inflated RTT sample when receiving ACKs
+ // of those undecryptable packets. To mitigate this, tries to coalesce as
+ // many higher space packets as possible (via for loop inside
+ // MaybeCoalescePacketOfHigherSpace) to fill the remaining space in the
+ // coalescer.
+ if (connection_->version().CanSendCoalescedPackets()) {
+ connection_->MaybeCoalescePacketOfHigherSpace();
+ }
+ connection_->packet_creator_.Flush();
+ if (connection_->version().CanSendCoalescedPackets()) {
+ connection_->FlushCoalescedPacket();
}
connection_->FlushPackets();
if (!handshake_packet_sent_ && connection_->handshake_packet_sent_) {
@@ -5980,8 +5970,7 @@
}
if (fill_coalesced_packet_) {
// Make sure MaybeCoalescePacketOfHigherSpace is not re-entrant.
- QUIC_BUG_IF(quic_coalesce_packet_reentrant,
- flush_after_coalesce_higher_space_packets_);
+ QUIC_BUG(quic_coalesce_packet_reentrant);
return;
}
for (EncryptionLevel retransmission_level :
diff --git a/quiche/quic/core/quic_connection.h b/quiche/quic/core/quic_connection.h
index 09cef3d..8bb2629 100644
--- a/quiche/quic/core/quic_connection.h
+++ b/quiche/quic/core/quic_connection.h
@@ -2250,9 +2250,6 @@
// Enable this via reloadable flag once this feature is complete.
bool connection_migration_use_new_cid_ = false;
- const bool flush_after_coalesce_higher_space_packets_ =
- GetQuicReloadableFlag(quic_flush_after_coalesce_higher_space_packets);
-
// If true, send connection close packet on INVALID_VERSION.
bool send_connection_close_for_invalid_version_ = false;
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc
index b8cac26..2154d94 100644
--- a/quiche/quic/core/quic_connection_test.cc
+++ b/quiche/quic/core/quic_connection_test.cc
@@ -14978,21 +14978,12 @@
connection_.GetAckAlarm()->deadline());
// ACK is not throttled by amplification limit, and SHLO is bundled. Also
// HANDSHAKE + 1RTT packets get coalesced.
- if (GetQuicReloadableFlag(quic_flush_after_coalesce_higher_space_packets)) {
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(3);
- } else {
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(2);
- }
+ EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(3);
// ACK alarm fires.
clock_.AdvanceTime(kAlarmGranularity);
connection_.GetAckAlarm()->Fire();
- if (GetQuicReloadableFlag(quic_flush_after_coalesce_higher_space_packets)) {
- // Verify 1-RTT packet is coalesced.
- EXPECT_EQ(0x04040404u, writer_->final_bytes_of_last_packet());
- } else {
- // Verify HANDSHAKE packet is coalesced with INITIAL ACK + SHLO.
- EXPECT_EQ(0x03030303u, writer_->final_bytes_of_last_packet());
- }
+ // Verify 1-RTT packet is coalesced.
+ EXPECT_EQ(0x04040404u, writer_->final_bytes_of_last_packet());
// Only the first packet in the coalesced packet has been processed,
// verify SHLO is bundled with INITIAL ACK.
EXPECT_EQ(1u, writer_->ack_frames().size());
@@ -15003,16 +14994,12 @@
writer_->framer()->ProcessPacket(*packet);
EXPECT_EQ(0u, writer_->ack_frames().size());
EXPECT_EQ(1u, writer_->crypto_frames().size());
- if (GetQuicReloadableFlag(quic_flush_after_coalesce_higher_space_packets)) {
- // Process the coalesced 1-RTT packet.
- ASSERT_TRUE(writer_->coalesced_packet() != nullptr);
- packet = writer_->coalesced_packet()->Clone();
- writer_->framer()->ProcessPacket(*packet);
- EXPECT_EQ(0u, writer_->crypto_frames().size());
- EXPECT_EQ(1u, writer_->stream_frames().size());
- } else {
- ASSERT_TRUE(writer_->coalesced_packet() == nullptr);
- }
+ // Process the coalesced 1-RTT packet.
+ ASSERT_TRUE(writer_->coalesced_packet() != nullptr);
+ packet = writer_->coalesced_packet()->Clone();
+ writer_->framer()->ProcessPacket(*packet);
+ EXPECT_EQ(0u, writer_->crypto_frames().size());
+ EXPECT_EQ(1u, writer_->stream_frames().size());
// Received INITIAL 3.
EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(AnyNumber());
@@ -15393,10 +15380,6 @@
auto packet = writer_->coalesced_packet()->Clone();
writer_->framer()->ProcessPacket(*packet);
EXPECT_EQ(1u, writer_->crypto_frames().size());
- if (!GetQuicReloadableFlag(quic_flush_after_coalesce_higher_space_packets)) {
- ASSERT_TRUE(writer_->coalesced_packet() == nullptr);
- return;
- }
// Process 1-RTT packet.
ASSERT_TRUE(writer_->coalesced_packet() != nullptr);
packet = writer_->coalesced_packet()->Clone();
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index 3278596..b515e22 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -59,8 +59,6 @@
QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_not_bundle_ack_on_alternative_path, true)
// If true, enable server retransmittable on wire PING.
QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_server_on_wire_ping, true)
-// If true, flush creator after coalesce packet of higher space.
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_flush_after_coalesce_higher_space_packets, true)
// If true, flush pending frames as well as pending padding bytes on connection migration.
QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_flush_pending_frames_and_padding_bytes_on_migration, true)
// If true, ietf connection migration is no longer conditioned on connection option RVCM.