mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-08-08 09:42:06 +03:00
Separate app-limited and app-idle
Summary: Current app-limited is defined as the connection doesn't have a no non-control stream. I'm changing this to be app-idle. And app-limited will be changed to a state in connection where app isn't sending bytes fast enough to keep congestion controller probing higher bandwidth. Reviewed By: mjoras Differential Revision: D15456199 fbshipit-source-id: e084bc133284ae37ee6da8ebb3c12f505011521e
This commit is contained in:
committed by
Facebook Github Bot
parent
41a6b82538
commit
1dbe39fd76
@@ -1467,26 +1467,26 @@ INSTANTIATE_TEST_CASE_P(
|
||||
QuicTransportImplTestUniBidi,
|
||||
Values(true, false));
|
||||
|
||||
TEST_P(QuicTransportImplTestUniBidi, AppLimitedTest) {
|
||||
TEST_P(QuicTransportImplTestUniBidi, AppIdleTest) {
|
||||
auto& conn = transport->getConnectionState();
|
||||
auto mockCongestionController = std::make_unique<MockCongestionController>();
|
||||
auto rawCongestionController = mockCongestionController.get();
|
||||
conn.congestionController = std::move(mockCongestionController);
|
||||
|
||||
EXPECT_CALL(*rawCongestionController, setAppLimited(false, _)).Times(0);
|
||||
EXPECT_CALL(*rawCongestionController, setAppIdle(false, _)).Times(0);
|
||||
auto stream = createStream(transport, GetParam());
|
||||
|
||||
EXPECT_CALL(*rawCongestionController, setAppLimited(true, _));
|
||||
EXPECT_CALL(*rawCongestionController, setAppIdle(true, _));
|
||||
transport->closeStream(stream);
|
||||
}
|
||||
|
||||
TEST_P(QuicTransportImplTestUniBidi, AppLimitedTestControlStreams) {
|
||||
TEST_P(QuicTransportImplTestUniBidi, AppIdleTestControlStreams) {
|
||||
auto& conn = transport->getConnectionState();
|
||||
auto mockCongestionController = std::make_unique<MockCongestionController>();
|
||||
auto rawCongestionController = mockCongestionController.get();
|
||||
conn.congestionController = std::move(mockCongestionController);
|
||||
|
||||
EXPECT_CALL(*rawCongestionController, setAppLimited(false, _)).Times(0);
|
||||
EXPECT_CALL(*rawCongestionController, setAppIdle(false, _)).Times(0);
|
||||
auto stream = createStream(transport, GetParam());
|
||||
ASSERT_TRUE(stream);
|
||||
|
||||
@@ -1497,25 +1497,25 @@ TEST_P(QuicTransportImplTestUniBidi, AppLimitedTestControlStreams) {
|
||||
ASSERT_TRUE(ctrlStream2);
|
||||
transport->setControlStream(ctrlStream2);
|
||||
|
||||
EXPECT_CALL(*rawCongestionController, setAppLimited(true, _));
|
||||
EXPECT_CALL(*rawCongestionController, setAppIdle(true, _));
|
||||
transport->closeStream(stream);
|
||||
}
|
||||
|
||||
TEST_P(QuicTransportImplTestUniBidi, AppLimitedTestOnlyControlStreams) {
|
||||
TEST_P(QuicTransportImplTestUniBidi, AppIdleTestOnlyControlStreams) {
|
||||
auto& conn = transport->getConnectionState();
|
||||
auto mockCongestionController = std::make_unique<MockCongestionController>();
|
||||
auto rawCongestionController = mockCongestionController.get();
|
||||
conn.congestionController = std::move(mockCongestionController);
|
||||
|
||||
auto ctrlStream1 = createStream(transport, GetParam());
|
||||
EXPECT_CALL(*rawCongestionController, setAppLimited(true, _)).Times(1);
|
||||
EXPECT_CALL(*rawCongestionController, setAppIdle(true, _)).Times(1);
|
||||
transport->setControlStream(ctrlStream1);
|
||||
EXPECT_CALL(*rawCongestionController, setAppLimited(false, _)).Times(1);
|
||||
EXPECT_CALL(*rawCongestionController, setAppIdle(false, _)).Times(1);
|
||||
auto ctrlStream2 = createStream(transport, GetParam());
|
||||
EXPECT_CALL(*rawCongestionController, setAppLimited(true, _)).Times(1);
|
||||
EXPECT_CALL(*rawCongestionController, setAppIdle(true, _)).Times(1);
|
||||
transport->setControlStream(ctrlStream2);
|
||||
|
||||
EXPECT_CALL(*rawCongestionController, setAppLimited(_, _)).Times(0);
|
||||
EXPECT_CALL(*rawCongestionController, setAppIdle(_, _)).Times(0);
|
||||
transport->closeStream(ctrlStream1);
|
||||
transport->closeStream(ctrlStream2);
|
||||
}
|
||||
|
Reference in New Issue
Block a user