Index: net/quic/congestion_control/hybrid_slow_start.cc |
diff --git a/net/quic/congestion_control/hybrid_slow_start.cc b/net/quic/congestion_control/hybrid_slow_start.cc |
index 4b1e8426ce14ad1c05e318cc287246d557e59049..e3789b45f8a76668658d9397ffae7a91dab4859b 100644 |
--- a/net/quic/congestion_control/hybrid_slow_start.cc |
+++ b/net/quic/congestion_control/hybrid_slow_start.cc |
@@ -23,6 +23,7 @@ const int64 kHybridStartDelayMaxThresholdUs = 16000; |
HybridSlowStart::HybridSlowStart(const QuicClock* clock) |
: clock_(clock), |
+ ack_train_detection_(true), |
started_(false), |
hystart_found_(NOT_FOUND), |
last_sent_sequence_number_(0), |
@@ -84,12 +85,8 @@ bool HybridSlowStart::ShouldExitSlowStart(QuicTime::Delta latest_rtt, |
// more than the capacity. |
// This first trigger will not come into play until we hit roughly 9.6 Mbps |
// with delayed acks (or 4.8Mbps without delayed acks) |
- // TODO(ianswett): QUIC always uses delayed acks, even at the beginning, so |
- // this should likely be at least 4ms. |
- // TODO(pwestin): we need to make sure our pacing don't trigger this detector. |
- // TODO(ianswett): Pacing or other cases could be handled by checking the send |
- // time of the first acked packet in a receive round. |
- if (current_time.Subtract(last_close_ack_pair_time_).ToMicroseconds() <= |
+ if (ack_train_detection_ && |
+ current_time.Subtract(last_close_ack_pair_time_).ToMicroseconds() <= |
kHybridStartDelayMinThresholdUs) { |
last_close_ack_pair_time_ = current_time; |
if (current_time.Subtract(round_start_).ToMicroseconds() >= |