#include <algorithm>
#include <array>
#include <memory>
#include <optional>
#include <sstream>
#include <string>
#include <utility>
#include <vector>
#include "absl/strings/str_cat.h"
#include "quiche/quic/core/congestion_control/bbr2_misc.h"
#include "quiche/quic/core/congestion_control/bbr2_sender.h"
#include "quiche/quic/core/congestion_control/bbr_sender.h"
#include "quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.h"
#include "quiche/quic/core/quic_bandwidth.h"
#include "quiche/quic/core/quic_packet_number.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/platform/api/quic_expect_bug.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/quic/platform/api/quic_test.h"
#include "quiche/quic/test_tools/quic_config_peer.h"
#include "quiche/quic/test_tools/quic_connection_peer.h"
#include "quiche/quic/test_tools/quic_sent_packet_manager_peer.h"
#include "quiche/quic/test_tools/quic_test_utils.h"
#include "quiche/quic/test_tools/send_algorithm_test_result.pb.h"
#include "quiche/quic/test_tools/send_algorithm_test_utils.h"
#include "quiche/quic/test_tools/simulator/link.h"
#include "quiche/quic/test_tools/simulator/quic_endpoint.h"
#include "quiche/quic/test_tools/simulator/simulator.h"
#include "quiche/quic/test_tools/simulator/switch.h"
#include "quiche/quic/test_tools/simulator/traffic_policer.h"
#include "quiche/common/platform/api/quiche_command_line_flags.h"
AllOf;
Ge;
Le;
DEFINE_QUICHE_COMMAND_LINE_FLAG(…);
namespace quic {
CyclePhase;
namespace test {
const uint32_t kDefaultInitialCwndPackets = …;
const uint32_t kDefaultInitialCwndBytes = …;
struct LinkParams { … };
struct TrafficPolicerParams { … };
class DefaultTopologyParams { … };
class Bbr2SimulatorTest : public QuicTest { … };
class Bbr2DefaultTopologyTest : public Bbr2SimulatorTest { … };
TEST_F(Bbr2DefaultTopologyTest, NormalStartup) { … }
TEST_F(Bbr2DefaultTopologyTest, NormalStartupB207) { … }
TEST_F(Bbr2DefaultTopologyTest, NormalStartupB207andB205) { … }
TEST_F(Bbr2DefaultTopologyTest, NormalStartupBB2S) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransfer) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferB2RC) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferB201) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferB206) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferB207) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferBBRB) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferBBR4) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferBBR5) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferBBQ1) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferSmallBuffer) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferSmallBufferB2H2) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransfer2RTTAggregationBytes) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransfer2RTTAggregationBytesB201) { … }
TEST_F(Bbr2DefaultTopologyTest, SimpleTransferAckDecimation) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthDecrease)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncreaseB203)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncreaseBBQ0)) { … }
TEST_F(Bbr2DefaultTopologyTest,
QUIC_SLOW_TEST(BandwidthIncreaseBBQ0Aggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncreaseB202)) { … }
TEST_F(Bbr2DefaultTopologyTest,
QUIC_SLOW_TEST(BandwidthIncreaseB202Aggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncrease)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncreaseAggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncreaseBBHI)) { … }
TEST_F(Bbr2DefaultTopologyTest,
QUIC_SLOW_TEST(BandwidthIncreaseBBHIAggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest,
QUIC_SLOW_TEST(BandwidthIncreaseBBHI_B202Aggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncreaseB204)) { … }
TEST_F(Bbr2DefaultTopologyTest,
QUIC_SLOW_TEST(BandwidthIncreaseB204Aggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncreaseB205)) { … }
TEST_F(Bbr2DefaultTopologyTest,
QUIC_SLOW_TEST(BandwidthIncreaseB205Aggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest, QUIC_SLOW_TEST(BandwidthIncreaseBB2U)) { … }
TEST_F(Bbr2DefaultTopologyTest,
QUIC_SLOW_TEST(BandwidthIncreaseBB2UAggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest,
QUIC_SLOW_TEST(BandwidthIncreaseBB2UandBBHIAggregation)) { … }
TEST_F(Bbr2DefaultTopologyTest, PacketLossOnSmallBufferStartup) { … }
TEST_F(Bbr2DefaultTopologyTest, PacketLossBBQ6SmallBufferStartup) { … }
TEST_F(Bbr2DefaultTopologyTest, PacketLossBBQ7SmallBufferStartup) { … }
TEST_F(Bbr2DefaultTopologyTest, PacketLossBBQ8SmallBufferStartup) { … }
TEST_F(Bbr2DefaultTopologyTest, PacketLossBBQ9SmallBufferStartup) { … }
TEST_F(Bbr2DefaultTopologyTest, ApplicationLimitedBursts) { … }
TEST_F(Bbr2DefaultTopologyTest, ApplicationLimitedBurstsWithoutPrior) { … }
TEST_F(Bbr2DefaultTopologyTest, Drain) { … }
TEST_F(Bbr2DefaultTopologyTest, InFlightAwareGainCycling) { … }
TEST_F(Bbr2DefaultTopologyTest, ExitStartupDueToLoss) { … }
TEST_F(Bbr2DefaultTopologyTest, ExitStartupDueToLossB2SL) { … }
TEST_F(Bbr2DefaultTopologyTest, ExitStartupDueToLossB2NE) { … }
TEST_F(Bbr2DefaultTopologyTest, SenderPoliced) { … }
TEST_F(Bbr2DefaultTopologyTest, StartupStats) { … }
TEST_F(Bbr2DefaultTopologyTest, ProbeUpAdaptInflightHiGradually) { … }
TEST_F(Bbr2DefaultTopologyTest, LossOnlyCongestionEvent) { … }
TEST_F(Bbr2DefaultTopologyTest, SpuriousLossEvent) { … }
TEST_F(Bbr2DefaultTopologyTest, ProbeRttAfterQuiescenceImmediatelyExits) { … }
TEST_F(Bbr2DefaultTopologyTest, ProbeBwAfterQuiescencePostponeMinRttTimestamp) { … }
TEST_F(Bbr2DefaultTopologyTest, SwitchToBbr2MidConnection) { … }
TEST_F(Bbr2DefaultTopologyTest, AdjustNetworkParameters) { … }
TEST_F(Bbr2DefaultTopologyTest,
200InitialCongestionWindowWithNetworkParameterAdjusted) { … }
TEST_F(Bbr2DefaultTopologyTest,
100InitialCongestionWindowFromNetworkParameter) { … }
TEST_F(Bbr2DefaultTopologyTest,
100InitialCongestionWindowWithNetworkParameterAdjusted) { … }
class MultiSenderTopologyParams { … };
class Bbr2MultiSenderTest : public Bbr2SimulatorTest { … };
TEST_F(Bbr2MultiSenderTest, Bbr2VsBbr2) { … }
TEST_F(Bbr2MultiSenderTest, Bbr2VsBbr2BBPD) { … }
TEST_F(Bbr2MultiSenderTest, QUIC_SLOW_TEST(MultipleBbr2s)) { … }
TEST_F(Bbr2MultiSenderTest, Bbr2VsBbr1) { … }
TEST_F(Bbr2MultiSenderTest, QUIC_SLOW_TEST(Bbr2VsReno)) { … }
TEST_F(Bbr2MultiSenderTest, QUIC_SLOW_TEST(Bbr2VsRenoB2RC)) { … }
TEST_F(Bbr2MultiSenderTest, QUIC_SLOW_TEST(Bbr2VsCubic)) { … }
TEST(MinRttFilter, BadRttSample) { … }
}
}