mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-08-08 09:42:06 +03:00
Do not retransmit PATH_RESPONSE
Summary: https://github.com/quicwg/base-drafts/issues/2724 Reviewed By: mjoras Differential Revision: D15719978 fbshipit-source-id: 1c57f3e2b497f1abfcd5fa3b5643d76aa51d11d9
This commit is contained in:
committed by
Facebook Github Bot
parent
3507e89c07
commit
0cc3eabc56
@@ -1283,10 +1283,10 @@ TEST_F(QuicTransportTest, ClonePathResponse) {
|
|||||||
[&](auto&) { return false; });
|
[&](auto&) { return false; });
|
||||||
}) != p.packet.frames.end();
|
}) != p.packet.frames.end();
|
||||||
});
|
});
|
||||||
EXPECT_EQ(numPathResponsePackets, 3);
|
EXPECT_EQ(numPathResponsePackets, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(QuicTransportTest, ResendPathResponseOnLoss) {
|
TEST_F(QuicTransportTest, DoNotResendPathResponseOnLoss) {
|
||||||
auto& conn = transport_->getConnectionState();
|
auto& conn = transport_->getConnectionState();
|
||||||
|
|
||||||
EXPECT_EQ(conn.pendingEvents.frames.size(), 0);
|
EXPECT_EQ(conn.pendingEvents.frames.size(), 0);
|
||||||
@@ -1302,11 +1302,7 @@ TEST_F(QuicTransportTest, ResendPathResponseOnLoss) {
|
|||||||
getLastOutstandingPacket(conn, PacketNumberSpace::AppData)->packet;
|
getLastOutstandingPacket(conn, PacketNumberSpace::AppData)->packet;
|
||||||
|
|
||||||
markPacketLoss(conn, packet, false, 2);
|
markPacketLoss(conn, packet, false, 2);
|
||||||
EXPECT_EQ(conn.pendingEvents.frames.size(), 1);
|
EXPECT_EQ(conn.pendingEvents.frames.size(), 0);
|
||||||
EXPECT_TRUE(folly::variant_match(
|
|
||||||
conn.pendingEvents.frames.front(),
|
|
||||||
[&](PathResponseFrame& f) { return f == pathResponse; },
|
|
||||||
[&](auto&) { return false; }));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(QuicTransportTest, SendNewConnectionIdFrame) {
|
TEST_F(QuicTransportTest, SendNewConnectionIdFrame) {
|
||||||
|
@@ -56,8 +56,9 @@ folly::Optional<QuicSimpleFrame> updateSimpleFrameOnPacketClone(
|
|||||||
}
|
}
|
||||||
return QuicSimpleFrame(frame);
|
return QuicSimpleFrame(frame);
|
||||||
},
|
},
|
||||||
[&](const PathResponseFrame& frame) -> folly::Optional<QuicSimpleFrame> {
|
[&](const PathResponseFrame&) -> folly::Optional<QuicSimpleFrame> {
|
||||||
return QuicSimpleFrame(frame);
|
// Do not clone PATH_RESPONSE to avoid buffering
|
||||||
|
return folly::none;
|
||||||
},
|
},
|
||||||
[&](const NewConnectionIdFrame& frame)
|
[&](const NewConnectionIdFrame& frame)
|
||||||
-> folly::Optional<QuicSimpleFrame> {
|
-> folly::Optional<QuicSimpleFrame> {
|
||||||
@@ -118,8 +119,8 @@ void updateSimpleFrameOnPacketLoss(
|
|||||||
conn.pendingEvents.pathChallenge = frame;
|
conn.pendingEvents.pathChallenge = frame;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[&](const PathResponseFrame& frame) {
|
[&](const PathResponseFrame&) {
|
||||||
conn.pendingEvents.frames.push_back(frame);
|
// Do not retransmit PATH_RESPONSE to avoid buffering
|
||||||
},
|
},
|
||||||
[&](const NewConnectionIdFrame& frame) {
|
[&](const NewConnectionIdFrame& frame) {
|
||||||
conn.pendingEvents.frames.push_back(frame);
|
conn.pendingEvents.frames.push_back(frame);
|
||||||
|
Reference in New Issue
Block a user