Design: Frame type extensibility issues

James M Snell <jasnell@gmail.com> Sat, 11 May 2013 16:18 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EDA3B21F8EAE for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sat, 11 May 2013 09:18:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.417
X-Spam-Level:
X-Spam-Status: No, score=-10.417 tagged_above=-999 required=5 tests=[AWL=0.182, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LaZAVcCr8CJ6 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sat, 11 May 2013 09:18:14 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 8E55E21F8EAD for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sat, 11 May 2013 09:18:14 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UbCTu-0000O4-OY for ietf-http-wg-dist@listhub.w3.org; Sat, 11 May 2013 16:17:10 +0000
Resent-Date: Sat, 11 May 2013 16:17:10 +0000
Resent-Message-Id: <E1UbCTu-0000O4-OY@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UbCTk-0000NH-0a for ietf-http-wg@listhub.w3.org; Sat, 11 May 2013 16:17:00 +0000
Received: from mail-oa0-f49.google.com ([209.85.219.49]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UbCTj-0003yq-Eg for ietf-http-wg@w3.org; Sat, 11 May 2013 16:16:59 +0000
Received: by mail-oa0-f49.google.com with SMTP id k14so4431570oag.8 for <ietf-http-wg@w3.org>; Sat, 11 May 2013 09:16:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:from:date:message-id:subject:to :content-type; bh=yQTIhNYZaKDx/g/UEVAGOA0xUaQuI7UuJPXQB50QVwQ=; b=tglEhtZUa6fo2lpiL+mlAv/0uUjyqc6Usil+iaRBroJo3Dd07748ktHnBwjDpExVRt yDpZQ3Svp1GXTQDNDDMhW7EUD8ZRumf0fhG+SQs4nXtae6ajDJ7JZAYJ0dl4hYgLIrFF 4q5FfEuQaQgJkwdQ5s58VrqIaAl7G15fRjHYinZSCdiSE/s2CKzxUw675W3YfMwRlP2A QGYwQg/Zk+bRrmUA+DIJRpkbJFYOoVU6pAjhaGcgkSrDRzDlOmAtkhwRKzb3IrOa9lqX 04oR3HYVrsnyJDy2Q/ev2o0GLWq8rF9NTwgjsRR/sNrChq0dUELawjUGdxQeVZUAgtv2 j9ww==
X-Received: by 10.60.47.81 with SMTP id b17mr1482201oen.63.1368288993567; Sat, 11 May 2013 09:16:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.60.3.137 with HTTP; Sat, 11 May 2013 09:16:13 -0700 (PDT)
From: James M Snell <jasnell@gmail.com>
Date: Sat, 11 May 2013 09:16:13 -0700
Message-ID: <CABP7Rbd4t3vDuEXZzCOq+vgOWGx52GO1ZJJL=rWRWnWVkH--+g@mail.gmail.com>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: text/plain; charset=UTF-8
Received-SPF: pass client-ip=209.85.219.49; envelope-from=jasnell@gmail.com; helo=mail-oa0-f49.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.692, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1UbCTj-0003yq-Eg 58a7c0ac894e8b557697755f6e4011dc
X-Original-To: ietf-http-wg@w3.org
Subject: Design: Frame type extensibility issues
Archived-At: <http://www.w3.org/mid/CABP7Rbd4t3vDuEXZzCOq+vgOWGx52GO1ZJJL=rWRWnWVkH--+g@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17950
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

https://github.com/http2/http2-spec/issues/95

(btw, I'm posting these so that the issues are documented.. if there's
no time to discuss these issues now, or if it makes more sense to
discuss them later on in the process, that's obviously perfectly fine)

There are a couple of issues relating to frame type extensibility:

1. Are frames end-to-end or hop-by-hop? This is currently undefined.
Control frames appear to always be hop-by-hop, Header bearing frames
might or might not be hop-by-hop, Data frames appear to always be
end-to-end. What about new extension frame types?

2. Are new unsupported frame types subject to flow control? How can we
differentiate new control frame types vs. data frame types?

3. There is no prescribed mechanism for rolling out support for new
standard frame types vs. private use frame types.

Recommendation:

One approach we can take to dealing with this is to segment the 8-bit
frame type namespace into two distinct categories and reserve a
limited number of frame types from each for "private use". That is,

0xxxxxxx => Control Frames
1xxxxxxx => Data Frames

Control Frames (0x00-7F) are always hop-by-hop and are not subject to
flow control. Frame types 0x6B-7F would be reserved for "private use",
meaning that these types could not be registered within the IANA
registry.

Data Frames (0x80-FF) are always end-to-end and are subject to flow
control. Frame types 0xEB-FF would be reserved for "private use".

The frame type of the existing DATA frame would change from 0x00 to
0x80, all other existing frame types would remain unchanged.

This approach gives us a clear way of dealing with extension frames,
flow control, etc without introducing undue complexity.