Deprecate gfe2_reloadable_flag_quic_drop_unsent_path_response. PiperOrigin-RevId: 428557274
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc index 81fab03..2fe7af3 100644 --- a/quic/core/quic_connection.cc +++ b/quic/core/quic_connection.cc
@@ -640,7 +640,6 @@ // 2) Client side's rollout can be protected by the same connection option. connection_migration_use_new_cid_ = validate_client_addresses_ && - GetQuicReloadableFlag(quic_drop_unsent_path_response) && GetQuicReloadableFlag(quic_connection_migration_use_new_cid_v2); if (config.HasReceivedMaxPacketSize()) { peer_max_packet_size_ = config.ReceivedMaxPacketSize(); @@ -1741,19 +1740,10 @@ // Queue or send PATH_RESPONSE. Send PATH_RESPONSE to the source address of // the current incoming packet, even if it's not the default path or the // alternative path. - const bool success = SendPathResponse( - frame.data_buffer, last_received_packet_info_.source_address, - current_effective_peer_address); - if (GetQuicReloadableFlag(quic_drop_unsent_path_response)) { - QUIC_RELOADABLE_FLAG_COUNT(quic_drop_unsent_path_response); - } - if (!success) { + if (!SendPathResponse(frame.data_buffer, + last_received_packet_info_.source_address, + current_effective_peer_address)) { QUIC_CODE_COUNT(quic_failed_to_send_path_response); - if (!GetQuicReloadableFlag(quic_drop_unsent_path_response)) { - // Queue the payloads to re-try later. - pending_path_challenge_payloads_.push_back( - {frame.data_buffer, last_received_packet_info_.source_address}); - } } // TODO(b/150095588): change the stats to // num_valid_path_challenge_received. @@ -2869,23 +2859,6 @@ } } - // TODO(danzh) PATH_RESPONSE is of more interest to the peer than ACK, - // evaluate if it's worth to send them before sending ACKs. - while (!pending_path_challenge_payloads_.empty()) { - QUIC_RELOADABLE_FLAG_COUNT_N(quic_send_path_response2, 4, 5); - const PendingPathChallenge& pending_path_challenge = - pending_path_challenge_payloads_.front(); - // Note connection_migration_use_cid_ will depends on - // quic_drop_unsent_path_response flag eventually, and hence the empty - // effective_peer_address here will not be used. - if (!SendPathResponse(pending_path_challenge.received_path_challenge, - pending_path_challenge.peer_address, - /*effective_peer_address=*/QuicSocketAddress())) { - break; - } - pending_path_challenge_payloads_.pop_front(); - } - // Sending queued packets may have caused the socket to become write blocked, // or the congestion manager to prohibit sending. if (!CanWrite(HAS_RETRANSMITTABLE_DATA)) {
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h index a545527..954eb6a 100644 --- a/quic/core/quic_connection.h +++ b/quic/core/quic_connection.h
@@ -2169,13 +2169,6 @@ quiche::QuicheCircularDeque<QuicPathFrameBuffer> received_path_challenge_payloads_; - // Buffer outstanding PATH_CHALLENGEs if socket write is blocked, future - // OnCanWrite will attempt to respond with PATH_RESPONSEs using the retained - // payload and peer addresses. - // TODO(fayang): remove this when deprecating quic_drop_unsent_path_response. - quiche::QuicheCircularDeque<PendingPathChallenge> - pending_path_challenge_payloads_; - // When we receive a RETRY packet or some INITIAL packets, we replace // |server_connection_id_| with the value from that packet and save off the // original value of |server_connection_id_| into
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc index 98978e9..fba066c 100644 --- a/quic/core/quic_connection_test.cc +++ b/quic/core/quic_connection_test.cc
@@ -12528,30 +12528,6 @@ writer_->SetWriteBlocked(); ProcessFramesPacketWithAddresses(frames, kSelfAddress, kNewPeerAddress, ENCRYPTION_FORWARD_SECURE); - - if (GetQuicReloadableFlag(quic_drop_unsent_path_response)) { - EXPECT_EQ(0u, QuicConnectionPeer::NumPendingPathChallengesToResponse( - &connection_)); - return; - } - ASSERT_EQ( - 1u, QuicConnectionPeer::NumPendingPathChallengesToResponse(&connection_)); - - EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(AtLeast(1)); - writer_->SetWritable(); - connection_.OnCanWrite(); - EXPECT_EQ(1u, writer_->path_response_frames().size()); - // The final check is to ensure that the random data in the response - // matches the random data from the challenge. - EXPECT_EQ(0, memcmp(path_frame_buffer.data(), - &(writer_->path_response_frames().front().data_buffer), - sizeof(path_frame_buffer))); - EXPECT_EQ(1u, writer_->padding_frames().size()); - // PATH_RESPONSE should be sent in another packet to a different peer - // address. - EXPECT_EQ(kNewPeerAddress, writer_->last_write_peer_address()); - EXPECT_EQ( - 0u, QuicConnectionPeer::NumPendingPathChallengesToResponse(&connection_)); } // Regression test for b/168101557.
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h index d955f5d..fd29e1f 100644 --- a/quic/core/quic_flags_list.h +++ b/quic/core/quic_flags_list.h
@@ -73,8 +73,6 @@ QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_count_bytes_on_alternative_path_seperately, true) // If true, do not use the gQUIC common certificate set for certificate compression. QUIC_FLAG(FLAGS_quic_restart_flag_quic_no_common_cert_set, true) -// If true, drop unsent PATH_RESPONSEs and rely on peer\'s retry. -QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_drop_unsent_path_response, 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 pending frames as well as pending padding bytes on connection migration.
diff --git a/quic/test_tools/quic_connection_peer.cc b/quic/test_tools/quic_connection_peer.cc index ec579be..207582f 100644 --- a/quic/test_tools/quic_connection_peer.cc +++ b/quic/test_tools/quic_connection_peer.cc
@@ -413,12 +413,6 @@ return connection->undecryptable_packets_.size(); } -// static -size_t QuicConnectionPeer::NumPendingPathChallengesToResponse( - QuicConnection* connection) { - return connection->pending_path_challenge_payloads_.size(); -} - void QuicConnectionPeer::SetConnectionClose(QuicConnection* connection) { connection->connected_ = false; }
diff --git a/quic/test_tools/quic_connection_peer.h b/quic/test_tools/quic_connection_peer.h index 26d2f41..62ed60e 100644 --- a/quic/test_tools/quic_connection_peer.h +++ b/quic/test_tools/quic_connection_peer.h
@@ -168,8 +168,6 @@ static size_t NumUndecryptablePackets(QuicConnection* connection); - static size_t NumPendingPathChallengesToResponse(QuicConnection* connection); - static void SetConnectionClose(QuicConnection* connection); static void SendPing(QuicConnection* connection);