Subject: The Recovery Period

From: Patrick McManus <[email-masked]>
Date: Fri, 9 Feb 2018 12:48:09 -0500

Hi All,

4.3 of the recovery draft:

Recovery is a period of time beginning with detection of a lost packet.
Because QUIC retransmits stream data and control frames, not packets, it
defines the end of recovery as a packet sent after the start of recovery
being acknowledged.

and then in 4.7.2

end_of_recovery: The largest packet number sent when QUIC detects a loss.
When a larger packet is acknowledged, QUIC exits recovery.
and then in 4.7.6

OnPacketsLost() [...]
 end_of_recovery = largest_sent_packet

I think these are inconsistent.. essentially 4.7.2 and 4.7.6 should be
"next packet number sent" not "largest currently sent" - true?

---

From: Ian Swett <[email-masked]>
Date: Fri, 9 Feb 2018 13:32:03 -0500

I think this is consistent, but possibly a psuedocode definition of
InRecovery() is warranted as well?

InRecovery()
  return largest_acked_packet <= end_of_recovery

Or maybe end_of_recovery is a slightly confusing term?

---

From: Patrick McManus <[email-masked]>
Date: Fri, 9 Feb 2018 15:24:20 -0500

you're right - its ok. I missed the "when a larger" part (reading it as
"when it is recovered").

---

From: Jana Iyengar <[email-masked]>
Date: Fri, 9 Feb 2018 14:03:33 -0800

Suggest text if you think it can be made better!

---

From: Martin Thomson <[email-masked]>
Date: Sat, 10 Feb 2018 09:20:57 +1100

Ian already did.  I think that putting that in the draft would be a good idea.

---

From: Ian Swett <[email-masked]>
Date: Sun, 11 Feb 2018 16:49:45 -0500

PR sent: https://github.com/quicwg/base-drafts/pull/1106

---

From: Ian Swett <[email-masked]>
Date: Sun, 11 Feb 2018 16:50:46 -0500

And I should add, that in one case, there was a bug in the pseudocode where
it should have been <= and instead was <.