Re: [quicwg/base-drafts] Reorder HTTP frame fields to put Type first (#1351)

Mike Bishop <notifications@github.com> Fri, 11 May 2018 18:18 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 626D8126C2F for <quic-issues@ietfa.amsl.com>; Fri, 11 May 2018 11:18:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level:
X-Spam-Status: No, score=-3.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] 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 oUCLGI1bVU9c for <quic-issues@ietfa.amsl.com>; Fri, 11 May 2018 11:18:12 -0700 (PDT)
Received: from out-13.smtp.github.com (out-13.smtp.github.com [192.30.254.196]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3D3C7124B17 for <quic-issues@ietf.org>; Fri, 11 May 2018 11:18:12 -0700 (PDT)
Date: Fri, 11 May 2018 11:18:11 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1526062691; bh=6GFn98hlX2ktJNG2Hs1vvwBFgAAL5uBYgl7xCYPZyFE=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=OclMhDruphIkRSF9jk86qad2yohe1dhpcvsxJlN9C1o+v5KXHaEWdtgmiK2951snT ikXB8Mtla6iloy/YbAhUtU93/88zkPKVlRiHlW9V9gl3uudeDYBzuLHwC/v9ixqePT 1e1U6OSkeOofFqlf0JE9MqiQ4bn0DH4c4RlFTH5c=
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab6ce91a09eb56de8bebd14b391121fd2c66a3296b92cf00000001170da06392a169ce1335e6ee@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/1351/388444699@github.com>
In-Reply-To: <quicwg/base-drafts/issues/1351@github.com>
References: <quicwg/base-drafts/issues/1351@github.com>
Subject: Re: [quicwg/base-drafts] Reorder HTTP frame fields to put Type first (#1351)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5af5de63bd6be_7c242add5fe46f5810679"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
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/rP3vGgSA8BmoFjzVZkGpnl0hLHY>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
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: Fri, 11 May 2018 18:18:13 -0000

The existing order is because it started with what was in HTTP/2, but we've already established consensus that similarity to HTTP/2 isn't a sufficient reason to keep any non-functional aspect.

I'm inclined to think that reading the length first, then knowing how much data to pass to your type-specific parser would be the most efficient.  The varint Length means that frames can be very large (DATA frames, especially), so you don't want to wait until you have the entire frame to start processing it, but knowing when to stop passing data to the parser and dispatch a new frame seems worthwhile nonetheless.

I don't have hands on an implementation of this, though, so if there's consensus that one is easier to parse than the other, I'm fine either way.

-- 
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/issues/1351#issuecomment-388444699