Deprecate gfe2_reloadable_flag_quic_fix_arm_pto_for_application_data. PiperOrigin-RevId: 345455252 Change-Id: I04437cf0eda91c2423ad65bacd75e4be9b7ee53d
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h index a19d821..e5b2fa9 100644 --- a/quic/core/quic_flags_list.h +++ b/quic/core/quic_flags_list.h
@@ -37,7 +37,6 @@ QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_enable_server_on_wire_ping, false) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_encrypted_control_frames, false) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_extract_x509_subject_using_certificate_view, true) -QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_arm_pto_for_application_data, true) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_missing_initial_keys2, true) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_out_of_order_sending2, true) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_pto_pending_timer_count, true)
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc index 5927b14..d3e9a82 100644 --- a/quic/core/quic_sent_packet_manager.cc +++ b/quic/core/quic_sent_packet_manager.cc
@@ -112,7 +112,6 @@ handshake_packet_acked_(false), zero_rtt_packet_acked_(false), one_rtt_packet_acked_(false), - one_rtt_packet_sent_(false), first_pto_srtt_multiplier_(0), use_standard_deviation_for_pto_(false), pto_multiplier_without_rtt_samples_(3), @@ -600,7 +599,8 @@ for (int8_t i = 0; i < NUM_PACKET_NUMBER_SPACES; ++i) { const QuicTime sent_time = unacked_packets_.GetLastInFlightPacketSentTime( static_cast<PacketNumberSpace>(i)); - if (!ShouldArmPtoForApplicationData() && i == APPLICATION_DATA) { + if (!handshake_finished_ && i == APPLICATION_DATA) { + // Do not arm PTO for application data until handshake gets confirmed. continue; } if (!sent_time.IsInitialized() || (earliest_sent_time.IsInitialized() && @@ -614,24 +614,6 @@ return earliest_sent_time; } -bool QuicSentPacketManager::ShouldArmPtoForApplicationData() const { - DCHECK(supports_multiple_packet_number_spaces()); - if (GetQuicReloadableFlag(quic_fix_arm_pto_for_application_data)) { - QUIC_RELOADABLE_FLAG_COUNT(quic_fix_arm_pto_for_application_data); - // Do not arm PTO for application data until handshake gets confirmed. - return handshake_finished_; - } - // Application data must be ignored before handshake completes (1-RTT key - // is available). Not arming PTO for application data to prioritize the - // completion of handshake. On the server side, handshake_finished_ - // indicates handshake complete (and confirmed). On the client side, - // one_rtt_packet_sent_ indicates handshake complete (while handshake - // confirmation will happen later). - return handshake_finished_ || - (unacked_packets_.perspective() == Perspective::IS_CLIENT && - one_rtt_packet_sent_); -} - void QuicSentPacketManager::MarkForRetransmission( QuicPacketNumber packet_number, TransmissionType transmission_type) { @@ -829,10 +811,6 @@ has_retransmittable_data); } - if (packet.encryption_level == ENCRYPTION_FORWARD_SECURE) { - one_rtt_packet_sent_ = true; - } - // Deallocate message data in QuicMessageFrame immediately after packet // sent. if (packet.has_message) { @@ -895,7 +873,7 @@ case PTO_MODE: QUIC_DVLOG(1) << ENDPOINT << "PTO mode"; ++stats_->pto_count; - if (handshake_mode_disabled_ && !ShouldArmPtoForApplicationData()) { + if (handshake_mode_disabled_ && !handshake_finished_) { ++stats_->crypto_retransmit_count; } ++consecutive_pto_count_;
diff --git a/quic/core/quic_sent_packet_manager.h b/quic/core/quic_sent_packet_manager.h index 2dba799..67c3c51 100644 --- a/quic/core/quic_sent_packet_manager.h +++ b/quic/core/quic_sent_packet_manager.h
@@ -551,10 +551,6 @@ // timeout. bool ShouldAddMaxAckDelay(PacketNumberSpace space) const; - // Returns true if application data should be used to arm PTO. Only used when - // multiple packet number space is enabled. - bool ShouldArmPtoForApplicationData() const; - // A helper function to return total delay of |num_timeouts| retransmission // timeout with TLP and RTO mode. QuicTime::Delta GetNConsecutiveRetransmissionTimeoutDelay( @@ -718,9 +714,6 @@ // True if any 1-RTT packet gets acknowledged. bool one_rtt_packet_acked_; - // True if any 1-RTT packet gets sent. - bool one_rtt_packet_sent_; - // If > 0, arm the 1st PTO with max of earliest in flight sent time + PTO // delay and multiplier * srtt from last in flight packet. float first_pto_srtt_multiplier_;
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc index e087211..f6d6f6d 100644 --- a/quic/core/quic_sent_packet_manager_test.cc +++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -3318,7 +3318,6 @@ // Send packet 6 in 1-RTT. clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(10)); SendDataPacket(6, ENCRYPTION_FORWARD_SECURE); - const QuicTime packet6_sent_time = clock_.Now(); // Verify PTO timeout is now based on packet 5. EXPECT_EQ(packet5_sent_time + expected_pto_delay * 2, manager_.GetRetransmissionTime()); @@ -3328,21 +3327,11 @@ const QuicTime packet7_sent_time = clock_.Now(); SendDataPacket(7, ENCRYPTION_HANDSHAKE); - if (GetQuicReloadableFlag(quic_fix_arm_pto_for_application_data)) { - expected_pto_delay = - srtt + GetPtoRttvarMultiplier() * rtt_stats->mean_deviation(); - // Verify PTO timeout is now based on packet 7. - EXPECT_EQ(packet7_sent_time + expected_pto_delay * 2, - manager_.GetRetransmissionTime()); - - } else { - expected_pto_delay = - srtt + GetPtoRttvarMultiplier() * rtt_stats->mean_deviation() + - QuicTime::Delta::FromMilliseconds(kDefaultDelayedAckTimeMs); - // Verify PTO timeout is now based on packet 6. - EXPECT_EQ(packet6_sent_time + expected_pto_delay * 2, - manager_.GetRetransmissionTime()); - } + expected_pto_delay = + srtt + GetPtoRttvarMultiplier() * rtt_stats->mean_deviation(); + // Verify PTO timeout is now based on packet 7. + EXPECT_EQ(packet7_sent_time + expected_pto_delay * 2, + manager_.GetRetransmissionTime()); // Neuter handshake key. manager_.SetHandshakeConfirmed();