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

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

Issue 960913004: Remove dead method QuicUnackedPacketMap::RestoreInFlight. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@deprecating_FLAG_attach_ack_notifiers_to_packets_86688595
Patch Set: Created 5 years, 9 months 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_unacked_packet_map.h ('k') | net/quic/quic_unacked_packet_map_test.cc » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_unacked_packet_map.h" 5 #include "net/quic/quic_unacked_packet_map.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "net/quic/quic_connection_stats.h" 9 #include "net/quic/quic_connection_stats.h"
10 #include "net/quic/quic_utils_chromium.h" 10 #include "net/quic/quic_utils_chromium.h"
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 DCHECK_GE(sequence_number, least_unacked_); 194 DCHECK_GE(sequence_number, least_unacked_);
195 DCHECK_LT(sequence_number, least_unacked_ + unacked_packets_.size()); 195 DCHECK_LT(sequence_number, least_unacked_ + unacked_packets_.size());
196 TransmissionInfo* info = &unacked_packets_[sequence_number - least_unacked_]; 196 TransmissionInfo* info = &unacked_packets_[sequence_number - least_unacked_];
197 SequenceNumberList* all_transmissions = info->all_transmissions; 197 SequenceNumberList* all_transmissions = info->all_transmissions;
198 if (all_transmissions == nullptr) { 198 if (all_transmissions == nullptr) {
199 MaybeRemoveRetransmittableFrames(info); 199 MaybeRemoveRetransmittableFrames(info);
200 return; 200 return;
201 } 201 }
202 // TODO(ianswett): Consider adding a check to ensure there are retransmittable 202 // TODO(ianswett): Consider adding a check to ensure there are retransmittable
203 // frames associated with this packet. 203 // frames associated with this packet.
204 for (SequenceNumberList::const_iterator it = all_transmissions->begin(); 204 for (QuicPacketSequenceNumber sequence_number : *all_transmissions) {
205 it != all_transmissions->end(); ++it) {
206 TransmissionInfo* transmission_info = 205 TransmissionInfo* transmission_info =
207 &unacked_packets_[*it - least_unacked_]; 206 &unacked_packets_[sequence_number - least_unacked_];
208 MaybeRemoveRetransmittableFrames(transmission_info); 207 MaybeRemoveRetransmittableFrames(transmission_info);
209 transmission_info->all_transmissions = nullptr; 208 transmission_info->all_transmissions = nullptr;
210 } 209 }
211 delete all_transmissions; 210 delete all_transmissions;
212 } 211 }
213 212
214 void QuicUnackedPacketMap::RemoveAckability(TransmissionInfo* info) { 213 void QuicUnackedPacketMap::RemoveAckability(TransmissionInfo* info) {
215 DCHECK(info->retransmittable_frames == nullptr); 214 DCHECK(info->retransmittable_frames == nullptr);
216 info->is_unackable = true; 215 info->is_unackable = true;
217 SequenceNumberList* all_transmissions = info->all_transmissions; 216 SequenceNumberList* all_transmissions = info->all_transmissions;
218 if (all_transmissions == nullptr) { 217 if (all_transmissions == nullptr) {
219 return; 218 return;
220 } 219 }
221 for (SequenceNumberList::const_iterator it = all_transmissions->begin(); 220 for (QuicPacketSequenceNumber sequence_number : *all_transmissions) {
222 it != all_transmissions->end(); ++it) {
223 TransmissionInfo* transmission_info = 221 TransmissionInfo* transmission_info =
224 &unacked_packets_[*it - least_unacked_]; 222 &unacked_packets_[sequence_number - least_unacked_];
225 transmission_info->all_transmissions = nullptr; 223 transmission_info->all_transmissions = nullptr;
226 transmission_info->is_unackable = true; 224 transmission_info->is_unackable = true;
227 } 225 }
228 delete all_transmissions; 226 delete all_transmissions;
229 } 227 }
230 228
231 void QuicUnackedPacketMap::MaybeRemoveRetransmittableFrames( 229 void QuicUnackedPacketMap::MaybeRemoveRetransmittableFrames(
232 TransmissionInfo* transmission_info) { 230 TransmissionInfo* transmission_info) {
233 if (transmission_info->retransmittable_frames != nullptr) { 231 if (transmission_info->retransmittable_frames != nullptr) {
234 if (transmission_info->retransmittable_frames->HasCryptoHandshake() 232 if (transmission_info->retransmittable_frames->HasCryptoHandshake()
(...skipping 13 matching lines...) Expand all
248 246
249 bool QuicUnackedPacketMap::IsPacketUsefulForMeasuringRtt( 247 bool QuicUnackedPacketMap::IsPacketUsefulForMeasuringRtt(
250 QuicPacketSequenceNumber sequence_number, 248 QuicPacketSequenceNumber sequence_number,
251 const TransmissionInfo& info) const { 249 const TransmissionInfo& info) const {
252 // Packet can be used for RTT measurement if it may yet be acked as the 250 // Packet can be used for RTT measurement if it may yet be acked as the
253 // largest observed packet by the receiver. 251 // largest observed packet by the receiver.
254 return !info.is_unackable && sequence_number > largest_observed_; 252 return !info.is_unackable && sequence_number > largest_observed_;
255 } 253 }
256 254
257 bool QuicUnackedPacketMap::IsPacketUsefulForCongestionControl( 255 bool QuicUnackedPacketMap::IsPacketUsefulForCongestionControl(
258 QuicPacketSequenceNumber sequence_number,
259 const TransmissionInfo& info) const { 256 const TransmissionInfo& info) const {
260 // Packet contributes to congestion control if it is considered inflight. 257 // Packet contributes to congestion control if it is considered inflight.
261 return info.in_flight; 258 return info.in_flight;
262 } 259 }
263 260
264 bool QuicUnackedPacketMap::IsPacketUsefulForRetransmittableData( 261 bool QuicUnackedPacketMap::IsPacketUsefulForRetransmittableData(
265 QuicPacketSequenceNumber sequence_number,
266 const TransmissionInfo& info) const { 262 const TransmissionInfo& info) const {
267 // Packet may have retransmittable frames, or the data may have been 263 // Packet may have retransmittable frames, or the data may have been
268 // retransmitted with a new sequence number. 264 // retransmitted with a new sequence number.
269 return info.retransmittable_frames != nullptr || 265 return info.retransmittable_frames != nullptr ||
270 info.all_transmissions != nullptr; 266 info.all_transmissions != nullptr;
271 } 267 }
272 268
273 bool QuicUnackedPacketMap::IsPacketUseless( 269 bool QuicUnackedPacketMap::IsPacketUseless(
274 QuicPacketSequenceNumber sequence_number, 270 QuicPacketSequenceNumber sequence_number,
275 const TransmissionInfo& info) const { 271 const TransmissionInfo& info) const {
276 return !IsPacketUsefulForMeasuringRtt(sequence_number, info) && 272 return !IsPacketUsefulForMeasuringRtt(sequence_number, info) &&
277 !IsPacketUsefulForCongestionControl(sequence_number, info) && 273 !IsPacketUsefulForCongestionControl(info) &&
278 !IsPacketUsefulForRetransmittableData(sequence_number, info); 274 !IsPacketUsefulForRetransmittableData(info);
279 } 275 }
280 276
281 bool QuicUnackedPacketMap::IsPacketRemovable( 277 bool QuicUnackedPacketMap::IsPacketRemovable(
282 QuicPacketSequenceNumber sequence_number, 278 QuicPacketSequenceNumber sequence_number,
283 const TransmissionInfo& info) const { 279 const TransmissionInfo& info) const {
284 return (!IsPacketUsefulForMeasuringRtt(sequence_number, info) || 280 return (!IsPacketUsefulForMeasuringRtt(sequence_number, info) ||
285 unacked_packets_.size() > kMaxTcpCongestionWindow) && 281 unacked_packets_.size() > kMaxTcpCongestionWindow) &&
286 !IsPacketUsefulForCongestionControl(sequence_number, info) && 282 !IsPacketUsefulForCongestionControl(info) &&
287 !IsPacketUsefulForRetransmittableData(sequence_number, info); 283 !IsPacketUsefulForRetransmittableData(info);
288 } 284 }
289 285
290 bool QuicUnackedPacketMap::IsUnacked( 286 bool QuicUnackedPacketMap::IsUnacked(
291 QuicPacketSequenceNumber sequence_number) const { 287 QuicPacketSequenceNumber sequence_number) const {
292 if (sequence_number < least_unacked_ || 288 if (sequence_number < least_unacked_ ||
293 sequence_number >= least_unacked_ + unacked_packets_.size()) { 289 sequence_number >= least_unacked_ + unacked_packets_.size()) {
294 return false; 290 return false;
295 } 291 }
296 return !IsPacketUseless(sequence_number, 292 return !IsPacketUseless(sequence_number,
297 unacked_packets_[sequence_number - least_unacked_]); 293 unacked_packets_[sequence_number - least_unacked_]);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 bool QuicUnackedPacketMap::HasUnackedRetransmittableFrames() const { 377 bool QuicUnackedPacketMap::HasUnackedRetransmittableFrames() const {
382 for (UnackedPacketMap::const_reverse_iterator it = 378 for (UnackedPacketMap::const_reverse_iterator it =
383 unacked_packets_.rbegin(); it != unacked_packets_.rend(); ++it) { 379 unacked_packets_.rbegin(); it != unacked_packets_.rend(); ++it) {
384 if (it->in_flight && it->retransmittable_frames) { 380 if (it->in_flight && it->retransmittable_frames) {
385 return true; 381 return true;
386 } 382 }
387 } 383 }
388 return false; 384 return false;
389 } 385 }
390 386
391 QuicPacketSequenceNumber 387 QuicPacketSequenceNumber QuicUnackedPacketMap::GetLeastUnacked() const {
392 QuicUnackedPacketMap::GetLeastUnacked() const {
393 return least_unacked_; 388 return least_unacked_;
394 } 389 }
395 390
396 void QuicUnackedPacketMap::RestoreInFlight(
397 QuicPacketSequenceNumber sequence_number) {
398 DCHECK_GE(sequence_number, least_unacked_);
399 DCHECK_LT(sequence_number, least_unacked_ + unacked_packets_.size());
400 TransmissionInfo* info = &unacked_packets_[sequence_number - least_unacked_];
401 DCHECK(!info->in_flight);
402 DCHECK_NE(0u, info->bytes_sent);
403 DCHECK(info->sent_time.IsInitialized());
404
405 bytes_in_flight_ += info->bytes_sent;
406 info->in_flight = true;
407 }
408
409 } // namespace net 391 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_unacked_packet_map.h ('k') | net/quic/quic_unacked_packet_map_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698