| 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 17cd836b812c12fd2b6463e51830fc9977180053..d7f0a6060b5b1620b8a410893b135b7e516f163b 100644
|
| --- a/net/quic/quic_sent_packet_manager.cc
|
| +++ b/net/quic/quic_sent_packet_manager.cc
|
| @@ -408,6 +408,9 @@ void QuicSentPacketManager::OnRetransmissionTimeout() {
|
| ++stats_->crypto_retransmit_count;
|
| RetransmitCryptoPackets();
|
| return;
|
| + case LOSS_MODE:
|
| + InvokeLossDetection(clock_->Now());
|
| + return;
|
| case TLP_MODE:
|
| // If no tail loss probe can be sent, because there are no retransmittable
|
| // packets, execute a conventional RTO to abandon old packets.
|
| @@ -497,6 +500,9 @@ QuicSentPacketManager::RetransmissionTimeoutMode
|
| if (pending_crypto_packet_count_ > 0) {
|
| return HANDSHAKE_MODE;
|
| }
|
| + if (loss_algorithm_->GetLossTimeout() != QuicTime::Zero()) {
|
| + return LOSS_MODE;
|
| + }
|
| if (consecutive_tlp_count_ < max_tail_loss_probes_) {
|
| if (unacked_packets_.HasUnackedRetransmittableFrames()) {
|
| return TLP_MODE;
|
| @@ -639,6 +645,8 @@ const QuicTime QuicSentPacketManager::GetRetransmissionTime() const {
|
| switch (GetRetransmissionMode()) {
|
| case HANDSHAKE_MODE:
|
| return clock_->ApproximateNow().Add(GetCryptoRetransmissionDelay());
|
| + case LOSS_MODE:
|
| + return loss_algorithm_->GetLossTimeout();
|
| case TLP_MODE: {
|
| // TODO(ianswett): When CWND is available, it would be preferable to
|
| // set the timer based on the earliest retransmittable packet.
|
|
|