Deprecate gfe2_restart_flag_quic_use_recent_reset_addresses. PiperOrigin-RevId: 443403050
diff --git a/quiche/quic/core/quic_dispatcher.cc b/quiche/quic/core/quic_dispatcher.cc index e133bb0..2e4d38e 100644 --- a/quiche/quic/core/quic_dispatcher.cc +++ b/quiche/quic/core/quic_dispatcher.cc
@@ -1390,7 +1390,6 @@ // recently. if (recent_stateless_reset_addresses_.contains(packet_info.peer_address)) { QUIC_CODE_COUNT(quic_donot_send_reset_repeatedly); - QUICHE_DCHECK(use_recent_reset_addresses_); return; } if (packet_info.form != GOOGLE_QUIC_PACKET) { @@ -1410,24 +1409,21 @@ return; } } - if (use_recent_reset_addresses_) { - QUIC_RESTART_FLAG_COUNT(quic_use_recent_reset_addresses); - // Do not send a stateless reset if there are too many stateless reset - // addresses. - if (recent_stateless_reset_addresses_.size() >= - GetQuicFlag(FLAGS_quic_max_recent_stateless_reset_addresses)) { - QUIC_CODE_COUNT(quic_too_many_recent_reset_addresses); - return; - } - if (recent_stateless_reset_addresses_.empty()) { - clear_stateless_reset_addresses_alarm_->Update( - helper()->GetClock()->ApproximateNow() + - QuicTime::Delta::FromMilliseconds(GetQuicFlag( - FLAGS_quic_recent_stateless_reset_addresses_lifetime_ms)), - QuicTime::Delta::Zero()); - } - recent_stateless_reset_addresses_.emplace(packet_info.peer_address); + // Do not send a stateless reset if there are too many stateless reset + // addresses. + if (recent_stateless_reset_addresses_.size() >= + GetQuicFlag(FLAGS_quic_max_recent_stateless_reset_addresses)) { + QUIC_CODE_COUNT(quic_too_many_recent_reset_addresses); + return; } + if (recent_stateless_reset_addresses_.empty()) { + clear_stateless_reset_addresses_alarm_->Update( + helper()->GetClock()->ApproximateNow() + + QuicTime::Delta::FromMilliseconds(GetQuicFlag( + FLAGS_quic_recent_stateless_reset_addresses_lifetime_ms)), + QuicTime::Delta::Zero()); + } + recent_stateless_reset_addresses_.emplace(packet_info.peer_address); time_wait_list_manager()->SendPublicReset( packet_info.self_address, packet_info.peer_address,
diff --git a/quiche/quic/core/quic_dispatcher.h b/quiche/quic/core/quic_dispatcher.h index 74ac694..f53df8b 100644 --- a/quiche/quic/core/quic_dispatcher.h +++ b/quiche/quic/core/quic_dispatcher.h
@@ -467,9 +467,6 @@ // If true, change expected_server_connection_id_length_ to be the received // destination connection ID length of all IETF long headers. bool should_update_expected_server_connection_id_length_; - - const bool use_recent_reset_addresses_ = - GetQuicRestartFlag(quic_use_recent_reset_addresses); }; } // namespace quic
diff --git a/quiche/quic/core/quic_dispatcher_test.cc b/quiche/quic/core/quic_dispatcher_test.cc index 3dad096..40847ff 100644 --- a/quiche/quic/core/quic_dispatcher_test.cc +++ b/quiche/quic/core/quic_dispatcher_test.cc
@@ -979,15 +979,10 @@ QuicSocketAddress client_address3(QuicIpAddress::Loopback6(), 1); QuicConnectionId connection_id = TestConnectionId(1); - if (GetQuicRestartFlag(quic_use_recent_reset_addresses)) { - // Verify only one reset is sent to the address, although multiple packets - // are received. - EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) - .Times(1); - } else { - EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) - .Times(3); - } + // Verify only one reset is sent to the address, although multiple packets + // are received. + EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) + .Times(1); ProcessPacket(client_address, connection_id, /*has_version_flag=*/false, "data"); ProcessPacket(client_address, connection_id, /*has_version_flag=*/false, @@ -1024,43 +1019,25 @@ const QuicTime expected_deadline = mock_helper_.GetClock()->Now() + QuicTime::Delta::FromMilliseconds(kTestLifeTimeMs); - if (GetQuicRestartFlag(quic_use_recent_reset_addresses)) { - ASSERT_TRUE(GetClearResetAddressesAlarm()->IsSet()); - EXPECT_EQ(expected_deadline, GetClearResetAddressesAlarm()->deadline()); - } else { - EXPECT_FALSE(GetClearResetAddressesAlarm()->IsSet()); - } + ASSERT_TRUE(GetClearResetAddressesAlarm()->IsSet()); + EXPECT_EQ(expected_deadline, GetClearResetAddressesAlarm()->deadline()); // Received no version packet 2 after 5ms. mock_helper_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5)); ProcessPacket(client_address2, connection_id, /*has_version_flag=*/false, "data"); - if (GetQuicRestartFlag(quic_use_recent_reset_addresses)) { - ASSERT_TRUE(GetClearResetAddressesAlarm()->IsSet()); - // Verify deadline does not change. - EXPECT_EQ(expected_deadline, GetClearResetAddressesAlarm()->deadline()); - } else { - EXPECT_FALSE(GetClearResetAddressesAlarm()->IsSet()); - } - if (GetQuicRestartFlag(quic_use_recent_reset_addresses)) { - // Verify reset gets throttled since there are too many recent addresses. - EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) - .Times(0); - } else { - EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) - .Times(1); - } + ASSERT_TRUE(GetClearResetAddressesAlarm()->IsSet()); + // Verify deadline does not change. + EXPECT_EQ(expected_deadline, GetClearResetAddressesAlarm()->deadline()); + // Verify reset gets throttled since there are too many recent addresses. + EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) + .Times(0); ProcessPacket(client_address3, connection_id, /*has_version_flag=*/false, "data"); mock_helper_.AdvanceTime(QuicTime::Delta::FromMilliseconds(5)); - if (GetQuicRestartFlag(quic_use_recent_reset_addresses)) { - GetClearResetAddressesAlarm()->Fire(); - EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) - .Times(2); - } else { - EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) - .Times(3); - } + GetClearResetAddressesAlarm()->Fire(); + EXPECT_CALL(*time_wait_list_manager_, SendPublicReset(_, _, _, _, _, _)) + .Times(2); ProcessPacket(client_address, connection_id, /*has_version_flag=*/false, "data"); ProcessPacket(client_address2, connection_id, /*has_version_flag=*/false,
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h index cc89134..b38510b 100644 --- a/quiche/quic/core/quic_flags_list.h +++ b/quiche/quic/core/quic_flags_list.h
@@ -75,8 +75,6 @@ QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_add_stream_info_to_idle_close_detail, true) // If true, quic server will send ENABLE_CONNECT_PROTOCOL setting and and endpoint will validate required request/response headers and extended CONNECT mechanism and update code counts of valid/invalid headers. QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_verify_request_headers_2, true) -// If true, record addresses that server has sent reset to recently, and do not send reset if the address lives in the set. -QUIC_FLAG(FLAGS_quic_restart_flag_quic_use_recent_reset_addresses, true) // If true, reject or send error response code upon receiving invalid request or response headers. This flag depends on --gfe2_reloadable_flag_quic_verify_request_headers_2. QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_act_upon_invalid_header, false) // If true, require handshake confirmation for QUIC connections, functionally disabling 0-rtt handshakes.