[nfsv4] Review of draft-rmacklem-nfsv4-new-attributes-00

David Noveck <davenoveck@gmail.com> Mon, 10 January 2022 10:56 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 C18A83A122A for <nfsv4@ietfa.amsl.com>; Mon, 10 Jan 2022 02:56:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.098
X-Spam-Level:
X-Spam-Status: No, score=-7.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, 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 GkXkUMiZ3V0M for <nfsv4@ietfa.amsl.com>; Mon, 10 Jan 2022 02:56:54 -0800 (PST)
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) (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 9DFF33A122C for <nfsv4@ietf.org>; Mon, 10 Jan 2022 02:56:53 -0800 (PST)
Received: by mail-ed1-x52a.google.com with SMTP id w16so51838573edc.11 for <nfsv4@ietf.org>; Mon, 10 Jan 2022 02:56:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to:cc; bh=cnvehBAfA8NpCfylrSA71pGYDmltrMlCXyXowpxqDjo=; b=D14zC2y+Z3aC9cspdHwaQk7JKevpJVMkV0vJ+ElnCg4ac/FQggDWcEovRxF5HwLD4P 8DHwVAOghfKXvQ7dqkO7JpySyRPfENNpGlYpyX+hw9Lv0nKoNOWzeUCXRId1eTZGUj6M dxMHJTom9++5spv7D8Visy3OG9lurVSmslvW06Lx3h1RQYR+50CB3F4D7zV4pTDLGUuW HpSAq6FMLLm7Ay/eBLlp6p0q0ki3Qt94bJGVBlY3wUQegcX69G44IEonG2YOVvoUGS9J zTyuxO9AbwTJpDX/JXE8i2ec9W0Cy7zeAqtlAoGImw8l0hNlzwQDc7TRJ3g5cRPz39WW 9+WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=cnvehBAfA8NpCfylrSA71pGYDmltrMlCXyXowpxqDjo=; b=Wyvn3GHReS1vGOm+m4zrVQzMEtAF+j/5U3wUs9/0nbK5bsY1j6UZ0TppTMr9xJZptb JG7aZ1aiJm3Ckd4DCDyKAyC3NKvgs/9fZxvMD61VEe9W/eXzXYsTl05iSaWF8GHj6JE5 OiBftWWeHM6cYk+9VTAjtPqEfo7uaUswju9NbYXJTiEITZay8kw7ChjR8bdEAXTg17HO 5yTwjzfyw4p62Cu73ins8diK5d4UpJnD+8FUxCfUIWuTGL979ywyU52y83NbQcvmaD6g EjYmBVjRbYhT5tj0ydmwHijbFMIVeDcMJDP2QXhrQW74oEaffJkCl1LHnYMUrQTcdGzz c9pg==
X-Gm-Message-State: AOAM5337Bkvf/VlfkREbgBU7hsxGk0+r7cU5Pjv8ZxJsl1opha1SAb3p KIZKwfLcpvMse7bKIRm06oTM/+vry6AmQaIRnnvHrRJLVQs=
X-Google-Smtp-Source: ABdhPJyQ5XCzdrBGTwYz60BiGhIQ+iQmouR2bsH9QV2x0jzSJ8KoSe0ScF5yJljqH3zpAMkbQVid7Fhkl/Zl359Ad+0=
X-Received: by 2002:a17:907:94d6:: with SMTP id dn22mr12379869ejc.541.1641812210772; Mon, 10 Jan 2022 02:56:50 -0800 (PST)
MIME-Version: 1.0
From: David Noveck <davenoveck@gmail.com>
Date: Mon, 10 Jan 2022 05:56:38 -0500
Message-ID: <CADaq8jdpdgKgw2_yTCms+=O1btEHs7QBj99wVAP_u2Wuvj9oPg@mail.gmail.com>
To: Rick Macklem <rmacklem@uoguelph.ca>
Cc: NFSv4 <nfsv4@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000009c6cab05d538316a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/N-2BN970KeafEJVi11y7X73c0dY>
Subject: [nfsv4] Review of draft-rmacklem-nfsv4-new-attributes-00
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.29
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, 10 Jan 2022 10:56:57 -0000

*General Comments*

*Overall Evaluation*
Document is in pretty good shape for a -00.   I only see minor technical
issues which should be easy to address. Nevertheless, there are important
editorial and organizational issues that the author needs to address before
requesting working group adoption.

*Organizational Issues to Address*
A major issue that makes the document harder to read than it might be is
that there are three lists of new attributes so that the reader has to
correlate things said about an attribute in one list, with related text in
another list.
A related issue with the current choice of organization concerns the
table-of-contents in which none of the attributes has an entry.  There are
a number of ways to address this issue, discussed in *Section 5.1
(Definitions of New "RECOMMENDED" Attributes)*

*Editorial issues to Address*
It seems to me that the following issues need to be addressed:

   - The absence of a "Requirements Language" section

This will be needed for a standards-track document.  It should probably be
Section 2 and will probably have to be the new form that mentions rfc 8174.


   - The repeated use of the term "RECOMMENDED" in a way that is not in
   line with RFC2119.

I realize this is in line with previous practice but that practice is
changing in rfc5661bis and flat-out contradicts the (correct) description
of these  attributes as "OPTIONAL".

*Technical Issues to Address*
Most of these are discussed in *Comments by Section*.  The only issue that
needs to be mentioned here concerns the potential for non-uniform behavior
with an fs. It is not unreasonable to assume uniform behavior but the
existing specs are insufficiently clear on this point, making it necessary
to address this for each attribute.  Sigh!

*Comments by Section*

*Abstract*
Given that these attributes are only proposed so far, suggest replacing
"are" by "would be" in the second sentence.

*Section 1 (Introduction)*
The second sentence, as written, suggests that these are the only such
attributes. I think it makes sense to rewrite it as "This document
identifies an important set of additional recommended attributes."

*Section 3 (**List of new per-file system Attributes)*
Suggest nuking this section since it doesn't have any information in
addition to that provided by the table in Section 5 below.

*Section 4 (New Attributes)*
There is no point in this one-line section.   If necessary, this fact could
be in a new paragraph of Section 5.

*Section 5 ("RECOMMENDED" New Attrbutes - List and Definitions)*
This table is harder to read than it might be because the attribute names
are too long.  Suggest:

   - Replacing "directory_cookie_montonically_increasing" by
   "dir_cookie_rising"
   - Replacing "supported_operations" by "supported_ops"
   - Replacing "maximum_extended_attribute_length" by "max_xattr_length"

Also suggest replacing "mandatory_locking" by  "mandatory_br_locks" for
clarity.

*Section 5.1 (**Definitions of New "RECOMMENDED" Attributes)*
This one-line section provides no value and should be removed.  The
included subsections 5.1.x should either be:

   - Made into sections 5.x
   - Made into top-level sections.

*Section 5.1.1 (**Attribute 83: supported_operations)*
Suggest replacing the first paragraph by the following:

This bit vector indicates which operations are supported for objects
(of the appropriate type) with an fsid matching that the specified
object.

In the second sentence of the second paragraph, suggest replacing "bit n"
by "the bit corresponding to operation n".

*Section 5.1.2 (**Attribute 84: directory_cookie_monotonically_increasing)*
Suggest replacing this by the following:

TRUE, if performing the READDIR operation on directories with a
matching fsid always returns monotonically increasing directory offset
cookies.   The includes, if named attributes are supported,
directories returned by OPENATTR.

*Section 5.1.3 (Attribute 85:  seek_granularity)*
Suggest replacing the first paragraph by the following:

This attribute indicates the granularity of unallocated regions for
data objects with an fsid matching that of the specified object.
Data objects include regular files and, when named attributes are
supported, named attributes.

*Section 5.1.4 (Attribute 86: mandatory_locking)*
Suggest replacing this by the following:

TRUE, if byte range locks obtained on data objects with an fsid matching
that of the specified object have mandatory semantics potentially affecting
IO operations done overlapping areas. Data objects include regular files
and, when named attributes are supported, named attributes.

*Section 5.1.5 (Attribute 87: **maximum_extended_attribute_length)*
Suggest replacing this by the following:

The maximum length, in bytes, of the extended attribute that can be
set by the SETXATTR operation for file system objects with an fsid
matching that of the specified object. The SETXATTR operation is
described in the [RFC8276] extension to NFSv4.2.

*Section 5.2 (**Rational for New RECOMMENDED Attributes)*
I recommend the following regarding this section and included subsections:

   - That section 5.2 be deleted
   - That the included sections 5.2.x each be merged with the corresponding
   section 5.1.x.

*Section 5.2.1 (**Attribute 83: supported_operations)*
Suggest adding the following paragraph:

This attribute is likely to be particularly helpful in dealing with
OPTIONAL attributes whose support is likely to be different for different
file systems.

*Section 5.2.4 (Attribute 86: mandatory_locking*)
I disagree with the rationale currently there.  If a  client were to get
mandatory locks on cached areas on its own, as suggested, applications
rewriting those areas would get IO errors.   This approach would require
byte-range *delegations*.
I propose something like the following:

Applications that work with advisory byte- range locks will fail with
mandatory byte-range locks and vice versa.  Given that both forms are
allowed yet incompatible, it is necessary to provide a way, other than
trial-and-error, to determine which form is supported.


*Section 7.2 (I**nformational References)*
The reference to RFC2119 should be normative and put in Section 7.1 as
should the reference to rfc8174 when that is added.