Subject: Re: [hybi] -09: data framing

From: Alexey Melnikov <[email-masked]>
Date: Thu, 07 Jul 2011 19:55:49 +0100

Peter Saint-Andre wrote:

>Here are some comments on Section 4 (I had comments on Section 3 of -08
>but they were fixed in -09).
>
>In 4.2...
>
>   frame-rsv1              = %x0 ; 1 bit, MUST be 0
>
>   frame-rsv2              = %x0 ; 1 bit, MUST be 0
>
>   frame-rsv3              = %x0 ; 1 bit, MUST be 0
>
>I think we mean "MUST be 0 unless negotiated otherwise".
>  
>
Yes, changed.

>In 4.3...
>
>At the beginning of Section 4.4 there is a nice paragraph starting with
>"The primary purpose of fragmentation is...", but we don't have
>something similar about masking. What is masking intended to accomplish?
>Is it supposed to have security properties? Etc.
>
>   The client MUST mask all frames sent to the server.  A server MUST
>   close the connection upon receiving a frame with the MASK bit set to
>   0.
>
>If framing is truly mandatory for all frames (not "if the parties
>negotiate masking, then the client MUST mask all frames..."), why have
>the MASK bit in the first place? Would frame-masked be set to 0 only for
>control frames (or control frames not containing a body)?
>  
>
I think this would require a bit of discussion and some text (not 
necessarily from you).

>In 4.5.2 and 4.5.3, it might be helpful to say explicitly whether Ping
>frames and Pong frames are allowed to contain a body.
>  
>
I think this is already clear, e.g.
    A Pong frame sent in response to a Ping frame must have identical
    Application Data as found in the message body of the Ping frame
    being replied to.

>In 4.8, I think we mean "prescriptive" instead of "proscriptive" (from
>"proscribe" = "forbid").
>
Fixed.

>o  Extension data may be placed in the payload data before the
>      application data.
>
>Do we mean "MAY"?  
>
I don't feel particularly strongly about this, but this sentence is 
included in the list of examples, so use of MAY seems inapropriate.