Re: Last Call: <draft-housley-implementer-obligations-01.txt> (Expectations of Implementers of IETF Protocols) to Informational RFC

John C Klensin <john-ietf@jck.com> Mon, 12 May 2014 13:20 UTC

Return-Path: <john-ietf@jck.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2C34D1A0699 for <ietf@ietfa.amsl.com>; Mon, 12 May 2014 06:20:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.251
X-Spam-Level:
X-Spam-Status: No, score=-3.251 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.651] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9gRrsU51Fye4 for <ietf@ietfa.amsl.com>; Mon, 12 May 2014 06:20:16 -0700 (PDT)
Received: from bsa2.jck.com (ns.jck.com [70.88.254.51]) by ietfa.amsl.com (Postfix) with ESMTP id 4A1DB1A0697 for <ietf@ietf.org>; Mon, 12 May 2014 06:20:16 -0700 (PDT)
Received: from [198.252.137.115] (helo=JcK-HP8200.jck.com) by bsa2.jck.com with esmtp (Exim 4.82 (FreeBSD)) (envelope-from <john-ietf@jck.com>) id 1Wjq9H-000FPE-Uh; Mon, 12 May 2014 09:20:07 -0400
Date: Mon, 12 May 2014 09:20:02 -0400
From: John C Klensin <john-ietf@jck.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>, Nikos Mavrogiannopoulos <nmav@gnutls.org>
Subject: Re: Last Call: <draft-housley-implementer-obligations-01.txt> (Expectations of Implementers of IETF Protocols) to Informational RFC
Message-ID: <CA176FB98F025F6C39495108@JcK-HP8200.jck.com>
In-Reply-To: <536FDC3F.6000703@gmail.com>
References: <20140509191841.18372.97889.idtracker@ietfa.amsl.com> <06a301cf6c7e$770e51e0$652af5a0$@olddog.co.uk> <536E8CB1.7060802@gmail.com> <1399838117.17297.12.camel@nomad.lan> <536FDC3F.6000703@gmail.com>
X-Mailer: Mulberry/4.0.8 (Win32)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-SA-Exim-Connect-IP: 198.252.137.115
X-SA-Exim-Mail-From: john-ietf@jck.com
X-SA-Exim-Scanned: No (on bsa2.jck.com); SAEximRunCond expanded to false
Archived-At: http://mailarchive.ietf.org/arch/msg/ietf/a5iqLgRWOAuhoxnXli0ObVM6rzM
Cc: ietf@ietf.org
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 May 2014 13:20:19 -0000


--On Monday, May 12, 2014 08:23 +1200 Brian E Carpenter
<brian.e.carpenter@gmail.com> wrote:

>...
>> This document doesn't fill this purpose as it is written as a
>> what-to-do document rather than a document with advice to
>> implementers. If somebody has specific expectations from
>> implementers then that should be reflected in a contract with
>> them.
> 
> That's a straw man. You know very well that (precisely because
> IETF standards are voluntary) there will never be such a
> contract between the IETF and the implementer.

But that is exactly the point, I think.  This document reads
like an attempt to make one because it leads immediately to "you
implemented that IETF spec, therefore you are/were obligated
to..." statements and arguments.

Also, let's be clear about "voluntary".  I hope we never
contemplate this, but suppose the IETF were to break its
protocol specifications into two parts, the requirements
statement, context, and overview and the actual protocol
specification.  And suppose we created a mechanism by which,
while the former was public, freely available, etc., getting to
the latter required a click-through license asking for agreement
to these sorts of expectations.  I'll leave it to the lawyers
(actual and amateur) to figure out something like that might
work and be enforceable, but it would be no worse than a lot of
commercial software licenses, arguably including the GPL.   The
standard would still be "voluntary" in the sense that no one was
required to implement it.  And _that_ is the sense in which
"voluntary standard" has been used, consistently, since I first
started doing standards work in the early 1970s.

Let me rephrase Nikos's comment (probably in a way he didn't
intend).  "If a particular protocol spec has or requires
specific expectations from implementers then those should be
reflected in conformance statements". [1]


