Re: I'm struggling with 2219 language again

Thomas Narten <narten@us.ibm.com> Fri, 04 January 2013 22:23 UTC

Return-Path: <narten@us.ibm.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 CC0C921F87CE for <ietf@ietfa.amsl.com>; Fri, 4 Jan 2013 14:23:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.599
X-Spam-Level:
X-Spam-Status: No, score=-110.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
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 Z8ERQmUI1jFH for <ietf@ietfa.amsl.com>; Fri, 4 Jan 2013 14:23:55 -0800 (PST)
Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.151]) by ietfa.amsl.com (Postfix) with ESMTP id 0AE9021F87AD for <ietf@ietf.org>; Fri, 4 Jan 2013 14:23:54 -0800 (PST)
Received: from /spool/local by e33.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for <ietf@ietf.org> from <narten@us.ibm.com>; Fri, 4 Jan 2013 15:23:53 -0700
Received: from d03dlp01.boulder.ibm.com (9.17.202.177) by e33.co.us.ibm.com (192.168.1.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Fri, 4 Jan 2013 15:23:52 -0700
Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by d03dlp01.boulder.ibm.com (Postfix) with ESMTP id D666F1FF003C for <ietf@ietf.org>; Fri, 4 Jan 2013 15:23:41 -0700 (MST)
Received: from d03av06.boulder.ibm.com (d03av06.boulder.ibm.com [9.17.195.245]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r04MNoHd245426 for <ietf@ietf.org>; Fri, 4 Jan 2013 15:23:50 -0700
Received: from d03av06.boulder.ibm.com (loopback [127.0.0.1]) by d03av06.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r04MQ0wN016997 for <ietf@ietf.org>; Fri, 4 Jan 2013 15:26:00 -0700
Received: from cichlid.raleigh.ibm.com (sig-9-76-153-78.mts.ibm.com [9.76.153.78]) by d03av06.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id r04MPwYb016917 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 4 Jan 2013 15:26:00 -0700
Received: from cichlid.raleigh.ibm.com (localhost.localdomain [127.0.0.1]) by cichlid.raleigh.ibm.com (8.14.5/8.12.5) with ESMTP id r04MNgRA020196; Fri, 4 Jan 2013 17:23:42 -0500
Message-Id: <201301042223.r04MNgRA020196@cichlid.raleigh.ibm.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
Subject: Re: I'm struggling with 2219 language again
In-reply-to: <50E68CB5.4010107@gmail.com>
References: <7ED55FF1-3E1A-4DF7-918E-07790517B848@softarmor.com> <50E68CB5.4010107@gmail.com>
Comments: In-reply-to Brian E Carpenter <brian.e.carpenter@gmail.com> message dated "Fri, 04 Jan 2013 08:03:01 +0000."
Date: Fri, 04 Jan 2013 17:23:42 -0500
From: Thomas Narten <narten@us.ibm.com>
X-Content-Scanned: Fidelis XPS MAILER
x-cbid: 13010422-2398-0000-0000-00000FB5A16F
Cc: ietf@ietf.org, Dean Willis <dean.willis@softarmor.com>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Fri, 04 Jan 2013 22:23:55 -0000

+1 to Brian and others saying upper case should be used sparingly, and
only where it really matters. If even then.

The notion (that some have) that MUST means you have to do something
to be compliant and that a "must" (lower case) is optional is just
nuts.

If the ARP spec were to say, "upon receipt of an ARP request, the
recipient sends back an ARP response," does the lack of a MUST there
mean the response is optional? Surely not. And if we make it only a
SHOULD (e.g., to allow rate limiting of responses - a very reasonable
thing to do), does lack of MUST now make the feature optional from a
compliance/interoperability perspective?

The idea that upper case language can be used to identify all the
required parts of a specificition from a
compliance/conformance/interoperability perspective is just
wrong. This has never been the case (and would be exceeding painful to
do), though (again) some people seem to think this would be useful and
thus like lots of upper case language.

Where you want to use MUST is where an implementation might be tempted
to take a short cut -- to the detriment of the Internet -- but could
do so without actually breaking interoperability. A good example is
with retransmissions and exponential backoff. You can implement those
incorrectly (or not at all), and still get "interoperability". I.e.,
two machines can talk to each other. Maybe you don't get "good"
intereoperability and maybe not great performance under some
conditions, but you can still build an interoperabile implementation.

IMO, too many specs seriously overuse/misuse 2119 language, to the
detriment of readability, common sense, and reserving the terms to
bring attention to those cases where it really is important to
highlight an important point that may not be obvious to a casual
reader/implementor.

Thomas