Re: [quicwg/base-drafts] Move server's SETTINGS to transport parameters (#2958)

Lucas Pardue <notifications@github.com> Wed, 16 October 2019 18:01 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 8E5F0120116 for <quic-issues@ietfa.amsl.com>; Wed, 16 Oct 2019 11:01:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Level:
X-Spam-Status: No, score=-8 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_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 eQQ8fsraph4v for <quic-issues@ietfa.amsl.com>; Wed, 16 Oct 2019 11:01:14 -0700 (PDT)
Received: from out-19.smtp.github.com (out-19.smtp.github.com [192.30.252.202]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 60ADC12092C for <quic-issues@ietf.org>; Wed, 16 Oct 2019 11:01:14 -0700 (PDT)
Date: Wed, 16 Oct 2019 11:01:13 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1571248873; bh=S/8IdI6+DOrgUOjoQrMBT4lFf6huUdIpV7aEHLZJ5bs=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=slVjGjeNgpJACT+pxSoWFUvWbBJQFR89KiJQfPxF0xImLrXaQ6xwlXoWQxxowNTl/ 7xIpcEy2j8yZZhphytsvxFWkk2lnUn3/9kzt4QKJGyMQxLR20BcMBV080JUOGg8GA0 eFCbIRE20lX9mj9UCezRNJIpVUVRzda2hyFHvsD4=
From: Lucas Pardue <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK35HRZXYIXPFTA543V3WSNXTEVBNHHBZAGNAQ@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2958/review/302756814@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2958@github.com>
References: <quicwg/base-drafts/pull/2958@github.com>
Subject: Re: [quicwg/base-drafts] Move server's SETTINGS to transport parameters (#2958)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5da75ae97ea99_5a5e3fe73e8cd95c137294"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: LPardue
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/M38gjK8-sFkGxNM9TBq1UQ0igvY>
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: Wed, 16 Oct 2019 18:01:18 -0000

LPardue requested changes on this pull request.

Some nits. Also for completeness you'll want to fixup the QPACK spec's reference to SETTINGS frame as well.

> +sending peer, which can be used by the receiving peer. However, a negotiation
+can be implied by the use of settings - each peer uses settings to advertise a
+set of supported values. The definition of the setting would describe how each
+peer combines the two sets to conclude which choice will be used.  The settings
+mechanism does not provide a mechanism to identify when the choice takes effect.
+
+Different values for the same parameter can be advertised by each peer. For
+example, a client might be willing to consume a very large response header,
+while servers are more cautious about request size.
+
+The same setting identifier MUST NOT occur more than once in settings.
+A receiver MAY treat the presence of duplicate setting identifiers as a
+connection error of type HTTP_SETTINGS_ERROR.
+
+Each parameter consists of a setting identifier and a value, both encoded as
+QUCI variable-length integers, as shown in {{fig-ext-settings}}. A settings

```suggestion
QUIC variable-length integers, as shown in {{fig-ext-settings}}. A settings
```

>  | DATA           | No             | Yes            | Yes         | {{frame-data}}           |
 | HEADERS        | No             | Yes            | Yes         | {{frame-headers}}        |
 | CANCEL_PUSH    | Yes            | No             | No          | {{frame-cancel-push}}    |
-| SETTINGS       | Yes (1)        | No             | No          | {{frame-settings}}       |
 | PUSH_PROMISE   | No             | Yes            | No          | {{frame-push-promise}}   |
 | GOAWAY         | Yes            | No             | No          | {{frame-goaway}}         |
 | MAX_PUSH_ID    | Yes            | No             | No          | {{frame-max-push-id}}    |

Note that the side effect of this change is that is removes the only remaining instance of (1), which is described underneath the table ("Certain frames can only occur as the first frame of a particular stream type"). So we probably want to remove that foot note as part of this PR.

> @@ -1498,9 +1479,8 @@ protocol elements.  Implementations MUST discard frames and unidirectional
 streams that have unknown or unsupported types.  This means that any of these
 extension points can be safely used by extensions without prior arrangement or
 negotiation.  However, where a known frame type is required to be in a specific
-location, such as the SETTINGS frame as the first frame of the control stream
-(see {{control-streams}}), an unknown frame type does not satisfy that
-requirement and SHOULD be treated as an error.
+location, an unknown frame type does not satisfy that requirement and SHOULD be
+treated as an error.

With removing of SETTINGS there is no other case in the core HTTP/3 document that requires specific frame location. So I think this whole "However" clause can just be removed and make the text clearer.

> @@ -1529,6 +1529,33 @@ handshake or by frames sent in 1-RTT packets.  A server MAY treat use of updated
 transport parameters in 0-RTT as a connection error of type PROTOCOL_VIOLATION.
 
 
+### Application Parameters {#app-params}
+
+The transport parameter application_layer_parameters is used by the application
+protocol to exchange application-specific parameters concurrently with the
+cryptographic and transport handshake. The contents of an application parameter
+are opaque to QUIC transport and their semantic meaning is defined by their
+application protocol.
+
+Each application protocol MAY specify use of application parameters to be sent
+by one of or both the client and server. If not specified, an application
+parameter MUST NOT be sent for tht application's ALPN. For each application

```suggestion
parameter MUST NOT be sent for that application's ALPN. For each application
```

-- 
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/2958#pullrequestreview-302756814