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

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

Issue 2100763003: Replace QUIC's PathMtuAckListener with a non-AckListener approach. Protected by FLAGS_quic_no_mtu_d… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@125674835
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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 consecutive_rto_count_(0), 86 consecutive_rto_count_(0),
87 consecutive_tlp_count_(0), 87 consecutive_tlp_count_(0),
88 consecutive_crypto_retransmission_count_(0), 88 consecutive_crypto_retransmission_count_(0),
89 pending_timer_transmission_count_(0), 89 pending_timer_transmission_count_(0),
90 max_tail_loss_probes_(kDefaultMaxTailLossProbes), 90 max_tail_loss_probes_(kDefaultMaxTailLossProbes),
91 enable_half_rtt_tail_loss_probe_(false), 91 enable_half_rtt_tail_loss_probe_(false),
92 using_pacing_(false), 92 using_pacing_(false),
93 use_new_rto_(false), 93 use_new_rto_(false),
94 undo_pending_retransmits_(false), 94 undo_pending_retransmits_(false),
95 largest_newly_acked_(0), 95 largest_newly_acked_(0),
96 largest_mtu_acked_(0),
96 handshake_confirmed_(false) {} 97 handshake_confirmed_(false) {}
97 98
98 QuicSentPacketManager::~QuicSentPacketManager() {} 99 QuicSentPacketManager::~QuicSentPacketManager() {}
99 100
100 void QuicSentPacketManager::SetFromConfig(const QuicConfig& config) { 101 void QuicSentPacketManager::SetFromConfig(const QuicConfig& config) {
101 if (config.HasReceivedInitialRoundTripTimeUs() && 102 if (config.HasReceivedInitialRoundTripTimeUs() &&
102 config.ReceivedInitialRoundTripTimeUs() > 0) { 103 config.ReceivedInitialRoundTripTimeUs() > 0) {
103 rtt_stats_.set_initial_rtt_us( 104 rtt_stats_.set_initial_rtt_us(
104 max(kMinInitialRoundTripTimeUs, 105 max(kMinInitialRoundTripTimeUs,
105 min(kMaxInitialRoundTripTimeUs, 106 min(kMaxInitialRoundTripTimeUs,
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 // transmission of a crypto packet is in flight at once. 523 // transmission of a crypto packet is in flight at once.
523 // TODO(ianswett): Instead of handling all crypto packets special, 524 // TODO(ianswett): Instead of handling all crypto packets special,
524 // only handle nullptr encrypted packets in a special way. 525 // only handle nullptr encrypted packets in a special way.
525 const TransmissionInfo& newest_transmission_info = 526 const TransmissionInfo& newest_transmission_info =
526 unacked_packets_.GetTransmissionInfo(newest_transmission); 527 unacked_packets_.GetTransmissionInfo(newest_transmission);
527 if (HasCryptoHandshake(newest_transmission_info)) { 528 if (HasCryptoHandshake(newest_transmission_info)) {
528 unacked_packets_.RemoveFromInFlight(newest_transmission); 529 unacked_packets_.RemoveFromInFlight(newest_transmission);
529 } 530 }
530 } 531 }
531 532
533 if (FLAGS_quic_no_mtu_discovery_ack_listener &&
534 network_change_visitor_ != nullptr &&
535 info->bytes_sent > largest_mtu_acked_) {
536 largest_mtu_acked_ = info->bytes_sent;
537 network_change_visitor_->OnPathMtuIncreased(largest_mtu_acked_);
538 }
532 unacked_packets_.RemoveFromInFlight(info); 539 unacked_packets_.RemoveFromInFlight(info);
533 unacked_packets_.RemoveRetransmittability(info); 540 unacked_packets_.RemoveRetransmittability(info);
534 if (FLAGS_quic_loss_recovery_use_largest_acked) { 541 if (FLAGS_quic_loss_recovery_use_largest_acked) {
535 info->is_unackable = true; 542 info->is_unackable = true;
536 } 543 }
537 } 544 }
538 545
539 bool QuicSentPacketManager::IsUnacked(QuicPathId, 546 bool QuicSentPacketManager::IsUnacked(QuicPathId,
540 QuicPacketNumber packet_number) const { 547 QuicPacketNumber packet_number) const {
541 return unacked_packets_.IsUnacked(packet_number); 548 return unacked_packets_.IsUnacked(packet_number);
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
1009 TransmissionInfo* QuicSentPacketManager::GetMutableTransmissionInfo( 1016 TransmissionInfo* QuicSentPacketManager::GetMutableTransmissionInfo(
1010 QuicPacketNumber packet_number) { 1017 QuicPacketNumber packet_number) {
1011 return unacked_packets_.GetMutableTransmissionInfo(packet_number); 1018 return unacked_packets_.GetMutableTransmissionInfo(packet_number);
1012 } 1019 }
1013 1020
1014 void QuicSentPacketManager::RemoveObsoletePackets() { 1021 void QuicSentPacketManager::RemoveObsoletePackets() {
1015 unacked_packets_.RemoveObsoletePackets(); 1022 unacked_packets_.RemoveObsoletePackets();
1016 } 1023 }
1017 1024
1018 } // namespace net 1025 } // 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