Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 // Manages the packet entropy calculation for both sent and received packets | 5 // Manages the packet entropy calculation for both sent and received packets |
| 6 // for a connection. | 6 // for a connection. |
| 7 | 7 |
| 8 #ifndef NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ | 8 #ifndef NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ |
| 9 #define NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ | 9 #define NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ |
| 10 | 10 |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 107 QuicTime receipt_time); | 107 QuicTime receipt_time); |
| 108 | 108 |
| 109 void RecordPacketRevived(QuicPacketSequenceNumber sequence_number); | 109 void RecordPacketRevived(QuicPacketSequenceNumber sequence_number); |
| 110 | 110 |
| 111 // Checks whether |sequence_number| is missing and less than largest observed. | 111 // Checks whether |sequence_number| is missing and less than largest observed. |
| 112 bool IsMissing(QuicPacketSequenceNumber sequence_number); | 112 bool IsMissing(QuicPacketSequenceNumber sequence_number); |
| 113 | 113 |
| 114 // Checks if we're still waiting for the packet with |sequence_number|. | 114 // Checks if we're still waiting for the packet with |sequence_number|. |
| 115 bool IsAwaitingPacket(QuicPacketSequenceNumber sequence_number); | 115 bool IsAwaitingPacket(QuicPacketSequenceNumber sequence_number); |
| 116 | 116 |
| 117 // Update the |received_info| for an outgoing ack. | 117 // Update the |received_info| for an outgoing ack. |
|
wtc
2014/08/04 23:28:13
|received_info| => |ack_frame|. Also fix line 134.
ramant (doing other things)
2014/08/09 02:53:19
Done.
| |
| 118 void UpdateReceivedPacketInfo(ReceivedPacketInfo* received_info, | 118 void UpdateReceivedPacketInfo(QuicAckFrame* ack_frame, |
| 119 QuicTime approximate_now); | 119 QuicTime approximate_now); |
| 120 | 120 |
| 121 // Should be called before sending an ACK packet, to decide if we need | 121 // Should be called before sending an ACK packet, to decide if we need |
| 122 // to attach a QuicCongestionFeedbackFrame block. | 122 // to attach a QuicCongestionFeedbackFrame block. |
| 123 // Returns false if no QuicCongestionFeedbackFrame block is needed. | 123 // Returns false if no QuicCongestionFeedbackFrame block is needed. |
| 124 // Otherwise fills in feedback and returns true. | 124 // Otherwise fills in feedback and returns true. |
| 125 virtual bool GenerateCongestionFeedback( | 125 virtual bool GenerateCongestionFeedback( |
| 126 QuicCongestionFeedbackFrame* feedback); | 126 QuicCongestionFeedbackFrame* feedback); |
| 127 | 127 |
| 128 // QuicReceivedEntropyHashCalculatorInterface | 128 // QuicReceivedEntropyHashCalculatorInterface |
| 129 // Called by QuicFramer, when the outgoing ack gets truncated, to recalculate | 129 // Called by QuicFramer, when the outgoing ack gets truncated, to recalculate |
| 130 // the received entropy hash for the truncated ack frame. | 130 // the received entropy hash for the truncated ack frame. |
| 131 virtual QuicPacketEntropyHash EntropyHash( | 131 virtual QuicPacketEntropyHash EntropyHash( |
| 132 QuicPacketSequenceNumber sequence_number) const OVERRIDE; | 132 QuicPacketSequenceNumber sequence_number) const OVERRIDE; |
| 133 | 133 |
| 134 // Updates internal state based on |received_info|. | 134 // Updates internal state based on |received_info|. |
| 135 void UpdatePacketInformationReceivedByPeer( | 135 void UpdatePacketInformationReceivedByPeer(const QuicAckFrame& ack_frame); |
| 136 const ReceivedPacketInfo& received_nfo); | |
| 137 // Updates internal state based on |stop_waiting|. | 136 // Updates internal state based on |stop_waiting|. |
| 138 void UpdatePacketInformationSentByPeer( | 137 void UpdatePacketInformationSentByPeer( |
| 139 const QuicStopWaitingFrame& stop_waiting); | 138 const QuicStopWaitingFrame& stop_waiting); |
| 140 | 139 |
| 141 // Returns whether the peer is missing packets. | 140 // Returns whether the peer is missing packets. |
| 142 bool HasMissingPackets(); | 141 bool HasMissingPackets(); |
| 143 | 142 |
| 144 // Returns true when there are new missing packets to be reported within 3 | 143 // Returns true when there are new missing packets to be reported within 3 |
| 145 // packets of the largest observed. | 144 // packets of the largest observed. |
| 146 bool HasNewMissingPackets(); | 145 bool HasNewMissingPackets(); |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 174 // Largest sequence number that the peer has observed. Mostly received, | 173 // Largest sequence number that the peer has observed. Mostly received, |
| 175 // missing in case of truncated acks. | 174 // missing in case of truncated acks. |
| 176 QuicPacketSequenceNumber peer_largest_observed_packet_; | 175 QuicPacketSequenceNumber peer_largest_observed_packet_; |
| 177 // Least sequence number which the peer is still waiting for. | 176 // Least sequence number which the peer is still waiting for. |
| 178 QuicPacketSequenceNumber least_packet_awaited_by_peer_; | 177 QuicPacketSequenceNumber least_packet_awaited_by_peer_; |
| 179 // Least sequence number of the the packet sent by the peer for which it | 178 // Least sequence number of the the packet sent by the peer for which it |
| 180 // hasn't received an ack. | 179 // hasn't received an ack. |
| 181 QuicPacketSequenceNumber peer_least_packet_awaiting_ack_; | 180 QuicPacketSequenceNumber peer_least_packet_awaiting_ack_; |
| 182 | 181 |
| 183 // Received packet information used to produce acks. | 182 // Received packet information used to produce acks. |
| 184 ReceivedPacketInfo received_info_; | 183 QuicAckFrame ack_frame_; |
| 185 | 184 |
| 186 // The time we received the largest_observed sequence number, or zero if | 185 // The time we received the largest_observed sequence number, or zero if |
| 187 // no sequence numbers have been received since UpdateReceivedPacketInfo. | 186 // no sequence numbers have been received since UpdateReceivedPacketInfo. |
| 188 // Needed for calculating delta_time_largest_observed. | 187 // Needed for calculating delta_time_largest_observed. |
| 189 QuicTime time_largest_observed_; | 188 QuicTime time_largest_observed_; |
| 190 | 189 |
| 191 scoped_ptr<ReceiveAlgorithmInterface> receive_algorithm_; | 190 scoped_ptr<ReceiveAlgorithmInterface> receive_algorithm_; |
| 192 | 191 |
| 193 QuicConnectionStats* stats_; | 192 QuicConnectionStats* stats_; |
| 194 | 193 |
| 195 DISALLOW_COPY_AND_ASSIGN(QuicReceivedPacketManager); | 194 DISALLOW_COPY_AND_ASSIGN(QuicReceivedPacketManager); |
| 196 }; | 195 }; |
| 197 | 196 |
| 198 } // namespace net | 197 } // namespace net |
| 199 | 198 |
| 200 #endif // NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ | 199 #endif // NET_QUIC_QUIC_RECEIVED_PACKET_MANAGER_H_ |
| OLD | NEW |