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

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

Issue 605733006: Land Recent QUIC Changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert Patch Set 3 Created 6 years, 2 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_flags.cc ('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 <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 const QuicClock* clock, 108 const QuicClock* clock,
109 QuicConnectionStats* stats, 109 QuicConnectionStats* stats,
110 CongestionControlType congestion_control_type, 110 CongestionControlType congestion_control_type,
111 LossDetectionType loss_type); 111 LossDetectionType loss_type);
112 virtual ~QuicSentPacketManager(); 112 virtual ~QuicSentPacketManager();
113 113
114 virtual void SetFromConfig(const QuicConfig& config); 114 virtual void SetFromConfig(const QuicConfig& config);
115 115
116 void SetHandshakeConfirmed() { handshake_confirmed_ = true; } 116 void SetHandshakeConfirmed() { handshake_confirmed_ = true; }
117 117
118 // Called when a new packet is serialized. If the packet contains
119 // retransmittable data, it will be added to the unacked packet map.
120 void OnSerializedPacket(const SerializedPacket& serialized_packet);
121
122 // Called when a packet is retransmitted with a new sequence number.
123 // Replaces the old entry in the unacked packet map with the new
124 // sequence number.
125 void OnRetransmittedPacket(QuicPacketSequenceNumber old_sequence_number,
126 QuicPacketSequenceNumber new_sequence_number);
127
128 // Processes the incoming ack. 118 // Processes the incoming ack.
129 void OnIncomingAck(const QuicAckFrame& ack_frame, 119 void OnIncomingAck(const QuicAckFrame& ack_frame,
130 QuicTime ack_receive_time); 120 QuicTime ack_receive_time);
131 121
132 // Returns true if the non-FEC packet |sequence_number| is unacked. 122 // Returns true if the non-FEC packet |sequence_number| is unacked.
133 bool IsUnacked(QuicPacketSequenceNumber sequence_number) const; 123 bool IsUnacked(QuicPacketSequenceNumber sequence_number) const;
134 124
135 // Requests retransmission of all unacked packets of |retransmission_type|. 125 // Requests retransmission of all unacked packets of |retransmission_type|.
136 void RetransmitUnackedPackets(TransmissionType retransmission_type); 126 void RetransmitUnackedPackets(TransmissionType retransmission_type);
137 127
(...skipping 24 matching lines...) Expand all
162 QuicPacketSequenceNumber GetLeastUnacked() const; 152 QuicPacketSequenceNumber GetLeastUnacked() const;
163 153
164 // Called when a congestion feedback frame is received from peer. 154 // Called when a congestion feedback frame is received from peer.
165 virtual void OnIncomingQuicCongestionFeedbackFrame( 155 virtual void OnIncomingQuicCongestionFeedbackFrame(
166 const QuicCongestionFeedbackFrame& frame, 156 const QuicCongestionFeedbackFrame& frame,
167 const QuicTime& feedback_receive_time); 157 const QuicTime& feedback_receive_time);
168 158
169 // Called when we have sent bytes to the peer. This informs the manager both 159 // Called when we have sent bytes to the peer. This informs the manager both
170 // the number of bytes sent and if they were retransmitted. Returns true if 160 // the number of bytes sent and if they were retransmitted. Returns true if
171 // the sender should reset the retransmission timer. 161 // the sender should reset the retransmission timer.
172 virtual bool OnPacketSent(QuicPacketSequenceNumber sequence_number, 162 virtual bool OnPacketSent(SerializedPacket* serialized_packet,
163 QuicPacketSequenceNumber original_sequence_number,
173 QuicTime sent_time, 164 QuicTime sent_time,
174 QuicByteCount bytes, 165 QuicByteCount bytes,
175 TransmissionType transmission_type, 166 TransmissionType transmission_type,
176 HasRetransmittableData has_retransmittable_data); 167 HasRetransmittableData has_retransmittable_data);
177 168
178 // Called when the retransmission timer expires. 169 // Called when the retransmission timer expires.
179 virtual void OnRetransmissionTimeout(); 170 virtual void OnRetransmissionTimeout();
180 171
181 // Calculate the time until we can send the next packet to the wire. 172 // Calculate the time until we can send the next packet to the wire.
182 // Note 1: When kUnknownWaitTime is returned, there is no need to poll 173 // Note 1: When kUnknownWaitTime is returned, there is no need to poll
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 // Retransmission of handshake packets prior to handshake completion. 250 // Retransmission of handshake packets prior to handshake completion.
260 HANDSHAKE_MODE, 251 HANDSHAKE_MODE,
261 // Re-invoke the loss detection when a packet is not acked before the 252 // Re-invoke the loss detection when a packet is not acked before the
262 // loss detection algorithm expects. 253 // loss detection algorithm expects.
263 LOSS_MODE, 254 LOSS_MODE,
264 }; 255 };
265 256
266 typedef linked_hash_map<QuicPacketSequenceNumber, 257 typedef linked_hash_map<QuicPacketSequenceNumber,
267 TransmissionType> PendingRetransmissionMap; 258 TransmissionType> PendingRetransmissionMap;
268 259
260 // Called when a new packet is serialized. If the packet contains
261 // retransmittable data, it will be added to the unacked packet map.
262 void OnSerializedPacket(const SerializedPacket& serialized_packet);
263
264 // Called when a packet is retransmitted with a new sequence number.
265 // Replaces the old entry in the unacked packet map with the new
266 // sequence number.
267 void OnRetransmittedPacket(QuicPacketSequenceNumber old_sequence_number,
268 QuicPacketSequenceNumber new_sequence_number);
269
269 // Updates the least_packet_awaited_by_peer. 270 // Updates the least_packet_awaited_by_peer.
270 void UpdatePacketInformationReceivedByPeer(const QuicAckFrame& ack_frame); 271 void UpdatePacketInformationReceivedByPeer(const QuicAckFrame& ack_frame);
271 272
272 // Process the incoming ack looking for newly ack'd data packets. 273 // Process the incoming ack looking for newly ack'd data packets.
273 void HandleAckForSentPackets(const QuicAckFrame& ack_frame); 274 void HandleAckForSentPackets(const QuicAckFrame& ack_frame);
274 275
275 // Returns the current retransmission mode. 276 // Returns the current retransmission mode.
276 RetransmissionTimeoutMode GetRetransmissionMode() const; 277 RetransmissionTimeoutMode GetRetransmissionMode() const;
277 278
278 // Retransmits all crypto stream packets. 279 // Retransmits all crypto stream packets.
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 // Records bandwidth from server to client in normal operation, over periods 391 // Records bandwidth from server to client in normal operation, over periods
391 // of time with no loss events. 392 // of time with no loss events.
392 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; 393 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_;
393 394
394 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); 395 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager);
395 }; 396 };
396 397
397 } // namespace net 398 } // namespace net
398 399
399 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ 400 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_
OLDNEW
« no previous file with comments | « net/quic/quic_flags.cc ('k') | net/quic/quic_sent_packet_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698