Re: [quicwg/base-drafts] PUSH_ID as a frame (#2526)

Luca Niccolini <> Sun, 17 March 2019 22:44 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 407E1130E5F for <>; Sun, 17 Mar 2019 15:44:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.001
X-Spam-Status: No, score=-8.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_HI=-5, 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 Wa_Td1MnsB0n for <>; Sun, 17 Mar 2019 15:44:39 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id DB5BD130E5E for <>; Sun, 17 Mar 2019 15:44:38 -0700 (PDT)
Date: Sun, 17 Mar 2019 15:44:37 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1552862677; bh=QAqGfEAzOhXZCBzwZ5rqWM+ST7INE670ELi79vI5VcE=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=S2xsSYlck9s+ooy7MnfZsOBlw+nRcWMIHyR8H7e6Mzenpt1zV+j4dxl7my1d8Vm2Q vT8rH9eYR2u6lFhTElRGyDknlNaJU2gHu42zjjFybU2bMyc57WlVpCHuFRm8UbHocT DB9pSzSpSBA1SCs8V8AOtzFMntI/AGW7e2bATMpE=
From: Luca Niccolini <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/2526/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] PUSH_ID as a frame (#2526)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c8ecdd545c48_6b293f92278d45c01606588"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: lnicco
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
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: Sun, 17 Mar 2019 22:44:41 -0000

> The varint type and length of a frame is also unframed. 

@martinthomson those are in the frame header -- so they are part of the frame. I am not sure what your point is here then.

Here I am assuming that an implementation has generic code to parse frames, and that parsing anything that is not part of a frame requires special handling. 
While this is implementation specific and there can definitely be counter examples, from an abstraction and consistency point of view I see no reason for doing it the way we are doing it now. 

I believe there should be two type of streams, framed (control, request, and push streams) and unframed (QPACK, and potentially extension streams). The push stream right now is a hybrid, that only becomes a framed stream after receiving that first PUSH_ID. If I am recalling correctly when we discussed potentially having DATA frames with zero-length to transition to unframed data, it was also considered a bit unusual. Here I am arguing that we are sort of doing the reverse here where we have an unframed stream that then transitions to framed. I think this generates complexity. And really the benefit we get is saving two bytes and one frame type.

@lpardue I do vaguely remember that discussion and not 'wasting' frame types may have been one of the arguments when we made that decision, but that is not a problem now that we have a 62bit space for frame types. 

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