Re: [hybi] [permessage-deflate] Renaming s2c_ and c2s_ prefix to server_ and client_

Takeshi Yoshino <tyoshino@google.com> Wed, 16 October 2013 09:14 UTC

Return-Path: <tyoshino@google.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 DA07611E82BA for <hybi@ietfa.amsl.com>; Wed, 16 Oct 2013 02:14:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.905
X-Spam-Level:
X-Spam-Status: No, score=-1.905 tagged_above=-999 required=5 tests=[AWL=0.072, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
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 16f4LHtAB5Kg for <hybi@ietfa.amsl.com>; Wed, 16 Oct 2013 02:14:09 -0700 (PDT)
Received: from mail-wi0-x22e.google.com (mail-wi0-x22e.google.com [IPv6:2a00:1450:400c:c05::22e]) by ietfa.amsl.com (Postfix) with ESMTP id 428FA11E8267 for <hybi@ietf.org>; Wed, 16 Oct 2013 02:14:06 -0700 (PDT)
Received: by mail-wi0-f174.google.com with SMTP id cb5so6329655wib.1 for <hybi@ietf.org>; Wed, 16 Oct 2013 02:14:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=7P9j/vILtf3T0ZlkqysY0luA5ijMlyVUJ7l94eZ0Ndk=; b=PhIzSgjDBfDxg12cgEh3pmTHqK5WK+o5R0AvcXf0jP9qBIGYeQFRMtJpfdm28T/Vkb dARzrNG5wbaDvh4DLFyEW9IbkO/+ILAD/OhW04k0zjoKYGyGS7F1uybMDs9RCbvFlZmx NcxVZY+1vG4I/zmeDa5PIVKJODD8BY7WH5+WiLgRvTSAeg4RztiK3mC3gzB761LSab6E 3d6n0r+jVEVHvF/WeQuv2RyI3e8F7Sucp1UuNw88KXbYPIh6vI9UfTL9OuurYB62V+92 jHQzullMERzDlo/BqAalmA5ke2DReEmk5kW/qf1aT9aomGLvtHKybXAU9lBpMwuy/h6k OEQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=7P9j/vILtf3T0ZlkqysY0luA5ijMlyVUJ7l94eZ0Ndk=; b=DS+ygL/xnfUq0nfIaZPOdfgz+pKPGjVGmyMwnZAQctLqhZYYsTmGvGCm8/uKyNaBVt aRtQ8L2RL+7AEMdeIfd2m3/sMcDaVSe4UHQU26t1ysA4QvXP/BA69t+RavZJ+A8df+na iEaNiH2kpZyBx6DcfpjPR2ZubaT3eO5874VaG7Zfjndx56F8BwnkHFO0K4vcZZJwW6B1 Lq9HkLe6SJuMnxrjQ3vEDOvjbvZxd8ffErCKcZzQQezJZuIydl+futbRamtIrNjPX/m+ oRQA3xFgkQgzEtWCo5IagglZnqYApfVG7Adk1PRMJzMNcvURQqR7sBJD6JX4D/AMlNir SlPA==
X-Gm-Message-State: ALoCoQnAocEC5+jeIL20oRE1P4K6bqGNLQBr34ik8hKjfTW4ZW02ddtJejqNAt+nDBpnrqmpLiblXw/Wc6Z0oYrLaLMNBNikOua2giFjpByKCms5yk9QRct8b3p26UxKIcAngPDLaqE+e2v8Sdd9vCgf7loGJHkq9HeM8WtU/RrLxyMAQTdd8IjE0CODfsqfkJflB1bwHb/t
X-Received: by 10.180.188.197 with SMTP id gc5mr23210503wic.42.1381914845306; Wed, 16 Oct 2013 02:14:05 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.194.15.133 with HTTP; Wed, 16 Oct 2013 02:13:45 -0700 (PDT)
In-Reply-To: <CAG4zZZDtUEnvgPmcKWsE9mFockUYA0PDFUE1SxNr+ubN0v9=xg@mail.gmail.com>
References: <CAH9hSJant3VBw0FBM69V9wPvi3WmJLikZdX4ySELy+CShgoOKA@mail.gmail.com> <5BEA69BA-D0D4-4F4A-8CFB-741A433EAAA6@zaphoyd.com> <CAH9hSJYNrBkf=2=2DHdipvXwN4XEKDe2BOc4g1eZr38U7m7jdw@mail.gmail.com> <CAG4zZZDtUEnvgPmcKWsE9mFockUYA0PDFUE1SxNr+ubN0v9=xg@mail.gmail.com>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Wed, 16 Oct 2013 18:13:45 +0900
Message-ID: <CAH9hSJZqR6L8fWTN_p915atXniuAbh-Nxb6FnPapoVwpdY3bAg@mail.gmail.com>
To: Joakim Erdfelt <joakim@intalio.com>
Content-Type: multipart/alternative; boundary="001a11c3841a77051204e8d81fb7"
Cc: "hybi@ietf.org" <hybi@ietf.org>, Peter Thorson <webmaster@zaphoyd.com>
Subject: Re: [hybi] [permessage-deflate] Renaming s2c_ and c2s_ prefix to server_ and client_
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: Wed, 16 Oct 2013 09:14:10 -0000

On Wed, Oct 16, 2013 at 12:13 AM, Joakim Erdfelt <joakim@intalio.com> wrote:

> We start by talking of "c2s_" then half way through the first paragraph we
> start talking about "server-to-client" and even point out the "c2s_"
> parameter as an example of the "server-to-client".
>
> The spec mixes the use of "c2s" and "client-to-server" in various places,
> in what we can only assume is sometimes it refers the parameter, sometimes
> it refers to the direction of the conversation, sometimes it refers to the
> extension negotiation step, sometimes it refers to the extension
> negotiation phase.
>

Makes sense.


>
> Months have been spent trying to decipher this spec by multiple people
> with years of experience on ietf specs, both as consumers and participants.
>  the spec should be able to sit on its own, with as clear of definition as
> possible at the time, reducing as much of the "interpretation" and question
> asking that will arise from the spec.
>
> The "2s" and "2c" portions are irrelevant, and actually cause confusion as
> you use the same language elsewhere.
>
> proposal:
>
> "c2s_" used in extension-param tokens should be "client_" to refer to
> "client produced compression"
> "s2c_" used in extension-param tokens should be "server_" to refer to
> "server produced compression"
>
>
Hmm. The key here is the fact that compression is made only on traffic
after connection establishment. That may clarifies things. Only
client-produced and server-produced are still with ambiguity. Server and
client do produce extension parameters. Client_transmitted,
Client_outgoing, Client_egress, ... I think this applies to any of them.

As there's no strong opinion to keep c2s_ and s2c_, I've renamed them to
server_ and client_.


> "client-to-server", and "server-to-client" use within spec should be
> clarified, and never be left without a clarification.
>    when referring to the extension negotiation request phase.
>       consider "extension negotiation request" or "extension negotiation
> offer" for current "client-to-server" use
>       consider "extension negotiation response" or "extension negotiation
> accept" for current "server-to-client" use.
>

Good point. I put these for clarification but they lead to confusions. I
understand. Thanks.


>    when referring to the flow of frames on a connected websocket.
>       this is where the existing "Client-to-Server" terminology is
> consistent with RFC6455 (see Section 5.3<http://tools.ietf.org/html/rfc6455#section-5.3>
> ).
>       so feel free to start using for "Server-to-Client" here as well, but
> not in the above.
>
>
Makes sense! Done.


> another choice is to never leave "Client-to-Server" alone with no
> clarification, always follow it with consistent verbiage, like RFC6455 does.
>
> Its never "Client-to-Server" just to refer to a directionality, its a
> compound concept, such as "Client-to-Server Masking" or "Client-to-Server
> message".
>
> Suspicions/Theories:
>
> The language choices of this spec probably come from the overall attempt
> at being neutral to what side (client or server) the spec is documenting
> from.
> If you look at the overall language of RFC6455, you see that it is
> presented from the point of view of the Client, with the Server roles and
> responsibilities being explained only when needed to.  Otherwise, both
> sides are assumed to be the same in behavior.
> If RFC6455 used the same techniques as the permessage-deflate spec, then
> you'd have 2 sections: Client, fully documented with barely a mention of
> server, then Server, fully documented we barely a mention of client.
>
>
I see, yeah. It must be the source of complexity.


>
> Permessage-deflate could have been documented the same way as RFC6455, but
> it isn't, so now you have extra work to be careful in your language
> choices, eliminate ambiguity, make things more clear.
>
>
> Our the final translation of the permessage-deflate extension spec, as
> written:
>
> Simplified Neutral Language:
> Incoming frames/messages are compressed when RSV1 is set
> Outgoing frames/messages can be compressed, but set RSV1 if you do.
> Configuration of Incoming frames/messages compression is controlled by
> Extension Parameters for the opposite side of yourself.
> Configuration of Outgoing frames/messages compression is controlled by
> Extension Parameters for your side.
>
> Side Specific Language:
> client_* Extension Parameters are for controlling frames/messages
> compression produced by client
> server_* Extension Parameters are for controlling frames/messages
> compression produced by server
>
>
Refined. Please take a look again.


> Here's the example of same Section 8.1.2.2 with the proposed change:
> (quick edit)
>
>
Thanks for providing an example. I believe the new text addressed all of
the edit you made in the same or a bit different way.