1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-09 10:00:57 +03:00

Differentiate ACK_FREQUENCY policy early in connection.

Summary: This changes the experimental behavior of BBR sending ACK_FREQUENCY frames. Now instead of using the static ack eliciting threshold, early in the connection BBR will set the threshold to 2 which has been empirically shown to be a good "initial" value.

Reviewed By: jbeshay

Differential Revision: D40438721

fbshipit-source-id: 184b8025581b6152eea97f9b557b6343d980322d
This commit is contained in:
Matt Joras
2022-10-17 17:54:45 -07:00
committed by Facebook GitHub Bot
parent 5ed1febddc
commit c8f357156e
6 changed files with 37 additions and 13 deletions

View File

@@ -4805,11 +4805,11 @@ TEST_F(QuicServerTransportTest, TestAckFrequencyPolicyKnobHandler) {
EXPECT_FALSE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
server->handleKnobParams(
{{static_cast<uint64_t>(TransportKnobParamId::ACK_FREQUENCY_POLICY),
"1,1,1"}});
"1,1,1,1"}});
EXPECT_FALSE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
server->handleKnobParams(
{{static_cast<uint64_t>(TransportKnobParamId::ACK_FREQUENCY_POLICY),
"10,3,1"}});
"10,3,1,1"}});
ASSERT_TRUE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
EXPECT_EQ(
server->getTransportSettings()
@@ -4823,31 +4823,35 @@ TEST_F(QuicServerTransportTest, TestAckFrequencyPolicyKnobHandler) {
server->getTransportSettings()
.bbrConfig.ackFrequencyConfig->minRttDivisor,
1);
EXPECT_EQ(
server->getTransportSettings()
.bbrConfig.ackFrequencyConfig->useSmallThresholdDuringStartup,
true);
server->getNonConstConn()
.transportSettings.bbrConfig.ackFrequencyConfig.reset();
server->handleKnobParams(
{{static_cast<uint64_t>(TransportKnobParamId::ACK_FREQUENCY_POLICY),
"10,3,-1"}});
"10,3,-1,1"}});
EXPECT_FALSE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
server->handleKnobParams(
{{static_cast<uint64_t>(TransportKnobParamId::ACK_FREQUENCY_POLICY),
"10,-1,1"}});
"10,-1,1,1"}});
EXPECT_FALSE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
server->handleKnobParams(
{{static_cast<uint64_t>(TransportKnobParamId::ACK_FREQUENCY_POLICY),
"-1,3,1"}});
"-1,3,1,1"}});
EXPECT_FALSE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
server->handleKnobParams(
{{static_cast<uint64_t>(TransportKnobParamId::ACK_FREQUENCY_POLICY),
"10,3,0"}});
"10,3,0,1"}});
EXPECT_FALSE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
server->handleKnobParams(
{{static_cast<uint64_t>(TransportKnobParamId::ACK_FREQUENCY_POLICY),
"10,1,1"}});
"10,1,1,1"}});
EXPECT_FALSE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
server->handleKnobParams(
{{static_cast<uint64_t>(TransportKnobParamId::ACK_FREQUENCY_POLICY),
"1,3,1"}});
"1,3,1,1"}});
EXPECT_FALSE(server->getTransportSettings().bbrConfig.ackFrequencyConfig);
}