Enable WebRTC-Bwe-MaxRttLimit by default.

Some of the field trial default values are changed as well.

Now available bitrate estimation will be decreasing when RTT is more than 3 seconds.
Unless different parameters for the field trial are specified.

Bug: None
Change-Id: Icd1923fc2e2e7766a7f645016c5432a52537145f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158840
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Konrad Hofbauer <hofbauer@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Nikita Zetilov <zetilovn@google.com>
Cr-Commit-Position: refs/heads/master@{#29823}
This commit is contained in:
Nikita Zetilov
2019-11-12 16:13:10 +01:00
committed by Commit Bot
parent 56d945233d
commit 8ae70f6a30
3 changed files with 11 additions and 39 deletions

View File

@ -378,41 +378,6 @@ TEST_F(GoogCcNetworkControllerTest,
EXPECT_NEAR(client->padding_rate().kbps(), client->target_rate().kbps(), 1);
}
TEST_F(GoogCcNetworkControllerTest,
NoCongestionWindowPushbackWithoutReceiveTraffic) {
ScopedFieldTrials trial(
"WebRTC-CongestionWindow/QueueSize:800,MinBitrate:30000/"
"WebRTC-Bwe-CongestionWindowDownlinkDelay/Enabled/");
Scenario s("googcc_unit/cwnd_no_downlink", false);
NetworkSimulationConfig net_conf;
net_conf.bandwidth = DataRate::kbps(1000);
net_conf.delay = TimeDelta::ms(100);
auto send_net = s.CreateSimulationNode(net_conf);
auto ret_net = s.CreateMutableSimulationNode(net_conf);
auto* client = s.CreateClient("sender", CallClientConfig());
auto* route = s.CreateRoutes(client, {send_net},
s.CreateClient("return", CallClientConfig()),
{ret_net->node()});
s.CreateVideoStream(route->forward(), VideoStreamConfig());
// A return video stream ensures we get steady traffic stream,
// so we can better differentiate between send being down and return
// being down.
s.CreateVideoStream(route->reverse(), VideoStreamConfig());
// Wait to stabilize the bandwidth estimate.
s.RunFor(TimeDelta::seconds(10));
// Disabling the return triggers the data window expansion logic
// which will stop the congestion window from activating.
ret_net->PauseTransmissionUntil(s.Now() + TimeDelta::seconds(10));
s.RunFor(TimeDelta::seconds(5));
// Expect that we never lost send speed because we received no packets.
// 500kbps is enough to demonstrate that congestion window isn't activated.
EXPECT_GE(client->target_rate().kbps(), 500);
}
TEST_F(GoogCcNetworkControllerTest, CongestionWindowPushBackOnSendDelaySpike) {
ScopedFieldTrials trial(
"WebRTC-CongestionWindow/QueueSize:800,MinBitrate:30000/"

View File

@ -153,9 +153,9 @@ DataRate LinkCapacityTracker::estimate() const {
}
RttBasedBackoff::RttBasedBackoff()
: rtt_limit_("limit", TimeDelta::PlusInfinity()),
drop_fraction_("fraction", 0.5),
drop_interval_("interval", TimeDelta::ms(300)),
: rtt_limit_("limit", TimeDelta::seconds(3)),
drop_fraction_("fraction", 0.8),
drop_interval_("interval", TimeDelta::seconds(1)),
bandwidth_floor_("floor", DataRate::kbps(5)),
// By initializing this to plus infinity, we make sure that we never
// trigger rtt backoff unless packet feedback is enabled.

View File

@ -1175,7 +1175,7 @@ void VideoSendStreamTest::TestPacketFragmentationSize(VideoFormat format,
}
void ModifySenderBitrateConfig(
BitrateConstraints* bitrate_config) override {
const int kMinBitrateBps = 30000;
const int kMinBitrateBps = 300000;
bitrate_config->min_bitrate_bps = kMinBitrateBps;
}
@ -3500,6 +3500,13 @@ void VideoSendStreamTest::TestVp9NonFlexMode(uint8_t num_temporal_layers,
const uint8_t num_temporal_layers_;
const uint8_t num_spatial_layers_;
const bool l_field_;
private:
void ModifySenderBitrateConfig(
BitrateConstraints* bitrate_config) override {
const int kMinBitrateBps = 300000;
bitrate_config->min_bitrate_bps = kMinBitrateBps;
}
} test(num_temporal_layers, num_spatial_layers);
RunBaseTest(&test);