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

From: Julian Reschke <[email-masked]>
Date: Thu, 01 Aug 2013 09:12:11 +0200

On 2013-07-31 19:37, Eliot Lear wrote:
> 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.

The problem that I have with this "MAY" is that it states something 
obvious; we have a flow control feature, and a party in the data flow 
can invoke it. Why is there a "MAY" here?

Best regards, Julian

---

From: Yoav Nir <[email-masked]>
Date: Thu, 1 Aug 2013 07:21:16 +0000

On Aug 1, 2013, at 9:12 AM, Julian Reschke <[email-masked]> wrote:

> The problem that I have with this "MAY" is that it states something obvious; we have a flow control feature, and a party in the data flow can invoke it. Why is there a "MAY" here?

To make it clear that this is not a MUST or a SHOULD. Otherwise, people reading the draft don't know whether invoking flow control in mandatory or not. This is particularly important for someone creating a minimal implementation. 

Yoav

---

From: Eliot Lear <[email-masked]>
Date: Thu, 01 Aug 2013 09:31:20 +0200

Julian,

> can invoke it. Why is there a "MAY" here?

I had assumed that it wasn't obvious to everyone.  This particular MAY
seems more intended toward the sender rather than the receiver.  But
just as I said don't contort to avoid language, liberal sprinklings of
MAY area also unnecessary.

Eliot

---

From: Amos Jeffries <[email-masked]>
Date: Thu, 01 Aug 2013 21:32:20 +1200

> MAY area also unnecessary.

Obvious is not always so for everybody. Being very strict is one of the 
things we seemed to have a minor vote consensus for earlier this week. 
This MAY is fully inline with that preference toward strictness. It 
reinforces that earlier MUST on recipients.

I am for keeping it for now. It can always be reevaluated later.

Amos