| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 * | 9 * |
| 10 */ | 10 */ |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 // suggests using this value. | 27 // suggests using this value. |
| 28 const float kHighGain = 2.885f; | 28 const float kHighGain = 2.885f; |
| 29 // BBR uses this value to drain queues created during STARTUP in one round trip | 29 // BBR uses this value to drain queues created during STARTUP in one round trip |
| 30 // time. | 30 // time. |
| 31 const float kDrainGain = 1 / kHighGain; | 31 const float kDrainGain = 1 / kHighGain; |
| 32 // kStartupGrowthTarget and kMaxRoundsWithoutGrowth are chosen from | 32 // kStartupGrowthTarget and kMaxRoundsWithoutGrowth are chosen from |
| 33 // experiments, according to the design document. | 33 // experiments, according to the design document. |
| 34 const float kStartupGrowthTarget = 1.25f; | 34 const float kStartupGrowthTarget = 1.25f; |
| 35 const int kMaxRoundsWithoutGrowth = 3; | 35 const int kMaxRoundsWithoutGrowth = 3; |
| 36 // Pacing gain values for Probe Bandwidth mode. | 36 // Pacing gain values for Probe Bandwidth mode. |
| 37 const float kPacingGain[] = {1.1, 0.9, 1, 1, 1, 1, 1, 1}; | 37 const float kPacingGain[] = {1.1f, 0.9f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}; |
| 38 const size_t kGainCycleLength = sizeof(kPacingGain) / sizeof(kPacingGain[0]); | 38 const size_t kGainCycleLength = sizeof(kPacingGain) / sizeof(kPacingGain[0]); |
| 39 // Least number of rounds PROBE_RTT should last. | 39 // Least number of rounds PROBE_RTT should last. |
| 40 const int kProbeRttDurationRounds = 1; | 40 const int kProbeRttDurationRounds = 1; |
| 41 // The least amount of milliseconds PROBE_RTT mode should last. | 41 // The least amount of milliseconds PROBE_RTT mode should last. |
| 42 const int kProbeRttDurationMs = 200; | 42 const int kProbeRttDurationMs = 200; |
| 43 // Gain value for congestion window for assuming that network has no queues. | 43 // Gain value for congestion window for assuming that network has no queues. |
| 44 const float kTargetCongestionWindowGain = 1; | 44 const float kTargetCongestionWindowGain = 1; |
| 45 // Gain value for congestion window in PROBE_BW mode. In theory it should be | 45 // Gain value for congestion window in PROBE_BW mode. In theory it should be |
| 46 // equal to 1, but in practice because of delayed acks and the way networks | 46 // equal to 1, but in practice because of delayed acks and the way networks |
| 47 // work, it is nice to have some extra room in congestion window for full link | 47 // work, it is nice to have some extra room in congestion window for full link |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 last_packet_ack_time_(0), | 105 last_packet_ack_time_(0), |
| 106 last_packet_send_time_(0), | 106 last_packet_send_time_(0), |
| 107 pacing_rate_bps_(0), | 107 pacing_rate_bps_(0), |
| 108 last_packet_send_time_during_high_gain_ms_(-1), | 108 last_packet_send_time_during_high_gain_ms_(-1), |
| 109 data_sent_before_high_gain_started_bytes_(-1), | 109 data_sent_before_high_gain_started_bytes_(-1), |
| 110 data_sent_before_high_gain_ended_bytes_(-1), | 110 data_sent_before_high_gain_ended_bytes_(-1), |
| 111 first_packet_ack_time_during_high_gain_ms_(-1), | 111 first_packet_ack_time_during_high_gain_ms_(-1), |
| 112 last_packet_ack_time_during_high_gain_ms_(-1), | 112 last_packet_ack_time_during_high_gain_ms_(-1), |
| 113 data_acked_before_high_gain_started_bytes_(-1), | 113 data_acked_before_high_gain_started_bytes_(-1), |
| 114 data_acked_before_high_gain_ended_bytes_(-1), | 114 data_acked_before_high_gain_ended_bytes_(-1), |
| 115 first_packet_seq_num_during_high_gain_(-1), | 115 first_packet_seq_num_during_high_gain_(0), |
| 116 last_packet_seq_num_during_high_gain_(-1), | 116 last_packet_seq_num_during_high_gain_(0), |
| 117 high_gain_over_(false), | 117 high_gain_over_(false), |
| 118 packet_stats_(), | 118 packet_stats_(), |
| 119 past_rtts_() { | 119 past_rtts_() { |
| 120 // Initially enter Startup mode. | 120 // Initially enter Startup mode. |
| 121 EnterStartup(); | 121 EnterStartup(); |
| 122 } | 122 } |
| 123 | 123 |
| 124 BbrBweSender::~BbrBweSender() {} | 124 BbrBweSender::~BbrBweSender() {} |
| 125 | 125 |
| 126 int BbrBweSender::GetFeedbackIntervalMs() const { | 126 int BbrBweSender::GetFeedbackIntervalMs() const { |
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 544 latest->send_time_ms + now_ms - latest->arrival_time_ms; | 544 latest->send_time_ms + now_ms - latest->arrival_time_ms; |
| 545 } | 545 } |
| 546 FeedbackPacket* fb = new BbrBweFeedback( | 546 FeedbackPacket* fb = new BbrBweFeedback( |
| 547 flow_id_, now_ms * 1000, corrected_send_time_ms, packet_feedbacks_); | 547 flow_id_, now_ms * 1000, corrected_send_time_ms, packet_feedbacks_); |
| 548 packet_feedbacks_.clear(); | 548 packet_feedbacks_.clear(); |
| 549 return fb; | 549 return fb; |
| 550 } | 550 } |
| 551 } // namespace bwe | 551 } // namespace bwe |
| 552 } // namespace testing | 552 } // namespace testing |
| 553 } // namespace webrtc | 553 } // namespace webrtc |
| OLD | NEW |