[quicwg/base-drafts] create codec streams only when necessary (#2090)

Kazuho Oku <notifications@github.com> Mon, 03 December 2018 02:45 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 3928B126F72 for <quic-issues@ietfa.amsl.com>; Sun, 2 Dec 2018 18:45:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.46
X-Spam-Level:
X-Spam-Status: No, score=-9.46 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.46, 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: 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 PylbwbQVLOBZ for <quic-issues@ietfa.amsl.com>; Sun, 2 Dec 2018 18:45:12 -0800 (PST)
Received: from out-5.smtp.github.com (out-5.smtp.github.com [192.30.252.196]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1FCCD124D68 for <quic-issues@ietf.org>; Sun, 2 Dec 2018 18:45:12 -0800 (PST)
Date: Sun, 02 Dec 2018 18:45:11 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1543805111; bh=mPdrNgyOi+flZiGldPq0biP5aPblnTPuYEYrWv6wipQ=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=ePKIbKAnc2Cp6w6Zj0TWegYYw5zLLcmg8zkfamkPTvb6ZSvJgFDA2/vEcUDWgv9At 8NhTIKKsZe3rMSbazNGisKxQ8XG3iXoMhae5JyQ0JBNnlI1QT2WgsDV+Oc8NvXg/uK 9YziYM9+ZGn3aYYLMwndycfDoFE62XMy+ANH+iMY=
From: Kazuho Oku <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab85a571902a97e1fba91b989255d743d21f1957f392cf00000001181c5ab792a169ce170ba08e@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2090@github.com>
Subject: [quicwg/base-drafts] create codec streams only when necessary (#2090)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c0498b717425_61c03f9038cd45bc988699"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
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/XfrOCoJ107Bt8CW62abocdOHAQA>
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: Mon, 03 Dec 2018 02:45:14 -0000

Now that #2038 is being merged, we have the possibility to avoid creating unnecessary encoder / decoder streams.

Avoiding creation them is beneficial for memory-constrained devices, because they can configure the QUIC transport stack to handle at most one unidirectional stream (in each direction) to support HTTP/3 _if_ the QPACK state forbids 1) peer's creation of the encoder stream when endpoint's `SETTINGS_HEADER_TABLE_SIZE:` is zero, and 2) peer's creation of decoder stream is delayed until the endpoint's creation of the encoder stream.

The PR clarifies the two requirements.

With the proposed changes, a memory constrained HTTP/3 stack that sends`SETTINGS_HEADER_TABLE_SIZE` of zero and never opens an encoder stream can be certain that the peer never opens an encoder stream or a decoder stream.

Note that the proposed change has minimal impact to existing implementations; regarding creation of the encoder stream, #2038 states that the stream cannot be used until SETTINGS is being received. This PR only merely clarifies that "use" includes the creation of the stream. The situation is the same for the decoder stream.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/2090

-- Commit Summary --

  * create codec streams only when necessary

-- File Changes --

    M draft-ietf-quic-qpack.md (12)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/2090.patch
https://github.com/quicwg/base-drafts/pull/2090.diff

-- 
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/2090