mirror of
https://github.com/facebookincubator/mvfst.git
synced 2026-01-06 03:41:10 +03:00
Let handshale alarm also increase PTO stats
Summary: as title. This also fixes the handshake alarm QLog. It logs before we increased the handshake alarm count Reviewed By: mjoras Differential Revision: D20831207 fbshipit-source-id: c9a555884ec1c5737180c64b686793df0351a488
This commit is contained in:
committed by
Facebook GitHub Bot
parent
64866d78c1
commit
00db7bc8f7
@@ -299,13 +299,10 @@ void onHandshakeAlarm(
|
||||
// Alternatively we can experiment with only retransmit them without marking
|
||||
// loss
|
||||
VLOG(10) << __func__ << " " << conn;
|
||||
if (conn.qLogger) {
|
||||
conn.qLogger->addLossAlarm(
|
||||
conn.lossState.largestSent,
|
||||
conn.lossState.handshakeAlarmCount,
|
||||
(uint64_t)conn.outstandingPackets.size(),
|
||||
kHandshakeAlarm);
|
||||
}
|
||||
++conn.lossState.ptoCount;
|
||||
++conn.lossState.totalPTOCount;
|
||||
++conn.lossState.handshakeAlarmCount;
|
||||
QUIC_STATS(conn.statsCallback, onPTO);
|
||||
QUIC_TRACE(
|
||||
handshake_alarm,
|
||||
conn,
|
||||
@@ -313,7 +310,13 @@ void onHandshakeAlarm(
|
||||
conn.lossState.handshakeAlarmCount,
|
||||
(uint64_t)conn.outstandingHandshakePacketsCount,
|
||||
(uint64_t)conn.outstandingPackets.size());
|
||||
++conn.lossState.handshakeAlarmCount;
|
||||
if (conn.qLogger) {
|
||||
conn.qLogger->addLossAlarm(
|
||||
conn.lossState.largestSent,
|
||||
conn.lossState.handshakeAlarmCount,
|
||||
(uint64_t)conn.outstandingPackets.size(),
|
||||
kHandshakeAlarm);
|
||||
}
|
||||
CongestionController::LossEvent lossEvent(ClockType::now());
|
||||
auto iter = conn.outstandingPackets.begin();
|
||||
while (iter != conn.outstandingPackets.end()) {
|
||||
|
||||
@@ -990,7 +990,7 @@ TEST_F(
|
||||
conn->congestionController = std::move(mockCongestionController);
|
||||
EXPECT_CALL(*rawCongestionController, onPacketSent(_))
|
||||
.WillRepeatedly(Return());
|
||||
EXPECT_CALL(*mockQLogger, addLossAlarm(5, 0, 10, kHandshakeAlarm));
|
||||
EXPECT_CALL(*mockQLogger, addLossAlarm(5, 1, 10, kHandshakeAlarm));
|
||||
std::vector<PacketNum> lostPackets;
|
||||
PacketNum expectedLargestLostNum = 0;
|
||||
conn->lossState.currentAlarmMethod = LossState::AlarmMethod::Handshake;
|
||||
@@ -1032,7 +1032,7 @@ TEST_F(QuicLossFunctionsTest, HandshakeAlarmWithOneRttCipher) {
|
||||
conn->oneRttWriteCipher = createNoOpAead();
|
||||
conn->lossState.currentAlarmMethod = LossState::AlarmMethod::Handshake;
|
||||
std::vector<PacketNum> lostPackets;
|
||||
EXPECT_CALL(*mockQLogger, addLossAlarm(1, 0, 1, kHandshakeAlarm));
|
||||
EXPECT_CALL(*mockQLogger, addLossAlarm(1, 1, 1, kHandshakeAlarm));
|
||||
sendPacket(*conn, TimePoint(100ms), folly::none, PacketType::Handshake);
|
||||
onLossDetectionAlarm<decltype(testingLossMarkFunc(lostPackets)), Clock>(
|
||||
*conn, testingLossMarkFunc(lostPackets));
|
||||
@@ -1320,6 +1320,21 @@ TEST_F(QuicLossFunctionsTest, TestTotalPTOCount) {
|
||||
EXPECT_EQ(101, conn->lossState.totalPTOCount);
|
||||
}
|
||||
|
||||
TEST_F(QuicLossFunctionsTest, HandshakeAlarmPTOCountingAndCallbacks) {
|
||||
auto conn = createConn();
|
||||
auto mockQLogger = std::make_shared<MockQLogger>(VantagePoint::Server);
|
||||
conn->qLogger = mockQLogger;
|
||||
conn->lossState.ptoCount = 22;
|
||||
conn->lossState.totalPTOCount = 100;
|
||||
conn->lossState.handshakeAlarmCount = 3;
|
||||
EXPECT_CALL(*mockQLogger, addLossAlarm(0, 4, 0, kHandshakeAlarm));
|
||||
EXPECT_CALL(*transportInfoCb_, onPTO());
|
||||
onHandshakeAlarm(*conn, [](const auto&, auto, bool, PacketNum) {});
|
||||
EXPECT_EQ(101, conn->lossState.totalPTOCount);
|
||||
EXPECT_EQ(23, conn->lossState.ptoCount);
|
||||
EXPECT_EQ(4, conn->lossState.handshakeAlarmCount);
|
||||
}
|
||||
|
||||
TEST_F(QuicLossFunctionsTest, TestExceedsMaxPTOThrows) {
|
||||
auto conn = createConn();
|
||||
auto mockQLogger = std::make_shared<MockQLogger>(VantagePoint::Server);
|
||||
|
||||
Reference in New Issue
Block a user