Deprecate --gfe2_restart_flag_quic_time_wait_list_support_multiple_cid_v2
PiperOrigin-RevId: 399933965
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index b52d4d1..f152e6e 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -324,7 +324,6 @@
support_multiple_connection_ids_ =
version().HasIetfQuicFrames() &&
- GetQuicRestartFlag(quic_time_wait_list_support_multiple_cid_v2) &&
GetQuicRestartFlag(
quic_dispatcher_support_multiple_cid_per_connection_v2);
diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index 3e33c29..7bf4576 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -177,7 +177,6 @@
SerializeConnectionClosePacket(error_code, error_details);
time_wait_list_manager_->AddConnectionIdToTimeWait(
- server_connection_id_,
QuicTimeWaitListManager::SEND_TERMINATION_PACKETS,
TimeWaitConnectionInfo(ietf_quic, collector_.packets(),
std::move(active_connection_ids),
@@ -896,7 +895,7 @@
QUIC_CODE_COUNT(quic_v44_add_to_time_wait_list_with_stateless_reset);
}
time_wait_list_manager_->AddConnectionIdToTimeWait(
- server_connection_id, action,
+ action,
TimeWaitConnectionInfo(
connection->version().HasIetfInvariantHeader(),
connection->termination_packets(),
@@ -1119,9 +1118,8 @@
<< ", error_code:" << error_code
<< ", error_details:" << error_details;
time_wait_list_manager_->AddConnectionIdToTimeWait(
- server_connection_id, action,
- TimeWaitConnectionInfo(format != GOOGLE_QUIC_PACKET, nullptr,
- {server_connection_id}));
+ action, TimeWaitConnectionInfo(format != GOOGLE_QUIC_PACKET, nullptr,
+ {server_connection_id}));
return;
}
@@ -1159,7 +1157,7 @@
/*ietf_quic=*/format != GOOGLE_QUIC_PACKET, use_length_prefix,
/*versions=*/{}));
time_wait_list_manager()->AddConnectionIdToTimeWait(
- server_connection_id, QuicTimeWaitListManager::SEND_TERMINATION_PACKETS,
+ QuicTimeWaitListManager::SEND_TERMINATION_PACKETS,
TimeWaitConnectionInfo(/*ietf_quic=*/format != GOOGLE_QUIC_PACKET,
&termination_packets, {server_connection_id}));
}
diff --git a/quic/core/quic_dispatcher.h b/quic/core/quic_dispatcher.h
index 3d36812..0073666 100644
--- a/quic/core/quic_dispatcher.h
+++ b/quic/core/quic_dispatcher.h
@@ -491,7 +491,6 @@
GetQuicRestartFlag(quic_use_recent_reset_addresses);
const bool support_multiple_cid_per_connection_ =
- GetQuicRestartFlag(quic_time_wait_list_support_multiple_cid_v2) &&
GetQuicRestartFlag(
quic_dispatcher_support_multiple_cid_per_connection_v2);
};
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index a5bf226..2851ff5 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -897,7 +897,7 @@
EXPECT_CALL(*time_wait_list_manager_,
ProcessPacket(_, _, connection_id, _, _, _))
.Times(1);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
ProcessPacket(client_address, connection_id, true, "data");
}
@@ -913,7 +913,7 @@
EXPECT_CALL(*time_wait_list_manager_,
ProcessPacket(_, _, connection_id, _, _, _))
.Times(0);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _))
.Times(1);
@@ -935,7 +935,7 @@
EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _, _))
.Times(0);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
// Verify small packet is silently dropped.
EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _))
@@ -955,7 +955,7 @@
EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _, _))
.Times(0);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
if (GetQuicRestartFlag(quic_drop_invalid_flags)) {
EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _))
@@ -1201,7 +1201,7 @@
.Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _, _))
.Times(0);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
ProcessPacket(client_address, TestConnectionId(1), /*has_version_flag=*/true,
"data");
@@ -1220,7 +1220,7 @@
EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _, _))
.Times(0);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
ProcessFirstFlight(client_address, EmptyQuicConnectionId());
}
@@ -1236,7 +1236,7 @@
EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _, _))
.Times(0);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
absl::string_view cid_str = "123456789abcdefg123456789abcdefg";
QuicConnectionId invalid_connection_id(cid_str.data(), cid_str.length());
@@ -1658,7 +1658,7 @@
EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, SendPacket(_, _, _)).Times(0);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
ProcessPacket(client_address, TestConnectionId(1), /*has_version_flag=*/true,
version_, SerializeCHLO(), /*full_padding=*/false,
@@ -1811,7 +1811,7 @@
EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, _, _, _, _)).Times(0);
EXPECT_CALL(*time_wait_list_manager_, ProcessPacket(_, _, _, _, _, _))
.Times(0);
- EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*time_wait_list_manager_, AddConnectionIdToTimeWait(_, _))
.Times(0);
ProcessPacket(client_address, connection_id, true, "data",
@@ -2126,7 +2126,6 @@
public:
QuicDispatcherSupportMultipleConnectionIdPerConnectionTest()
: QuicDispatcherTestBase(crypto_test_utils::ProofSourceForTesting()) {
- SetQuicRestartFlag(quic_time_wait_list_support_multiple_cid_v2, true);
SetQuicRestartFlag(quic_dispatcher_support_multiple_cid_per_connection_v2,
true);
dispatcher_ = std::make_unique<NiceMock<TestDispatcher>>(
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index d0a1bec..ac7efde 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -105,8 +105,6 @@
QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_donot_reset_ideal_next_packet_send_time, false)
// If true, suppress crypto data write in mid of packet processing.
QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_suppress_write_mid_packet_processing, true)
-// If true, time_wait_list can support multiple connection IDs.
-QUIC_FLAG(FLAGS_quic_restart_flag_quic_time_wait_list_support_multiple_cid_v2, true)
// If true, use BBRv2 as the default congestion controller. Takes precedence over --quic_default_to_bbr.
QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_default_to_bbr_v2, false)
// If true, use new connection ID in connection migration.
diff --git a/quic/core/quic_time_wait_list_manager.cc b/quic/core/quic_time_wait_list_manager.cc
index ef64125..c92b636 100644
--- a/quic/core/quic_time_wait_list_manager.cc
+++ b/quic/core/quic_time_wait_list_manager.cc
@@ -91,9 +91,6 @@
QuicTimeWaitListManager::ConnectionIdMap::iterator
QuicTimeWaitListManager::FindConnectionIdDataInMap(
const QuicConnectionId& connection_id) {
- if (!use_indirect_connection_id_map_) {
- return connection_id_map_.find(connection_id);
- }
auto it = indirect_connection_id_map_.find(connection_id);
if (it == indirect_connection_id_map_.end()) {
return connection_id_map_.end();
@@ -106,12 +103,8 @@
int num_packets,
TimeWaitAction action,
TimeWaitConnectionInfo info) {
- if (use_indirect_connection_id_map_) {
- QUIC_RESTART_FLAG_COUNT_N(quic_time_wait_list_support_multiple_cid_v2, 1,
- 3);
- for (const auto& cid : info.active_connection_ids) {
- indirect_connection_id_map_[cid] = canonical_connection_id;
- }
+ for (const auto& cid : info.active_connection_ids) {
+ indirect_connection_id_map_[cid] = canonical_connection_id;
}
ConnectionIdData data(num_packets, clock_->ApproximateNow(), action,
std::move(info));
@@ -121,24 +114,18 @@
void QuicTimeWaitListManager::RemoveConnectionDataFromMap(
ConnectionIdMap::iterator it) {
- if (use_indirect_connection_id_map_) {
- QUIC_RESTART_FLAG_COUNT_N(quic_time_wait_list_support_multiple_cid_v2, 2,
- 3);
- for (const auto& cid : it->second.info.active_connection_ids) {
- indirect_connection_id_map_.erase(cid);
- }
+ for (const auto& cid : it->second.info.active_connection_ids) {
+ indirect_connection_id_map_.erase(cid);
}
connection_id_map_.erase(it);
}
void QuicTimeWaitListManager::AddConnectionIdToTimeWait(
- QuicConnectionId connection_id,
TimeWaitAction action,
TimeWaitConnectionInfo info) {
QUICHE_DCHECK(!info.active_connection_ids.empty());
const QuicConnectionId& canonical_connection_id =
- use_indirect_connection_id_map_ ? info.active_connection_ids.front()
- : connection_id;
+ info.active_connection_ids.front();
QUICHE_DCHECK(action != SEND_TERMINATION_PACKETS ||
!info.termination_packets.empty());
QUICHE_DCHECK(action != DO_NOTHING || info.ietf_quic);
@@ -154,26 +141,18 @@
GetQuicFlag(FLAGS_quic_time_wait_list_max_connections);
QUICHE_DCHECK(connection_id_map_.empty() ||
num_connections() < static_cast<size_t>(max_connections));
- if (use_indirect_connection_id_map_ && new_connection_id) {
- QUIC_RESTART_FLAG_COUNT_N(quic_time_wait_list_support_multiple_cid_v2, 3,
- 3);
+ if (new_connection_id) {
for (const auto& cid : info.active_connection_ids) {
visitor_->OnConnectionAddedToTimeWaitList(cid);
}
}
AddConnectionIdDataToMap(canonical_connection_id, num_packets, action,
std::move(info));
- if (!use_indirect_connection_id_map_ && new_connection_id) {
- visitor_->OnConnectionAddedToTimeWaitList(canonical_connection_id);
- }
}
bool QuicTimeWaitListManager::IsConnectionIdInTimeWait(
QuicConnectionId connection_id) const {
- if (use_indirect_connection_id_map_) {
- return indirect_connection_id_map_.contains(connection_id);
- }
- return connection_id_map_.contains(connection_id);
+ return indirect_connection_id_map_.contains(connection_id);
}
void QuicTimeWaitListManager::OnBlockedWriterCanWrite() {
diff --git a/quic/core/quic_time_wait_list_manager.h b/quic/core/quic_time_wait_list_manager.h
index fe15159..a084484 100644
--- a/quic/core/quic_time_wait_list_manager.h
+++ b/quic/core/quic_time_wait_list_manager.h
@@ -99,14 +99,13 @@
QuicTimeWaitListManager& operator=(const QuicTimeWaitListManager&) = delete;
~QuicTimeWaitListManager() override;
- // Adds the given connection_id to time wait state for time_wait_period_.
- // If |termination_packets| are provided, copies of these packets will be sent
- // when a packet with this connection ID is processed. Any termination packets
- // will be move from |termination_packets| and will become owned by the
- // manager. |action| specifies what the time wait list manager should do when
- // processing packets of the connection.
- virtual void AddConnectionIdToTimeWait(QuicConnectionId connection_id,
- TimeWaitAction action,
+ // Adds the connection IDs in info to time wait state for time_wait_period_.
+ // If |info|.termination_packets are provided, copies of these packets will be
+ // sent when a packet with one of these connection IDs is processed. Any
+ // termination packets will be move from |info|.termination_packets and will
+ // become owned by the manager. |action| specifies what the time wait list
+ // manager should do when processing packets of the connection.
+ virtual void AddConnectionIdToTimeWait(TimeWaitAction action,
TimeWaitConnectionInfo info);
// Returns true if the connection_id is in time wait state, false otherwise.
@@ -337,11 +336,6 @@
// Interface that manages blocked writers.
Visitor* visitor_;
-
- // When this is default true, remove the connection_id argument of
- // AddConnectionIdToTimeWait.
- bool use_indirect_connection_id_map_ =
- GetQuicRestartFlag(quic_time_wait_list_support_multiple_cid_v2);
};
} // namespace quic
diff --git a/quic/core/quic_time_wait_list_manager_test.cc b/quic/core/quic_time_wait_list_manager_test.cc
index 49e8b27..3610535 100644
--- a/quic/core/quic_time_wait_list_manager_test.cc
+++ b/quic/core/quic_time_wait_list_manager_test.cc
@@ -157,7 +157,7 @@
termination_packets.push_back(std::unique_ptr<QuicEncryptedPacket>(
new QuicEncryptedPacket(nullptr, 0, false)));
time_wait_list_manager_.AddConnectionIdToTimeWait(
- connection_id, QuicTimeWaitListManager::SEND_TERMINATION_PACKETS,
+ QuicTimeWaitListManager::SEND_TERMINATION_PACKETS,
TimeWaitConnectionInfo(false, &termination_packets, {connection_id}));
}
@@ -167,9 +167,8 @@
QuicTimeWaitListManager::TimeWaitAction action,
std::vector<std::unique_ptr<QuicEncryptedPacket>>* packets) {
time_wait_list_manager_.AddConnectionIdToTimeWait(
- connection_id, action,
- TimeWaitConnectionInfo(version.HasIetfInvariantHeader(), packets,
- {connection_id}));
+ action, TimeWaitConnectionInfo(version.HasIetfInvariantHeader(),
+ packets, {connection_id}));
}
bool IsConnectionIdInTimeWait(QuicConnectionId connection_id) {
@@ -450,10 +449,6 @@
TEST_F(QuicTimeWaitListManagerTest,
CleanUpOldConnectionIdsForMultipleConnectionIdsPerConnection) {
- if (!GetQuicRestartFlag(quic_time_wait_list_support_multiple_cid_v2)) {
- return;
- }
-
connection_id_ = TestConnectionId(7);
const size_t kConnectionCloseLength = 100;
EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_));
@@ -467,7 +462,7 @@
std::vector<QuicConnectionId> active_connection_ids{connection_id_,
TestConnectionId(8)};
time_wait_list_manager_.AddConnectionIdToTimeWait(
- connection_id_, QuicTimeWaitListManager::SEND_CONNECTION_CLOSE_PACKETS,
+ QuicTimeWaitListManager::SEND_CONNECTION_CLOSE_PACKETS,
TimeWaitConnectionInfo(/*ietf_quic=*/true, &termination_packets,
active_connection_ids, QuicTime::Delta::Zero()));
@@ -675,7 +670,7 @@
std::unique_ptr<QuicEncryptedPacket>(new QuicEncryptedPacket(
new char[kConnectionCloseLength], kConnectionCloseLength, true)));
time_wait_list_manager_.AddConnectionIdToTimeWait(
- connection_id_, QuicTimeWaitListManager::SEND_TERMINATION_PACKETS,
+ QuicTimeWaitListManager::SEND_TERMINATION_PACKETS,
TimeWaitConnectionInfo(/*ietf_quic=*/true, &termination_packets,
{connection_id_}));
@@ -701,7 +696,7 @@
new char[kConnectionCloseLength], kConnectionCloseLength, true)));
// Add a CONNECTION_CLOSE termination packet.
time_wait_list_manager_.AddConnectionIdToTimeWait(
- connection_id_, QuicTimeWaitListManager::SEND_CONNECTION_CLOSE_PACKETS,
+ QuicTimeWaitListManager::SEND_CONNECTION_CLOSE_PACKETS,
TimeWaitConnectionInfo(/*ietf_quic=*/true, &termination_packets,
{connection_id_}));
EXPECT_CALL(writer_, WritePacket(_, kConnectionCloseLength,
@@ -717,10 +712,6 @@
TEST_F(QuicTimeWaitListManagerTest,
SendConnectionClosePacketsForMultipleConnectionIds) {
- if (!GetQuicRestartFlag(quic_time_wait_list_support_multiple_cid_v2)) {
- return;
- }
-
connection_id_ = TestConnectionId(7);
const size_t kConnectionCloseLength = 100;
EXPECT_CALL(visitor_, OnConnectionAddedToTimeWaitList(connection_id_));
@@ -734,7 +725,7 @@
std::vector<QuicConnectionId> active_connection_ids{connection_id_,
TestConnectionId(8)};
time_wait_list_manager_.AddConnectionIdToTimeWait(
- connection_id_, QuicTimeWaitListManager::SEND_CONNECTION_CLOSE_PACKETS,
+ QuicTimeWaitListManager::SEND_CONNECTION_CLOSE_PACKETS,
TimeWaitConnectionInfo(/*ietf_quic=*/true, &termination_packets,
active_connection_ids, QuicTime::Delta::Zero()));
diff --git a/quic/test_tools/mock_quic_time_wait_list_manager.cc b/quic/test_tools/mock_quic_time_wait_list_manager.cc
index 6274f20..63858c9 100644
--- a/quic/test_tools/mock_quic_time_wait_list_manager.cc
+++ b/quic/test_tools/mock_quic_time_wait_list_manager.cc
@@ -18,9 +18,9 @@
: QuicTimeWaitListManager(writer, visitor, clock, alarm_factory) {
// Though AddConnectionIdToTimeWait is mocked, we want to retain its
// functionality.
- EXPECT_CALL(*this, AddConnectionIdToTimeWait(_, _, _))
+ EXPECT_CALL(*this, AddConnectionIdToTimeWait(_, _))
.Times(testing::AnyNumber());
- ON_CALL(*this, AddConnectionIdToTimeWait(_, _, _))
+ ON_CALL(*this, AddConnectionIdToTimeWait(_, _))
.WillByDefault(
Invoke(this, &MockTimeWaitListManager::
QuicTimeWaitListManager_AddConnectionIdToTimeWait));
diff --git a/quic/test_tools/mock_quic_time_wait_list_manager.h b/quic/test_tools/mock_quic_time_wait_list_manager.h
index 12bf080..1d3cfd5 100644
--- a/quic/test_tools/mock_quic_time_wait_list_manager.h
+++ b/quic/test_tools/mock_quic_time_wait_list_manager.h
@@ -19,19 +19,15 @@
QuicAlarmFactory* alarm_factory);
~MockTimeWaitListManager() override;
- MOCK_METHOD(void,
- AddConnectionIdToTimeWait,
- (QuicConnectionId connection_id,
- QuicTimeWaitListManager::TimeWaitAction action,
+ MOCK_METHOD(void, AddConnectionIdToTimeWait,
+ (QuicTimeWaitListManager::TimeWaitAction action,
quic::TimeWaitConnectionInfo info),
(override));
void QuicTimeWaitListManager_AddConnectionIdToTimeWait(
- QuicConnectionId connection_id,
QuicTimeWaitListManager::TimeWaitAction action,
quic::TimeWaitConnectionInfo info) {
- QuicTimeWaitListManager::AddConnectionIdToTimeWait(connection_id, action,
- std::move(info));
+ QuicTimeWaitListManager::AddConnectionIdToTimeWait(action, std::move(info));
}
MOCK_METHOD(void,