Re: [quicwg/base-drafts] Rearrange Packet Types section and references (#2203)

Martin Thomson <> Wed, 19 December 2018 04:54 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 78643130DC8 for <>; Tue, 18 Dec 2018 20:54:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.065
X-Spam-Status: No, score=-8.065 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id mzfy7aAQ7vpI for <>; Tue, 18 Dec 2018 20:54:13 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 983ED1276D0 for <>; Tue, 18 Dec 2018 20:54:13 -0800 (PST)
Date: Tue, 18 Dec 2018 20:54:12 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1545195252; bh=YHfdw2A1u6QNhd9VbGuU+xG1Iq0+jtkvNnH9C51toms=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=l1n81218GREzUPGZBM8UbOmE9ffy4Mmae3QcZTw0Q2glcjSVTQ7b5wtmEMK+qyuo0 tCIwFb7Zmv7GpCPtkyqfyfChErMMzZkcumjRzqwEW0YkzQJ/pWmEeVarfEKiWMFRzS lXDgD341BMKICKrYDYYhqZeVSl0wpii3cEoKwS1U=
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2203/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Rearrange Packet Types section and references (#2203)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c19cef44790e_23c33fbb2b4d45c43426cb"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 19 Dec 2018 04:54:17 -0000

martinthomson commented on this pull request.

>  The following packet types are defined:
 | Type | Name                          | Section                     |
 |  0x0 | Initial                       | {{packet-initial}}          |
-|  0x1 | 0-RTT Protected               | {{packet-protected}}        |
+|  0x1 | 0-RTT Protected               | {{packet-0rtt}}        |

I think that this is right, but counting is hard.

|  0x1 | 0-RTT Protected               | {{packet-0rtt}}             |

+See Sections 2.3 of {{!TLS13}} for a discussion of 0-RTT data and its

You should move the 0-RTT packet numbers section to here and remove the TODO.

> @@ -3338,6 +3342,52 @@ then a packet containing a 16-bit value of 0x9b32 will be decoded as 0xa82f9b32.
 Example pseudo-code for packet number decoding can be found in
+### Starting Packet Numbers

I don't think that we need this still, but absent analysis, this can be moved under the Initial packet section.



> @@ -3795,119 +3819,84 @@ Handshake encryption level is discarded - and no longer retransmitted - when
 Handshake protection keys are discarded.
-## Retry Packet {#packet-retry}
-A Retry packet uses a long packet header with a type value of 0x3. It carries
-an address validation token created by the server. It is used by a server that
-wishes to perform a stateless retry (see {{validate-handshake}}).
+## Short Header Packet {#short-header}

I'm assuming that the diff here looks terrible because it's moved text, not changed text.

> +: The length of the remainder of the packet (that is, the Packet Number and
+  Payload fields) in bytes, encoded as a variable-length integer
+  ({{integer-encoding}}).
+Packet Number:
+: The packet number field is 1 to 4 bytes long. The packet number has
+  confidentiality protection separate from packet protection, as described in
+  Section 5.4 of {{QUIC-TLS}}. The length of the packet number field is encoded
+  in the plaintext packet number. See {{packet-encoding}} for details.
+: The payload of the packet.
+### Initial Packet {#packet-initial}

I think that we should use h2 for this.  The section is a mix of "here is a common format" and "here is a specific instance of a common format", but I think that's tolerable.  We would then have something like:

17. Packet Formats
    17.1. Packet Number Encoding and Decoding
    17.2. Long Header Packets <-- note the extra 's'
    17.3. Version Negotiation Packet
    17.4. Retry Packet
    17.5. Extended Long Header Packets
    17.6. Initial Packet
        17.6.1. Abandoning Initial Packets
        17.6.2. Starting Packet Numbers
    17.7. 0-RTT Protected Packet <-- extra 'Packet'
        17.7.1. 0-RTT Packet Numbers
    17.8. Handshake Packet
    17.9. Short Header Packets <-- extra 's'

Does that work?

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: