[nfsv4] feedback on draft-ietf-nfsv4-versioning-07

Mike Kupfer <mike.kupfer@oracle.com> Tue, 25 October 2016 20:54 UTC

Return-Path: <mike.kupfer@oracle.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2E07C129614 for <nfsv4@ietfa.amsl.com>; Tue, 25 Oct 2016 13:54:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.132
X-Spam-Level:
X-Spam-Status: No, score=-4.132 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_SORBS_SPAM=0.5, RP_MATCHES_RCVD=-0.431, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
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 PWSz8XceQFEY for <nfsv4@ietfa.amsl.com>; Tue, 25 Oct 2016 13:54:50 -0700 (PDT)
Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2E38A129522 for <nfsv4@ietf.org>; Tue, 25 Oct 2016 13:54:48 -0700 (PDT)
Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u9PKslTF005614 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <nfsv4@ietf.org>; Tue, 25 Oct 2016 20:54:48 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id u9PKslKU007195 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <nfsv4@ietf.org>; Tue, 25 Oct 2016 20:54:47 GMT
Received: from abhmp0015.oracle.com (abhmp0015.oracle.com [141.146.116.21]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u9PKsj6b016591 for <nfsv4@ietf.org>; Tue, 25 Oct 2016 20:54:46 GMT
Received: from athyra-vm1.us.oracle.com (/10.132.144.25) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 25 Oct 2016 13:54:45 -0700
From: Mike Kupfer <mike.kupfer@oracle.com>
To: nfsv4@ietf.org
Date: Tue, 25 Oct 2016 13:54:47 -0700
Message-ID: <ote01sz4f8tk.fsf@athyra-vm1.us.oracle.com>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain
X-Source-IP: userv0021.oracle.com [156.151.31.71]
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/i1rK0iIKECtQIn_EeKUmLWenlE0>
Subject: [nfsv4] feedback on draft-ietf-nfsv4-versioning-07
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Oct 2016 20:54:52 -0000

Potential technical issues:

* Section 5.1, first bullet item: this bullet item seems to imply that
  any string-related changes must be done in a minor version, rather
  than an extension.  That's fine for the broad rules (e.g., i18n) that
  this bullet item seems to have in mind, but I think we should be able
  to extend a list of known literal strings in an extension.  We don't
  typically bake literal strings into the NFS specification, but we do
  use them occasionally (e.g., "nobody", as well as the special ACE
  identifiers like "OWNER@").

  (Sorry about just getting this out now--I missed it in previous
  reviews of my notes.)

* Section 9.2: after thinking about this some more, I'm still unsure on
  how things will work if the client implements only the uncorrected
  version and the server implements only the corrected version.  The
  client asks if the server supports minor version X and the server says
  yes.  At this point the client could ask about a correction to feature
  FOO, but it doesn't know about any such correction.  Since the client
  doesn't ask, the server might then be able to deduce that the client
  only supports the uncorrected version, but now it's too late--the
  server has already said it supports minor version X.  The first time
  the client will find out about the incompatibility is when it tries to
  use the uncorrected version of the feature and gets an error back from
  the server.

  It seems like the server must support both the uncorrected and
  corrected versions of the feature.  It can only drop support for the
  uncorrected version with the next minor version.

Minor editorial stuff:

* Section 1, penultimate paragraph: the current wording seems to imply
  that the XDR extensions approach will be able to handle all protocol
  corrections.  I would change "to make other sorts of changes" to "when
  needed".

* Section 1, last paragraph: change "is provide" to "is to provide"

* Page 5, last bullet item: change "subsequently" to "up to that time"

* Page 6, lines 4-5: change "it is the set is" to "it is"

* Page 6, last paragraph of Section 2.3: the last sentence of that
  paragraph bothers me, as it just echoes the first sentence of the
  previous paragraph.  Maybe replace the first sentence of the previous
  paragraph with 

    Each client and server which implements a specific minor version
    will implement some particular variant of that minor version.  Each
    variant is a subset of the current minor version and a superset of
    the base minor version.

  and drop the last paragraph completely?

* Page 7, third bullet item, sentence starting with "In particular": add
  a comma after "all previously specified minor versions".

* Page 9, second bullet item: change "operation codes" to "procedures".

* Page 9, third bullet item: change "RPC operations" to "RPC procedures,
  operation codes".

* Section 4.3, penultimate paragraph: remove the comma after "protocol
  elements".

* Page 11, second bullet item: change "subsequent minor version" to
  "subsequent minor versions" (add "s")

* Page 11, paragraph starting with "For many minor versions": change the
  first sentence to

    For many minor versions, all existing protocol elements are required
    to be known by both the client and the server, and so requesters do
    not have to test for the presence or absence of knowledge regarding
    optional protocol elements.

* Page 13, bullet item at the top of the page, sentence starting with
  "The client can determine which of the extensions": change to

    The client can use the approach described in Section 4.4.3 to
    determine which of the extensions it knows about are also known by
    the server.

* Section 4.5, first paragraph: change "fields." to "fields that are"

* Section 5, first paragraph: add a period at the end of the paragraph.

* Page 16, last bullet item: change "indicated non-support a flag bit"
  to "indicating non-support of a flag bit".

* Page 17, last paragraph: "OPTONAL" -> "OPTIONAL"

* Section 9, first paragraph: add a comma after "acceptance of that feature"

* Section 9, 2nd paragraph, first sentence: 

    Such corrections are best done in a document obsoleting or updating
    the RFC defining the relevant feature definition document or minor
    version specification.

  I think there are too many words here.  We could refer to "the RFC
  defining the relevant feature or minor version".  Or we could refer to
  the "relevant feature definition document or minor version
  specification".

* Section 9.1, 2nd bullet item: change "appropriate" to "appropriate way"

* Page 20, 2nd bullet item: change "feature, be considered obsolescent"
  to "feature be considered obsolescent"

* Page 20, paragraph starting with "By doing things this way": I would
  drop the bullet list that follows this paragraph and replace the
  paragraph with

    By doing things this way, a requester can determine whether the
    other host supports a particular version of the feature.  As a
    result, the protocol with the XDR modification can accommodate
    clients and servers that support either the corrected or the
    uncorrected version of the protocol, as well as clients and servers
    that support both alternatives.

* Section 9.2 title: should "required" be all uppercase?

Okay, that's everything I have flagged in my notes.

mike