RE: My two cents on draft-leiba-rfc2119-update

Eric Gray <eric.gray@ericsson.com> Thu, 11 August 2016 15:31 UTC

Return-Path: <eric.gray@ericsson.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83D7A12D7A0; Thu, 11 Aug 2016 08:31:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level:
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] 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 WQJzYrarR1Pn; Thu, 11 Aug 2016 08:31:43 -0700 (PDT)
Received: from usplmg20.ericsson.net (usplmg20.ericsson.net [198.24.6.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6A8B312D629; Thu, 11 Aug 2016 08:31:43 -0700 (PDT)
X-AuditID: c618062d-980fb98000000a08-68-57ac9b0c6644
Received: from EUSAAHC006.ericsson.se (Unknown_Domain [147.117.188.90]) by (Symantec Mail Security) with SMTP id 5F.3A.02568.C0B9CA75; Thu, 11 Aug 2016 17:34:36 +0200 (CEST)
Received: from EUSAAMB107.ericsson.se ([147.117.188.124]) by EUSAAHC006.ericsson.se ([147.117.188.90]) with mapi id 14.03.0301.000; Thu, 11 Aug 2016 11:23:43 -0400
From: Eric Gray <eric.gray@ericsson.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>, Barry Leiba <barryleiba@computer.org>, "adrian@olddog.co.uk" <adrian@olddog.co.uk>
Subject: RE: My two cents on draft-leiba-rfc2119-update
Thread-Topic: My two cents on draft-leiba-rfc2119-update
Thread-Index: AdHzJGy8zoqCtUS8RaCw+dwmvJSH+gAJElyAAAfzf4AAHQ4B8A==
Date: Thu, 11 Aug 2016 15:23:42 +0000
Message-ID: <48E1A67CB9CA044EADFEAB87D814BFF64A876738@eusaamb107.ericsson.se>
References: <0f2001d1f324$7efe43e0$7cfacba0$@olddog.co.uk> <CALaySJLpmBGxORq-q-LHoWaxq2ZdQeMqUD36j-EapJj1oAJn8A@mail.gmail.com> <f2c9f8fc-1c11-f4f6-0e4b-ea32c580ecc5@gmail.com>
In-Reply-To: <f2c9f8fc-1c11-f4f6-0e4b-ea32c580ecc5@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [147.117.188.9]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupikeLIzCtJLcpLzFFi42KZXLonSpdn9ppwg/7rlhY/em4wWxxafInV ou3iPiaLI5vfMlk82zifxYHVo2VVL7PHzll32T2WLPnJ5LFi80rGAJYoLpuU1JzMstQifbsE rozOxW0sBU3mFRO71rA3MJ4x7WLk5JAQMJF4MnsWaxcjF4eQwAZGieOn5zFCOMsZJbbdmcwM UsUmoCFx7M5asISIQCejRO+WW2AtzAKNjBI/Pr5iAqkSFjCXOLulAaxDRMBCYuqhY2wQtpPE 2sdbwGwWAVWJUzf/gdXwCvhK3H3/Gmr3FkaJ1pM3GEESnAK2Ev8a9rOD2IwCYhLfT60BW8As IC5x68l8JojDBSSW7DnPDGGLSrx8/I8VwlaU2Nc/HaiXA6heU2L9Ln2IVkWJKd0P2SH2Ckqc nPmEZQKj6CwkU2chdMxC0jELSccCRpZVjBylxQU5uelGBpsYgTF0TIJNdwfj/emehxgFOBiV eHgXZK8OF2JNLCuuzD3EKMHBrCTCmzZ5TbgQb0piZVVqUX58UWlOavEhRmkOFiVxXrFHiuFC AumJJanZqakFqUUwWSYOTqkGxlPnZho+T3WJLy60UDts2Vz9/G1dt52l+3pZuZdXT8l65x8o TvpQ/pdF/sOMBfnd3T4FkpFmwXw/+St3FRr/qph0PPFi3cEE1zVTXiy5r/eat+DXR4E1jQ8v J9Zd6/3AukvlwDzuR6o/Dvl8Ko7qrVxad0G+T9hp8hqniDx9pe3X1eoDgv2WKLEUZyQaajEX FScCAEgwkF+dAgAA
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/XSeWCkKCy2bTEiccemyIOPcsd3U>
Cc: "draft-leiba-rfc2119-update.all@ietf.org" <draft-leiba-rfc2119-update.all@ietf.org>, IETF discussion list <ietf@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Aug 2016 15:31:45 -0000

Brian,

One part of the issues I've seen with RFC 2119 relate to the fact that there are some subtleties in the usage of the normative terminology that results in differences in interpretation by authors and reviewers alike, depending on both when the draft is written/reviewed and who is doing the review.

For instance, a lot of external (non-IETF) documents use the same terms, even referring to RFC 2119, and yet explicitly create implied differences in interpretation.  For instance, I know of a few cases where - in spite of an explicit reference to RFC 2119 - usage in context implicitly treats "SHOULD" and "MAY" as equivalent (often because the fact that a requirement is defined as something that SHOULD be done, makes it an optional requirement - very much like "MAY").

We can take a parochial view and claim that this "outside usage" doesn't affect us - but that is a very narrow perspective that ignores the fact that this usage in practically any context is likely to color the way people in the IETF tend to interpret the similar usage in an IETF context.

A related subtlety in this is that - in many cases - SHOULD can never quite be the same as MAY (except in the sense that - when a specification states that an implementation "SHOULD do X", it implies that implementations MAY decide not to for some reason).  The reason why they can never quite be the same is that explicitly saying that implementations "MAY do X" - where doing "X" results in externally visible behavior that impacts interaction with the implementations that elect to exercise this option - implies that all implementations MUST be prepared to deal with the consequences of this choice.

A subtle difference in the usage of SHOULD is that (as I understand it) the intention of RFC 2119 and the most common interpretation that seems to apply in a majority of published standards track RFCs seems to be that saying implementations "SHOULD do X" means that other implementations are allowed to assume this behavior and that the burden of dealing with potential consequences of not doing "X" then falls on the implementation that elects _not_ to do "X."

There are cases where this usage is appropriate; as an example, it may turn out over time that other implementations are not affected by the omission of a recommended behavior.  This is often at least part of the reason why it can be necessary to use "SHOULD" instead of "MUST" in order to achieve rough consensus for some specifications.

Other people may interpret RFC 2119 differently.  I know that folks who use these terms outside of the IETF context frequently do interpret them differently (even when explicitly referring to RFC 2119).  For this reason, it would be helpful if these subtleties were cleared up unambiguously.

This could also establish a somewhat greater degree of consistency in the use of the fuzzier of the normative terms defined in RFC 2119, and could lead to improved RFC quality in a number of ways, on a number of different levels.

--
Eric

-----Original Message-----
From: ietf [mailto:ietf-bounces@ietf.org] On Behalf Of Brian E Carpenter
Sent: Wednesday, August 10, 2016 4:37 PM
To: Barry Leiba <barryleiba@computer.org>; adrian@olddog.co.uk
Cc: draft-leiba-rfc2119-update.all@ietf.org; IETF discussion list <ietf@ietf.org>
Subject: Re: My two cents on draft-leiba-rfc2119-update

On 11/08/2016 04:49, Barry Leiba wrote:
...
> There *is* a problem that this is fixing: we (collectively) spend a
> lot of time messing with this -- discussing, in document after
> document, whether lower-case versions matter, and what should be what.
> This document is attempting to get rough-consensus answers so the
> questions don't have to be re-argued over and over.

Yes, I believe we have two real problems with RFC 2119 itself:

1. When a draft cites RFC 2119 *and* contains lower case instances
of the RFC 2119 keywords, it is often unclear whether all those
instances are intentionally "normal English" or whether they are
typing mistakes. Some text to clarify what BCP 14 intends to say
about that would be helpful, and what this draft says about seems
fine (whether published as BCP or as commentary).

2. Uses of SHOULD are often unclear about the exceptions. The raw
definition ("there may exist valid reasons...") is all one can
say in a generic definition but it seems to me that we should
expect specific guidance about what those reasons might be in
each case. However, that is quite rare. (Before anyone checks,
I am just as guilty in this respect as anyone else.) This tends
to degrade SHOULD until it's almost the same as MAY.

However, no amount of fixing RFC 2119, or commentary on it, can
solve those two problems - only careful document review can do that.

On 11/08/2016 05:27, Melinda Shore wrote:
...
> I'd like to think that our review processes are robust enough
> to catch misuse.

As others have said, that may be optimistic, but making BCP 14
more complicated to understand won't help authors or reviewers
who already find this aspect of IETF bureaucracy annoying.

Regards
   Brian