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

Mike Kupfer <mike.kupfer@oracle.com> Wed, 26 October 2016 22:34 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 20B801295E8 for <nfsv4@ietfa.amsl.com>; Wed, 26 Oct 2016 15:34:32 -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 u4O0IbhnvKAS for <nfsv4@ietfa.amsl.com>; Wed, 26 Oct 2016 15:34:30 -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 DF39C129543 for <nfsv4@ietf.org>; Wed, 26 Oct 2016 15:34:29 -0700 (PDT)
Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u9QMYRO9028095 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 26 Oct 2016 22:34:27 GMT
Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserv0022.oracle.com (8.14.4/8.13.8) with ESMTP id u9QMYQ5h016393 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 26 Oct 2016 22:34:27 GMT
Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id u9QMYQ7S026659; Wed, 26 Oct 2016 22:34:26 GMT
Received: from jurassic.us.oracle.com (/10.134.8.79) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 26 Oct 2016 15:34:25 -0700
From: Mike Kupfer <mike.kupfer@oracle.com>
To: David Noveck <davenoveck@gmail.com>
References: <ote01sz4f8tk.fsf@athyra-vm1.us.oracle.com> <CADaq8jcSUO5rkf-4+njbk-O0Fv5gTedTRZnceVJRdz1T4zyH1Q@mail.gmail.com>
Date: Wed, 26 Oct 2016 15:34:19 -0700
In-Reply-To: <CADaq8jcSUO5rkf-4+njbk-O0Fv5gTedTRZnceVJRdz1T4zyH1Q@mail.gmail.com> (David Noveck's message of "Wed, 26 Oct 2016 09:10:47 -0400")
Message-ID: <ote0oa2668pg.fsf@jurassic.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: aserv0022.oracle.com [141.146.126.234]
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/OZA58gjpOWJc69QFLcnt4tmDCfs>
Cc: "nfsv4@ietf.org" <nfsv4@ietf.org>
Subject: Re: [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: Wed, 26 Oct 2016 22:34:32 -0000

David Noveck <davenoveck@gmail.com> writes:

>> but I think we should be able to extend a list of known literal
>> strings in an extension.
[...]
> If you are going to allow those that do or do not support a extension with
> regard to the strings accepted, you have to provide analogous means to find
> out what is supported.

Hmm.  I was thinking that adding a new string would be similar to adding
a new value to an enum.  But I now see that although Section 4.2 says
that an extension can add values to enums, the document doesn't say how
that would be managed.

> I fear that changing the document at this point to
> provide for that would be difficult to do, especially in a case where
> strings are added to attribute values.  In that case you need to know
> whether the client will accept them on GETATTR as well as whether the
> server will accept them on SETATTR.
>
> If you want to have variant/extended handling of the set of strings, you
> could define a new attribute that allowed the new strings together with
> retaining  an older one that accepted only the old strings.  I think this
> would give you what you need, leaving the extension framework as it is.

Yes, the server would need to know that the client supports a particular
extension before returning values that are defined by that extension.

Adding a new attribute or operation that knows about the extended type
sounds reasonable to me.  That approach could be used for both new
strings and new values in an enum.

So it sounds like this is just an editorial issue, to clarify how new
enum values or string literals could be added by an extension.

Here's a suggestion for text to add at the end of Section 4.2:

  If an enum may be contained in an RPC response, an extension that adds
  one or more new values to the enum must additionally provide a way for
  the responder to determine that the requester knows about the
  extension.  For example, an extension that defines a new file type
  could define new operations to use instead of GETATTR and SETATTR.
  The GETATTR and SETATTR operations would continue to support just the
  original set of file types.  The new operations would support the
  original file types as well as the new one.

I'd still like to see the ability to extend a list of well-known strings
without changing the minor version.  I think that adding the following
text to the first bullet item in Section 5.1 would cover it:

  In some cases, an extension may add new string literals to a set of
  well-known strings, similar to the way that new values may be added to
  an enum.  Consideration must be given to whether the string might
  already be in use.  And as with enums, there are additional
  requirements if the string could be included in an RPC response (see
  Section 4.2 for details).

>> At this point the client could ask about a correction to feature
>> FOO, but it doesn't know about any such correction.
>
> Good point.  The difference from the rest of the extension model is that
> the old client, having been written before the correction was identified,
> has no knowledge of the potential non-support and thus cannot test for it
> in advance.
>
>>It seems like the server must support both the uncorrected and
>> corrected versions of the feature.
>
> Lets call the version subject to correction 4.x.
>
> 4.x requires the uncorrected version and and cannot require the corrected
> version.

Right.  I meant that *if* the server supports the corrected version, it
must still support the uncorrected version.

> The working group would have a number of options in 4.x+1:
>
> Making the corrected version REQUIRED and the uncorrected version mandatory
> to not implement.  This would force older clients to use and servers to
> support the corrected version. befire adopting 4.x+1
>
> Making the corrected version REQUIRED and the uncorrected version OPTIONAL
>  This would force server to support the corrected version but 4.x clients
> could have a reprieve and could simply send the 4.x request as 4.x+1, with
> no guarantee of support.  However, it would test for support of the
> uncorrected version as an OPTIONAL feature.

And if the uncorrected version is not supported, the client would fall
back to 4.x.

> Making both the corrected and uncorrected version OPTIONAL with the
> constraint that at least one has to be supported.  This would allow both
> uncorrected clients and servers to be easily converted to 4.x+1,  However,
> there would be no guarantee of interoperability for servers or clents only
> prepared to deal with the corrected or corrected variant.

Yeah.  So I think we'd want to discourage that last choice.

> With regard to WGLC, we have two options:
[...]
I have no opinion on WGLC for any of the I-Ds.  But then I'm not into
country music[1]. :-)

cheers,
mike

[1] http://www.wglc.net