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

David Noveck <davenoveck@gmail.com> Fri, 28 October 2016 12:29 UTC

Return-Path: <davenoveck@gmail.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 842C7129ABD for <nfsv4@ietfa.amsl.com>; Fri, 28 Oct 2016 05:29:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 WDvsmHbN3NxB for <nfsv4@ietfa.amsl.com>; Fri, 28 Oct 2016 05:29:28 -0700 (PDT)
Received: from mail-oi0-x232.google.com (mail-oi0-x232.google.com [IPv6:2607:f8b0:4003:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D431B1294F3 for <nfsv4@ietf.org>; Fri, 28 Oct 2016 05:29:27 -0700 (PDT)
Received: by mail-oi0-x232.google.com with SMTP id p136so65314063oic.1 for <nfsv4@ietf.org>; Fri, 28 Oct 2016 05:29:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=MeckUeBZSrvCtY/Wj4v6fSGBkzSKLqvP9Y2aHPTEbC0=; b=t7rAoStfa6u7oH7v7CHkVb09IGuQXsjTan9HZczDIDpiixqjhzLkrFeQlmEpUrargs m2s7c/jiNGLBzOIQl6+6LSORrrA2DPdISSQVfQgVRgnlMWkxnbohi7p+NjSp85VL4VlP apUryqIBP8aUmn7AdzveND7d+kBwkl5S2XETugI/hyVlApSokooPjA3OwQ0LAChw1D+p 2AlT4J/ET3WB+rIBDFuxo6njUoGnKqucPWEn9WWDMv/zWQaqHNuoeHmZgl3Yb+1TYceE dQPOJEMwP1CSOLLoj5cFPg+IqhE7VEIW/23Z6UhSylWfyHErQV0CHWiY46gbJXW82wu/ 76Gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=MeckUeBZSrvCtY/Wj4v6fSGBkzSKLqvP9Y2aHPTEbC0=; b=gSqHym/wzaT6Cd7CsSpxHTdxWXqFG0ZofrIu4N1x6wdV/z/7SlET64ogIzX7x6n4RI Rl1bJZhIkIeVv55saiqtDCicgsDbFO/PUiIN6LlvAXr4wnBYHhDGEr8XRHSF3XXCubsl aSjNx6M570Kq4c3kJh8gZgtE0EwnsyhbCO1vHwDtr67smh4oG8dzqiAYPRluZWeJySuJ QsRe1ghiYo4YaxWtQ7lzWXjv/6Sx1kpieIWVnCHAcDZIZBj6FCWQ6GuwHezZOcNlfKkS Po6XnXdfI41r8DWRXkn7tzZKCPKEkfb3GNHgRuRqF1Mom93DWPGYtGlDfbGGO7OA+FsD WElg==
X-Gm-Message-State: ABUngvfruxlgJI1in/mdEjifC6PoHUR5drKA3f7aDoqeCYPbKDNxHHz4/zMRwDor3/u1w1nsQ5kf2F6jSSDoKQ==
X-Received: by 10.202.77.9 with SMTP id a9mr13589079oib.180.1477657767177; Fri, 28 Oct 2016 05:29:27 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.182.29.3 with HTTP; Fri, 28 Oct 2016 05:29:26 -0700 (PDT)
In-Reply-To: <ote0a8dp8xel.fsf@jurassic.us.oracle.com>
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>
From: David Noveck <davenoveck@gmail.com>
Date: Fri, 28 Oct 2016 08:29:26 -0400
Message-ID: <CADaq8jdfjLQz2YxLAROmLK5V5-BMjuHaABeic7mKmfZDtWBn=g@mail.gmail.com>
To: Mike Kupfer <mike.kupfer@oracle.com>
Content-Type: multipart/alternative; boundary="001a11c180be4ff525053fec02f2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/_lsLg-pcHe7Oox3dXE5Zl7EG3is>
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: Fri, 28 Oct 2016 12:29:29 -0000

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.
   - 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
>