OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "net/quic/quic_sent_packet_manager.h" | 5 #include "net/quic/quic_sent_packet_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 send_algorithm_->InRecovery(), | 203 send_algorithm_->InRecovery(), |
204 send_algorithm_->InSlowStart(), | 204 send_algorithm_->InSlowStart(), |
205 send_algorithm_->BandwidthEstimate(), | 205 send_algorithm_->BandwidthEstimate(), |
206 ack_receive_time, | 206 ack_receive_time, |
207 clock_->WallNow(), | 207 clock_->WallNow(), |
208 rtt_stats_.SmoothedRtt()); | 208 rtt_stats_.SmoothedRtt()); |
209 | 209 |
210 // If we have received a truncated ack, then we need to clear out some | 210 // If we have received a truncated ack, then we need to clear out some |
211 // previous transmissions to allow the peer to actually ACK new packets. | 211 // previous transmissions to allow the peer to actually ACK new packets. |
212 if (ack_frame.is_truncated) { | 212 if (ack_frame.is_truncated) { |
213 unacked_packets_.ClearPreviousRetransmissions( | 213 unacked_packets_.ClearAllPreviousRetransmissions(); |
214 ack_frame.missing_packets.size() / 2); | |
215 } | 214 } |
216 | 215 |
217 // Anytime we are making forward progress and have a new RTT estimate, reset | 216 // Anytime we are making forward progress and have a new RTT estimate, reset |
218 // the backoff counters. | 217 // the backoff counters. |
219 if (largest_observed_acked) { | 218 if (largest_observed_acked) { |
220 // Reset all retransmit counters any time a new packet is acked. | 219 // Reset all retransmit counters any time a new packet is acked. |
221 consecutive_rto_count_ = 0; | 220 consecutive_rto_count_ = 0; |
222 consecutive_tlp_count_ = 0; | 221 consecutive_tlp_count_ = 0; |
223 consecutive_crypto_retransmission_count_ = 0; | 222 consecutive_crypto_retransmission_count_ = 0; |
224 } | 223 } |
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 | 872 |
874 // Set up a pacing sender with a 5 millisecond alarm granularity. | 873 // Set up a pacing sender with a 5 millisecond alarm granularity. |
875 using_pacing_ = true; | 874 using_pacing_ = true; |
876 send_algorithm_.reset( | 875 send_algorithm_.reset( |
877 new PacingSender(send_algorithm_.release(), | 876 new PacingSender(send_algorithm_.release(), |
878 QuicTime::Delta::FromMilliseconds(5), | 877 QuicTime::Delta::FromMilliseconds(5), |
879 kInitialUnpacedBurst)); | 878 kInitialUnpacedBurst)); |
880 } | 879 } |
881 | 880 |
882 } // namespace net | 881 } // namespace net |
OLD | NEW |