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,