Re: [hybi] Versioning is a anti-pattern

Scott Ferguson <ferg@caucho.com> Fri, 03 September 2010 16:15 UTC

Return-Path: <ferg@caucho.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7B11A3A6908 for <hybi@core3.amsl.com>; Fri, 3 Sep 2010 09:15:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.19
X-Spam-Level:
X-Spam-Status: No, score=-2.19 tagged_above=-999 required=5 tests=[AWL=0.075, BAYES_00=-2.599, IP_NOT_FRIENDLY=0.334]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rcqrDFCS74wh for <hybi@core3.amsl.com>; Fri, 3 Sep 2010 09:15:29 -0700 (PDT)
Received: from smtp111.biz.mail.sp1.yahoo.com (smtp111.biz.mail.sp1.yahoo.com [69.147.92.224]) by core3.amsl.com (Postfix) with SMTP id 2DB2D3A687A for <hybi@ietf.org>; Fri, 3 Sep 2010 09:15:29 -0700 (PDT)
Received: (qmail 67685 invoked from network); 3 Sep 2010 16:15:56 -0000
Received: from [192.168.1.11] (ferg@66.92.8.203 with plain) by smtp111.biz.mail.sp1.yahoo.com with SMTP; 03 Sep 2010 09:15:56 -0700 PDT
X-Yahoo-SMTP: L1_TBRiswBB5.MuzAo8Yf89wczFo0A2C
X-YMail-OSG: 315E_DEVM1lTY7Rc.4fbuBzEciCBWHMC1FForXHGEUTP6Sj Nm5Tadu4wGhDs67jwOHupy0DtztGrVNG68ADOmHvl1EM2ldx4p0iC1glIAnq HoIyVLa_WfFd6DTUMKhVcu4GB_0a_5716PuWnwZlBbvTnfkLGBoZKtnUCjHo 8KYAK2a9atTcrguKwzCtsS9CrHxWg_Hg70Y0S93zcs1MPu5z3JhZrynvZwYu xTyMDqMXNXxjBa9OYOSfc2CZa5VhrExSp1Djg9Rk5wtos9S7eTKsADiMlJN6 _1UK4igguvdLA7Cnc4oyj8Th3df4ez7fbTn1g9dKQX.o5iHvYuRpZAg--
X-Yahoo-Newman-Property: ymail-3
Message-ID: <4C811F36.4030004@caucho.com>
Date: Fri, 03 Sep 2010 09:15:50 -0700
From: Scott Ferguson <ferg@caucho.com>
User-Agent: Thunderbird 2.0.0.24 (X11/20100411)
MIME-Version: 1.0
To: John Tamplin <jat@google.com>
References: <20100901224502.0519B3A687C@core3.amsl.com> <AANLkTikP1CF22fL0rBniXmrxEoBAbTNfzP9kyiNA4nbb@mail.gmail.com> <AANLkTi=_1m36ThFZTH_aGE_Unz0KTeexJq_74UGr2j+u@mail.gmail.com> <alpine.DEB.2.00.1009022022090.7470@tvnag.unkk.fr> <AANLkTinyQUYn_zRZKPC0Gp7MeT13O2jhXu1EyNLOojXR@mail.gmail.com> <AANLkTikkGGJ1dhzP7z-qnxiAs_Bus8rEecV0YBO9Uw5N@mail.gmail.com> <alpine.DEB.2.00.1009030843230.25862@sirius> <AANLkTinknBSfH1GfzRunvu-W4LAO9u9Nq59LFnPBbJ+p@mail.gmail.com> <1283517285.2285.460.camel@tng> <AANLkTimeBQj+ddLEdsDnFCaTe8bBf76yZZn537iaFe1v@mail.gmail.com> <4C81173A.8000102@caucho.com> <AANLkTinM+wLvBwLpUiDuxacFZp8d-6Ze=PBBSYEDj6mu@mail.gmail.com>
In-Reply-To: <AANLkTinM+wLvBwLpUiDuxacFZp8d-6Ze=PBBSYEDj6mu@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: hybi <hybi@ietf.org>
Subject: Re: [hybi] Versioning is a anti-pattern
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Sep 2010 16:15:30 -0000

John Tamplin wrote:
> On Fri, Sep 3, 2010 at 11:41 AM, Scott Ferguson <ferg@caucho.com 
> <mailto:ferg@caucho.com>> wrote:
>
>     I do have a minor, aesthetic suggestion for the framing to reorder
>     the bits so the reserved bits are contiguous.
>
>      * more(1)
>      * length(7)
>      * res(4)
>      * opcode(4)
>
>     It's not a substantive or important proposal, of course, but looks
>     a bit cleaner than splitting the reserved bits.
>
>
> I dislike having the bits of the length separated from each other 
> (since the 16/63-bit case it will come after the opcode).  In 
> particular, it makes it hard to write ABNF which is clear.

There's a value in putting more and length together since they're 
related. That would help debugging because a fragment would be easily 
recognizable as %xFE or %xFF instead of varying based on the reserved 
bits as the current frame encoding requires. For short packets, having 
the high bit clear will make the length easier to scan (assuming it's a 
non-fragment) than scanning would be if the high bit varies for 
unrelated extension reasons.

   * res(4)
   * opcode(4)
   * more(1)
   * length(7)

It's a matter of taste, really. Having the reserved split in two also 
makes the frame header look more complicated because it implies that 
RES1 and RES2 are reserved for different purposes rather than just being 
generic reserved bits.

But it really doesn't matter much, so I'll just leave the point out 
there and not argue for it further.

-- Scott

>
> -- 
> John A. Tamplin
> Software Engineer (GWT), Google