gfe-relnote: In QUIC, add largest_packets_peer_knows_is_acked_ and largest_sent_packets_ which are necessary to sent_packet_manager and unacked_packet_map, respectively, for multiple packet number support. Not used yet. Not protected.
PiperOrigin-RevId: 239787104
Change-Id: I9955881f09eb4b70a740a913fcd4ad7bc8fe863d
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index b1ba487..72c5c0f 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -1147,6 +1147,11 @@
<< acked_packet.packet_number;
last_ack_frame_.packets.Add(acked_packet.packet_number);
largest_packet_peer_knows_is_acked_.UpdateMax(info->largest_acked);
+ if (supports_multiple_packet_number_spaces()) {
+ largest_packets_peer_knows_is_acked_[QuicUtils::GetPacketNumberSpace(
+ info->encryption_level)]
+ .UpdateMax(info->largest_acked);
+ }
// If data is associated with the most recent transmission of this
// packet, then inform the caller.
if (info->in_flight) {
@@ -1196,5 +1201,30 @@
rtt_stats_.set_initial_rtt(std::max(min_rtt, std::min(max_rtt, rtt)));
}
+void QuicSentPacketManager::EnableMultiplePacketNumberSpacesSupport() {
+ unacked_packets_.EnableMultiplePacketNumberSpacesSupport();
+}
+
+QuicPacketNumber QuicSentPacketManager::GetLargestAckedPacket(
+ EncryptionLevel decrypted_packet_level) const {
+ DCHECK(supports_multiple_packet_number_spaces());
+ return unacked_packets_.GetLargestAckedOfPacketNumberSpace(
+ QuicUtils::GetPacketNumberSpace(decrypted_packet_level));
+}
+
+QuicPacketNumber QuicSentPacketManager::GetLargestSentPacket(
+ EncryptionLevel decrypted_packet_level) const {
+ DCHECK(supports_multiple_packet_number_spaces());
+ return unacked_packets_.GetLargestSentPacketOfPacketNumberSpace(
+ decrypted_packet_level);
+}
+
+QuicPacketNumber QuicSentPacketManager::GetLargestPacketPeerKnowsIsAcked(
+ EncryptionLevel decrypted_packet_level) const {
+ DCHECK(supports_multiple_packet_number_spaces());
+ return largest_packets_peer_knows_is_acked_[QuicUtils::GetPacketNumberSpace(
+ decrypted_packet_level)];
+}
+
#undef ENDPOINT // undef for jumbo builds
} // namespace quic