gfe-relnote: In QUIC, enable multiple packet number support in QuicFramer. Not used yet. Not protected.
PiperOrigin-RevId: 239686851
Change-Id: Ia2bb33e823fa4d80ad11366f8bc58079e39eeb47
diff --git a/quic/core/quic_framer.h b/quic/core/quic_framer.h
index 312dbb2..98f7385 100644
--- a/quic/core/quic_framer.h
+++ b/quic/core/quic_framer.h
@@ -577,6 +577,8 @@
return expected_connection_id_length_;
}
+ void EnableMultiplePacketNumberSpacesSupport();
+
private:
friend class test::QuicFramerPeer;
@@ -678,7 +680,8 @@
const QuicPacketHeader& header,
char* decrypted_buffer,
size_t buffer_length,
- size_t* decrypted_length);
+ size_t* decrypted_length,
+ EncryptionLevel* decrypted_level);
// Returns the full packet number from the truncated
// wire format version and the last seen packet number.
@@ -876,6 +879,9 @@
QuicErrorCode error_;
// Updated by ProcessPacketHeader when it succeeds decrypting a larger packet.
QuicPacketNumber largest_packet_number_;
+ // Largest successfully decrypted packet number per packet number space. Only
+ // used when supports_multiple_packet_number_spaces_ is true.
+ QuicPacketNumber largest_decrypted_packet_numbers_[NUM_PACKET_NUMBER_SPACES];
// Updated by WritePacketHeader.
QuicConnectionId last_serialized_connection_id_;
// The last QUIC version label received.
@@ -938,6 +944,9 @@
// When this is true, QuicFramer will change expected_connection_id_length_
// to the received destination connection ID length of all IETF long headers.
bool should_update_expected_connection_id_length_;
+
+ // Indicates whether this framer supports multiple packet number spaces.
+ bool supports_multiple_packet_number_spaces_;
};
} // namespace quic