>> If on the other hand this is written in purpose to introduce
>> IETF-certified or IETF-approved implementations it must be
>> even more precise than this document. As it is, it doesn't
>> fill any obvious purpose.
> 
> The document is aspirational, not contractual. It seems
> perfectly reasonable to ask implementers (whether a
> profit-making company, an open-source community, or an
> individual) to accept ongoing responsibility for their code.

And yet...

We know that many of the people who find an RFC, e.g., by a web
search looking for specifications in a particular area or by a
reference from elsewhere are extremely unlikely to browse the
RFC collection looking for a document about "Expectations of
implementers...".  The people who are active in the IETF
probably don't need this document.  If they do, and its content
is really necessary, it probably belongs in the Tao, as others
have suggested.

As it is and for an external audience, it is likely to be mostly
useful for whining, e.g., in conversations like:

(i) IETF: You and your implementation didn't live up to our
expectations.
    Implementer: What expectations?
    IETF: Read RFC 9999.
    Implementer: How was I expected to find that?

(ii) IETF: You and your implementation didn't live up to our
expectations.
    Implementer: So?

And perhaps worse (if the document is actually spotted):

(iii) IETF: Why did you create a completely new protocol for
that purpose rather than following our fine, high-quality,
consensus standard?
    Implementer: We, and our lawyers, looked through your
"expectations", decided they constituted an attempt at a
shrink-wrap style license that encumbered the IETF spec and that
we were therefore better going our own route.

Note that the third hurts interoperability.

>...

A few additional observations if it is determined to publish
this anyway (which, as is probably obvious, I do not favor).
Note that several of these overlap with Adrian's comments, with
which I generally agree:

(1) The draft (-02) tells readers that they are expected to
conform to the BCPs but that they may need "to look through the
BCP index to find related
BCPs".   That makes another expectation of implementers that
they be able to perform a treasure hunt for materials we just
admitted require some deduction to find. using tools the
document specifies only by hand waving, and get it right.  Seems
unlikely to me.

(2) This is mostly a nit, but, while appealing to RFC 760 as an
authority is arguably non-normative because the text is quoted,
it is a bad choice of reference for several reasons including:
760 has been obsoleted by other documents, it has a status of
"unknown", and a present-day reference to a document whose title
describes it as a "DoD Standard" may not be wise in the
present-day political climate of which the author, as IAB Chair,
is only too aware.  FWIW, the rule is repeated, although stated
differently, in Section 1.2.2 of RFC 1122 and RFC 1123, both of
which are full Standard Applicability Statements without any of
those three issues.  As SM points out, the discussion in RFC
1122/1123, a discussion that is not present in 760, is very
important and should be identified.   In addition to the article
he indirectly cites, the IETF has had very significant
experience with sender-implementers claiming that they can do
astonishingly non-conforming (and stupid) things on the grounds
that the receiver is obligated to be robust and liberal in
acceptance.

(3) It is very likely that, with 1122/1123 as premier examples
for the technical specifications they interpret, the document
should call out relevant Applicability Statements as well as
BCPs. Indeed, paralleling discussions that I gather have been
going on in the IESG, unless BCPs really represent established
Best Practices for technical specs rather than BCP-author
instincts or preferences, this document should be citing those
Applicability Statements as exist in preference to BCPs.

(4) I note that several reference implementations that have been
very important to the development of the Internet and/or the
specific protocols involved would not have conformed to this set
of "expectations".   I note that several of them were funded by
various agencies specifically as one-shot (or one shot plus a
very restricted period for iterations) deals.  If the IETF's
stated expectation were really that people should not implement
unless they are committed to maintain, we would be discouraging
such implementations and the support for them.  Similar
observations could be made about a lot of other implementations
created in research settings: few, if any, research managers
would be willing to commit to something that carried obligations
for long-term maintenance.   That would, IMO, be a really nasty
side-effect of publishing a document like this.

I'll make some constructive suggestions about how to solve the
presumed problem to which this is addressed in a separate note.

best,
   john


[1] If the language of RFC 2119 prevents writing such
conformance statements then, IMO, 2119 needs to be fixed.