Re: [quicwg/base-drafts] Alternative packet format presentation (#3573)

Mike Bishop <notifications@github.com> Thu, 09 April 2020 14:00 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 965A93A0BAE for <quic-issues@ietfa.amsl.com>; Thu, 9 Apr 2020 07:00:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.267
X-Spam-Level:
X-Spam-Status: No, score=-3.267 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.168, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LA4SJJXz2EL1 for <quic-issues@ietfa.amsl.com>; Thu, 9 Apr 2020 07:00:37 -0700 (PDT)
Received: from out-7.smtp.github.com (out-7.smtp.github.com [192.30.252.198]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 861583A0D12 for <quic-issues@ietf.org>; Thu, 9 Apr 2020 07:00:15 -0700 (PDT)
Received: from github-lowworker-2e54e43.va3-iad.github.net (github-lowworker-2e54e43.va3-iad.github.net [10.48.17.27]) by smtp.github.com (Postfix) with ESMTP id 9E3172C118A for <quic-issues@ietf.org>; Thu, 9 Apr 2020 07:00:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1586440814; bh=c1BEvwp4HNouvpo1sAYONzeU75S/H59jckfa+UXyDQY=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=cfQk6uLRnLVkokokZj1p1jVJPQKEBXu1SFLKrr/w4t0WnhB3P+7NvHqAV6RiT/bk9 jFvnFPXOTCviwrDRkqwUhvMisqY9ckXOMFIQJ8dubg9yXaywACDVOPHFWb7QisHX7i jx5bbaYNEaHhmFYQt5qPlUjZ1SerMVIalR6RzEyk=
Date: Thu, 09 Apr 2020 07:00:14 -0700
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK3O6O4FBULVZWSVX354TMFW5EVBNHHCHFHWFE@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/3573/review/390801974@github.com>
In-Reply-To: <quicwg/base-drafts/pull/3573@github.com>
References: <quicwg/base-drafts/pull/3573@github.com>
Subject: Re: [quicwg/base-drafts] Alternative packet format presentation (#3573)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e8f2a6e8ef12_577d3fc6334cd96416482e"; charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/qMrxiDOd3nQ_cvSs0yW_Iu41r18>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Apr 2020 14:00:42 -0000

@MikeBishop commented on this pull request.

But...!  But...!  *Muh ASCII art!*

More seriously, this is probably a net improvement for readability.  There's value in conforming to existing paradigms where possible, but we'd already had to define custom extensions to the notation from RFC2360, so this is probably no worse.

I'm really not a fan of the trailing comma in the lists, but that's neither here nor there.

> +  Protected Payload (0..24), # Skipped
+  Protected Payload (128),   # Sampled

```suggestion
  Protected Payload (0..24), # Skipped Part
  Protected Payload (128),   # Sampled Part
```
Inconsistent with the below.  Resolve either direction, but I don't see a reason to make them different.

> +  Protected Payload (128),   # Sampled
+  Protected Payload (..)     # Remainder
+}
+
+Short Header Packet {
+  Header Form (1) = 0,
+  Fixed Bit (1) = 1,
+  Spin Bit (1),
+  Reserved Bits (2),         # Protected
+  Key Phase (1),             # Protected
+  Packet Number Length (2),  # Protected
+  Destination Connection ID (0..160),
+  Packet Number (8..32),     # Protected
+  Protected Payload (0..24), # Skipped Part
+  Protected Payload (128),   # Sampled Part
+  Protected Payload (..)     # Remainder

```suggestion
  Protected Payload (..),    # Remainder
```
I'm not really a fan of the trailing commas, but for consistency sake, you missed this one.

> +  a mimumum of zero bits and B can be omitted to indicate no set upper limit;
+  values always end on an octet boundary

```suggestion
  a mimumum of zero bits and B can be omitted to indicate no set upper limit;
  values in this format always end on an octet boundary
```
Just to be clear, since not all values end on an octet boundary.  I do think separate sentences would be more readable, but then it would be inconsistent with the others.

> +
+x (?) = C:
+: Indicates that x has a fixed value of C
+
+x (?) = C..D:
+: Indicates that x has a value in the range from C to D, inclusive
+
+\[x (E)\]:
+: Indicates that x is optional (and has length of E)
+
+x (E) ...:
+: Indicates that x is repeated zero or more times (and that each instance is
+  length E)
+
+By convention, individual fields reference a complex field by using the name of
+that the complex field.

```suggestion
the complex field.
```

> +  Variable-Length Field (8..24),
+  Field With Minimum Length (16..),

```suggestion
  Arbitrary-Length Field (..),
  Variable-Length Field (8..24),
  Field With Minimum Length (16..),
```

Omitting both ends is used in the document and consistent with the definition, but not clearly spelled out or used in an example.

> @@ -3926,11 +3938,11 @@ DCID Len:
 
 Destination Connection ID:
 
-: The Destination Connection ID field follows the DCID Len and is between 0 and
-  20 bytes in length. {{negotiating-connection-ids}} describes the use of this
-  field in more detail.
+: The Destination Connection ID field follows the DCID Length and is between 0

```suggestion
: The Destination Connection ID field follows the DCID Length field and is between 0
```

> @@ -3942,7 +3954,7 @@ SCID Len:
 
 Source Connection ID:
 
-: The Source Connection ID field follows the SCID Len and is between 0 and 20
+: The Source Connection ID field follows the SCID Length and is between 0 and 20

```suggestion
: The Source Connection ID field follows the SCID Length field and is between 0 and 20
```

> -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                     Packet Number (8/16/24/32)              ...
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                     Protected Payload (*)                   ...
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+Short Header Packet {
+  Header Form (1) = 0,
+  Fixed Bit (1) = 1,
+  Spin Bit (1),
+  Reserved Bits (2),
+  Key Phase (1),
+  Packet Number Length (2),
+  Destination Connection ID (0..160),
+  Packet Number (8..32),
+  Packet Payload (..),
+}
 ~~~~~
 {: #fig-short-header title="Short Header Packet Format"}
 

GitHub won't let me put a comment down there (too far from a change), but you can remove the (S), (R), (K), (P) notations from the field definitions, since they're not needed to correlate with the diagram.

> @@ -5354,13 +5257,11 @@ with error STREAM_STATE_ERROR.
 The MAX_STREAM_DATA frame is shown in {{fig-max-stream-data}}.
 
 ~~~
- 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        Stream ID (i)                        ...
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                    Maximum Stream Data (i)                  ...
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+MAX_STREAM_DATA Frame {
+  Type (i) = 0x11,
+  Stream ID (i),
+  Maximum Data (i),

Orthogonal to this PR, but perhaps we should align the "Maximum Data" and "Data Limit" terms which reference the same limit in different frames?

-- 
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/3573#pullrequestreview-390801974