Re: [quicwg/base-drafts] Allow not creating QPACK codec streams (#2529)

afrind <> Thu, 21 March 2019 19:41 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4A7DA1315A3 for <>; Thu, 21 Mar 2019 12:41:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.001
X-Spam-Status: No, score=-3.001 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_NONE=-0.0001, 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 aeoMZ0ktXJLR for <>; Thu, 21 Mar 2019 12:41:26 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B2F7413159A for <>; Thu, 21 Mar 2019 12:41:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=sx3+ghEkwvFq7wFGLBiXIKZHV2s=; b=AfyNItUmwaC4sxe0 KnnUbXCVoMsuC71xpTOcGMSHDbSoUV1G9pYOm8SEBPGhxGFXSpaibQytTnwP8RU2 9GXFbUMifwazOMJExz1bUQgyTYawZUMMO5gSPmmR36Mb0knHerCSQUP7UNnhMv/3 +eAT4n2gkvRpRTVnwrsh7Hy2NZA=
Received: by with SMTP id filter0752p1las1-7604-5C93E8E4-A 2019-03-21 19:41:24.237874056 +0000 UTC m=+19034.258354553
Received: from (unknown []) by (SG) with ESMTP id 0XJLvF42QR-nrfyXiyA_-g for <>; Thu, 21 Mar 2019 19:41:24.064 +0000 (UTC)
Received: from (localhost []) by (Postfix) with ESMTP id 1AAD980C61 for <>; Thu, 21 Mar 2019 12:41:24 -0700 (PDT)
Date: Thu, 21 Mar 2019 19:41:24 +0000
From: afrind <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2529/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Allow not creating QPACK codec streams (#2529)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c93e8e418324_31583fcf44ed45c42185a"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: afrind
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak2yVb5JNlw1hDOg3VlKLj1I65Hm0qH6I0/v3i zJ9ATcKyldrFeszIuV8QwYiSe76mDgeH/4Xf/UQfVcE3HoIyooyT3TnAQIjriMetL7VwsZrp4oBh9Q vzG8aW+ybtyfL/UPTVsNoE2JcfR0xkOdJvtBkyvx05wKkweeEnkEANzUzw==
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: Thu, 21 Mar 2019 19:41:29 -0000

afrind commented on this pull request.

>  HTTP_WRONG_STREAM_COUNT. These streams MUST NOT be closed. Closure of either
 unidirectional stream type MUST be treated as a connection error of type
+An endpoint MAY avoid creating its own encoder stream if the maximum size of
+the dynamic table permitted by the peer is zero.
+An endpoint MAY avoid creating its own decoder stream if the maximum size of
+its own dynamic table is zero.
+An endpoint MUST allow its peer to create both encoder and decoder streams

I think most implementations will take closed streams into account to know when to issue more uni stream credit.  In the case of servers, there's never a need to increase it in vanilla HTTP/3.   Clients need only increase it when they want more pushes (or grease, or extensions, etc).

> Thinking about this a little more, its a nice feature of HPACK that it can chose when to start using dynamic compression, with little overhead.

I suppose that's a feature of HPACK, but is it really all that useful?  I think of it the other way - HPACK was simpler to setup (didn't require any extra streams) but that's because the underlying transport provides the strong ordering guarantee.  If you want QPACK dynamic table then you have to open some streams.  Just do it at the beginning of the connection when you know you have credit, or risk not being able to use it later, if you consume the credit with some other stream.

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