Subject: [quicwg/base-drafts] Split QUIC core from QUIC v1 (#600)

From: Mike Bishop <[email-masked]>
Date: Wed, 07 Jun 2017 01:16:25 -0700

First pass at the proposed idea to pull the things that are version-invariant into a separate doc.  Creates a "core" document which describes packet headers, version negotiation, and stateless reset.  Leaves to individual versions to define additional packet types and their fields.  Transport doc does that, along with all frame definitions.

I'll note that it feels a little odd to have "core QUIC" not be multiplexed and have no concept of a crypto handshake.  We've previously said that version defines what you expect to find on Stream 0, but by the split mentioned at the interim, the very existence of Stream 0 and its use for the handshake is itself a version-local concept.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Split QUIC core from QUIC v1

-- File Changes --

    M draft-ietf-quic-transport.md (429)

-- Patch Links --

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

---

From: Mike Bishop <[email-masked]>
Date: Wed, 07 Jun 2017 01:17:13 -0700

@MikeBishop pushed 1 commit.

520ef84  QUIC core missed in first commit

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/600/files/c93d1fa353f2f7a51e7c72ab37ea703b0bedc219..520ef8405167ea0ee89a59c976ae531e0bf78d21

---

From: MikkelFJ <[email-masked]>
Date: Wed, 07 Jun 2017 01:23:10 -0700

> I'll note that it feels a little odd to have "core QUIC" not be multiplexed and have no concept of a crypto handshake.

Was wondering the same with the current draft text: there needs to be some requirements a custom crypto handshake must comply to. Such as as error handling, verifying the size of Client Initial Packet, how and when to accept clear text packets and how to transition to encryption. QUIC-TLS and TLS-1.3 covers this, but some information should probably be destilled in a general purpose handshake discussion.

-- 
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/600#issuecomment-306725562

---

From: ekr <[email-masked]>
Date: Wed, 07 Jun 2017 01:28:37 -0700

Hmm... I think I would trim this down to QUIC invariants which *just* defines what has to be in the initial packet and the VN packet.

-- 
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/600#issuecomment-306726879

---

From: Mike Bishop <[email-masked]>
Date: Wed, 07 Jun 2017 01:32:33 -0700

That's basically what I was going for.  But the contents of the initial packet are already version-dependent, and would lock in a lot of details that we may want to vary in future versions.  So we need to leave the packet payload in the hand of the specific version.

What I attempted to do was just take the list of things that can't change between versions and lift those into the separate doc.

-- 
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/600#issuecomment-306727845

---

From: Lucas Pardue <[email-masked]>
Date: Wed, 07 Jun 2017 04:46:19 -0700

LPardue commented on this pull request.

>  The short header can be used after the version and 1-RTT keys are negotiated.
-This header form has the following fields:
-
-Header Form:
-
-: The most significant bit (0x80) of the first octet of a packet is the header
-  form.  This bit is set to 0 for the short header.
+The format of the long-form header is described in {{QUIC-CORE}}.

nit: short-form header

-- 
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/600#pullrequestreview-42577604

---

From: Mike Bishop <[email-masked]>
Date: Wed, 07 Jun 2017 07:00:15 -0700

b257ded  Fixing nit and wrapping

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/600/files/520ef8405167ea0ee89a59c976ae531e0bf78d21..b257ded9e80b60a8af795b87b210e28a1edc8eef