Re: meaning RFC 2119 (was Re:I'm struggling with 2219 language again)

Abdussalam Baryun <abdussalambaryun@gmail.com> Fri, 04 January 2013 20:33 UTC

Return-Path: <abdussalambaryun@gmail.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 2886C21F8880 for <ietf@ietfa.amsl.com>; Fri, 4 Jan 2013 12:33:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.599
X-Spam-Level:
X-Spam-Status: No, score=-3.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
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 DDxxe-GENSJU for <ietf@ietfa.amsl.com>; Fri, 4 Jan 2013 12:33:25 -0800 (PST)
Received: from mail-vc0-f171.google.com (mail-vc0-f171.google.com [209.85.220.171]) by ietfa.amsl.com (Postfix) with ESMTP id E275E21F86EF for <ietf@ietf.org>; Fri, 4 Jan 2013 12:33:24 -0800 (PST)
Received: by mail-vc0-f171.google.com with SMTP id n11so17245374vch.30 for <ietf@ietf.org>; Fri, 04 Jan 2013 12:33:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ELmN0z4H3s59ji8IN0A16nEmd02xwcBxit6CN0/A7dE=; b=LOmiW2kWuTuRASLYiA6Tjzewxjxy4M/UuBCPZWp+4I7ppCwuuLR/ywR0p3j7KNAwV+ MBxte+yRlP3Ve3WtZ28nm/lyIpII6PuvcLmMSOnf8ItO7JNeXVCywW9/ORvlM7dtfVKu 5IfoWAm0uNYWl0YzE3Loqj2lwdDE78KK0Wz/PvPtANhagq4A2XP8jqaaD350VPzxGWZH Ff8nCuhjrDa4uwP7Ba/m7qqlTN3atS6P/RVqpzzkgWaxFDbAzyJhao2fs/pRUYrHV7zf Gs/U2kK4KuEiCHxOdhGKGjphnC3EHa1Bx9DRWs9trsmH97bZ+lkJBm4Mv86NQpWMRaCg IAew==
MIME-Version: 1.0
Received: by 10.52.27.50 with SMTP id q18mr68152029vdg.20.1357331604174; Fri, 04 Jan 2013 12:33:24 -0800 (PST)
Received: by 10.220.145.5 with HTTP; Fri, 4 Jan 2013 12:33:24 -0800 (PST)
In-Reply-To: <CADnDZ8_BPe-L4M=3nWE2k2Uj8bO11uRqCxunVN=22PYDDGOAQA@mail.gmail.com>
References: <CADnDZ8_BPe-L4M=3nWE2k2Uj8bO11uRqCxunVN=22PYDDGOAQA@mail.gmail.com>
Date: Fri, 04 Jan 2013 21:33:24 +0100
Message-ID: <CADnDZ8_n7gP3mO72OCGusu07HN7Ew=eTLV22nDEJZ7yihnLhKw@mail.gmail.com>
Subject: Re: meaning RFC 2119 (was Re:I'm struggling with 2219 language again)
From: Abdussalam Baryun <abdussalambaryun@gmail.com>
To: brian.e.carpenter@gmail.com
Content-Type: text/plain; charset="ISO-8859-1"
Cc: ietf <ietf@ietf.org>, 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 20:33:29 -0000

>I guess the test is whether a reasonably
careful reader might interpret a sentence incorrectly while writing code;
and if so, would a normative keyword help?

I think the best key word used/help is *IF, THEN, ELSE* the programmer
will never miss that key for running code and specification.

AB

> Hi Dean
>
> I agree with you which I suggested before an update to the RFC [*], I
> actually writing a work in progress ID, you may give me your
> suggestion if you like. I recommend you use for your work IF, THEN
> rather than MUST. Easier to read.
>
> *  http://tools.ietf.org/id/draft-baryun-rfc2119-update-00.txt
>
> AB
>
>>
>>
>> I've always held to the idea that RFC 2119 language is for defining
>> levels of compliance to requirements, and is best used very sparingly
>> (as recommended in RFC 2119 itself). To me, RFC 2119 language doesn't
>> make behavior normative -- rather, it describes the implications of
>> doing something different than the defined behavior, from "will break
>> the protocol if you change it" to "we have reason to think that there
>> might be a reason we don't want to describe here that might influence
>> you not to do this" to "here are some reasons that would cause you to
>> do something different" and on to "doing something different might
>> offend the sensibilities of the protocol author, but probably won't
>> hurt anything else."
>>
>> But I'm ghost-editing a document right now whose gen-art review
>> suggested replacing the vast majority of "is" "does" and "are" prose
>> with MUST. The comments seem to indicate that protocol-defining text
>> not using RFC 2119 language (specifically MUST) is "not normative".
>>
>> This makes me cringe. But my co-editor likes it a lot. And I see smart
>> people like Ole also echoing the though that RFC 2119 language is what
>> makes text normative.
>>
>> For example, the protocol under discussion uses TLS or DTLS for a
>> plethora of security reasons. So, every time the draft discusses
>> sending a response to a request, we would say "the node MUST send a
>> response, and this response MUST be constructed by (insert some
>> concatenation procedure here) and MUST be transmitted using TLS or
>> DTLS.
>>
>> Or, a more specific example:
>>
>> For the text:
>>
>> In order to originate a message to a given Node-ID or
>> Resource-ID, a node constructs an appropriate destination list.
>>
>>
>> The Gen-ART comment here is:
>> -First sentence: "a node constructs" -> "a node MUST construct"
>>
>>
>> We'll literally end up with hundreds of RFC 2119 invocations (mostly
>> MUST) in a protocol specification.
>>
>> Is this a good or bad thing? My co-editor and I disagree -- he likes
>> formalization of the description language, and I like the English
>> prose. But it raises process questions for the IETF as a whole:
>>
>> Are we deliberately evolving our language to use RFC 2119 terms as the
>> principle verbs  of a formal specification language?
>>
>> Either way, I'd like to see some consensus. Because my head is
>> throbbing and I want to know if it MUST hurt, SHOULD hurst, or just
>> hurts. But I MUST proceed in accordance with consensus, because to do
>> otherwise would undermine the clarity of our entire specification
>> family.
>>
>> --
>> Dean
>>
>