MUST use normative language (Re: draft-ietf-httpbis-http2 feedback)

Eliot Lear <lear@cisco.com> Wed, 31 July 2013 17:40 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7917521F9D82 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 31 Jul 2013 10:40:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.615
X-Spam-Level:
X-Spam-Status: No, score=-9.615 tagged_above=-999 required=5 tests=[AWL=0.983, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
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 Qg6jYQKBjjGO for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 31 Jul 2013 10:39:55 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 48F4721E808D for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 31 Jul 2013 10:39:54 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1V4aM1-0006pP-Fk for ietf-http-wg-dist@listhub.w3.org; Wed, 31 Jul 2013 17:38:29 +0000
Resent-Date: Wed, 31 Jul 2013 17:38:29 +0000
Resent-Message-Id: <E1V4aM1-0006pP-Fk@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <lear@cisco.com>) id 1V4aLq-0006oc-6D for ietf-http-wg@listhub.w3.org; Wed, 31 Jul 2013 17:38:18 +0000
Received: from ams-iport-2.cisco.com ([144.254.224.141]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <lear@cisco.com>) id 1V4aLp-0000hn-6t for ietf-http-wg@w3.org; Wed, 31 Jul 2013 17:38:18 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5668; q=dns/txt; s=iport; t=1375292297; x=1376501897; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to; bh=4R7rA26WUNte6PeKqnBvCx3bjoS8aMT+u98RnoKLe5Y=; b=BaNVSk66NUBgICqLLH0EFGRDCsKKE3+UsSpW6WHE1nvr2hFkwaa/RD19 tlRRJqScbbFJmoWuK/C/2gM8+p2HZITEBH3tuMZxpViWo8Ub+N7zA+UqA sz40Ny/VK9qttb0pyBtwV4MBewMlR6Jk4PNXOIfXpKQ8NRp/v/6G5w1nB g=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AisFANJK+VGQ/khR/2dsb2JhbABbgwY1g2CFXbJBgnWBGRZ0giQBAQEEI1UBEA8KCgkWCwICCQMCAQIBKxoGDQEHAQGIDKdnkVCOSoE9B4JlgSYDl1+RTYMWOoEt
X-IronPort-AV: E=Sophos; i="4.89,788,1367971200"; d="scan'208,217"; a="85318072"
Received: from ams-core-1.cisco.com ([144.254.72.81]) by ams-iport-2.cisco.com with ESMTP; 31 Jul 2013 17:37:50 +0000
Received: from mctiny.local ([10.61.171.45]) by ams-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id r6VHblTq010232 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 31 Jul 2013 17:37:48 GMT
Message-ID: <51F94B6C.3050505@cisco.com>
Date: Wed, 31 Jul 2013 19:37:48 +0200
From: Eliot Lear <lear@cisco.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130620 Thunderbird/17.0.7
MIME-Version: 1.0
To: Amos Jeffries <squid3@treenet.co.nz>
CC: ietf-http-wg@w3.org
References: <51F8DA31.20903@gmx.de> <51F92362.6020900@treenet.co.nz>
In-Reply-To: <51F92362.6020900@treenet.co.nz>
X-Enigmail-Version: 1.5.2
Content-Type: multipart/alternative; boundary="------------090503060804060400000003"
Received-SPF: pass client-ip=144.254.224.141; envelope-from=lear@cisco.com; helo=ams-iport-2.cisco.com
X-W3C-Hub-Spam-Status: No, score=-14.0
X-W3C-Hub-Spam-Report: AWL=0.128, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-1.507, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5
X-W3C-Scan-Sig: lisa.w3.org 1V4aLp-0000hn-6t b86f89ac0a4f71e83b7642e810d58d80
X-Original-To: ietf-http-wg@w3.org
Subject: MUST use normative language (Re: draft-ietf-httpbis-http2 feedback)
Archived-At: <http://www.w3.org/mid/51F94B6C.3050505@cisco.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/19017
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Dear colleagues,

On 7/31/13 4:46 PM, Amos Jeffries wrote:
> On 31/07/2013 9:34 p.m., Julian Reschke wrote:
>> Questions:
>>
> <snip>
>>
>> 5.2.2
>>
>> "Deployments with constrained resources (for example, memory) MAY
>> employ flow control to limit the amount of memory a peer can consume.
>> Note, however, that this can lead to suboptimal use of available
>> network resources if flow control is enabled without knowledge of the
>> bandwidth-delay product (see [RFC1323])."
>>
>> s/MAY/can/
>>
>
> I took this as being intentionally normative language. One participant
> MAY use the feature therefore all participante MUST implement support
> just in case it happens. With "can" there is no normative requirement
> on the other participants to implement anything regarding flow
> control, which would lead to harm for the participant needing it.

I have two problems with the above and one overarching concern that
really needs to be addressed.  First, the above text is taken out of
context.  Flow control windows MUST always be obeyed by the sender.  It
says so right in the previous paragraph.

Second,  if you don't agree with the above, changing "MAY" to "can"
doesn't get around the fact that you're giving advice to implementers on
the use of flow control, and yet that advice would be wrong because it
could be ignored by senders.  This is, in other words, a distinction
without a difference.

And this brings me to my general concern.  Stop running away from
normative language.  This WG is writing a specification that is intended
to be very widely deployed.  It is intended to supplant the most widely
deployed application protocol ever, and therefore interoperability and
deterministic behavior is important.  So is the use of standard
well-known normative terms.  They are carefully defined with specific
meanings that are well known that most programmers understand.  They are
*so* well known that many standards organizations have adopted them.

Lastly, these words are contained in a voluntary standard.  If you don't
follow them, the IETF believes that you may have an interoperability,
performance, or security problem, and in some cases you might cause
problems for others.

Eliot