Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Side by Side Diff: net/quic/quic_received_packet_manager.cc

Issue 1535363003: Switch to standard integer types in net/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: stddef Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/quic_received_packet_manager.h ('k') | net/quic/quic_reliable_client_stream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 // We've gotten one of the out of order packets - remove it from our 156 // We've gotten one of the out of order packets - remove it from our
157 // "missing packets" list. 157 // "missing packets" list.
158 DVLOG(1) << "Removing " << packet_number << " from missing list"; 158 DVLOG(1) << "Removing " << packet_number << " from missing list";
159 ack_frame_.missing_packets.Remove(packet_number); 159 ack_frame_.missing_packets.Remove(packet_number);
160 160
161 // Record how out of order stats. 161 // Record how out of order stats.
162 ++stats_->packets_reordered; 162 ++stats_->packets_reordered;
163 stats_->max_sequence_reordering = 163 stats_->max_sequence_reordering =
164 max(stats_->max_sequence_reordering, 164 max(stats_->max_sequence_reordering,
165 ack_frame_.largest_observed - packet_number); 165 ack_frame_.largest_observed - packet_number);
166 int64 reordering_time_us = 166 int64_t reordering_time_us =
167 receipt_time.Subtract(time_largest_observed_).ToMicroseconds(); 167 receipt_time.Subtract(time_largest_observed_).ToMicroseconds();
168 stats_->max_time_reordering_us = 168 stats_->max_time_reordering_us =
169 max(stats_->max_time_reordering_us, reordering_time_us); 169 max(stats_->max_time_reordering_us, reordering_time_us);
170 } 170 }
171 if (packet_number > ack_frame_.largest_observed) { 171 if (packet_number > ack_frame_.largest_observed) {
172 ack_frame_.largest_observed = packet_number; 172 ack_frame_.largest_observed = packet_number;
173 time_largest_observed_ = receipt_time; 173 time_largest_observed_ = receipt_time;
174 } 174 }
175 entropy_tracker_.RecordPacketEntropyHash(packet_number, header.entropy_hash); 175 entropy_tracker_.RecordPacketEntropyHash(packet_number, header.entropy_hash);
176 176
(...skipping 22 matching lines...) Expand all
199 } 199 }
200 200
201 namespace { 201 namespace {
202 struct isTooLarge { 202 struct isTooLarge {
203 explicit isTooLarge(QuicPacketNumber n) : largest_observed_(n) {} 203 explicit isTooLarge(QuicPacketNumber n) : largest_observed_(n) {}
204 QuicPacketNumber largest_observed_; 204 QuicPacketNumber largest_observed_;
205 205
206 // Return true if the packet in p is too different from largest_observed_ 206 // Return true if the packet in p is too different from largest_observed_
207 // to express. 207 // to express.
208 bool operator()(const std::pair<QuicPacketNumber, QuicTime>& p) const { 208 bool operator()(const std::pair<QuicPacketNumber, QuicTime>& p) const {
209 return largest_observed_ - p.first >= numeric_limits<uint8>::max(); 209 return largest_observed_ - p.first >= numeric_limits<uint8_t>::max();
210 } 210 }
211 }; 211 };
212 } // namespace 212 } // namespace
213 213
214 void QuicReceivedPacketManager::UpdateReceivedPacketInfo( 214 void QuicReceivedPacketManager::UpdateReceivedPacketInfo(
215 QuicAckFrame* ack_frame, 215 QuicAckFrame* ack_frame,
216 QuicTime approximate_now) { 216 QuicTime approximate_now) {
217 ack_frame_updated_ = false; 217 ack_frame_updated_ = false;
218 *ack_frame = ack_frame_; 218 *ack_frame = ack_frame_;
219 ack_frame->entropy_hash = EntropyHash(ack_frame_.largest_observed); 219 ack_frame->entropy_hash = EntropyHash(ack_frame_.largest_observed);
220 220
221 if (time_largest_observed_ == QuicTime::Zero()) { 221 if (time_largest_observed_ == QuicTime::Zero()) {
222 // We have received no packets. 222 // We have received no packets.
223 ack_frame->delta_time_largest_observed = QuicTime::Delta::Infinite(); 223 ack_frame->delta_time_largest_observed = QuicTime::Delta::Infinite();
224 return; 224 return;
225 } 225 }
226 226
227 // Ensure the delta is zero if approximate now is "in the past". 227 // Ensure the delta is zero if approximate now is "in the past".
228 ack_frame->delta_time_largest_observed = 228 ack_frame->delta_time_largest_observed =
229 approximate_now < time_largest_observed_ 229 approximate_now < time_largest_observed_
230 ? QuicTime::Delta::Zero() 230 ? QuicTime::Delta::Zero()
231 : approximate_now.Subtract(time_largest_observed_); 231 : approximate_now.Subtract(time_largest_observed_);
232 232
233 // Clear all packet times if any are too far from largest observed. 233 // Clear all packet times if any are too far from largest observed.
234 // It's expected this is extremely rare. 234 // It's expected this is extremely rare.
235 for (PacketTimeVector::iterator it = ack_frame_.received_packet_times.begin(); 235 for (PacketTimeVector::iterator it = ack_frame_.received_packet_times.begin();
236 it != ack_frame_.received_packet_times.end();) { 236 it != ack_frame_.received_packet_times.end();) {
237 if (ack_frame_.largest_observed - it->first >= 237 if (ack_frame_.largest_observed - it->first >=
238 numeric_limits<uint8>::max()) { 238 numeric_limits<uint8_t>::max()) {
239 it = ack_frame_.received_packet_times.erase(it); 239 it = ack_frame_.received_packet_times.erase(it);
240 } else { 240 } else {
241 ++it; 241 ++it;
242 } 242 }
243 } 243 }
244 244
245 // TODO(ianswett): Instead of transferring all the information over, 245 // TODO(ianswett): Instead of transferring all the information over,
246 // consider giving the QuicPacketGenerator a reference to this ack frame 246 // consider giving the QuicPacketGenerator a reference to this ack frame
247 // and clear it afterwards. 247 // and clear it afterwards.
248 ack_frame->received_packet_times.clear(); 248 ack_frame->received_packet_times.clear();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 return !ack_frame_.missing_packets.Empty() && 288 return !ack_frame_.missing_packets.Empty() &&
289 (ack_frame_.largest_observed - ack_frame_.missing_packets.Max()) <= 289 (ack_frame_.largest_observed - ack_frame_.missing_packets.Max()) <=
290 kMaxPacketsAfterNewMissing; 290 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
OLDNEW
« no previous file with comments | « net/quic/quic_received_packet_manager.h ('k') | net/quic/quic_reliable_client_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698