| Index: net/quic/quic_sent_packet_manager.cc
|
| diff --git a/net/quic/quic_sent_packet_manager.cc b/net/quic/quic_sent_packet_manager.cc
|
| index e8a6edd2851b9cfe68e78146d63bd864a477e151..a23959763c0928a74536e02aee882370a9d0a8c8 100644
|
| --- a/net/quic/quic_sent_packet_manager.cc
|
| +++ b/net/quic/quic_sent_packet_manager.cc
|
| @@ -69,6 +69,7 @@ QuicSentPacketManager::QuicSentPacketManager(bool is_server,
|
| consecutive_rto_count_(0),
|
| consecutive_tlp_count_(0),
|
| consecutive_crypto_retransmission_count_(0),
|
| + pending_tlp_transmission_(false),
|
| max_tail_loss_probes_(kDefaultMaxTailLossProbes),
|
| using_pacing_(false) {
|
| }
|
| @@ -402,6 +403,7 @@ bool QuicSentPacketManager::OnPacketSent(
|
| HasRetransmittableData has_retransmittable_data) {
|
| DCHECK_LT(0u, sequence_number);
|
| LOG_IF(DFATAL, bytes == 0) << "Cannot send empty packets.";
|
| + pending_tlp_transmission_ = false;
|
| // In rare circumstances, the packet could be serialized, sent, and then acked
|
| // before OnPacketSent is called.
|
| if (!unacked_packets_.IsUnacked(sequence_number)) {
|
| @@ -452,6 +454,7 @@ void QuicSentPacketManager::OnRetransmissionTimeout() {
|
| // If no tail loss probe can be sent, because there are no retransmittable
|
| // packets, execute a conventional RTO to abandon old packets.
|
| ++stats_->tlp_count;
|
| + pending_tlp_transmission_ = true;
|
| RetransmitOldestPacket();
|
| return;
|
| case RTO_MODE:
|
| @@ -503,12 +506,8 @@ void QuicSentPacketManager::RetransmitOldestPacket() {
|
| }
|
|
|
| void QuicSentPacketManager::RetransmitAllPackets() {
|
| - // Abandon all retransmittable packets and packets older than the
|
| - // retransmission delay.
|
| -
|
| - DVLOG(1) << "OnRetransmissionTimeout() fired with "
|
| + DVLOG(1) << "RetransmitAllPackets() called with "
|
| << unacked_packets_.GetNumUnackedPackets() << " unacked packets.";
|
| -
|
| // Request retransmission of all retransmittable packets when the RTO
|
| // fires, and let the congestion manager decide how many to send
|
| // immediately and the remaining packets will be queued.
|
| @@ -611,11 +610,10 @@ bool QuicSentPacketManager::MaybeUpdateRTT(
|
|
|
| QuicTime::Delta QuicSentPacketManager::TimeUntilSend(
|
| QuicTime now,
|
| - TransmissionType transmission_type,
|
| HasRetransmittableData retransmittable) {
|
| // The TLP logic is entirely contained within QuicSentPacketManager, so the
|
| // send algorithm does not need to be consulted.
|
| - if (transmission_type == TLP_RETRANSMISSION) {
|
| + if (pending_tlp_transmission_) {
|
| return QuicTime::Delta::Zero();
|
| }
|
| return send_algorithm_->TimeUntilSend(
|
|
|