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); }