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}
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
index 25cdee6..04bbd26 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
@@ -67,9 +67,6 @@
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 @@
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 @@
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 @@
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 @@
// 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(
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control.h b/modules/congestion_controller/goog_cc/goog_cc_network_control.h
index 5b3ae94..f8970c8 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control.h
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control.h
@@ -76,7 +76,7 @@
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 @@
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_;
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
index 885bdab..c6537aa 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
@@ -378,42 +378,6 @@
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