Refactor QuicBufferedPacketStore::EnqueuePacket to take a ReceivedPacketInfo instead of pieces of information from ReceivedPacketInfo.

PiperOrigin-RevId: 643168440
diff --git a/quiche/quic/core/quic_buffered_packet_store.cc b/quiche/quic/core/quic_buffered_packet_store.cc
index e65bad7..cb990ab 100644
--- a/quiche/quic/core/quic_buffered_packet_store.cc
+++ b/quiche/quic/core/quic_buffered_packet_store.cc
@@ -103,11 +103,15 @@
 }
 
 EnqueuePacketResult QuicBufferedPacketStore::EnqueuePacket(
-    QuicConnectionId connection_id, bool ietf_quic,
-    const QuicReceivedPacket& packet, QuicSocketAddress self_address,
-    QuicSocketAddress peer_address, const ParsedQuicVersion& version,
+    const ReceivedPacketInfo& packet_info,
     std::optional<ParsedClientHello> parsed_chlo,
     ConnectionIdGeneratorInterface* connection_id_generator) {
+  QuicConnectionId connection_id = packet_info.destination_connection_id;
+  const QuicReceivedPacket& packet = packet_info.packet;
+  const QuicSocketAddress& self_address = packet_info.self_address;
+  const QuicSocketAddress& peer_address = packet_info.peer_address;
+  const ParsedQuicVersion& version = packet_info.version;
+  const bool ietf_quic = packet_info.form != GOOGLE_QUIC_PACKET;
   const bool is_chlo = parsed_chlo.has_value();
   QUIC_BUG_IF(quic_bug_12410_1, !GetQuicFlag(quic_allow_chlo_buffering))
       << "Shouldn't buffer packets if disabled via flag.";
diff --git a/quiche/quic/core/quic_buffered_packet_store.h b/quiche/quic/core/quic_buffered_packet_store.h
index 4cff83d..f3ca342 100644
--- a/quiche/quic/core/quic_buffered_packet_store.h
+++ b/quiche/quic/core/quic_buffered_packet_store.h
@@ -118,9 +118,7 @@
   // Generator to use with the connection. It is ignored if |parsed_chlo| is
   // absent.
   EnqueuePacketResult EnqueuePacket(
-      QuicConnectionId connection_id, bool ietf_quic,
-      const QuicReceivedPacket& packet, QuicSocketAddress self_address,
-      QuicSocketAddress peer_address, const ParsedQuicVersion& version,
+      const ReceivedPacketInfo& packet_info,
       std::optional<ParsedClientHello> parsed_chlo,
       ConnectionIdGeneratorInterface* connection_id_generator);
 
diff --git a/quiche/quic/core/quic_buffered_packet_store_test.cc b/quiche/quic/core/quic_buffered_packet_store_test.cc
index f2b98f5..77abde3 100644
--- a/quiche/quic/core/quic_buffered_packet_store_test.cc
+++ b/quiche/quic/core/quic_buffered_packet_store_test.cc
@@ -56,6 +56,21 @@
 using ::testing::SizeIs;
 using ::testing::Truly;
 
+EnqueuePacketResult EnqueuePacketToStore(
+    QuicBufferedPacketStore& store, QuicConnectionId connection_id,
+    PacketHeaderFormat form, const QuicReceivedPacket& packet,
+    QuicSocketAddress self_address, QuicSocketAddress peer_address,
+    const ParsedQuicVersion& version,
+    std::optional<ParsedClientHello> parsed_chlo,
+    ConnectionIdGeneratorInterface* connection_id_generator) {
+  ReceivedPacketInfo packet_info(self_address, peer_address, packet);
+  packet_info.destination_connection_id = connection_id;
+  packet_info.form = form;
+  packet_info.version = version;
+  return store.EnqueuePacket(packet_info, std::move(parsed_chlo),
+                             connection_id_generator);
+}
+
 class QuicBufferedPacketStoreVisitor
     : public QuicBufferedPacketStore::VisitorInterface {
  public:
@@ -101,8 +116,9 @@
 
 TEST_F(QuicBufferedPacketStoreTest, SimpleEnqueueAndDeliverPacket) {
   QuicConnectionId connection_id = TestConnectionId(1);
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
   EXPECT_TRUE(store_.HasBufferedPackets(connection_id));
   auto packets = store_.DeliverPackets(connection_id);
   const std::list<BufferedPacket>& queue = packets.buffered_packets;
@@ -123,11 +139,12 @@
 TEST_F(QuicBufferedPacketStoreTest, DifferentPacketAddressOnOneConnection) {
   QuicSocketAddress addr_with_new_port(QuicIpAddress::Any4(), 256);
   QuicConnectionId connection_id = TestConnectionId(1);
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       addr_with_new_port, invalid_version_, kNoParsedChlo,
-                       nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, addr_with_new_port, invalid_version_,
+                       kNoParsedChlo, nullptr);
   std::list<BufferedPacket> queue =
       store_.DeliverPackets(connection_id).buffered_packets;
   ASSERT_EQ(2u, queue.size());
@@ -141,12 +158,12 @@
   size_t num_connections = 10;
   for (uint64_t conn_id = 1; conn_id <= num_connections; ++conn_id) {
     QuicConnectionId connection_id = TestConnectionId(conn_id);
-    store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                         peer_address_, invalid_version_, kNoParsedChlo,
-                         nullptr);
-    store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                         peer_address_, invalid_version_, kNoParsedChlo,
-                         nullptr);
+    EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                         self_address_, peer_address_, invalid_version_,
+                         kNoParsedChlo, nullptr);
+    EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                         self_address_, peer_address_, invalid_version_,
+                         kNoParsedChlo, nullptr);
   }
 
   // Deliver packets in reversed order.
