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

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

Issue 1983183002: Landing Recent QUIC changes until 5/14/2016 02:25:25 UTC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: "first try to fix link error for win_clang build" Created 4 years, 7 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_protocol.h ('k') | net/quic/quic_sent_packet_manager.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 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 #ifndef NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ 5 #ifndef NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_
6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ 6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 // they don't get retransmitted. 151 // they don't get retransmitted.
152 void NeuterUnencryptedPackets(); 152 void NeuterUnencryptedPackets();
153 153
154 // Returns true if the unacked packet |packet_number| has retransmittable 154 // Returns true if the unacked packet |packet_number| has retransmittable
155 // frames. This will only return false if the packet has been acked, if a 155 // frames. This will only return false if the packet has been acked, if a
156 // previous transmission of this packet was ACK'd, or if this packet has been 156 // previous transmission of this packet was ACK'd, or if this packet has been
157 // retransmitted as with different packet number. 157 // retransmitted as with different packet number.
158 bool HasRetransmittableFrames(QuicPacketNumber packet_number) const; 158 bool HasRetransmittableFrames(QuicPacketNumber packet_number) const;
159 159
160 // Returns true if there are pending retransmissions. 160 // Returns true if there are pending retransmissions.
161 // Not const because retransmissions may be cancelled before returning.
161 bool HasPendingRetransmissions() const; 162 bool HasPendingRetransmissions() const;
162 163
163 // Retrieves the next pending retransmission. You must ensure that 164 // Retrieves the next pending retransmission. You must ensure that
164 // there are pending retransmissions prior to calling this function. 165 // there are pending retransmissions prior to calling this function.
165 PendingRetransmission NextPendingRetransmission(); 166 PendingRetransmission NextPendingRetransmission();
166 167
167 bool HasUnackedPackets() const; 168 bool HasUnackedPackets() const;
168 169
169 // Returns the smallest packet number of a serialized packet which has not 170 // Returns the smallest packet number of a serialized packet which has not
170 // been acked by the peer. 171 // been acked by the peer.
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 // Number of pending transmissions of TLP, RTO, or crypto packets. 428 // Number of pending transmissions of TLP, RTO, or crypto packets.
428 size_t pending_timer_transmission_count_; 429 size_t pending_timer_transmission_count_;
429 // Maximum number of tail loss probes to send before firing an RTO. 430 // Maximum number of tail loss probes to send before firing an RTO.
430 size_t max_tail_loss_probes_; 431 size_t max_tail_loss_probes_;
431 // If true, send the TLP at 0.5 RTT. 432 // If true, send the TLP at 0.5 RTT.
432 bool enable_half_rtt_tail_loss_probe_; 433 bool enable_half_rtt_tail_loss_probe_;
433 bool using_pacing_; 434 bool using_pacing_;
434 // If true, use the new RTO with loss based CWND reduction instead of the send 435 // If true, use the new RTO with loss based CWND reduction instead of the send
435 // algorithms's OnRetransmissionTimeout to reduce the congestion window. 436 // algorithms's OnRetransmissionTimeout to reduce the congestion window.
436 bool use_new_rto_; 437 bool use_new_rto_;
438 // If true, cancel pending retransmissions if they're larger than
439 // largest_newly_acked.
440 bool undo_pending_retransmits_;
437 441
438 // Vectors packets acked and lost as a result of the last congestion event. 442 // Vectors packets acked and lost as a result of the last congestion event.
439 SendAlgorithmInterface::CongestionVector packets_acked_; 443 SendAlgorithmInterface::CongestionVector packets_acked_;
440 SendAlgorithmInterface::CongestionVector packets_lost_; 444 SendAlgorithmInterface::CongestionVector packets_lost_;
441 // Largest newly acknowledged packet. 445 // Largest newly acknowledged packet.
442 QuicPacketNumber largest_newly_acked_; 446 QuicPacketNumber largest_newly_acked_;
443 447
444 // Set to true after the crypto handshake has successfully completed. After 448 // Set to true after the crypto handshake has successfully completed. After
445 // this is true we no longer use HANDSHAKE_MODE, and further frames sent on 449 // this is true we no longer use HANDSHAKE_MODE, and further frames sent on
446 // the crypto stream (i.e. SCUP messages) are treated like normal 450 // the crypto stream (i.e. SCUP messages) are treated like normal
447 // retransmittable frames. 451 // retransmittable frames.
448 bool handshake_confirmed_; 452 bool handshake_confirmed_;
449 453
450 // Records bandwidth from server to client in normal operation, over periods 454 // Records bandwidth from server to client in normal operation, over periods
451 // of time with no loss events. 455 // of time with no loss events.
452 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; 456 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_;
453 457
454 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); 458 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager);
455 }; 459 };
456 460
457 } // namespace net 461 } // namespace net
458 462
459 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ 463 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_
OLDNEW
« no previous file with comments | « net/quic/quic_protocol.h ('k') | net/quic/quic_sent_packet_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698