Per default enable WebRTC-Bwe-EstimateBoundedIncrease/c_upper:true

This ensure upper link capacity estimate upper limit an increase in
delay based estimate, but the delay based estimate is not decreased if
link capacity estimate decrease.

Bug: webrtc:10498, b/300868877
Change-Id: I87e76e2a869e6f721cc8fe9d422e0194371d4e45
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327801
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41196}
This commit is contained in:
Per K 2023-11-20 09:52:01 +01:00 committed by WebRTC LUCI CQ
parent c09cc4f961
commit f124572ec0
2 changed files with 11 additions and 9 deletions

View File

@ -108,7 +108,7 @@ class AimdRateControl {
// If "Disabled", estimated link capacity is not used as upper bound.
FieldTrialFlag disable_estimate_bounded_increase_{"Disabled"};
FieldTrialParameter<bool> use_current_estimate_as_min_upper_bound_{"c_upper",
false};
true};
absl::optional<DataRate> last_decrease_;
};
} // namespace webrtc

View File

@ -208,6 +208,7 @@ TEST(AimdRateControlTest, SetEstimateIncreaseBweInAlr) {
TEST(AimdRateControlTest, SetEstimateUpperLimitedByNetworkEstimate) {
AimdRateControl aimd_rate_control(ExplicitKeyValueConfig(""),
/*send_side=*/true);
aimd_rate_control.SetEstimate(DataRate::BitsPerSec(300'000), kInitialTime);
NetworkStateEstimate network_estimate;
network_estimate.link_capacity_upper = DataRate::BitsPerSec(400'000);
aimd_rate_control.SetNetworkStateEstimate(network_estimate);
@ -217,11 +218,9 @@ TEST(AimdRateControlTest, SetEstimateUpperLimitedByNetworkEstimate) {
}
TEST(AimdRateControlTest,
SetEstimateUpperLimitedByCurrentBitrateIfNetworkEstimateIsLow) {
AimdRateControl aimd_rate_control(
ExplicitKeyValueConfig(
"WebRTC-Bwe-EstimateBoundedIncrease/c_upper:true/"),
/*send_side=*/true);
SetEstimateDefaultUpperLimitedByCurrentBitrateIfNetworkEstimateIsLow) {
AimdRateControl aimd_rate_control(ExplicitKeyValueConfig(""),
/*send_side=*/true);
aimd_rate_control.SetEstimate(DataRate::BitsPerSec(500'000), kInitialTime);
ASSERT_EQ(aimd_rate_control.LatestEstimate(), DataRate::BitsPerSec(500'000));
@ -233,9 +232,12 @@ TEST(AimdRateControlTest,
}
TEST(AimdRateControlTest,
SetEstimateDefaultNotUpperLimitedByCurrentBitrateIfNetworkEstimateIsLow) {
AimdRateControl aimd_rate_control(ExplicitKeyValueConfig(""),
/*send_side=*/true);
SetEstimateNotUpperLimitedByCurrentBitrateIfNetworkEstimateIsLowIf) {
AimdRateControl aimd_rate_control(
ExplicitKeyValueConfig(
"WebRTC-Bwe-EstimateBoundedIncrease/c_upper:false/"),
/*send_side=*/true);
aimd_rate_control.SetEstimate(DataRate::BitsPerSec(500'000), kInitialTime);
ASSERT_EQ(aimd_rate_control.LatestEstimate(), DataRate::BitsPerSec(500'000));