@@ -167,14 +184,14 @@
   // Arrived CHLO packet shouldn't affect how many non-CHLO pacekts store can
   // keep.
   EXPECT_EQ(QuicBufferedPacketStore::SUCCESS,
-            store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                                 peer_address_, valid_version_,
-                                 kDefaultParsedChlo, nullptr));
+            EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET,
+                                 packet_, self_address_, peer_address_,
+                                 valid_version_, kDefaultParsedChlo, nullptr));
   for (size_t i = 1; i <= num_packets; ++i) {
     // Only first |kDefaultMaxUndecryptablePackets packets| will be buffered.
-    EnqueuePacketResult result = store_.EnqueuePacket(
-        connection_id, false, packet_, self_address_, peer_address_,
-        invalid_version_, kNoParsedChlo, nullptr);
+    EnqueuePacketResult result = EnqueuePacketToStore(
+        store_, connection_id, GOOGLE_QUIC_PACKET, packet_, self_address_,
+        peer_address_, invalid_version_, kNoParsedChlo, nullptr);
     if (i <= kDefaultMaxUndecryptablePackets) {
       EXPECT_EQ(EnqueuePacketResult::SUCCESS, result);
     } else {
@@ -194,9 +211,9 @@
   const size_t kNumConnections = kMaxConnectionsWithoutCHLO + 1;
   for (uint64_t conn_id = 1; conn_id <= kNumConnections; ++conn_id) {
     QuicConnectionId connection_id = TestConnectionId(conn_id);
-    EnqueuePacketResult result = store_.EnqueuePacket(
-        connection_id, false, packet_, self_address_, peer_address_,
-        invalid_version_, kNoParsedChlo, nullptr);
+    EnqueuePacketResult result = EnqueuePacketToStore(
+        store_, connection_id, GOOGLE_QUIC_PACKET, packet_, self_address_,
+        peer_address_, invalid_version_, kNoParsedChlo, nullptr);
     if (conn_id <= kMaxConnectionsWithoutCHLO) {
       EXPECT_EQ(EnqueuePacketResult::SUCCESS, result);
     } else {
@@ -224,8 +241,9 @@
       kDefaultMaxConnectionsInStore - kMaxConnectionsWithoutCHLO + 1;
   for (uint64_t conn_id = 1; conn_id <= num_chlos; ++conn_id) {
     EXPECT_EQ(EnqueuePacketResult::SUCCESS,
-              store_.EnqueuePacket(TestConnectionId(conn_id), false, packet_,
-                                   self_address_, peer_address_, valid_version_,
+              EnqueuePacketToStore(store_, TestConnectionId(conn_id),
+                                   GOOGLE_QUIC_PACKET, packet_, self_address_,
+                                   peer_address_, valid_version_,
                                    kDefaultParsedChlo, nullptr));
   }
 
@@ -234,9 +252,9 @@
   for (uint64_t conn_id = num_chlos + 1;
        conn_id <= (kDefaultMaxConnectionsInStore + 1); ++conn_id) {
     QuicConnectionId connection_id = TestConnectionId(conn_id);
-    EnqueuePacketResult result = store_.EnqueuePacket(
-        connection_id, false, packet_, self_address_, peer_address_,
-        valid_version_, kDefaultParsedChlo, nullptr);
+    EnqueuePacketResult result = EnqueuePacketToStore(
+        store_, connection_id, GOOGLE_QUIC_PACKET, packet_, self_address_,
+        peer_address_, valid_version_, kDefaultParsedChlo, nullptr);
     if (conn_id <= kDefaultMaxConnectionsInStore) {
       EXPECT_EQ(EnqueuePacketResult::SUCCESS, result);
     } else {
@@ -246,11 +264,11 @@
 }
 
 TEST_F(QuicBufferedPacketStoreTest, BasicGeneratorBuffering) {
-  EXPECT_EQ(
-      EnqueuePacketResult::SUCCESS,
-      store_.EnqueuePacket(TestConnectionId(1), false, packet_, self_address_,
-                           peer_address_, valid_version_, kDefaultParsedChlo,
-                           &connection_id_generator_));
+  EXPECT_EQ(EnqueuePacketResult::SUCCESS,
+            EnqueuePacketToStore(
+                store_, TestConnectionId(1), GOOGLE_QUIC_PACKET, packet_,
+                self_address_, peer_address_, valid_version_,
+                kDefaultParsedChlo, &connection_id_generator_));
   QuicConnectionId delivered_conn_id;
   BufferedPacketList packet_list =
       store_.DeliverPacketsForNextConnection(&delivered_conn_id);
@@ -260,10 +278,11 @@
 }
 
 TEST_F(QuicBufferedPacketStoreTest, NullGeneratorOk) {
-  EXPECT_EQ(EnqueuePacketResult::SUCCESS,
-            store_.EnqueuePacket(TestConnectionId(1), false, packet_,
-                                 self_address_, peer_address_, valid_version_,
-                                 kDefaultParsedChlo, nullptr));
+  EXPECT_EQ(
+      EnqueuePacketResult::SUCCESS,
+      EnqueuePacketToStore(store_, TestConnectionId(1), GOOGLE_QUIC_PACKET,
+                           packet_, self_address_, peer_address_,
+                           valid_version_, kDefaultParsedChlo, nullptr));
   QuicConnectionId delivered_conn_id;
   BufferedPacketList packet_list =
       store_.DeliverPacketsForNextConnection(&delivered_conn_id);
@@ -274,15 +293,16 @@
 
 TEST_F(QuicBufferedPacketStoreTest, GeneratorIgnoredForNonChlo) {
   MockConnectionIdGenerator generator2;
+  EXPECT_EQ(EnqueuePacketResult::SUCCESS,
+            EnqueuePacketToStore(
+                store_, TestConnectionId(1), GOOGLE_QUIC_PACKET, packet_,
+                self_address_, peer_address_, valid_version_,
+                kDefaultParsedChlo, &connection_id_generator_));
   EXPECT_EQ(
       EnqueuePacketResult::SUCCESS,
-      store_.EnqueuePacket(TestConnectionId(1), false, packet_, self_address_,
-                           peer_address_, valid_version_, kDefaultParsedChlo,
-                           &connection_id_generator_));
-  EXPECT_EQ(EnqueuePacketResult::SUCCESS,
-            store_.EnqueuePacket(TestConnectionId(1), false, packet_,
-                                 self_address_, peer_address_, valid_version_,
-                                 kNoParsedChlo, &generator2));
+      EnqueuePacketToStore(store_, TestConnectionId(1), GOOGLE_QUIC_PACKET,
+                           packet_, self_address_, peer_address_,
+                           valid_version_, kNoParsedChlo, &generator2));
   QuicConnectionId delivered_conn_id;
   BufferedPacketList packet_list =
       store_.DeliverPacketsForNextConnection(&delivered_conn_id);
@@ -295,21 +315,23 @@
   // Buffer data packets on different connections upto limit.
   for (uint64_t conn_id = 1; conn_id <= kMaxConnectionsWithoutCHLO; ++conn_id) {
     QuicConnectionId connection_id = TestConnectionId(conn_id);
-    EXPECT_EQ(EnqueuePacketResult::SUCCESS,
-              // connection_id_generator_ will be ignored because the chlo has
-              // not been parsed.
-              store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                                   peer_address_, invalid_version_,
-                                   kNoParsedChlo, &connection_id_generator_));
+    EXPECT_EQ(
+        EnqueuePacketResult::SUCCESS,
+        // connection_id_generator_ will be ignored because the chlo has
+        // not been parsed.
+        EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                             self_address_, peer_address_, invalid_version_,
+                             kNoParsedChlo, &connection_id_generator_));
   }
 
   // Buffer CHLOs on other connections till store is full.
   for (size_t i = kMaxConnectionsWithoutCHLO + 1;
        i <= kDefaultMaxConnectionsInStore + 1; ++i) {
     QuicConnectionId connection_id = TestConnectionId(i);
-    EnqueuePacketResult rs = store_.EnqueuePacket(
-        connection_id, false, packet_, self_address_, peer_address_,
-        valid_version_, kDefaultParsedChlo, &connection_id_generator_);
+    EnqueuePacketResult rs =
+        EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                             self_address_, peer_address_, valid_version_,
+                             kDefaultParsedChlo, &connection_id_generator_);
     if (i <= kDefaultMaxConnectionsInStore) {
       EXPECT_EQ(EnqueuePacketResult::SUCCESS, rs);
       EXPECT_TRUE(store_.HasChloForConnection(connection_id));
@@ -324,12 +346,11 @@
   // buffered in the store should success. This is the connection should be
   // delivered at last.
   EXPECT_EQ(EnqueuePacketResult::SUCCESS,
-            store_.EnqueuePacket(
-                /*connection_id=*/TestConnectionId(1), false, packet_,
+            EnqueuePacketToStore(
+                store_, TestConnectionId(1), GOOGLE_QUIC_PACKET, packet_,
                 self_address_, peer_address_, valid_version_,
                 kDefaultParsedChlo, &connection_id_generator_));
-  EXPECT_TRUE(store_.HasChloForConnection(
-      /*connection_id=*/TestConnectionId(1)));
+  EXPECT_TRUE(store_.HasChloForConnection(TestConnectionId(1)));
 
   QuicConnectionId delivered_conn_id;
   for (size_t i = 0;
@@ -355,18 +376,20 @@
 // connections both with and without CHLOs.
 TEST_F(QuicBufferedPacketStoreTest, PacketQueueExpiredBeforeDelivery) {
   QuicConnectionId connection_id = TestConnectionId(1);
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo,
-                       &connection_id_generator_);
-  EXPECT_EQ(EnqueuePacketResult::SUCCESS,
-            store_.EnqueuePacket(
-                connection_id, false, packet_, self_address_, peer_address_,
-                valid_version_, kDefaultParsedChlo, &connection_id_generator_));
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, &connection_id_generator_);
+  EXPECT_EQ(
+      EnqueuePacketResult::SUCCESS,
+      EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                           self_address_, peer_address_, valid_version_,
+                           kDefaultParsedChlo, &connection_id_generator_));
   QuicConnectionId connection_id2 = TestConnectionId(2);
-  EXPECT_EQ(EnqueuePacketResult::SUCCESS,
-            store_.EnqueuePacket(connection_id2, false, packet_, self_address_,
-                                 peer_address_, invalid_version_, kNoParsedChlo,
-                                 &connection_id_generator_));
+  EXPECT_EQ(
+      EnqueuePacketResult::SUCCESS,
+      EnqueuePacketToStore(store_, connection_id2, GOOGLE_QUIC_PACKET, packet_,
+                           self_address_, peer_address_, invalid_version_,
+                           kNoParsedChlo, &connection_id_generator_));
 
   // CHLO on connection 3 arrives 1ms later.
   clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
@@ -374,8 +397,8 @@
   // Use different client address to differentiate packets from different
   // connections.
   QuicSocketAddress another_client_address(QuicIpAddress::Any4(), 255);
-  store_.EnqueuePacket(connection_id3, false, packet_, self_address_,
-                       another_client_address, valid_version_,
+  EnqueuePacketToStore(store_, connection_id3, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, another_client_address, valid_version_,
                        kDefaultParsedChlo, &connection_id_generator_);
 
   // Advance clock to the time when connection 1 and 2 expires.
@@ -410,10 +433,12 @@
   // Test the alarm is reset by enqueueing 2 packets for 4th connection and wait
   // for them to expire.
   QuicConnectionId connection_id4 = TestConnectionId(4);
-  store_.EnqueuePacket(connection_id4, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
-  store_.EnqueuePacket(connection_id4, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id4, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id4, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
   clock_.AdvanceTime(
       QuicBufferedPacketStorePeer::expiration_alarm(&store_)->deadline() -
       clock_.ApproximateNow());
@@ -427,10 +452,12 @@
   QuicConnectionId connection_id = TestConnectionId(1);
 
   // Enqueue some packets
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
   EXPECT_TRUE(store_.HasBufferedPackets(connection_id));
   EXPECT_FALSE(store_.HasChlosBuffered());
 
@@ -453,13 +480,15 @@
   QuicConnectionId connection_id = TestConnectionId(1);
 
   // Enqueue some packets, which include a CHLO
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, valid_version_, kDefaultParsedChlo,
-                       nullptr);
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, valid_version_,
+                       kDefaultParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
   EXPECT_TRUE(store_.HasBufferedPackets(connection_id));
   EXPECT_TRUE(store_.HasChlosBuffered());
 
@@ -483,16 +512,19 @@
   QuicConnectionId connection_id_2 = TestConnectionId(2);
 
   // Enqueue some packets for two connection IDs
-  store_.EnqueuePacket(connection_id_1, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
-  store_.EnqueuePacket(connection_id_1, false, packet_, self_address_,
-                       peer_address_, invalid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id_1, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id_1, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, invalid_version_,
+                       kNoParsedChlo, nullptr);
 
   ParsedClientHello parsed_chlo;
   parsed_chlo.alpns.push_back("h3");
   parsed_chlo.sni = TestHostname();
-  store_.EnqueuePacket(connection_id_2, false, packet_, self_address_,
-                       peer_address_, valid_version_, parsed_chlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id_2, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, valid_version_,
+                       parsed_chlo, nullptr);
   EXPECT_TRUE(store_.HasBufferedPackets(connection_id_1));
   EXPECT_TRUE(store_.HasBufferedPackets(connection_id_2));
   EXPECT_TRUE(store_.HasChlosBuffered());
@@ -543,8 +575,9 @@
   std::optional<uint8_t> tls_alert;
 
   EXPECT_FALSE(store_.HasBufferedPackets(connection_id));
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, valid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, valid_version_,
+                       kNoParsedChlo, nullptr);
   EXPECT_TRUE(store_.HasBufferedPackets(connection_id));
 
   // The packet in 'packet_' is not a TLS CHLO packet.
@@ -563,10 +596,12 @@
   auto packets = GetFirstFlightOfPackets(valid_version_, config);
   ASSERT_EQ(packets.size(), 2u);
 
-  store_.EnqueuePacket(connection_id, false, *packets[0], self_address_,
-                       peer_address_, valid_version_, kNoParsedChlo, nullptr);
-  store_.EnqueuePacket(connection_id, false, *packets[1], self_address_,
-                       peer_address_, valid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, *packets[0],
+                       self_address_, peer_address_, valid_version_,
+                       kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, *packets[1],
+                       self_address_, peer_address_, valid_version_,
+                       kNoParsedChlo, nullptr);
 
   EXPECT_TRUE(store_.HasBufferedPackets(connection_id));
   EXPECT_FALSE(store_.IngestPacketForTlsChloExtraction(
@@ -642,12 +677,15 @@
   EXPECT_THAT(error_code, IsQuicNoError());
   EXPECT_NE(long_packet_type, INITIAL);
 
-  store_.EnqueuePacket(connection_id, false, packet_, self_address_,
-                       peer_address_, valid_version_, kNoParsedChlo, nullptr);
-  store_.EnqueuePacket(connection_id, false, *initial_packets[0], self_address_,
-                       peer_address_, valid_version_, kNoParsedChlo, nullptr);
-  store_.EnqueuePacket(connection_id, false, *initial_packets[1], self_address_,
-                       peer_address_, valid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, packet_,
+                       self_address_, peer_address_, valid_version_,
+                       kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET,
+                       *initial_packets[0], self_address_, peer_address_,
+                       valid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET,
+                       *initial_packets[1], self_address_, peer_address_,
+                       valid_version_, kNoParsedChlo, nullptr);
 
   BufferedPacketList delivered_packets = store_.DeliverPackets(connection_id);
   EXPECT_THAT(delivered_packets.buffered_packets, SizeIs(3));
@@ -676,8 +714,9 @@
   QuicReceivedPacket ect1_packet(packet_content_.data(), packet_content_.size(),
                                  packet_time_, false, 0, true, nullptr, 0,
                                  false, ECN_ECT1);
-  store_.EnqueuePacket(connection_id, false, ect1_packet, self_address_,
-                       peer_address_, valid_version_, kNoParsedChlo, nullptr);
+  EnqueuePacketToStore(store_, connection_id, GOOGLE_QUIC_PACKET, ect1_packet,
+                       self_address_, peer_address_, valid_version_,
+                       kNoParsedChlo, nullptr);
   BufferedPacketList delivered_packets = store_.DeliverPackets(connection_id);
   EXPECT_THAT(delivered_packets.buffered_packets, SizeIs(1));
   for (const auto& packet : delivered_packets.buffered_packets) {
diff --git a/quiche/quic/core/quic_dispatcher.cc b/quiche/quic/core/quic_dispatcher.cc
index 424ac26..7daf1ed 100644
--- a/quiche/quic/core/quic_dispatcher.cc
+++ b/quiche/quic/core/quic_dispatcher.cc
@@ -1163,9 +1163,7 @@
   // The connection ID generator will only be set for CHLOs, not for early
   // packets.
   EnqueuePacketResult rs = buffered_packets_.EnqueuePacket(
-      packet_info.destination_connection_id,
-      packet_info.form != GOOGLE_QUIC_PACKET, packet_info.packet,
-      packet_info.self_address, packet_info.peer_address, packet_info.version,
+      packet_info,
       /*parsed_chlo=*/std::nullopt, /*connection_id_generator=*/nullptr);
   if (rs != EnqueuePacketResult::SUCCESS) {
     OnBufferPacketFailure(rs, packet_info.destination_connection_id);
@@ -1180,10 +1178,7 @@
     QUIC_BUG_IF(quic_bug_12724_7, buffered_packets_.HasChloForConnection(
                                       packet_info->destination_connection_id));
     EnqueuePacketResult rs = buffered_packets_.EnqueuePacket(
-        packet_info->destination_connection_id,
-        packet_info->form != GOOGLE_QUIC_PACKET, packet_info->packet,
-        packet_info->self_address, packet_info->peer_address,
-        packet_info->version, std::move(parsed_chlo), &ConnectionIdGenerator());
+        *packet_info, std::move(parsed_chlo), &ConnectionIdGenerator());
     if (rs != EnqueuePacketResult::SUCCESS) {
       OnBufferPacketFailure(rs, packet_info->destination_connection_id);
     }