1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-08-06 22:22:38 +03:00

Handle lossTime before crypto timer in Quic

Summary:
Currently we handle crypto timer before loss timer. And currently loss
time is for AppData only since for the other two Packet Number spaces, crypto
timer will take care of it. This diff extends loss times to 3 loss times, and
handle them before handle crypto timer. The rational here is that loss time is
shorter than crypto timer, so this will make retransmission during crypto
handshake more aggressive. For app data, this diff doesn't change anything.

Reviewed By: sharma95

Differential Revision: D15552405

fbshipit-source-id: bd5c24b0622c72325ffdea36d0802d4939bae854
This commit is contained in:
Yang Chi
2019-06-17 18:03:41 -07:00
committed by Facebook Github Bot
parent cb8d280620
commit 42b2617e44
8 changed files with 161 additions and 33 deletions

View File

@@ -1001,7 +1001,9 @@ TEST_F(QuicTransportTest, ClonePathChallenge) {
conn.outstandingHandshakePacketsCount = 0;
conn.outstandingPureAckPacketsCount = 0;
conn.outstandingPackets.clear();
conn.lossState.lossTime.clear();
conn.lossState.initialLossTime.clear();
conn.lossState.handshakeLossTime.clear();
conn.lossState.appDataLossTime.clear();
PathChallengeFrame pathChallenge(123);
conn.pendingEvents.pathChallenge = pathChallenge;
@@ -1062,7 +1064,9 @@ TEST_F(QuicTransportTest, OnlyClonePathValidationIfOutstanding) {
conn.outstandingHandshakePacketsCount = 0;
conn.outstandingPureAckPacketsCount = 0;
conn.outstandingPackets.clear();
conn.lossState.lossTime.clear();
conn.lossState.initialLossTime.clear();
conn.lossState.handshakeLossTime.clear();
conn.lossState.appDataLossTime.clear();
PathChallengeFrame pathChallenge(123);
conn.pendingEvents.pathChallenge = pathChallenge;
@@ -1225,7 +1229,9 @@ TEST_F(QuicTransportTest, ClonePathResponse) {
conn.outstandingHandshakePacketsCount = 0;
conn.outstandingPureAckPacketsCount = 0;
conn.outstandingPackets.clear();
conn.lossState.lossTime.clear();
conn.lossState.initialLossTime.clear();
conn.lossState.handshakeLossTime.clear();
conn.lossState.appDataLossTime.clear();
EXPECT_EQ(conn.pendingEvents.frames.size(), 0);
PathResponseFrame pathResponse(123);
@@ -1337,7 +1343,9 @@ TEST_F(QuicTransportTest, CloneNewConnectionIdFrame) {
conn.outstandingHandshakePacketsCount = 0;
conn.outstandingPureAckPacketsCount = 0;
conn.outstandingPackets.clear();
conn.lossState.lossTime.clear();
conn.lossState.initialLossTime.clear();
conn.lossState.handshakeLossTime.clear();
conn.lossState.appDataLossTime.clear();
NewConnectionIdFrame newConnId(
1, ConnectionId({2, 4, 2, 3}), StatelessResetToken());