Remove WebRTC-Bwe-CongestionWindowDownlinkDelay.

Bug: webrtc:11143
Change-Id: Iaf89758de7d2a58f6e1c88293f38c5eff1a78583
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160787
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29956}
This commit is contained in:
Mirko Bonadei
2019-11-28 19:57:57 +01:00
committed by Commit Bot
parent 62c39368ba
commit a3cd717bb6
3 changed files with 4 additions and 50 deletions

View File

@ -67,9 +67,6 @@ GoogCcNetworkController::GoogCcNetworkController(NetworkControllerConfig config,
packet_feedback_only_(goog_cc_config.feedback_only),
safe_reset_on_route_change_("Enabled"),
safe_reset_acknowledged_rate_("ack"),
use_downlink_delay_for_congestion_window_(
IsEnabled(key_value_config_,
"WebRTC-Bwe-CongestionWindowDownlinkDelay")),
use_min_allocatable_as_lower_bound_(
IsNotDisabled(key_value_config_, "WebRTC-Bwe-MinAllocAsLowerBound")),
ignore_probes_lower_than_network_estimate_(
@ -199,9 +196,8 @@ NetworkControlUpdate GoogCcNetworkController::OnProcessInterval(
probes.begin(), probes.end());
if (rate_control_settings_.UseCongestionWindow() &&
use_downlink_delay_for_congestion_window_ &&
last_packet_received_time_.IsFinite() && !feedback_max_rtts_.empty()) {
UpdateCongestionWindowSize(msg.at_time - last_packet_received_time_);
UpdateCongestionWindowSize();
}
if (congestion_window_pushback_controller_ && current_data_window_) {
congestion_window_pushback_controller_->SetDataWindow(
@ -371,8 +367,7 @@ NetworkControlUpdate GoogCcNetworkController::OnTransportLossReport(
return NetworkControlUpdate();
}
void GoogCcNetworkController::UpdateCongestionWindowSize(
TimeDelta time_since_last_packet) {
void GoogCcNetworkController::UpdateCongestionWindowSize() {
TimeDelta min_feedback_max_rtt = TimeDelta::ms(
*std::min_element(feedback_max_rtts_.begin(), feedback_max_rtts_.end()));
@ -382,10 +377,6 @@ void GoogCcNetworkController::UpdateCongestionWindowSize(
TimeDelta::ms(
rate_control_settings_.GetCongestionWindowAdditionalTimeMs());
if (use_downlink_delay_for_congestion_window_) {
time_window += time_since_last_packet;
}
DataSize data_window = last_loss_based_target_rate_ * time_window;
if (current_data_window_) {
data_window =
@ -552,7 +543,7 @@ NetworkControlUpdate GoogCcNetworkController::OnTransportPacketsFeedback(
// we don't try to limit the outstanding packets.
if (rate_control_settings_.UseCongestionWindow() &&
max_feedback_rtt.IsFinite()) {
UpdateCongestionWindowSize(/*time_since_last_packet*/ TimeDelta::Zero());
UpdateCongestionWindowSize();
}
if (congestion_window_pushback_controller_ && current_data_window_) {
congestion_window_pushback_controller_->SetDataWindow(

View File

@ -76,7 +76,7 @@ class GoogCcNetworkController : public NetworkControllerInterface {
void ClampConstraints();
void MaybeTriggerOnNetworkChanged(NetworkControlUpdate* update,
Timestamp at_time);
void UpdateCongestionWindowSize(TimeDelta time_since_last_packet);
void UpdateCongestionWindowSize();
PacerConfig GetPacingRates(Timestamp at_time) const;
const FieldTrialBasedConfig trial_based_config_;
@ -85,7 +85,6 @@ class GoogCcNetworkController : public NetworkControllerInterface {
const bool packet_feedback_only_;
FieldTrialFlag safe_reset_on_route_change_;
FieldTrialFlag safe_reset_acknowledged_rate_;
const bool use_downlink_delay_for_congestion_window_;
const bool use_min_allocatable_as_lower_bound_;
const bool ignore_probes_lower_than_network_estimate_;
const RateControlSettings rate_control_settings_;

View File

@ -378,42 +378,6 @@ TEST_F(GoogCcNetworkControllerTest,
EXPECT_NEAR(client->padding_rate().kbps(), client->target_rate().kbps(), 1);
}
TEST_F(GoogCcNetworkControllerTest, CongestionWindowPushBackOnSendDelaySpike) {
ScopedFieldTrials trial(
"WebRTC-CongestionWindow/QueueSize:800,MinBitrate:30000/"
"WebRTC-Bwe-CongestionWindowDownlinkDelay/Enabled/");
Scenario s("googcc_unit/cwnd_actives_no_feedback", false);
NetworkSimulationConfig net_conf;
net_conf.bandwidth = DataRate::kbps(1000);
net_conf.delay = TimeDelta::ms(100);
auto send_net = s.CreateMutableSimulationNode(net_conf);
auto ret_net = s.CreateSimulationNode(net_conf);
auto* client = s.CreateClient("sender", CallClientConfig());
auto* route =
s.CreateRoutes(client, {send_net->node()},
s.CreateClient("return", CallClientConfig()), {ret_net});
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));
// Send being down triggers congestion window pushback.
send_net->PauseTransmissionUntil(s.Now() + TimeDelta::seconds(10));
s.RunFor(TimeDelta::seconds(3));
// Expect the target rate to be reduced rapidly due to congestion.
// We would expect things to be at 30kbps, the min bitrate. Note
// that the congestion window still gets activated since we are
// receiving packets upstream.
EXPECT_LT(client->target_rate().kbps(), 100);
EXPECT_GE(client->target_rate().kbps(), 30);
}
TEST_F(GoogCcNetworkControllerTest, LimitsToFloorIfRttIsHighInTrial) {
// The field trial limits maximum RTT to 2 seconds, higher RTT means that the
// controller backs off until it reaches the minimum configured bitrate. This