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

bfields@fieldses.org (J. Bruce Fields) Mon, 31 October 2016 02:04 UTC

Return-Path: <bfields@fieldses.org>
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 4C8581293F3 for <nfsv4@ietfa.amsl.com>; Sun, 30 Oct 2016 19:04:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.399
X-Spam-Level:
X-Spam-Status: No, score=-3.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.497, SPF_HELO_PASS=-0.001, SPF_PASS=-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 cuksussAquAZ for <nfsv4@ietfa.amsl.com>; Sun, 30 Oct 2016 19:04:36 -0700 (PDT)
Received: from fieldses.org (fieldses.org [173.255.197.46]) by ietfa.amsl.com (Postfix) with ESMTP id 868C01293D8 for <nfsv4@ietf.org>; Sun, 30 Oct 2016 19:04:36 -0700 (PDT)
Received: by fieldses.org (Postfix, from userid 2815) id CA3F38BF; Sun, 30 Oct 2016 22:04:35 -0400 (EDT)
Date: Sun, 30 Oct 2016 22:04:35 -0400
To: David Noveck <davenoveck@gmail.com>
Message-ID: <20161031020435.GC5869@fieldses.org>
References: <ote01sz4f8tk.fsf@athyra-vm1.us.oracle.com> <CADaq8jcSUO5rkf-4+njbk-O0Fv5gTedTRZnceVJRdz1T4zyH1Q@mail.gmail.com> <ote0oa2668pg.fsf@jurassic.us.oracle.com> <CADaq8jcOwbdc8O7am+tSdpa9hFDFfc5ULkM1qhOt9HPn7m-Ujw@mail.gmail.com> <ote0a8dp8xel.fsf@jurassic.us.oracle.com> <CADaq8jdfjLQz2YxLAROmLK5V5-BMjuHaABeic7mKmfZDtWBn=g@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CADaq8jdfjLQz2YxLAROmLK5V5-BMjuHaABeic7mKmfZDtWBn=g@mail.gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
From: bfields@fieldses.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/Pyy8VIc_vx4QXhS2Z0_VbZ0C6-g>
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: Mon, 31 Oct 2016 02:04:38 -0000

On Fri, Oct 28, 2016 at 08:29:26AM -0400, David Noveck wrote:
> l've looked at how bit flags are dealt with in -07 and believe that enum
> extensions can be dealt with similarly.
> They are both constructs where  the generated XDR code does not check for
> validity and thus they raise similar issues.
> 
> In reviewing the treatment, I have found  few gap in the treatment of bit
> flags.  Those need to be fixed and I expect that the handling of enum
> extensions will be parallel:
> 
>    - There is no discussion of adding bit flags in existing responses.
>    Instead, it should be made explicit that doing this would require a new
>    minor version.

So, that rules out adding attributes?  (Since you'd have to return new
bits in the supported_attribute attribute).

--b.

>    - There is no explicit discussion of the fact that, for these additions,
>    the interest cannot be distinguish between an unknown bit flag and one
>    which is known but unsupported.  This can have implication for how the
>    client and server decide on a common XDR variant.  I'd hope that this issue
>    can treated in a way that allows a future minor version to better address
>    the issue by  reorganizing error codes.  My preference would be for
>    preservng NFS4ERR_INVAL as indicating an unknown bit/enum, while allowing
>    future versions to address unsupported stuff in a way analogous that Tom
>    did for switches in v4.2, i.e. by creating NFS4ERR_FLAGBIT_NOTSUPP and
>    NFS4ERR_ENUMVAL_NOTSUPP.
> 
> 
> On Thu, Oct 27, 2016 at 2:22 PM, Mike Kupfer <mike.kupfer@oracle.com> wrote:
> 
> > David Noveck <davenoveck@gmail.com> writes:
> >
> > > Regarding extending enums, it is true that -07 seems to allow this
> > without
> > > saying how to mange it in general.  It  only discusses expanding switches
> > > and provides specific rules regarding error codes, operation codes, and
> > > attribute numbers.
> > >
> > > The real problem with allowing general enum extensions is that XDR
> > > implementations do not check that the values in the fields are valid.
> > As a
> > > result, you cannot test that the responder knows about the new values by
> > > issuing a request containing the new value, as you can with extensions to
> > > switches.
> >
> > Well, there won't be a check at the RPC layer.  But presumably the NFS
> > layer would return something like NFS4ERR_INVAL if it's given a value it
> > doesn't know about.
> >
> > > As a result, enum fields are essentially ints, and the restriction to the
> > > values listed in the XDR file is much like an in-spec-text restriction
> > > regarding the contents of that particular field. I think the spec should
> > > make clear it that changing the set of allowed values requires a new
> > minor
> > > version.
> >
> > I'm okay with narrowing the scope of what an extension can do.  But if
> > we require a minor version bump to change the set of allowed values for
> > an enum, we should do the same for the general case of flag words.  (New
> > attributes could still be added via an extension.)
> >
> > mike
> >

> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4