In quic, update crypto_retransmit_count for ietf quic. stats only, not protected. crypto_retransmit_count is used for crypto retransmission timeout histogram in chrome: https://cs.chromium.org/chromium/src/net/quic/quic_chromium_client_session.cc?rcl=1b569384c7ba089e4d3a190c6229ebb51791854a&l=1741 PiperOrigin-RevId: 311607181 Change-Id: I7fd2ec186d86ceb1b37ce1a6e5bca701861cad4a
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc index 24f233e..0b72013 100644 --- a/quic/core/quic_connection_test.cc +++ b/quic/core/quic_connection_test.cc
@@ -10009,7 +10009,7 @@ EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { SendPing(); })); connection_.GetRetransmissionAlarm()->Fire(); EXPECT_EQ(1u, connection_.GetStats().pto_count); - EXPECT_EQ(0u, connection_.GetStats().crypto_retransmit_count); + EXPECT_EQ(1u, connection_.GetStats().crypto_retransmit_count); EXPECT_EQ(1u, writer_->ping_frames().size()); }
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc index 92401b0..7ccd82d 100644 --- a/quic/core/quic_sent_packet_manager.cc +++ b/quic/core/quic_sent_packet_manager.cc
@@ -754,6 +754,9 @@ case PTO_MODE: QUIC_DVLOG(1) << ENDPOINT << "PTO mode"; ++stats_->pto_count; + if (handshake_mode_disabled_ && !ShouldArmPtoForApplicationData()) { + ++stats_->crypto_retransmit_count; + } ++consecutive_pto_count_; pending_timer_transmission_count_ = max_probe_packets_per_pto_; return PTO_MODE;
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc index 79fc798..7692c49 100644 --- a/quic/core/quic_sent_packet_manager_test.cc +++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -2811,7 +2811,7 @@ TEST_F(QuicSentPacketManagerTest, DisableHandshakeModeClient) { QuicSentPacketManagerPeer::SetPerspective(&manager_, Perspective::IS_CLIENT); - manager_.EnableIetfPtoAndLossDetection(); + manager_.EnableMultiplePacketNumberSpacesSupport(); // Send CHLO. SendCryptoPacket(1); EXPECT_NE(QuicTime::Zero(), manager_.GetRetransmissionTime()); @@ -3340,6 +3340,7 @@ manager_.OnRetransmissionTimeout(); EXPECT_EQ(QuicTime::Delta::Zero(), manager_.TimeUntilSend(clock_.Now())); EXPECT_EQ(1u, stats_.pto_count); + EXPECT_EQ(1u, stats_.crypto_retransmit_count); // Verify probe packet gets sent. EXPECT_CALL(notifier_, RetransmitFrames(_, _)) @@ -3911,7 +3912,7 @@ // Regression test for b/154050235. TEST_F(QuicSentPacketManagerTest, ExponentialBackoffWithNoRttMeasurement) { QuicSentPacketManagerPeer::SetPerspective(&manager_, Perspective::IS_CLIENT); - manager_.EnableIetfPtoAndLossDetection(); + manager_.EnableMultiplePacketNumberSpacesSupport(); RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats()); EXPECT_EQ(QuicTime::Delta::FromMilliseconds(kInitialRttMs), rtt_stats->initial_rtt()); @@ -3939,7 +3940,7 @@ } TEST_F(QuicSentPacketManagerTest, PtoDelayWithTinyInitialRtt) { - manager_.EnableIetfPtoAndLossDetection(); + manager_.EnableMultiplePacketNumberSpacesSupport(); RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats()); // Assume client provided a tiny initial RTT. rtt_stats->set_initial_rtt(QuicTime::Delta::FromMicroseconds(1));