Re: Design Issue: Merge RST_STREAM and GOAWAY into a single ERROR frame type

James M Snell <jasnell@gmail.com> Fri, 03 May 2013 21:09 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 81DE921F8EA4 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 3 May 2013 14:09:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.724
X-Spam-Level:
X-Spam-Status: No, score=-9.724 tagged_above=-999 required=5 tests=[AWL=0.575, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, 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 C0chj14vndY0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 3 May 2013 14:09:51 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id F2A6F21F8E34 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 3 May 2013 14:09:49 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UYNEV-0007bv-Cc for ietf-http-wg-dist@listhub.w3.org; Fri, 03 May 2013 21:09:35 +0000
Resent-Date: Fri, 03 May 2013 21:09:35 +0000
Resent-Message-Id: <E1UYNEV-0007bv-Cc@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UYNEL-0007Yr-LZ for ietf-http-wg@listhub.w3.org; Fri, 03 May 2013 21:09:25 +0000
Received: from mail-oa0-f43.google.com ([209.85.219.43]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UYNEK-0000UA-M8 for ietf-http-wg@w3.org; Fri, 03 May 2013 21:09:25 +0000
Received: by mail-oa0-f43.google.com with SMTP id n2so2062565oag.2 for <ietf-http-wg@w3.org>; Fri, 03 May 2013 14:08:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; bh=qqz7ThvhKSyLcg456ngQCCuU5Z9IXuEndQRibAYN3iE=; b=vk2nR/Qc9jnvBEE9NJtH2iDm0b5QTWYRq/ir/CZ9RIoeB2ehs76V3PU8OcrFdKjfAh nsN3GMnCUF/zWslh/wG49t8Woywj+vxJCDQTwkH7XNf6n/7Wi78+rQrZLngtePZK3NJt PzqnI7FIfA/Rzp1jHNtUtLfvJVWNcy8AApxaU+NM5DD7ODdh8/A7ePapFSTu5lm7Vl65 t4kqpesg1PwQfFJqnpjCTAxsoDOYI3rcPcCjAOlL1qsCYAZhllKt6jnGSL8OdJWTJNXP Dm0N9eCeSk7gRr8cwYep+4BOPJ2XEODv6oBasn/Ddij1Rcon8vP3OxDokeLsX00LVSRm 3HjA==
X-Received: by 10.182.60.1 with SMTP id d1mr3429178obr.33.1367615338826; Fri, 03 May 2013 14:08:58 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.60.3.137 with HTTP; Fri, 3 May 2013 14:08:38 -0700 (PDT)
In-Reply-To: <CAA4WUYhfup_PM8s7P0PO_EcB8R-O6L32wX-zk73thwBHYHHtgA@mail.gmail.com>
References: <CABP7RbeJm-AKxU3qGxt2tCGrb0xCQL8njNyEToA7Ln9gS8hnTQ@mail.gmail.com> <CA+pLO_gWErCMv+j3pcmy+cTkt-hh2v6a7neeyDtg7HRN3x=Sgw@mail.gmail.com> <CABP7RbfJEwkMVum0HXei_mqvJ=pHd2G=jx_wz=sZzboi4ZMwzQ@mail.gmail.com> <CAA4WUYhfup_PM8s7P0PO_EcB8R-O6L32wX-zk73thwBHYHHtgA@mail.gmail.com>
From: James M Snell <jasnell@gmail.com>
Date: Fri, 3 May 2013 14:08:38 -0700
Message-ID: <CABP7RbcTbFxNj-qax1An0Qp7okWqvbt5MTXyHZTMn_fBKgx9Fw@mail.gmail.com>
To: =?UTF-8?B?V2lsbGlhbSBDaGFuICjpmYjmmbrmmIwp?= <willchan@chromium.org>
Cc: Jeff Pinner <jpinner@twitter.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=209.85.219.43; envelope-from=jasnell@gmail.com; helo=mail-oa0-f43.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.677, 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: lisa.w3.org 1UYNEK-0000UA-M8 850ab4c3ff0a579ec9984f0a463af22f
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Design Issue: Merge RST_STREAM and GOAWAY into a single ERROR frame type
Archived-At: <http://www.w3.org/mid/CABP7RbcTbFxNj-qax1An0Qp7okWqvbt5MTXyHZTMn_fBKgx9Fw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17815
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>

There is no bikeshedding going on at all. I made the motivation for
this clear up front: it's a simplification that addresses three
specific items. Note: there is an existing editorial note in the
existing draft that calls out the fact that we have no non-terminal
method of communicating non-stream related errors. If we can address
that item while also simplifying things a bit, then fantastic.

On Fri, May 3, 2013 at 2:01 PM, William Chan (陈智昌)
<willchan@chromium.org>; wrote:
> This is a thread ripe for bikeshedding. Is there any major issue worth
> solving?
>
> If we're going to paint our bike sheds, my take is keep whatever color the
> bike shed already has unless it really offends a number of people.
>
>
> On Fri, May 3, 2013 at 5:53 PM, James M Snell <jasnell@gmail.com>; wrote:
>>
>> Speaking candidly, if we find ourselves requiring more than 8 boolean
>> flags on an error frame we should all just quit and go home.
>>
>> On Fri, May 3, 2013 at 1:34 PM, Jeff Pinner <jpinner@twitter.com>; wrote:
>> > IIRC, when this was brought up at the last F2F the rational for NOT
>> > doing
>> > this was that frame types were cheaper than flags (256 frame types, 8
>> > flags).
>> >
>> > That being said I think we should consider combining them :)
>> >
>> >
>> > On Fri, May 3, 2013 at 1:04 PM, James M Snell <jasnell@gmail.com>; wrote:
>> >>
>> >> As a simplification, I'd like to suggest that we merge the RST_STREAM
>> >> and GOAWAY frames into a single ERROR frame with the following
>> >> definition:
>> >>
>> >>  0                   1                   2                   3
>> >>  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>> >> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>> >> |                      Error Code (32)                          |
>> >> +---------------------------------------------------------------+
>> >> |X|                  Last-Stream-ID (31)                        |
>> >> +-+-------------------------------------------------------------+
>> >>
>> >> (note that this flips the field order from the GOAWAY frame)
>> >>
>> >> A frame-specific GOAWAY flag bit (0x2) would be defined for the frame,
>> >> and the Last-Stream-ID field would only be included in the frame data
>> >> if this flag was set.
>> >>
>> >> This does a couple of things for us:
>> >>
>> >> 1. It simplifies the error handling and reduces the number of core
>> >> frame
>> >> types.
>> >> 2. It allows us to terminate a stream and terminate the session in a
>> >> single frame if necessary
>> >> 3. It gives us a way of reporting non-terminal session errors
>> >> (currently RST_STREAM is forbidden to use stream id #0 and GOAWAY is
>> >> always terminal).
>> >>
>> >
>>
>