ietf
[Top] [All Lists]

Re: Pachyderm in the parlor (Was: 2119bis)

2011-09-01 10:51:25


--On Thursday, September 01, 2011 08:10 -0700 Pete Resnick
<presnick(_at_)qualcomm(_dot_)com> wrote:

...
Peter's document makes a change to 2119 that nobody has
mentioned yet, and I think it is the one that is causing most
of the strife in this discussion.

Hector is exactly right. SHOULDs are optional. MAYs are
optional. What he fails to point out is that MUSTs are also
optional. They're all optional because.....

RFC 2119 does *not* provide *conformance* terms.

Peter's document uses the words "conform" and "conformance".
They appear nowhere in RFC 2119. RFC 2119 was not coming up
with a vocabulary for things that MUST be done if one is to
conform to a specification. It came up with terms for things
that MUST be done to interoperate. Or SHOULD be done (with a
pretty specific meaning of "SHOULD"). Or MAY be done.

Pete,

This is right, but it is also close to (and hugely clarifies) my
earlier comment about the difference between 2119 language
(about interoperability requirements) and 1122/1123 language
(very much about conformance).  A careful reading of the
introductions to those documents should make this clear.  For
example, "This RFC enumerates standard protocols that a host
connected to the Internet must use,..." isn't a statement about
interoperability -- a host that doesn't support SMTP won't have
interoperability problems unless it decides to use some other
protocol on the relevant port.

Similarly, 

        "However, the specifications of this document must be
        followed to meet the general goal of arbitrary host
        interoperation across the  diversity and complexity of
        the Internet system." 

talks about interoperation, but is actually a conformance
statement -- what one must do and conform to in order to meet an
interoperability goal.

Perhaps we should be saying something like "in a Technical
Specification, 2119-like language maps onto interoperability
conditions; in a Applicability Statement, the same language maps
onto conformance requirements".  Unfortunately, we often mix the
two types of specifications together in single documents, so
such a provision would add, rather than reduce, confusion.

...
But if you think that the presence of SHOULD (or MUST) means
that you *have to* implement a particular thing in a document,
you're also wrong. There are not protocol police. We don't do
conformance checks in the IETF.

But we do make conformity statements.   We make an indirect one
every time we say "if some does X, it simply puts that outside
the specification".  That doesn't translate as "won't
interoperate", in part because robustness provisions on the part
of a peer might cause it to work anyway, or because someone gets
lucky, or..., but it certainly translates as "doesn't conform".

You might have a contract with someone who requires you to
implement all MUSTs (or SHOULDs unless you provide an
explanation of why you didn't). That's up to them. But the
IETF ought not be in the business of conformance requirements.

That is actually a slightly different issue.  We don't do
conformance testing or conformance certification, and I hope we
continue to stay far away from those swamps.  But, until we
start saying, persuasively, "do not use RFCs in procurement
specifications" or "RFCs are unsuitable for procurement
specifications", we are in the conformance requirements business
whether we like it or not.  And, were we to succeed in saying
those things, we would, IMO, swiftly become irrelevant.

Maybe we do write documents now with conformance requirements.
Maybe this ship has sailed. Maybe the elephant is on board. I
hope not.

<insert: loud elephant trumpeting noise>

Clarifying "SHOULD" is a fine thing. Making it conformance
language is not. I don't like the 2119bis document in its
current form.

And, precisely because it muddles a distinction I consider to be
even more important because I find both interoperability and
conformance language in different IETF documents, I don't like
it either.

    john


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