Re: [hybi] method of allocation of reserved bits to extensions

Greg Wilkins <gregw@intalio.com> Thu, 28 April 2011 03:11 UTC

Return-Path: <gregw@intalio.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 77B6CE0752 for <hybi@ietfa.amsl.com>; Wed, 27 Apr 2011 20:11:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.941
X-Spam-Level:
X-Spam-Status: No, score=-2.941 tagged_above=-999 required=5 tests=[AWL=0.036, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mA8WMyxmmOhK for <hybi@ietfa.amsl.com>; Wed, 27 Apr 2011 20:11:26 -0700 (PDT)
Received: from mail-qy0-f179.google.com (mail-qy0-f179.google.com [209.85.216.179]) by ietfa.amsl.com (Postfix) with ESMTP id AF5A1E06AE for <hybi@ietf.org>; Wed, 27 Apr 2011 20:11:26 -0700 (PDT)
Received: by qyk7 with SMTP id 7so1257270qyk.10 for <hybi@ietf.org>; Wed, 27 Apr 2011 20:11:26 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.229.17.19 with SMTP id q19mr2244117qca.142.1303960286174; Wed, 27 Apr 2011 20:11:26 -0700 (PDT)
Received: by 10.229.186.9 with HTTP; Wed, 27 Apr 2011 20:11:26 -0700 (PDT)
In-Reply-To: <BANLkTimnMBwNgP_e29exT6dUkp60s2xU3g@mail.gmail.com>
References: <BANLkTi=vOQDtL5GobitKe8yiUoQFb2go_Q@mail.gmail.com> <BANLkTikaOXg0u+4d8Ly6OxUQ7PFUU=udgQ@mail.gmail.com> <BANLkTikiUkivJitZGU-+q6wBfJ3VW45F8g@mail.gmail.com> <BANLkTindmLQ0KE6K5qUX2ue+=hoLUaznLA@mail.gmail.com> <BANLkTim9w83iSY-TH1yuVAUXxypJk_tmrw@mail.gmail.com> <BANLkTimnMBwNgP_e29exT6dUkp60s2xU3g@mail.gmail.com>
Date: Thu, 28 Apr 2011 13:11:26 +1000
Message-ID: <BANLkTi==RTfqaYFT3CQs1pM5Tb501rk2Vg@mail.gmail.com>
From: Greg Wilkins <gregw@intalio.com>
To: Brodie Thiesfield <brodie@jellycan.com>
Content-Type: text/plain; charset="ISO-8859-1"
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] method of allocation of reserved bits to extensions
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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: Thu, 28 Apr 2011 03:11:27 -0000

Brodie,

this is good. But I think we also need to say the same for op-codes.

I think each extension needs to say how many bits, data op-codes and
control op-codes it needs and then these should all be allocated in
order.

This will mean a minor inconvenience to developers of extensions, as
they need to not have constant op-codes, but it is not a difficult
thing we ask and it will give us interoperability of extensions.

cheers





On 28 April 2011 12:57, Brodie Thiesfield <brodie@jellycan.com> wrote:
> If we accept Greg's suggestion, then the following text can be a base:
>
>
>
> 8.2 Allocating Reserved Bits
>
> An extension may require the use of a reserved bit in the framing for
> proper operation. Because both the server and client must know all
> extension requirements before negotiating their use, requirements for
> use of reserved frame bit are known.
>
> The server and client will allocate reserved frame bits in a
> predefined order. The order for the reserved bits is defined as the
> number of the reserved bit as defined in section 4.2, i.e. RSV1 ->
> RSV2 -> RSV3. The order of the extensions is defined by the order of
> the extensions in the the Sec-WebSockets-Extensions response header.
>
> Example;
>
> The client requests the following 3 extensions:
> Sec-WebSocket-Extensions: deflate-frame, sign-frame, mux-o-magic
>
> The server supports all extensions and sends the response header:
> Sec-WebSocket-Extensions: deflate-frame, sign-frame, mux-o-magic
>
> If the deflate-frame extension requires 1 reserved bit and the
> mux-o-magic extension requires 2 reserved bits, then the bits are
> allocated as:
>
> deflate-frame: RSV1
> mux-o-magic: RSV2, RSV3
>
> If the server response used a different ordering of extensions, the
> allocated bits will be different according to the response extension
> ordering.
>
> For example, given the following server response header:
> Sec-WebSocket-Extensions: mux-o-magic, deflate-frame, sign-frame
>
> The reserved bits would be allocated as:
> mux-o-magic: RSV1, RSV2
> deflate-frame: RSV3
>
> If there are no available reserved bits to be allocated to an
> extension the server MUST NOT agree to use the extension.
>