Subject: [quicwg/base-drafts] Reset connection state on retry and VN (#2040)

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

This is an alternate patch to #2024.

Closes #1983.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/2040

-- Commit Summary --

  * Alternate patch

-- File Changes --

    M draft-ietf-quic-recovery.md (10)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/2040.patch
https://github.com/quicwg/base-drafts/pull/2040.diff

-- 
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/pull/2040

---

From: MikkelFJ <[email-masked]>
Date: Wed, 21 Nov 2018 15:30:38 -0800

I like this, but since the state is not totally reset in case of Retry since you can Retry at most once, perhaps this should be clarified?

-- 
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/pull/2040#issuecomment-440849664

---

From: Martin Thomson <[email-masked]>
Date: Wed, 21 Nov 2018 16:38:06 -0800

martinthomson commented on this pull request.

Yeah, this is hard.  This needs another go around I think.

> @@ -433,11 +433,11 @@ When crypto packets are outstanding, the TLP and RTO timers are not active.
 #### Retry and Version Negotiation
 
 A Retry or Version Negotiation packet causes a client to send another Initial
-packet, effectively restarting the connection process.
-
-Either packet indicates that the Initial was received but not processed.
-Neither packet can be treated as an acknowledgment for the Initial, but they MAY
-be used to improve the RTT estimate.
+packet, effectively restarting the connection process and resetting connection
+state, including resetting any pending timers.  Either packet indicates that the
+Initial was received but not processed.  Neither packet can be treated as an
+acknowledgment for the Initial, but they MAY be used to improve the RTT
+estimate.

Here we're into dangerous waters again.  Resetting most of the state is fine, but you can't forget the connection ID and token give to you in Token, or the list of versions from the Version Negotiation.  Here, only RTT is mentioned.  If this were scoped to recovery and congestion state, that might be better than having to reiterate what is carried over.

-- 
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/pull/2040#pullrequestreview-177471473

---

From: janaiyengar <[email-masked]>
Date: Thu, 22 Nov 2018 01:25:17 +0000 (UTC)

@janaiyengar pushed 1 commit.

9e47a68  more text

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2040/files/6fbca3cfcf23b38d71b5041249f77ba3a711190c..9e47a68efb16151d5be7d6d1aff5a1c3c5419548

---

From: janaiyengar <[email-masked]>
Date: Wed, 21 Nov 2018 17:25:52 -0800

I've tried to clarify things a bit more. See if it helps.

-- 
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/pull/2040#issuecomment-440881273

---

From: Marten Seemann <[email-masked]>
Date: Wed, 21 Nov 2018 17:39:27 -0800

marten-seemann commented on this pull request.

I’m not sure if a change to the recovery draft is sufficient to cover the whole scope of what’s happening when receiving one of these two packets. We’re also resetting flow control offsets (the CRYPTO stream starts at offset 0 again), as well as stream state  related when sending 0-RTT data.

I like the text here, maybe we can move it to the transport doc, and add that this covers all state created, except for connection IDs, packet numbers and, optionally, an RTT measurement.

-- 
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/pull/2040#pullrequestreview-177479350

---

From: Martin Thomson <[email-masked]>
Date: Thu, 22 Nov 2018 17:04:42 -0800

martinthomson approved this pull request.

This is good.  I don't know if I know how to address Marten's concern, but let's take the win we have.

-- 
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/pull/2040#pullrequestreview-177792581

---

From: ianswett <[email-masked]>
Date: Mon, 26 Nov 2018 09:09:38 -0800

ianswett approved this pull request.

-- 
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/pull/2040#pullrequestreview-178400640

---

From: janaiyengar <[email-masked]>
Date: Mon, 26 Nov 2018 22:41:33 -0800

Merged #2040 into master.

-- 
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/pull/2040#event-1988695036