[rfc-i] Drafting issue... use of MAY

Carsten Bormann cabo at tzi.org
Tue May 1 11:35:46 PDT 2018


On May 1, 2018, at 19:22, Dave Thaler <dthaler at microsoft.com> wrote:
> 
> MAY means it's optional and you can choose not to do it.  You can't choose not to have letters be in upper or lower case, you have to pick one of the two.  You might argue they "MUST be in upper or lower case", but that would be inappropriate in my view also since it's not possible to violate the MUST, and it's not possible to test it since there's no way to fail the MUST.
> 
> If there's two options, each of which is equally acceptable and neither is recommended, then a simple "can" would suffice instead of "MAY".

Actually, the meaning of MAY is very clear in RFC 2119.  Excerpt:

   An implementation which does not include a particular option MUST be
   prepared to interoperate with another implementation which does
   include the option, though perhaps with reduced functionality.  In the
   same vein an implementation which does include a particular option
   MUST be prepared to interoperate with another implementation which
   does not include the option (except, of course, for the feature the
   option provides.)

A MAY is a mandatory statement about interoperability like the other RFC 2119 keywords.  The optionality is not about you, it is about the other side: again, it means *you* MUST be prepared to interoperate with the other side independent of whether they do the option or whether they don’t.

If you are not making this particular statement (MUST interoperate with either kind of peer), don’t use MAY.

Grüße, Carsten



More information about the rfc-interest mailing list