diff --git a/quic/api/test/QuicTransportFunctionsTest.cpp b/quic/api/test/QuicTransportFunctionsTest.cpp index 440d7aaab..8fe05e55e 100644 --- a/quic/api/test/QuicTransportFunctionsTest.cpp +++ b/quic/api/test/QuicTransportFunctionsTest.cpp @@ -1429,10 +1429,6 @@ TEST_F(QuicTransportFunctionsTest, TestUpdateConnectionWithBytesStats) { 500, getFirstOutstandingPacket(*conn, PacketNumberSpace::Handshake) ->metadata.encodedBodySize); - EXPECT_EQ( - 20 + 1, - getFirstOutstandingPacket(*conn, PacketNumberSpace::Handshake) - ->metadata.totalPacketsSent); EXPECT_EQ( 15 + 1, getFirstOutstandingPacket(*conn, PacketNumberSpace::Handshake) @@ -1767,12 +1763,10 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsSingleStream) { frameOffset, frameOffset + frameLen - 1))))); const auto pktMatcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(1)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamMatcher)))); + EXPECT_THAT(conn->outstandings.packets, ElementsAre(pktMatcher)); } @@ -1810,12 +1804,10 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsSingleStreamMultipleFrames) { testing::ElementsAre(Interval(0, 14))))); const auto pktMatcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(1)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamMatcher)))); + EXPECT_THAT(conn->outstandings.packets, ElementsAre(pktMatcher)); } @@ -1857,12 +1849,10 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsSingleStreamRetransmit) { frame1Offset, frame1Offset + frame1Len - 1))))); const auto pktMatcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(1)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamMatcher)))); + EXPECT_THAT(conn->outstandings.packets, Contains(pktMatcher)); } @@ -1896,12 +1886,10 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsSingleStreamRetransmit) { frame1Offset, frame1Offset + frame1Len - 1))))); const auto pktMatcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(2)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamMatcher)))); + EXPECT_THAT(conn->outstandings.packets, Contains(pktMatcher)); } @@ -1942,12 +1930,10 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsSingleStreamRetransmit) { frame1Offset, frame2Offset + frame2Len - 1))))); const auto pktMatcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(3)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamMatcher)))); + EXPECT_THAT(conn->outstandings.packets, Contains(pktMatcher)); } @@ -1983,12 +1969,10 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsSingleStreamRetransmit) { frame1Offset, frame2Offset + frame2Len - 1))))); const auto pktMatcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(4)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamMatcher)))); + EXPECT_THAT(conn->outstandings.packets, Contains(pktMatcher)); } } @@ -2050,22 +2034,18 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsSingleStreamFinWithRetransmit) { const auto pkt1Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(1)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - getStreamDetailsMatcher(frame1Offset))))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + getStreamDetailsMatcher(frame1Offset))))); + const auto pkt2Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(2)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - getStreamDetailsMatcher(frame2Offset))))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + getStreamDetailsMatcher(frame2Offset))))); + EXPECT_THAT( conn->outstandings.packets, ElementsAre(pkt1Matcher, pkt2Matcher)); } @@ -2104,12 +2084,10 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsSingleStreamFinWithRetransmit) { const auto pkt3Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(3)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamDetailsMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamDetailsMatcher)))); + EXPECT_THAT(conn->outstandings.packets, Contains(pkt3Matcher)); } } @@ -2188,31 +2166,25 @@ TEST_F( const auto pkt1Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(1)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - getStreamDetailsMatcher(frame1Offset))))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + getStreamDetailsMatcher(frame1Offset))))); + const auto pkt2Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(2)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - getStreamDetailsMatcher(frame2Offset))))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + getStreamDetailsMatcher(frame2Offset))))); + const auto pkt3Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(3)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - getStreamDetailsMatcher(frame3Offset))))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + getStreamDetailsMatcher(frame3Offset))))); + EXPECT_THAT( conn->outstandings.packets, ElementsAre(pkt1Matcher, pkt2Matcher, pkt3Matcher)); @@ -2254,12 +2226,10 @@ TEST_F( const auto pkt4Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(4)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamDetailsMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamDetailsMatcher)))); + EXPECT_THAT(conn->outstandings.packets, Contains(pkt4Matcher)); } } @@ -2340,31 +2310,25 @@ TEST_F( const auto pkt1Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(1)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - getStreamDetailsMatcher(frame1Offset))))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + getStreamDetailsMatcher(frame1Offset))))); + const auto pkt2Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(2)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - getStreamDetailsMatcher(frame2Offset))))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + getStreamDetailsMatcher(frame2Offset))))); + const auto pkt3Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(3)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - getStreamDetailsMatcher(frame3Offset))))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + getStreamDetailsMatcher(frame3Offset))))); + EXPECT_THAT( conn->outstandings.packets, ElementsAre(pkt1Matcher, pkt2Matcher, pkt3Matcher)); @@ -2406,12 +2370,10 @@ TEST_F( const auto pkt4Matcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(4)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre(streamDetailsMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre(streamDetailsMatcher)))); + EXPECT_THAT(conn->outstandings.packets, Contains(pkt4Matcher)); } } @@ -2508,15 +2470,13 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsMultipleStreams) { const auto pktMatcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(1)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - stream1DetailsMatcher, - stream2DetailsMatcher, - stream3DetailsMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + stream1DetailsMatcher, + stream2DetailsMatcher, + stream3DetailsMatcher)))); + EXPECT_THAT(conn->outstandings.packets, ElementsAre(pktMatcher)); } @@ -2577,15 +2537,13 @@ TEST_F(QuicTransportFunctionsTest, StreamDetailsMultipleStreams) { const auto pktMatcher = testing::Field( &OutstandingPacketWrapper::metadata, - testing::AllOf( - testing::Field( - &OutstandingPacketMetadata::totalPacketsSent, testing::Eq(2)), - testing::Field( - &OutstandingPacketMetadata::detailsPerStream, - testing::UnorderedElementsAre( - stream1DetailsMatcher, - stream2DetailsMatcher, - stream3DetailsMatcher)))); + testing::AllOf(testing::Field( + &OutstandingPacketMetadata::detailsPerStream, + testing::UnorderedElementsAre( + stream1DetailsMatcher, + stream2DetailsMatcher, + stream3DetailsMatcher)))); + EXPECT_THAT(conn->outstandings.packets, Contains(pktMatcher)); } } diff --git a/quic/api/test/QuicTypedTransportTest.cpp b/quic/api/test/QuicTypedTransportTest.cpp index a9ee7239a..19ae8f9c2 100644 --- a/quic/api/test/QuicTypedTransportTest.cpp +++ b/quic/api/test/QuicTypedTransportTest.cpp @@ -630,7 +630,6 @@ TYPED_TEST( EXPECT_CALL(*rawPacketProcessor, onPacketSent(_)) .Times(1) .WillOnce(Invoke([&](auto& outstandingPacket) { - EXPECT_EQ(4, outstandingPacket.metadata.totalPacketsSent); EXPECT_EQ(3, outstandingPacket.metadata.writeCount); })); @@ -685,11 +684,9 @@ TYPED_TEST( EXPECT_CALL(*rawPacketProcessor, onPacketSent(_)) .Times(2) .WillOnce(Invoke([&](auto& outstandingPacket) { - EXPECT_EQ(4, outstandingPacket.metadata.totalPacketsSent); EXPECT_EQ(3, outstandingPacket.metadata.writeCount); })) .WillOnce(Invoke([&](auto& outstandingPacket) { - EXPECT_EQ(5, outstandingPacket.metadata.totalPacketsSent); EXPECT_EQ(4, outstandingPacket.metadata.writeCount); })); @@ -768,14 +765,12 @@ TYPED_TEST(QuicTypedTransportAfterStartTest, TotalAppLimitedTime) { EXPECT_CALL(*rawPacketProcessor, onPacketSent(_)) .Times(2) .WillOnce(Invoke([&](auto& outstandingPacket) { - EXPECT_EQ(4, outstandingPacket.metadata.totalPacketsSent); EXPECT_EQ(3, outstandingPacket.metadata.writeCount); EXPECT_NE(0us, outstandingPacket.metadata.totalAppLimitedTimeUsecs); firstPacketTotalAppLimitedTimeUsecs = outstandingPacket.metadata.totalAppLimitedTimeUsecs; })) .WillOnce(Invoke([&](auto& outstandingPacket) { - EXPECT_EQ(5, outstandingPacket.metadata.totalPacketsSent); EXPECT_EQ(3, outstandingPacket.metadata.writeCount); EXPECT_EQ( firstPacketTotalAppLimitedTimeUsecs, diff --git a/quic/state/OutstandingPacket.h b/quic/state/OutstandingPacket.h index 8c6149afc..0f2740e61 100644 --- a/quic/state/OutstandingPacket.h +++ b/quic/state/OutstandingPacket.h @@ -30,8 +30,6 @@ struct OutstandingPacketMetadata { // Bytes in flight on this connection including this packet itself when this // packet is sent. uint64_t inflightBytes; - // Total number of packets sent on this connection. - uint32_t totalPacketsSent{0}; // Total number of ack-eliciting packets sent on this connection. uint32_t totalAckElicitingPacketsSent{0}; // Write Count is the value of the monotonically increasing counter which @@ -127,7 +125,6 @@ struct OutstandingPacketMetadata { isHandshake(isHandshakeIn), totalBytesSent(totalBytesSentIn), inflightBytes(inflightBytesIn), - totalPacketsSent(lossStateIn.totalPacketsSent), totalAckElicitingPacketsSent(lossStateIn.totalAckElicitingPacketsSent), writeCount(writeCount), detailsPerStream(std::move(detailsPerStream)),