| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // BBR (Bottleneck Bandwidth and RTT) congestion control algorithm. | 5 // BBR (Bottleneck Bandwidth and RTT) congestion control algorithm. |
| 6 | 6 |
| 7 #ifndef NET_QUIC_CORE_CONGESTION_CONTROL_BBR_SENDER_H_ | 7 #ifndef NET_QUIC_CORE_CONGESTION_CONTROL_BBR_SENDER_H_ |
| 8 #define NET_QUIC_CORE_CONGESTION_CONTROL_BBR_SENDER_H_ | 8 #define NET_QUIC_CORE_CONGESTION_CONTROL_BBR_SENDER_H_ |
| 9 | 9 |
| 10 #include <cstdint> | 10 #include <cstdint> |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 | 82 |
| 83 QuicTime::Delta min_rtt; | 83 QuicTime::Delta min_rtt; |
| 84 QuicTime min_rtt_timestamp; | 84 QuicTime min_rtt_timestamp; |
| 85 | 85 |
| 86 RecoveryState recovery_state; | 86 RecoveryState recovery_state; |
| 87 QuicByteCount recovery_window; | 87 QuicByteCount recovery_window; |
| 88 | 88 |
| 89 bool last_sample_is_app_limited; | 89 bool last_sample_is_app_limited; |
| 90 }; | 90 }; |
| 91 | 91 |
| 92 BbrSender(const QuicClock* clock, | 92 BbrSender(const RttStats* rtt_stats, |
| 93 const RttStats* rtt_stats, | |
| 94 const QuicUnackedPacketMap* unacked_packets, | 93 const QuicUnackedPacketMap* unacked_packets, |
| 95 QuicPacketCount initial_tcp_congestion_window, | 94 QuicPacketCount initial_tcp_congestion_window, |
| 96 QuicPacketCount max_tcp_congestion_window, | 95 QuicPacketCount max_tcp_congestion_window, |
| 97 QuicRandom* random); | 96 QuicRandom* random); |
| 98 ~BbrSender() override; | 97 ~BbrSender() override; |
| 99 | 98 |
| 100 // Start implementation of SendAlgorithmInterface. | 99 // Start implementation of SendAlgorithmInterface. |
| 101 bool InSlowStart() const override; | 100 bool InSlowStart() const override; |
| 102 bool InRecovery() const override; | 101 bool InRecovery() const override; |
| 103 | 102 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 bool is_round_start); | 182 bool is_round_start); |
| 184 | 183 |
| 185 // Determines the appropriate pacing rate for the connection. | 184 // Determines the appropriate pacing rate for the connection. |
| 186 void CalculatePacingRate(); | 185 void CalculatePacingRate(); |
| 187 // Determines the appropriate congestion window for the connection. | 186 // Determines the appropriate congestion window for the connection. |
| 188 void CalculateCongestionWindow(QuicByteCount bytes_acked); | 187 void CalculateCongestionWindow(QuicByteCount bytes_acked); |
| 189 // Determines the approriate window that constrains the in-flight during | 188 // Determines the approriate window that constrains the in-flight during |
| 190 // recovery. | 189 // recovery. |
| 191 void CalculateRecoveryWindow(QuicByteCount bytes_acked); | 190 void CalculateRecoveryWindow(QuicByteCount bytes_acked); |
| 192 | 191 |
| 193 const QuicClock* clock_; | |
| 194 const RttStats* rtt_stats_; | 192 const RttStats* rtt_stats_; |
| 195 const QuicUnackedPacketMap* unacked_packets_; | 193 const QuicUnackedPacketMap* unacked_packets_; |
| 196 QuicRandom* random_; | 194 QuicRandom* random_; |
| 197 | 195 |
| 198 Mode mode_; | 196 Mode mode_; |
| 199 | 197 |
| 200 // Bandwidth sampler provides BBR with the bandwidth measurements at | 198 // Bandwidth sampler provides BBR with the bandwidth measurements at |
| 201 // individual points. | 199 // individual points. |
| 202 BandwidthSampler sampler_; | 200 BandwidthSampler sampler_; |
| 203 | 201 |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 | 279 |
| 282 QUIC_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os, | 280 QUIC_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os, |
| 283 const BbrSender::Mode& mode); | 281 const BbrSender::Mode& mode); |
| 284 QUIC_EXPORT_PRIVATE std::ostream& operator<<( | 282 QUIC_EXPORT_PRIVATE std::ostream& operator<<( |
| 285 std::ostream& os, | 283 std::ostream& os, |
| 286 const BbrSender::DebugState& state); | 284 const BbrSender::DebugState& state); |
| 287 | 285 |
| 288 } // namespace net | 286 } // namespace net |
| 289 | 287 |
| 290 #endif // NET_QUIC_CORE_CONGESTION_CONTROL_BBR_SENDER_H_ | 288 #endif // NET_QUIC_CORE_CONGESTION_CONTROL_BBR_SENDER_H_ |
| OLD | NEW |