ietf
[Top] [All Lists]

Re: gen-art review of draft-ietf-ipv6-2461bis-09.txt

2006-12-04 06:36:26
Scott W Brim <swb(_at_)employees(_dot_)org> writes:

I have one question on the protocol, and several on documentation.
Since this is a significant protocol, documentation is very important.
For the sake of new implementors I have a number of suggestions for
clarity.  Many of them have to do with the use of "SHOULD", since we
have been polishing up its use and advice to implementors.

...

    We've been tightening up "SHOULD"s recently.  RFC2119 says:
    
      SHOULD   This word, or the adjective "RECOMMENDED", mean that
      there may exist valid reasons in particular circumstances to
      ignore a particular item, but the full implications must be
      understood and carefully weighed before choosing a different
      course.
  
    In this draft, "otherwise ...  SHOULD" implies that there are
    situations in which the link layer address is known, and the
    source address is included, but the link layer address may be
    omitted.  RFC2119 says that deserves explanation.

I don't agree with your last sentence. Where exactly does 2119 say
"that deserves explanation"? Look also at Section 6 of 2119. It says:

6. Guidance in the use of these Imperatives

   Imperatives of the type defined in this memo must be used with care
   and sparingly.  In particular, they MUST only be used where it is
   actually required for interoperation or to limit behavior which has
   potential for causing harm (e.g., limiting retransmisssions)  For
   example, they must not be used to try to impose a particular method
   on implementors where the method is not required for
   interoperability.

The above bolsters the argument that SHOULD is often more appropriate
than MUST.

In my experience, we often use the word SHOULD because we think that
something is the obvious thing to do, but to make it a MUST simply
goes to far. MUST is absolute and allows for no wiggle room, and can
significantly reduce flexibility of future extensions/specs.

If the IESG is now requring all uses of SHOULD to give examples of
when the SHOULD might not apply, I think that goes a bit far. In some
cases, SHOULD is chosen because we can imagine a future spec taking
advantage of something that would not be consistent with the
SHOULD. That is MUCH harder to do when a previous spec says MUST. When
a party a MUST do something, peers sometimes take that to mean that if
the someone doesn't do the MUST, that is a protocol violation and then
do less-than-ideal things (like silently discard a message, return an
error message, etc.)

Also, anyone familiar with WG discussions knows that there is often
support for SHOULD, but not for MUST.

Thomas


_______________________________________________
Ietf mailing list
Ietf(_at_)ietf(_dot_)org
https://www1.ietf.org/mailman/listinfo/ietf