Subject: [quicwg/base-drafts] bytes_in_flight update issue (#2009)

From: Lars Eggert <[email-masked]>
Date: Thu, 15 Nov 2018 06:05:01 -0800

I think the following issue exists in the pseudo code:

For a new ACK block, `OnAckReceived()` first calls `OnPacketAcked()`, where `OnPacketAckedCC()` reduces `bytes_in_flight` by the sizes of whichwever packets were ACKed.

Then,`OnAckReceived()` calls `DetectLostPackets()`,  which reduces `bytes_in_flight` for every packet that it determines to be lost. That can cause `bytes_in_flight` to become zero.

Next, `SetLossDetectionTimer()` is called. The first thing that does is to cancel the `loss_detection_timer` when `bytes_in_flight` is zero.

So when and how are the packets that were declared lost retransmitted?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2009

---

From: Tatsuhiro Tsujikawa <[email-masked]>
Date: Sat, 17 Nov 2018 19:39:58 -0800

I think endpoint should actively resend lost packets without timer.  The endpoint already knows which packets are lost, so it can just start to resend them.  After they are sent, start timer again.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2009#issuecomment-439665262

---

From: ianswett <[email-masked]>
Date: Tue, 20 Nov 2018 10:24:53 -0800

Yes, just as in TCP, the timer is not used to retransmit any data determined lost by fast retransmit.

In the "Loss Detection" section it says:
"If a packet is lost, the QUIC transport needs to recover from that loss, such as by retransmitting the data, sending an updated frame, or abandoning the frame. For more information, see Section 13.2 of {{QUIC-TRANSPORT}}."

Is there some additional text you'd like?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2009#issuecomment-440380559

---

From: janaiyengar <[email-masked]>
Date: Wed, 21 Nov 2018 15:05:51 -0800

@larseggert : That is correct behavior because even though packets have been deemed lost, nothing has been resent yet. bytes_in_flight == 0 means that there's nothing to start a timer for. When the lost data is retransmitted in new packets, OnPacketSent gets called, which sets the timer.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2009#issuecomment-440842129

---

From: Lars Eggert <[email-masked]>
Date: Mon, 26 Nov 2018 02:09:49 -0800

Closed #2009.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2009#event-1986330776