Subject: [quicwg/base-drafts] Reset the handshake timer on Retry and VN (#2024)

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

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

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

-- Commit Summary --

  * Reset the handshake timer on Retry and VN

-- File Changes --

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

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/2024.patch
https://github.com/quicwg/base-drafts/pull/2024.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/2024

---

From: Subodh Iyengar <[email-masked]>
Date: Tue, 20 Nov 2018 18:45:58 +0000 (UTC)

siyengar commented on this pull request.

> @@ -375,7 +375,8 @@ 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.
+be used to improve the RTT estimate.  Whether or not the RTT estimate is

hmm, wouldn't this automatically happen with the current. Receiving a VN or Retry will send a Handshake packet. Is this just editorial clarification?

-- 
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/2024#pullrequestreview-176919320

---

From: ianswett <[email-masked]>
Date: Tue, 20 Nov 2018 19:02:52 +0000 (UTC)

ianswett commented on this pull request.

Yes, this is intended as editorial clarification to fix #1983

-- 
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/2024#discussion_r235130669

---

From: Subodh Iyengar <[email-masked]>
Date: Tue, 20 Nov 2018 11:28:18 -0800

Maybe we should clarify by saying instead "Initial packets sent in response to the VN or Retry packets will reset the handshake timer". 

It seems like the new text suggest that we should explicitly start a timer at this event. I'd rather start a timer at the onPacketSent event instead.

-- 
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/2024#discussion_r235139269

---

From: ianswett <[email-masked]>
Date: Tue, 20 Nov 2018 11:29:45 -0800

Agreed, that wasn't what I intended to say, but that's how it came out.  I'll try to fix it, or if you want to make a suggestion, that'd be great.

-- 
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/2024#discussion_r235139751

---

From: Subodh Iyengar <[email-masked]>
Date: Tue, 20 Nov 2018 11:41:23 -0800

Oh my suggestion was "Initial packets that are sent in response to the VN or Retry packets will reset the handshake 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/pull/2024#discussion_r235143549

---

From: ianswett <[email-masked]>
Date: Tue, 20 Nov 2018 12:14:21 -0800

@ianswett pushed 1 commit.

b752329  Update draft-ietf-quic-recovery.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/2024/files/82961a33efbe0d597c7f613d3470e6522f7263dd..b752329b7b470cdf3526cbb4f60aaa729d74a329

---

From: ianswett <[email-masked]>
Date: Tue, 20 Nov 2018 12:14:37 -0800

Thanks, done

-- 
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/2024#discussion_r235153739

---

From: Subodh Iyengar <[email-masked]>
Date: Tue, 20 Nov 2018 12:30:24 -0800

siyengar approved this pull request.

looks great to me

-- 
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/2024#pullrequestreview-176960972

---

From: Marten Seemann <[email-masked]>
Date: Tue, 20 Nov 2018 15:25:47 -0800

Do we really need this? I think of VN and Retry as basically restarting the whole connection (and this is exactly how I implemented it), but if we want to be that explicit, we’d also have to talk about resetting flow control and stream offsets etc., right?

-- 
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/2024#issuecomment-440465649

---

From: ianswett <[email-masked]>
Date: Tue, 20 Nov 2018 15:30:14 -0800

Good question, @marten-seemann I'm not sure it's necessary because of what you said, but there was a request for clarification.

Do you think we're better off keeping the text as-is and doing nothing?

-- 
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/2024#issuecomment-440466552

---

From: MikkelFJ <[email-masked]>
Date: Tue, 20 Nov 2018 15:30:39 -0800

@marten-seemann VN and Retry are essentially new connections, but they still participate in a single connection attempt which would have some state (e.g. Retry at most once) and an overall timeout. But perhaps it is simpler to assume defaults of new connections with the  few exceptions that apply mentioned explicitly.

-- 
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/2024#issuecomment-440466654

---

From: Marten Seemann <[email-masked]>
Date: Tue, 20 Nov 2018 20:35:05 -0800

@ianswett That's a good question. We say 

> Once the Version Negotiation packet is determined to be valid, the client then selects an acceptable protocol version from the list provided by the server. The client then attempts to create a connection using that version. Though the content of the Initial packet the client sends might not change in response to version negotiation, a client MUST increase the packet number it uses on every packet it sends.

I'm not sure why we changed this from initiating a completely new connection (including a new destination connection ID). I assume we want to ensure stable routing, if the server routes Initials based on the connection ID?

For Retry, we say 
> The client responds to a Retry packet with an Initial packet that includes the provided Retry Token to continue connection establishment.
> A client sets the Destination Connection ID field of this Initial packet to the value from the Source Connection ID in the Retry packet. Changing Destination Connection ID also results in a change to the keys used to protect the Initial packet. It also sets the Token field to the token provided in the Retry. The client MUST NOT change the Source Connection ID because the server could include the connection ID as part of its token validation logic

I can't find anything about resetting all connection state (except connection IDs and the packet number, and the RTT estimate) in the transport document. I think this is where this belongs, and this would include all state accumulated for recovery.

-- 
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/2024#issuecomment-440527254

---

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

I was leaving comments against this PR, but decided that it was just easier to write it up in PR #2040. See if that's better.

-- 
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/2024#issuecomment-440848050

---

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

Closed #2024.

-- 
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/2024#event-1987864920