Internal QUICHE change
PiperOrigin-RevId: 312073007
Change-Id: I22241551490d37d8e2317cd91db5d054a58ff33f
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 5f20559..0747d4f 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -923,6 +923,9 @@
--stats_.packets_dropped;
QUIC_DVLOG(1) << ENDPOINT << "Received packet header: " << header;
last_header_ = header;
+ if (!stats_.first_decrypted_packet.IsInitialized()) {
+ stats_.first_decrypted_packet = last_header_.packet_number;
+ }
// Record packet receipt to populate ack info before processing stream
// frames, since the processing may result in sending a bundled ack.
diff --git a/quic/core/quic_connection_stats.h b/quic/core/quic_connection_stats.h
index 3b0c85d..f4b747d 100644
--- a/quic/core/quic_connection_stats.h
+++ b/quic/core/quic_connection_stats.h
@@ -136,6 +136,9 @@
// Whether there is any non app-limited bandwidth sample.
bool has_non_app_limited_sample = false;
+
+ // Packet number of first decrypted packet.
+ QuicPacketNumber first_decrypted_packet;
};
} // namespace quic
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index 0b72013..7fb8453 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -3129,9 +3129,12 @@
if (connection_.SupportsMultiplePacketNumberSpaces()) {
return;
}
+ const QuicConnectionStats& stats = connection_.GetStats();
+ EXPECT_FALSE(stats.first_decrypted_packet.IsInitialized());
EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_));
EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(1);
ProcessDataPacket(1);
+ EXPECT_EQ(QuicPacketNumber(1), stats.first_decrypted_packet);
QuicPacketCreatorPeer::SetPacketNumber(&peer_creator_, 2);
QuicPacketNumber last_packet;
SendStreamDataToPeer(1, "foo", 0, NO_FIN, &last_packet); // Packet 1
@@ -3215,6 +3218,7 @@
} else {
EXPECT_EQ(QuicPacketNumber(7u), least_unacked());
}
+ EXPECT_EQ(QuicPacketNumber(1), stats.first_decrypted_packet);
}
// QuicConnection should record the packet sent-time prior to sending the