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

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

Issue 2179713004: Deprecate FLAGS_quic_always_write_queued_retransmissions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@128171703
Patch Set: Created 4 years, 5 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_sent_packet_manager.h ('k') | net/quic/quic_sent_packet_manager_interface.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_sent_packet_manager.h" 5 #include "net/quic/quic_sent_packet_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 if (it->in_flight) { 315 if (it->in_flight) {
316 packets_acked_.push_back(std::make_pair(packet_number, it->bytes_sent)); 316 packets_acked_.push_back(std::make_pair(packet_number, it->bytes_sent));
317 } else if (FLAGS_quic_loss_recovery_use_largest_acked && 317 } else if (FLAGS_quic_loss_recovery_use_largest_acked &&
318 !it->is_unackable) { 318 !it->is_unackable) {
319 largest_newly_acked_ = packet_number; 319 largest_newly_acked_ = packet_number;
320 } 320 }
321 MarkPacketHandled(packet_number, &(*it), ack_delay_time); 321 MarkPacketHandled(packet_number, &(*it), ack_delay_time);
322 } 322 }
323 } 323 }
324 324
325 bool QuicSentPacketManager::HasRetransmittableFrames(
326 QuicPathId,
327 QuicPacketNumber packet_number) const {
328 return unacked_packets_.HasRetransmittableFrames(packet_number);
329 }
330
331 void QuicSentPacketManager::RetransmitUnackedPackets( 325 void QuicSentPacketManager::RetransmitUnackedPackets(
332 TransmissionType retransmission_type) { 326 TransmissionType retransmission_type) {
333 DCHECK(retransmission_type == ALL_UNACKED_RETRANSMISSION || 327 DCHECK(retransmission_type == ALL_UNACKED_RETRANSMISSION ||
334 retransmission_type == ALL_INITIAL_RETRANSMISSION); 328 retransmission_type == ALL_INITIAL_RETRANSMISSION);
335 QuicPacketNumber packet_number = unacked_packets_.GetLeastUnacked(); 329 QuicPacketNumber packet_number = unacked_packets_.GetLeastUnacked();
336 for (QuicUnackedPacketMap::const_iterator it = unacked_packets_.begin(); 330 for (QuicUnackedPacketMap::const_iterator it = unacked_packets_.begin();
337 it != unacked_packets_.end(); ++it, ++packet_number) { 331 it != unacked_packets_.end(); ++it, ++packet_number) {
338 if (!it->retransmittable_frames.empty() && 332 if (!it->retransmittable_frames.empty() &&
339 (retransmission_type == ALL_UNACKED_RETRANSMISSION || 333 (retransmission_type == ALL_UNACKED_RETRANSMISSION ||
340 it->encryption_level == ENCRYPTION_INITIAL)) { 334 it->encryption_level == ENCRYPTION_INITIAL)) {
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 largest_mtu_acked_ = info->bytes_sent; 522 largest_mtu_acked_ = info->bytes_sent;
529 network_change_visitor_->OnPathMtuIncreased(largest_mtu_acked_); 523 network_change_visitor_->OnPathMtuIncreased(largest_mtu_acked_);
530 } 524 }
531 unacked_packets_.RemoveFromInFlight(info); 525 unacked_packets_.RemoveFromInFlight(info);
532 unacked_packets_.RemoveRetransmittability(info); 526 unacked_packets_.RemoveRetransmittability(info);
533 if (FLAGS_quic_loss_recovery_use_largest_acked) { 527 if (FLAGS_quic_loss_recovery_use_largest_acked) {
534 info->is_unackable = true; 528 info->is_unackable = true;
535 } 529 }
536 } 530 }
537 531
538 bool QuicSentPacketManager::IsUnacked(QuicPathId,
539 QuicPacketNumber packet_number) const {
540 return unacked_packets_.IsUnacked(packet_number);
541 }
542
543 bool QuicSentPacketManager::HasUnackedPackets() const { 532 bool QuicSentPacketManager::HasUnackedPackets() const {
544 return unacked_packets_.HasUnackedPackets(); 533 return unacked_packets_.HasUnackedPackets();
545 } 534 }
546 535
547 QuicPacketNumber QuicSentPacketManager::GetLeastUnacked(QuicPathId) const { 536 QuicPacketNumber QuicSentPacketManager::GetLeastUnacked(QuicPathId) const {
548 return unacked_packets_.GetLeastUnacked(); 537 return unacked_packets_.GetLeastUnacked();
549 } 538 }
550 539
551 bool QuicSentPacketManager::OnPacketSent( 540 bool QuicSentPacketManager::OnPacketSent(
552 SerializedPacket* serialized_packet, 541 SerializedPacket* serialized_packet,
553 QuicPathId /*original_path_id*/, 542 QuicPathId /*original_path_id*/,
554 QuicPacketNumber original_packet_number, 543 QuicPacketNumber original_packet_number,
555 QuicTime sent_time, 544 QuicTime sent_time,
556 TransmissionType transmission_type, 545 TransmissionType transmission_type,
557 HasRetransmittableData has_retransmittable_data) { 546 HasRetransmittableData has_retransmittable_data) {
558 QuicPacketNumber packet_number = serialized_packet->packet_number; 547 QuicPacketNumber packet_number = serialized_packet->packet_number;
559 DCHECK_LT(0u, packet_number); 548 DCHECK_LT(0u, packet_number);
560 DCHECK(!unacked_packets_.IsUnacked(packet_number)); 549 DCHECK(!unacked_packets_.IsUnacked(packet_number));
561 QUIC_BUG_IF(serialized_packet->encrypted_length == 0) 550 QUIC_BUG_IF(serialized_packet->encrypted_length == 0)
562 << "Cannot send empty packets."; 551 << "Cannot send empty packets.";
563 552
564 if (delegate_ == nullptr && original_packet_number != 0) { 553 if (delegate_ == nullptr && original_packet_number != 0) {
565 if (!pending_retransmissions_.erase(original_packet_number) && 554 pending_retransmissions_.erase(original_packet_number);
566 !FLAGS_quic_always_write_queued_retransmissions) {
567 QUIC_BUG << "Expected packet number to be in "
568 << "pending_retransmissions_. packet_number: "
569 << original_packet_number;
570 }
571 } 555 }
572 556
573 if (pending_timer_transmission_count_ > 0) { 557 if (pending_timer_transmission_count_ > 0) {
574 --pending_timer_transmission_count_; 558 --pending_timer_transmission_count_;
575 } 559 }
576 560
577 // TODO(ianswett): Remove sent_time, because it's unused. 561 // TODO(ianswett): Remove sent_time, because it's unused.
578 const bool in_flight = send_algorithm_->OnPacketSent( 562 const bool in_flight = send_algorithm_->OnPacketSent(
579 sent_time, unacked_packets_.bytes_in_flight(), packet_number, 563 sent_time, unacked_packets_.bytes_in_flight(), packet_number,
580 serialized_packet->encrypted_length, has_retransmittable_data); 564 serialized_packet->encrypted_length, has_retransmittable_data);
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 } 904 }
921 905
922 void QuicSentPacketManager::CancelRetransmissionsForStream( 906 void QuicSentPacketManager::CancelRetransmissionsForStream(
923 QuicStreamId stream_id) { 907 QuicStreamId stream_id) {
924 unacked_packets_.CancelRetransmissionsForStream(stream_id); 908 unacked_packets_.CancelRetransmissionsForStream(stream_id);
925 if (delegate_ != nullptr) { 909 if (delegate_ != nullptr) {
926 return; 910 return;
927 } 911 }
928 PendingRetransmissionMap::iterator it = pending_retransmissions_.begin(); 912 PendingRetransmissionMap::iterator it = pending_retransmissions_.begin();
929 while (it != pending_retransmissions_.end()) { 913 while (it != pending_retransmissions_.end()) {
930 if (HasRetransmittableFrames(path_id_, it->first)) { 914 if (unacked_packets_.HasRetransmittableFrames(it->first)) {
931 ++it; 915 ++it;
932 continue; 916 continue;
933 } 917 }
934 it = pending_retransmissions_.erase(it); 918 it = pending_retransmissions_.erase(it);
935 } 919 }
936 } 920 }
937 921
938 void QuicSentPacketManager::EnablePacing() { 922 void QuicSentPacketManager::EnablePacing() {
939 // TODO(ianswett): Replace with a method which wraps the send algorithm in a 923 // TODO(ianswett): Replace with a method which wraps the send algorithm in a
940 // pacer every time a new algorithm is set. 924 // pacer every time a new algorithm is set.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1006 TransmissionInfo* QuicSentPacketManager::GetMutableTransmissionInfo( 990 TransmissionInfo* QuicSentPacketManager::GetMutableTransmissionInfo(
1007 QuicPacketNumber packet_number) { 991 QuicPacketNumber packet_number) {
1008 return unacked_packets_.GetMutableTransmissionInfo(packet_number); 992 return unacked_packets_.GetMutableTransmissionInfo(packet_number);
1009 } 993 }
1010 994
1011 void QuicSentPacketManager::RemoveObsoletePackets() { 995 void QuicSentPacketManager::RemoveObsoletePackets() {
1012 unacked_packets_.RemoveObsoletePackets(); 996 unacked_packets_.RemoveObsoletePackets();
1013 } 997 }
1014 998
1015 } // namespace net 999 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_sent_packet_manager.h ('k') | net/quic/quic_sent_packet_manager_interface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698