| 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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 AdvanceFirstGapAndGarbageCollectEntropyMap() { | 128 AdvanceFirstGapAndGarbageCollectEntropyMap() { |
| 129 while (!packets_entropy_.empty() && packets_entropy_.front().second) { | 129 while (!packets_entropy_.empty() && packets_entropy_.front().second) { |
| 130 ++first_gap_; | 130 ++first_gap_; |
| 131 packets_entropy_.pop_front(); | 131 packets_entropy_.pop_front(); |
| 132 } | 132 } |
| 133 } | 133 } |
| 134 | 134 |
| 135 QuicReceivedPacketManager::QuicReceivedPacketManager(QuicConnectionStats* stats) | 135 QuicReceivedPacketManager::QuicReceivedPacketManager(QuicConnectionStats* stats) |
| 136 : peer_least_packet_awaiting_ack_(0), | 136 : peer_least_packet_awaiting_ack_(0), |
| 137 time_largest_observed_(QuicTime::Zero()), | 137 time_largest_observed_(QuicTime::Zero()), |
| 138 receive_algorithm_(ReceiveAlgorithmInterface::Create()), | |
| 139 stats_(stats) { | 138 stats_(stats) { |
| 140 ack_frame_.largest_observed = 0; | 139 ack_frame_.largest_observed = 0; |
| 141 ack_frame_.entropy_hash = 0; | 140 ack_frame_.entropy_hash = 0; |
| 142 } | 141 } |
| 143 | 142 |
| 144 QuicReceivedPacketManager::~QuicReceivedPacketManager() {} | 143 QuicReceivedPacketManager::~QuicReceivedPacketManager() {} |
| 145 | 144 |
| 146 void QuicReceivedPacketManager::RecordPacketReceived( | 145 void QuicReceivedPacketManager::RecordPacketReceived( |
| 147 QuicByteCount bytes, | 146 QuicByteCount bytes, |
| 148 const QuicPacketHeader& header, | 147 const QuicPacketHeader& header, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 171 stats_->max_time_reordering_us = max(stats_->max_time_reordering_us, | 170 stats_->max_time_reordering_us = max(stats_->max_time_reordering_us, |
| 172 reordering_time_us); | 171 reordering_time_us); |
| 173 } | 172 } |
| 174 if (sequence_number > ack_frame_.largest_observed) { | 173 if (sequence_number > ack_frame_.largest_observed) { |
| 175 ack_frame_.largest_observed = sequence_number; | 174 ack_frame_.largest_observed = sequence_number; |
| 176 time_largest_observed_ = receipt_time; | 175 time_largest_observed_ = receipt_time; |
| 177 } | 176 } |
| 178 entropy_tracker_.RecordPacketEntropyHash(sequence_number, | 177 entropy_tracker_.RecordPacketEntropyHash(sequence_number, |
| 179 header.entropy_hash); | 178 header.entropy_hash); |
| 180 | 179 |
| 181 receive_algorithm_->RecordIncomingPacket( | |
| 182 bytes, sequence_number, receipt_time); | |
| 183 | |
| 184 received_packet_times_.push_back( | 180 received_packet_times_.push_back( |
| 185 std::make_pair(sequence_number, receipt_time)); | 181 std::make_pair(sequence_number, receipt_time)); |
| 186 | 182 |
| 187 ack_frame_.revived_packets.erase(sequence_number); | 183 ack_frame_.revived_packets.erase(sequence_number); |
| 188 } | 184 } |
| 189 | 185 |
| 190 void QuicReceivedPacketManager::RecordPacketRevived( | 186 void QuicReceivedPacketManager::RecordPacketRevived( |
| 191 QuicPacketSequenceNumber sequence_number) { | 187 QuicPacketSequenceNumber sequence_number) { |
| 192 LOG_IF(DFATAL, !IsAwaitingPacket(sequence_number)); | 188 LOG_IF(DFATAL, !IsAwaitingPacket(sequence_number)); |
| 193 ack_frame_.revived_packets.insert(sequence_number); | 189 ack_frame_.revived_packets.insert(sequence_number); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 return !ack_frame_.missing_packets.empty() && | 278 return !ack_frame_.missing_packets.empty() && |
| 283 (ack_frame_.largest_observed - | 279 (ack_frame_.largest_observed - |
| 284 *ack_frame_.missing_packets.rbegin()) <= kMaxPacketsAfterNewMissing; | 280 *ack_frame_.missing_packets.rbegin()) <= kMaxPacketsAfterNewMissing; |
| 285 } | 281 } |
| 286 | 282 |
| 287 size_t QuicReceivedPacketManager::NumTrackedPackets() const { | 283 size_t QuicReceivedPacketManager::NumTrackedPackets() const { |
| 288 return entropy_tracker_.size(); | 284 return entropy_tracker_.size(); |
| 289 } | 285 } |
| 290 | 286 |
| 291 } // namespace net | 287 } // namespace net |
| OLD | NEW |