[quicwg/base-drafts] QPACK: instructions and stream description is suboptimal (#2339)

Lucas Pardue <notifications@github.com> Wed, 16 January 2019 16:26 UTC

Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 91FBB130E1C for <quic-issues@ietfa.amsl.com>; Wed, 16 Jan 2019 08:26:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.553
X-Spam-Status: No, score=-7.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_NONE=-0.0001, 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 ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id Xc0ahHYMDJhB for <quic-issues@ietfa.amsl.com>; Wed, 16 Jan 2019 08:26:29 -0800 (PST)
Received: from o9.sgmail.github.com (o9.sgmail.github.com []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8251F12D4EC for <quic-issues@ietf.org>; Wed, 16 Jan 2019 08:26:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=87YaFEQTg8ojb18FrwigLmMzGsc=; b=Iuez9kQf4N/hHeWT mc3Ck2xlNVEwB06p0z2/+R/fgHqX5FO4l/NqJUcXT2jXaBTPmjr99o7PYSLlzW7E HxCUzPO2tJNTPRJCGIeVticb2Ov95v2m0c5YHSS9h4MN0oqDmOXSlfF8ckl8iYOf H8WyCzAQRDGF7s3saq4mAGANmU8=
Received: by filter0305p1iad2.sendgrid.net with SMTP id filter0305p1iad2-5789-5C3F5B34-7 2019-01-16 16:26:28.083019668 +0000 UTC m=+150353.224928909
Received: from github-lowworker-e55e3e3.cp1-iad.github.net (unknown []) by ismtpd0031p1iad2.sendgrid.net (SG) with ESMTP id -6kFyYy9QYuE4mnRmay_Hg for <quic-issues@ietf.org>; Wed, 16 Jan 2019 16:26:28.113 +0000 (UTC)
Received: from github.com (localhost []) by github-lowworker-e55e3e3.cp1-iad.github.net (Postfix) with ESMTP id 13844180060 for <quic-issues@ietf.org>; Wed, 16 Jan 2019 08:26:28 -0800 (PST)
Date: Wed, 16 Jan 2019 16:26:28 +0000
From: Lucas Pardue <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab71bd356694e846c22e3835bcd7c99030aedd575892cf0000000118571d3492a169ce17d5d58e@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2339@github.com>
Subject: [quicwg/base-drafts] QPACK: instructions and stream description is suboptimal (#2339)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c3f5b341216a_426c3fea0c8d45c41319c"; 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
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak0ddPmouTmQTCn8ekEdr4/Jh+EvsGiPW3KdBn bb4WMI8sUqAdRhZPNb4q/gGZPln4rQ1osxsCWyXGa6u3D1pBp7OxALjZpHEQ60FW8YwXgwPwScZqrP OtHpfCSR6kOEXcuDm1FXjqcIBh+8zUW3Ta/XSWPP+nwz6dy2ARYZdkX+kxgfd11QXvLJuGuQuAnHIF c=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/6iNzoPDCv-JSMOr_N5xqvi7gTGI>
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 Jan 2019 16:26:31 -0000

Did the section hierarchy get messed up a little in a recent refactor?

The concept of QPACK instructions are first introduced in section 2, along with encoder and decoder streams. There is no forward reference to the later definitions.

The real problem I have is with section 4.2. It contains a bulleted list that is almost identical to section 2, but subtly different. The text following this list is also ambiguous

> There MUST be exactly one of each unidirectional stream type in each direction.
The previous list referred to request streams and push streams. These are obviously out of scope but it could get mistaken.

I think we've discussed elsewhere that implementations could decide not to use dynamic compression, and so the encoder and decoder streams are not necessary. I think this sentence could be made clearer by saying something like "if the dynamic table is being used, each endpoint MUST create exactly one pair of encoder and decoder streams."

> Receipt of a second instance of either stream type MUST be treated as a connection error of HTTP_WRONG_STREAM_COUNT.

Perhaps simplify to "receipt of additional streams which claim to be an encoder or decoder stream MUST be treated as a connection error of HTTP_WRONG_STREAM_COUNT.

> Closure of either unidirectional stream MUST be treated as a connection error of type HTTP_CLOSED_CRITICAL_STREAM.

Perhaps "The closure of encoder or decoder streams, at any point, MUST be treated as a connection error of type HTTP_CLOSED_CRITICAL_STREAM."

> This section describes the instructions which are possible on each stream type.
No it doesn't :)

While I am here, Section 4.5 is titled "Request and Push Streams" but it just talks about instructions to include in frames. 

I'm left with a feeling that there is a misplaced focus on streams rather than instructions. This could be inverted to state instructions, with a comment on where they are allowed to appear, summarised in a nice table somewhere in the document.

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