| 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 160 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 171         max(stats_->max_time_reordering_us, reordering_time_us); | 171         max(stats_->max_time_reordering_us, reordering_time_us); | 
| 172   } | 172   } | 
| 173   if (packet_number > ack_frame_.largest_observed) { | 173   if (packet_number > ack_frame_.largest_observed) { | 
| 174     ack_frame_.largest_observed = packet_number; | 174     ack_frame_.largest_observed = packet_number; | 
| 175     time_largest_observed_ = receipt_time; | 175     time_largest_observed_ = receipt_time; | 
| 176   } | 176   } | 
| 177   entropy_tracker_.RecordPacketEntropyHash(packet_number, header.entropy_hash); | 177   entropy_tracker_.RecordPacketEntropyHash(packet_number, header.entropy_hash); | 
| 178 | 178 | 
| 179   ack_frame_.received_packet_times.push_back( | 179   ack_frame_.received_packet_times.push_back( | 
| 180       std::make_pair(packet_number, receipt_time)); | 180       std::make_pair(packet_number, receipt_time)); | 
| 181 |  | 
| 182   if (ack_frame_.latest_revived_packet == packet_number) { |  | 
| 183     ack_frame_.latest_revived_packet = 0; |  | 
| 184   } |  | 
| 185 } | 181 } | 
| 186 | 182 | 
| 187 bool QuicReceivedPacketManager::IsMissing(QuicPacketNumber packet_number) { | 183 bool QuicReceivedPacketManager::IsMissing(QuicPacketNumber packet_number) { | 
| 188   return ack_frame_.missing_packets.Contains(packet_number); | 184   return ack_frame_.missing_packets.Contains(packet_number); | 
| 189 } | 185 } | 
| 190 | 186 | 
| 191 bool QuicReceivedPacketManager::IsAwaitingPacket( | 187 bool QuicReceivedPacketManager::IsAwaitingPacket( | 
| 192     QuicPacketNumber packet_number) { | 188     QuicPacketNumber packet_number) { | 
| 193   return ::net::IsAwaitingPacket(ack_frame_, packet_number); | 189   return ::net::IsAwaitingPacket(ack_frame_, packet_number); | 
| 194 } | 190 } | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 244   ack_frame->received_packet_times.swap(ack_frame_.received_packet_times); | 240   ack_frame->received_packet_times.swap(ack_frame_.received_packet_times); | 
| 245 } | 241 } | 
| 246 | 242 | 
| 247 QuicPacketEntropyHash QuicReceivedPacketManager::EntropyHash( | 243 QuicPacketEntropyHash QuicReceivedPacketManager::EntropyHash( | 
| 248     QuicPacketNumber packet_number) const { | 244     QuicPacketNumber packet_number) const { | 
| 249   return entropy_tracker_.EntropyHash(packet_number); | 245   return entropy_tracker_.EntropyHash(packet_number); | 
| 250 } | 246 } | 
| 251 | 247 | 
| 252 bool QuicReceivedPacketManager::DontWaitForPacketsBefore( | 248 bool QuicReceivedPacketManager::DontWaitForPacketsBefore( | 
| 253     QuicPacketNumber least_unacked) { | 249     QuicPacketNumber least_unacked) { | 
| 254   if (ack_frame_.latest_revived_packet < least_unacked) { |  | 
| 255     ack_frame_.latest_revived_packet = 0; |  | 
| 256   } |  | 
| 257   return ack_frame_.missing_packets.RemoveUpTo(least_unacked); | 250   return ack_frame_.missing_packets.RemoveUpTo(least_unacked); | 
| 258 } | 251 } | 
| 259 | 252 | 
| 260 void QuicReceivedPacketManager::UpdatePacketInformationSentByPeer( | 253 void QuicReceivedPacketManager::UpdatePacketInformationSentByPeer( | 
| 261     const QuicStopWaitingFrame& stop_waiting) { | 254     const QuicStopWaitingFrame& stop_waiting) { | 
| 262   // ValidateAck() should fail if peer_least_packet_awaiting_ack_ shrinks. | 255   // ValidateAck() should fail if peer_least_packet_awaiting_ack_ shrinks. | 
| 263   DCHECK_LE(peer_least_packet_awaiting_ack_, stop_waiting.least_unacked); | 256   DCHECK_LE(peer_least_packet_awaiting_ack_, stop_waiting.least_unacked); | 
| 264   if (stop_waiting.least_unacked > peer_least_packet_awaiting_ack_) { | 257   if (stop_waiting.least_unacked > peer_least_packet_awaiting_ack_) { | 
| 265     bool missed_packets = DontWaitForPacketsBefore(stop_waiting.least_unacked); | 258     bool missed_packets = DontWaitForPacketsBefore(stop_waiting.least_unacked); | 
| 266     if (missed_packets) { | 259     if (missed_packets) { | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
| 291 | 284 | 
| 292 size_t QuicReceivedPacketManager::NumTrackedPackets() const { | 285 size_t QuicReceivedPacketManager::NumTrackedPackets() const { | 
| 293   return entropy_tracker_.size(); | 286   return entropy_tracker_.size(); | 
| 294 } | 287 } | 
| 295 | 288 | 
| 296 bool QuicReceivedPacketManager::ack_frame_updated() const { | 289 bool QuicReceivedPacketManager::ack_frame_updated() const { | 
| 297   return ack_frame_updated_; | 290   return ack_frame_updated_; | 
| 298 } | 291 } | 
| 299 | 292 | 
| 300 }  // namespace net | 293 }  // namespace net | 
| OLD | NEW | 
|---|