gfe-relnote: Deprecate gfe2_restart_flag_quic_enable_accept_random_ipn.
PiperOrigin-RevId: 253603387
Change-Id: I462d960d7cccaab09c908e0fefb151367ca58007
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index c7f98ed..a7733cb 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -2263,61 +2263,24 @@
return true;
}
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- QUIC_RESTART_FLAG_COUNT_N(quic_enable_accept_random_ipn, 2, 2);
- // Configured to accept any packet number in range 1...0x7fffffff as initial
- // packet number.
- bool out_of_bound = false;
- std::string error_detail = "Packet number out of bounds.";
- if (last_header_.packet_number.IsInitialized()) {
- out_of_bound = !Near(packet_number, last_header_.packet_number);
- } else if ((packet_number > MaxRandomInitialPacketNumber())) {
- out_of_bound = true;
- error_detail = "Initial packet number out of bounds.";
- }
- if (out_of_bound) {
- QUIC_DLOG(INFO) << ENDPOINT << "Packet " << packet_number
- << " out of bounds. Discarding";
- CloseConnection(QUIC_INVALID_PACKET_HEADER, error_detail,
- ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
- return false;
- }
- return true;
+ // Configured to accept any packet number in range 1...0x7fffffff as initial
+ // packet number.
+ bool out_of_bound = false;
+ std::string error_detail = "Packet number out of bounds.";
+ if (last_header_.packet_number.IsInitialized()) {
+ out_of_bound = !Near(packet_number, last_header_.packet_number);
+ } else if ((packet_number > MaxRandomInitialPacketNumber())) {
+ out_of_bound = true;
+ error_detail = "Initial packet number out of bounds.";
}
-
- if (packet_number > received_packet_manager_.PeerFirstSendingPacketNumber() &&
- packet_number <= MaxRandomInitialPacketNumber()) {
- QUIC_CODE_COUNT_N(had_possibly_random_ipn, 2, 2);
+ if (out_of_bound) {
+ QUIC_DLOG(INFO) << ENDPOINT << "Packet " << packet_number
+ << " out of bounds. Discarding";
+ CloseConnection(QUIC_INVALID_PACKET_HEADER, error_detail,
+ ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
+ return false;
}
- const bool out_of_bound =
- last_header_.packet_number.IsInitialized()
- ? !Near(packet_number, last_header_.packet_number)
- : packet_number >=
- (received_packet_manager_.PeerFirstSendingPacketNumber() +
- kMaxPacketGap);
- if (!out_of_bound) {
- return true;
- }
- QUIC_DLOG(INFO) << ENDPOINT << "Packet " << packet_number
- << " out of bounds. Discarding";
- QuicStringPiece packet_data = GetCurrentPacket();
- const size_t kMaxPacketLengthInErrorDetails = 64;
- CloseConnection(
- QUIC_INVALID_PACKET_HEADER,
- QuicStrCat(
- "Packet number out of bounds. ",
- last_header_.packet_number.IsInitialized()
- ? QuicStrCat("last_pkn=", last_header_.packet_number.ToUint64())
- : "first received packet",
- ", current_pkn=", packet_number.ToUint64(),
- ", current_pkt_len=", packet_data.length(), ", current_hdr=",
- QuicTextUtils::HexEncode(
- packet_data.length() > kMaxPacketLengthInErrorDetails
- ? QuicStringPiece(packet_data.data(),
- kMaxPacketLengthInErrorDetails)
- : packet_data)),
- ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
- return false;
+ return true;
}
void QuicConnection::WriteQueuedPackets() {
@@ -4148,8 +4111,7 @@
const bool enable_multiple_packet_number_spaces =
version().handshake_protocol == PROTOCOL_TLS1_3 &&
use_uber_received_packet_manager_ &&
- sent_packet_manager_.use_uber_loss_algorithm() &&
- GetQuicRestartFlag(quic_enable_accept_random_ipn);
+ sent_packet_manager_.use_uber_loss_algorithm();
if (!enable_multiple_packet_number_spaces) {
return;
}
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index 314898b..d60e3d6 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -2470,11 +2470,7 @@
// Call ProcessDataPacket rather than ProcessPacket, as we should not get a
// packet call to the visitor.
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- ProcessDataPacket(MaxRandomInitialPacketNumber() + 6000);
- } else {
- ProcessDataPacket(6000);
- }
+ ProcessDataPacket(MaxRandomInitialPacketNumber() + 6000);
EXPECT_FALSE(QuicConnectionPeer::GetConnectionClosePacket(&connection_) ==
nullptr);
}
@@ -2505,38 +2501,20 @@
EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
ProcessPacket(3);
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- // Should not cause an ack.
- EXPECT_EQ(0u, writer_->packets_write_attempts());
- } else {
- // Should ack immediately since we have missing packets.
- EXPECT_EQ(1u, writer_->packets_write_attempts());
- }
+ // Should not cause an ack.
+ EXPECT_EQ(0u, writer_->packets_write_attempts());
ProcessPacket(2);
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- // Should ack immediately, since this fills the last hole.
- EXPECT_EQ(1u, writer_->packets_write_attempts());
- } else {
- // Should ack immediately since we have missing packets.
- EXPECT_EQ(2u, writer_->packets_write_attempts());
- }
+ // Should ack immediately, since this fills the last hole.
+ EXPECT_EQ(1u, writer_->packets_write_attempts());
ProcessPacket(1);
// Should ack immediately, since this fills the last hole.
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- EXPECT_EQ(2u, writer_->packets_write_attempts());
- } else {
- EXPECT_EQ(3u, writer_->packets_write_attempts());
- }
+ EXPECT_EQ(2u, writer_->packets_write_attempts());
ProcessPacket(4);
// Should not cause an ack.
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- EXPECT_EQ(2u, writer_->packets_write_attempts());
- } else {
- EXPECT_EQ(3u, writer_->packets_write_attempts());
- }
+ EXPECT_EQ(2u, writer_->packets_write_attempts());
}
TEST_P(QuicConnectionTest, OutOfOrderAckReceiptCausesNoAck) {
@@ -6299,20 +6277,9 @@
TEST_P(QuicConnectionTest, NoAckOnOldNacks) {
EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
- // Drop one packet, triggering a sequence of acks.
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0);
- } else {
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
- }
+ EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0);
ProcessPacket(2);
size_t frames_per_ack = GetParam().no_stop_waiting ? 1 : 2;
- if (!GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- size_t padding_frame_count = writer_->padding_frames().size();
- EXPECT_EQ(padding_frame_count + frames_per_ack, writer_->frame_count());
- EXPECT_FALSE(writer_->ack_frames().empty());
- writer_->Reset();
- }
EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
ProcessPacket(3);
@@ -6321,19 +6288,9 @@
EXPECT_FALSE(writer_->ack_frames().empty());
writer_->Reset();
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0);
- } else {
- EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
- }
+ EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0);
ProcessPacket(4);
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- EXPECT_EQ(0u, writer_->frame_count());
- } else {
- EXPECT_EQ(padding_frame_count + frames_per_ack, writer_->frame_count());
- EXPECT_FALSE(writer_->ack_frames().empty());
- writer_->Reset();
- }
+ EXPECT_EQ(0u, writer_->frame_count());
EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
ProcessPacket(5);
diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index 495163c..1025ed1 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -565,28 +565,10 @@
if (!header.packet_number.IsInitialized()) {
return kFateTimeWait;
}
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- QUIC_RESTART_FLAG_COUNT_N(quic_enable_accept_random_ipn, 1, 2);
- // Accepting Initial Packet Numbers in 1...((2^31)-1) range... check
- // maximum accordingly.
- if (header.packet_number > MaxRandomInitialPacketNumber()) {
- return kFateTimeWait;
- }
- } else {
- // Count those that would have been accepted if FLAGS..random_ipn
- // were true -- to detect/diagnose potential issues prior to
- // enabling the flag.
- if ((header.packet_number >
- QuicPacketNumber(kMaxReasonableInitialPacketNumber)) &&
- (header.packet_number <= MaxRandomInitialPacketNumber())) {
- QUIC_CODE_COUNT_N(had_possibly_random_ipn, 1, 2);
- }
- // Check that the sequence number is within the range that the client is
- // expected to send before receiving a response from the server.
- if (header.packet_number >
- QuicPacketNumber(kMaxReasonableInitialPacketNumber)) {
- return kFateTimeWait;
- }
+ // Accepting Initial Packet Numbers in 1...((2^31)-1) range... check
+ // maximum accordingly.
+ if (header.packet_number > MaxRandomInitialPacketNumber()) {
+ return kFateTimeWait;
}
}
return kFateProcess;
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index 0a694a3..91794c0 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -868,44 +868,6 @@
EXPECT_EQ(server_address_, dispatcher_->current_self_address());
}
-TEST_F(QuicDispatcherTest, TooBigSeqNoPacketToTimeWaitListManager) {
- if (CurrentSupportedVersions().front().HasHeaderProtection() ||
- GetQuicRestartFlag(quic_no_framer_object_in_dispatcher)) {
- // When header protection is in use, we don't put packets in the time wait
- // list manager based on packet number.
- return;
- }
- CreateTimeWaitListManager();
- SetQuicRestartFlag(quic_enable_accept_random_ipn, false);
- QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
- QuicConnectionId connection_id = TestConnectionId(1);
-
- // Dispatcher forwards this packet for this connection_id to the time wait
- // list manager.
- EXPECT_CALL(*dispatcher_, CreateQuicSession(_, _, QuicStringPiece("hq"), _))
- .Times(0);
- EXPECT_CALL(*time_wait_list_manager_,
- ProcessPacket(_, _, TestConnectionId(1), _, _))
- .Times(1);
- EXPECT_CALL(*time_wait_list_manager_,
- ProcessPacket(_, _, TestConnectionId(2), _, _))
- .Times(1);
- EXPECT_CALL(*time_wait_list_manager_,
- AddConnectionIdToTimeWait(_, _, _, _, _))
- .Times(2);
- // A packet whose packet number is one to large to be allowed to start a
- // connection.
- ProcessPacket(client_address, connection_id, true, SerializeCHLO(),
- CONNECTION_ID_PRESENT, PACKET_4BYTE_PACKET_NUMBER,
- QuicDispatcher::kMaxReasonableInitialPacketNumber + 1);
- connection_id = TestConnectionId(2);
- SetQuicRestartFlag(quic_enable_accept_random_ipn, true);
- ProcessPacket(client_address, connection_id, true, SerializeCHLO(),
- CONNECTION_ID_PRESENT, PACKET_4BYTE_PACKET_NUMBER,
- MaxRandomInitialPacketNumber().ToUint64() +
- QuicDispatcher::kMaxReasonableInitialPacketNumber + 1);
-}
-
TEST_F(QuicDispatcherTest, SupportedTransportVersionsChangeInFlight) {
static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
diff --git a/quic/core/quic_received_packet_manager.cc b/quic/core/quic_received_packet_manager.cc
index 6fb8c49..4512952 100644
--- a/quic/core/quic_received_packet_manager.cc
+++ b/quic/core/quic_received_packet_manager.cc
@@ -321,12 +321,6 @@
if (ack_frame_.packets.NumIntervals() > 1) {
return true;
}
- if (!GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- return ack_frame_.packets.Min() >
- (peer_least_packet_awaiting_ack_.IsInitialized()
- ? peer_least_packet_awaiting_ack_
- : QuicPacketNumber(1));
- }
return peer_least_packet_awaiting_ack_.IsInitialized() &&
ack_frame_.packets.Min() > peer_least_packet_awaiting_ack_;
}
@@ -346,9 +340,6 @@
QuicPacketNumber QuicReceivedPacketManager::PeerFirstSendingPacketNumber()
const {
- if (!GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- return QuicPacketNumber(1);
- }
if (!least_received_packet_number_.IsInitialized()) {
QUIC_BUG << "No packets have been received yet";
return QuicPacketNumber(1);
diff --git a/quic/core/quic_received_packet_manager.h b/quic/core/quic_received_packet_manager.h
index 7c9bd7f..8abe5f9 100644
--- a/quic/core/quic_received_packet_manager.h
+++ b/quic/core/quic_received_packet_manager.h
@@ -85,11 +85,10 @@
QuicPacketNumber GetLargestObserved() const;
- // Returns peer first sending packet number to our best knowledge. If
- // GetQuicRestartFlag(quic_enable_accept_random_ipn) is false, returns 1.
- // Otherwise considers least_received_packet_number_ as peer first sending
- // packet number. Please note, this function should only be called when at
- // least one packet has been received.
+ // Returns peer first sending packet number to our best knowledge. Considers
+ // least_received_packet_number_ as peer first sending packet number. Please
+ // note, this function should only be called when at least one packet has been
+ // received.
QuicPacketNumber PeerFirstSendingPacketNumber() const;
void set_connection_stats(QuicConnectionStats* stats) { stats_ = stats; }
diff --git a/quic/core/quic_received_packet_manager_test.cc b/quic/core/quic_received_packet_manager_test.cc
index 0512cb7..a9cc387 100644
--- a/quic/core/quic_received_packet_manager_test.cc
+++ b/quic/core/quic_received_packet_manager_test.cc
@@ -223,33 +223,16 @@
}
TEST_P(QuicReceivedPacketManagerTest, HasMissingPackets) {
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- EXPECT_QUIC_BUG(received_manager_.PeerFirstSendingPacketNumber(),
- "No packets have been received yet");
- } else {
- EXPECT_EQ(QuicPacketNumber(1),
- received_manager_.PeerFirstSendingPacketNumber());
- }
+ EXPECT_QUIC_BUG(received_manager_.PeerFirstSendingPacketNumber(),
+ "No packets have been received yet");
RecordPacketReceipt(4, QuicTime::Zero());
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- EXPECT_EQ(QuicPacketNumber(4),
- received_manager_.PeerFirstSendingPacketNumber());
- EXPECT_FALSE(received_manager_.HasMissingPackets());
- } else {
- EXPECT_TRUE(received_manager_.HasMissingPackets());
- EXPECT_EQ(QuicPacketNumber(1),
- received_manager_.PeerFirstSendingPacketNumber());
- }
+ EXPECT_EQ(QuicPacketNumber(4),
+ received_manager_.PeerFirstSendingPacketNumber());
+ EXPECT_FALSE(received_manager_.HasMissingPackets());
RecordPacketReceipt(3, QuicTime::Zero());
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- EXPECT_FALSE(received_manager_.HasMissingPackets());
- EXPECT_EQ(QuicPacketNumber(3),
- received_manager_.PeerFirstSendingPacketNumber());
- } else {
- EXPECT_TRUE(received_manager_.HasMissingPackets());
- EXPECT_EQ(QuicPacketNumber(1),
- received_manager_.PeerFirstSendingPacketNumber());
- }
+ EXPECT_FALSE(received_manager_.HasMissingPackets());
+ EXPECT_EQ(QuicPacketNumber(3),
+ received_manager_.PeerFirstSendingPacketNumber());
RecordPacketReceipt(1, QuicTime::Zero());
EXPECT_EQ(QuicPacketNumber(1),
received_manager_.PeerFirstSendingPacketNumber());
@@ -268,13 +251,8 @@
RecordPacketReceipt(3, clock_.ApproximateNow());
MaybeUpdateAckTimeout(kInstigateAck, 3);
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- // Delayed ack is scheduled.
- CheckAckTimeout(clock_.ApproximateNow() + kDelayedAckTime);
- } else {
- // Should ack immediately since we have missing packets.
- CheckAckTimeout(clock_.ApproximateNow());
- }
+ // Delayed ack is scheduled.
+ CheckAckTimeout(clock_.ApproximateNow() + kDelayedAckTime);
RecordPacketReceipt(2, clock_.ApproximateNow());
MaybeUpdateAckTimeout(kInstigateAck, 2);
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 9c4027d..f0b5416 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -431,7 +431,6 @@
SetQuicReloadableFlag(quic_simplify_stop_waiting, true);
SetQuicRestartFlag(quic_no_server_conn_ver_negotiation2, true);
SetQuicRestartFlag(quic_server_drop_version_negotiation, true);
- SetQuicRestartFlag(quic_enable_accept_random_ipn, true);
SetQuicRestartFlag(quic_allow_variable_length_connection_id_for_negotiation,
true);
SetQuicRestartFlag(quic_do_not_override_connection_id, true);
diff --git a/quic/core/uber_received_packet_manager_test.cc b/quic/core/uber_received_packet_manager_test.cc
index b717178..d7d49ee 100644
--- a/quic/core/uber_received_packet_manager_test.cc
+++ b/quic/core/uber_received_packet_manager_test.cc
@@ -239,13 +239,8 @@
RecordPacketReceipt(3, clock_.ApproximateNow());
MaybeUpdateAckTimeout(kInstigateAck, 3);
- if (GetQuicRestartFlag(quic_enable_accept_random_ipn)) {
- // Delayed ack is scheduled.
- CheckAckTimeout(clock_.ApproximateNow() + kDelayedAckTime);
- } else {
- // Should ack immediately since we have missing packets.
- CheckAckTimeout(clock_.ApproximateNow());
- }
+ // Delayed ack is scheduled.
+ CheckAckTimeout(clock_.ApproximateNow() + kDelayedAckTime);
RecordPacketReceipt(2, clock_.ApproximateNow());
MaybeUpdateAckTimeout(kInstigateAck, 2);
@@ -764,7 +759,6 @@
TEST_F(UberReceivedPacketManagerTest, AckSendingDifferentPacketNumberSpaces) {
manager_->EnableMultiplePacketNumberSpacesSupport();
- SetQuicRestartFlag(quic_enable_accept_random_ipn, true);
EXPECT_FALSE(HasPendingAck());
EXPECT_FALSE(manager_->IsAckFrameUpdated());