| 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_received_packet_manager.h" | 5 #include "net/quic/quic_received_packet_manager.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 sequence_number); | 157 sequence_number); |
| 158 | 158 |
| 159 if (ack_frame_.largest_observed > sequence_number) { | 159 if (ack_frame_.largest_observed > sequence_number) { |
| 160 // We've gotten one of the out of order packets - remove it from our | 160 // We've gotten one of the out of order packets - remove it from our |
| 161 // "missing packets" list. | 161 // "missing packets" list. |
| 162 DVLOG(1) << "Removing " << sequence_number << " from missing list"; | 162 DVLOG(1) << "Removing " << sequence_number << " from missing list"; |
| 163 ack_frame_.missing_packets.erase(sequence_number); | 163 ack_frame_.missing_packets.erase(sequence_number); |
| 164 | 164 |
| 165 // Record how out of order stats. | 165 // Record how out of order stats. |
| 166 ++stats_->packets_reordered; | 166 ++stats_->packets_reordered; |
| 167 uint32 sequence_gap = ack_frame_.largest_observed - sequence_number; | |
| 168 stats_->max_sequence_reordering = | 167 stats_->max_sequence_reordering = |
| 169 max(stats_->max_sequence_reordering, sequence_gap); | 168 max(stats_->max_sequence_reordering, |
| 169 ack_frame_.largest_observed - sequence_number); |
| 170 int64 reordering_time_us = | 170 int64 reordering_time_us = |
| 171 receipt_time.Subtract(time_largest_observed_).ToMicroseconds(); | 171 receipt_time.Subtract(time_largest_observed_).ToMicroseconds(); |
| 172 stats_->max_time_reordering_us = max(stats_->max_time_reordering_us, | 172 stats_->max_time_reordering_us = max(stats_->max_time_reordering_us, |
| 173 reordering_time_us); | 173 reordering_time_us); |
| 174 } | 174 } |
| 175 if (sequence_number > ack_frame_.largest_observed) { | 175 if (sequence_number > ack_frame_.largest_observed) { |
| 176 ack_frame_.largest_observed = sequence_number; | 176 ack_frame_.largest_observed = sequence_number; |
| 177 time_largest_observed_ = receipt_time; | 177 time_largest_observed_ = receipt_time; |
| 178 } | 178 } |
| 179 entropy_tracker_.RecordPacketEntropyHash(sequence_number, | 179 entropy_tracker_.RecordPacketEntropyHash(sequence_number, |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 return !ack_frame_.missing_packets.empty() && | 288 return !ack_frame_.missing_packets.empty() && |
| 289 (ack_frame_.largest_observed - | 289 (ack_frame_.largest_observed - |
| 290 *ack_frame_.missing_packets.rbegin()) <= kMaxPacketsAfterNewMissing; | 290 *ack_frame_.missing_packets.rbegin()) <= kMaxPacketsAfterNewMissing; |
| 291 } | 291 } |
| 292 | 292 |
| 293 size_t QuicReceivedPacketManager::NumTrackedPackets() const { | 293 size_t QuicReceivedPacketManager::NumTrackedPackets() const { |
| 294 return entropy_tracker_.size(); | 294 return entropy_tracker_.size(); |
| 295 } | 295 } |
| 296 | 296 |
| 297 } // namespace net | 297 } // namespace net |
| OLD | NEW |