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

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).
> >>
> >
>
>

Received on Friday, 3 May 2013 21:02:24 UTC