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