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));