Re: [rtcweb] Ben Campbell's Yes on draft-ietf-rtcweb-jsep-24: (with COMMENT)

Ben Campbell <ben@nostrum.com> Wed, 03 January 2018 00:29 UTC

Return-Path: <ben@nostrum.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D8A4B120721; Tue, 2 Jan 2018 16:29:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.89
X-Spam-Level:
X-Spam-Status: No, score=-1.89 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BPmQP9rB6KYE; Tue, 2 Jan 2018 16:29:39 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2262D127137; Tue, 2 Jan 2018 16:29:38 -0800 (PST)
Received: from [10.0.1.95] (cpe-66-25-7-22.tx.res.rr.com [66.25.7.22]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id w030TZ8W012737 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 2 Jan 2018 18:29:36 -0600 (CST) (envelope-from ben@nostrum.com)
X-Authentication-Warning: raven.nostrum.com: Host cpe-66-25-7-22.tx.res.rr.com [66.25.7.22] claimed to be [10.0.1.95]
From: Ben Campbell <ben@nostrum.com>
Message-Id: <B694E843-D649-416E-BFC8-395A40DE9454@nostrum.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_A7C02BCB-4F25-44F0-9023-3D65A856F0F2"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\))
Date: Tue, 02 Jan 2018 18:29:34 -0600
In-Reply-To: <CABcZeBP8g-5BYZr1fMP4pXaV4UroUXnS2nYb29CrmesKzifb8w@mail.gmail.com>
Cc: Justin Uberti <juberti@google.com>, The IESG <iesg@ietf.org>, draft-ietf-rtcweb-jsep@ietf.org, RTCWeb IETF <rtcweb@ietf.org>, rtcweb-chairs@ietf.org
To: Eric Rescorla <ekr@rtfm.com>
References: <151305054509.20498.9053592362460423618.idtracker@ietfa.amsl.com> <CAOJ7v-2O9PUWSJR6Syy-xXwUxmZCefNi+gxBp=Zs0_YYpgNJGw@mail.gmail.com> <18FD1FCB-84D3-484A-81A4-FAB9A1A8A412@nostrum.com> <CABcZeBP8g-5BYZr1fMP4pXaV4UroUXnS2nYb29CrmesKzifb8w@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.5.20)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/CnEBjwenhnQj2aWycv0oCXcCr_A>
Subject: Re: [rtcweb] Ben Campbell's Yes on draft-ietf-rtcweb-jsep-24: (with COMMENT)
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jan 2018 00:29:41 -0000

[…]

> >
>> >> -5, throughout: There are a number of normative keywords used in constructions
>> >> like "... MUST foo, as described in RFCXXX". That construction is ambiguous
>> >> about whether it defines a normative requirement to do something, and the doing
>> >> of that something is described in the RFC, or if describes the referenced RFC
>> >> as defining the MUST.
>> >>
>> >> In general, it's best to avoid using 2119/8174 keywords to talk about external
>> >> requirements, except as a direct quote. I think this is especially true here
>> >> given the interdependencies between drafts in cluster 238. If in the future we
>> >> update a dependency to change a normative requirement, we risk creating
>> >> conflicts, and we make it unclear which text is authoritative.
>> >>
>> > Generally, this is pointing the reader at a particular normative section,
>> >    and saying that yeah, you MUST follow that section as written. Perhaps
>> >    the use of 2119 language here isn't ideal, but I don't see this as
>> >    confusing. Do you have a suggestion about how this should be handled instead?
>> 
>> It’s a technicality, but it can create confusion about which text is authoritative. That’s not an issue as long as both are in agreement, but future updates to either this or that spec can easily mess up that agreement.
>> 
>> My personal preference is to reserve 2119/8174 keywords for the text that is authoritative for the requirement, and to have other text that refers to that requirement do it descriptively. For example, “RFC XXXX mandates foo”.
>> 
> I guess this is a matter of opinion.
> I think that it's useful to list the rules here using
> 2119 language. I think the text makes clear that in this construction it's the
> RFC that we are pointing to that's authoritative.
> 

Well, yes, I stated my opinion. To further clarify that opinion: Having a given MUST/SHOULD/etc in more than one place makes updates error prone. If we update the language in dependency in the future, we may also need to update this draft. People updating the dependency may not even be aware of this draft. And yes, I realize this concern is highly dependent on the “what does it mean to update an RFC” philosophical discussion that never seems to resolve.

In any case, it’s not a blocking comment; people are free to ignore it.

>> >
>> >> -5.8.3: The MUSTs in this section seem to be putting requirements on the SDP
>> >> being parsed. Shouldn't they instead describe the parser's behavior based on
>> >> that SDP input? The correctness of the SDP being parsed seems beyond the
>> >> control of the implementation.
>> >>
>> > Yes, the correctness of the SDP is beyond the control of the impl, but,
>> > the handling of broken SDP is spelled out in the beginning of this section:
>> >
>> >         If any line is not well-formed, or cannot be parsed as
>> >         described, the parser MUST stop with an error and reject the
>> >         session description, even if the value is to be discarded. This
>> >         ensures that implementations do not accidentally misinterpret
>> >         ambiguous SDP.
>> >
>> > Saying that a specific line MUST have X and Y is then a shorthand for
>> > repeatedly saying that if the line cannot be parsed properly, the impl MUST
>> > stop with an error.
>> 
>> Again, I don’t think the use of 2119/8174 keywords for things beyond the control of the implementation fits the sense of those documents. I suggest either stating these without 2119/8174 keywords, or adding something to the boilerplate to the effect of “When used in to describe requirements for SDP inputs, these terms indicate requirements for that SDP to be considered well-formed”.
>> 
> I'm comfortable with the current language….

Again, non-blocking comment….

Ben.