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:
committed by
Commit Bot
parent
62c39368ba
commit
a3cd717bb6
@ -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(
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user