[nfsv4] WGLC Review of draft-Ietf-nfsv4-xattrs-03 (part two of two)
David Noveck <davenoveck@gmail.com> Fri, 25 November 2016 20:26 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 8D3A212959D for <nfsv4@ietfa.amsl.com>; Fri, 25 Nov 2016 12:26:29 -0800 (PST)
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 h7An7Abadv2T for <nfsv4@ietfa.amsl.com>; Fri, 25 Nov 2016 12:26:27 -0800 (PST)
Received: from mail-oi0-x231.google.com (mail-oi0-x231.google.com [IPv6:2607:f8b0:4003:c06::231]) (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 B184D129408 for <nfsv4@ietf.org>; Fri, 25 Nov 2016 12:26:26 -0800 (PST)
Received: by mail-oi0-x231.google.com with SMTP id v84so91548926oie.3 for <nfsv4@ietf.org>; Fri, 25 Nov 2016 12:26:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc; bh=+4arpXBTZiR0QpCXsKAn41fOSRncsLazVi522RqqrOc=; b=z/pX6mgntW8JZKEEIkRDzNmtO771aiiC46V+mTsHKq6PzBYqvJhtKIlcyT9aPI/Ci+ 8NP7zk1hxD1kgcl2c4gEe9TM6G/G1OFmX84to0mIsir1+KIqmARbV9adhZzJSCNgBT9R /zWcPHhAOoohJggeKjJpAQ3ScnivD5DpCfTuJ4YbxJyvfaJUg6p2LWdX7f/v/FoenE/C q2HZFVcZMY9s6xhBb6I9uSln4NLzUAKY+vqQ9uzufJBDaPEjqqTgLG1nA4HGe9AHE4Jh 9FlgJJ3JoPssYQF7Vp3HMCvkbprGsFHqxZgiHxLqIRQ4J2S+QUmGnW0n29yksUoN27Fc Az1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=+4arpXBTZiR0QpCXsKAn41fOSRncsLazVi522RqqrOc=; b=LlA9pgQAinssHtfLDQIvXhuozZ0tKAQREq2nEO/tIuFrfID8XmOUj2A/bzC/IU0AnS l8V29RGEO7l7SsyDvnnJRzdHIuR84SmItuornbCRhxPm8GTHxkaP0J3mJu52AoB7uMIr 4kBhXzzIcisJdmzS9+urXTgfH8v3YxI7gV2TxjwI47iy4AdltBrG9iqjBjqgBl6h7/m8 rMdf+AGreZ6GVLHvLK2mQMIxWwQGdAq+fQY45mdlAqLFxF7AdrMq2kEkwD9JevVupHik PHk8F/VE3PDLHH61rlk+6JcJ2X4TYhqMpIMUsYFJcJeby1Q4yR16lqcdeWZHQkezyRAT PZzQ==
X-Gm-Message-State: AKaTC00VC2zFqclT2nlPcXFJWH9Lo8ajFZvsHLqQugnJa4+itiRqada+/RqbNxGaMFguwQFbnAZAZAzOkHD8Lw==
X-Received: by 10.157.11.14 with SMTP id a14mr6150194ota.185.1480105585976; Fri, 25 Nov 2016 12:26:25 -0800 (PST)
MIME-Version: 1.0
Received: by 10.182.168.4 with HTTP; Fri, 25 Nov 2016 12:26:25 -0800 (PST)
From: David Noveck <davenoveck@gmail.com>
Date: Fri, 25 Nov 2016 15:26:25 -0500
Message-ID: <CADaq8jfnqzD5ShjW=fj6DhHVNZO-Frz0bRMLLeQD+8F=0AP_HA@mail.gmail.com>
To: Marc Eshel <eshel@us.ibm.com>, manoj.naik@nutanix.com
Content-Type: multipart/alternative; boundary="001a113db650aea9ce054225ef47"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/ORnWG3cTABkvzv7wGcp2izXBd0U>
Cc: "nfsv4@ietf.org" <nfsv4@ietf.org>
Subject: [nfsv4] WGLC Review of draft-Ietf-nfsv4-xattrs-03 (part two of two)
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, 25 Nov 2016 20:26:30 -0000
*Review Structure* This review is presented in multiple parts to get around size limits for emails on the working group list. This is the second part and covers from Section 5 to the end of the document. General comments and comments on the first part of the document appear in the first review section. *Comments by Section (from section 5)* *5. Relationship with Named Attributes* Suggest replacing the last sentence of the first paragraph by the following: Although this makes xattrs similar in concept and use to named attributes, there are important semantic differences. Suggest replacing the third paragraph by the following: Individual named attributes are analogous to files and are opened and closed just as files are. Caching of the data for these needs to be handled just as data caching is for ordinary files following close-to-open semantics. Xattrs, on the other hand, have caching requirements similar to those for other file attributes. Suggest replacing the first sentence of the fourth paragraph by the following: Named attributes and xattrs have different semantics and are treated by applications as belonging to disjoint namespaces. In the second sentence of the fourth paragraph, suggest replacing "one to another is" by "from one to the other would be". In the first sentence of the fifth paragraph, suggest: - Replacing "should" by "might". - Replacing "carving" by "by carving" - Replacing "this is problematic" by "such an approach is sufficiently problematic that it will not be attempted here". *7. Protocol Extensions* There is a problem with the second bulleted item as it stands. The issue is that a server would send previously ACEs with previously undefined acemask4 bits to clients who may not have given any indication that they understand them. Extensions like that fit within the XDR extension paradigm and are allowable in a new minor version, there are problems putting them in a standalone extension. There has recently been some discussion of issues related to extension in reply messages on the list in connection with the review of versioning-07. There will e a more complete discussion of this subject in versioning-08 which will be out in early December. Some very simple ways of addressing this issue would be: - Dropping the acemask4 extensions in the near-term and derive permissions for xattrs from those relating to ordinary attributes. - Make this part of a very small minor version, including just this feature (plus later extensions). Some other possible approaches are discussed in *Acemask4 Extensions* (in the previous review section). If you choose the first approach suggest the following replacement for the last paragraph: These changes follow applicable guidelines for valid NFSv4 XDR protocol extensions, as specified in [NFSv4-vers], and obey the rules for extensions capable of being made without a change in minor version number. On the other hand, if you decide on a new minor version, suggest the following replacement: These changes follow applicable guidelines for valid NFSv4 XDR protocol extension, as specified in [NFSv4-vers], and also obey the rules for valid minor version creation as described in [RFC5661]. Most of the alternatives described in *Acemask4 Extensions* would fit better with the first alternative. YMMV. *7.3. New Error Definitions* It isn't clear what errors will be returned if the collective limit on xattr size is exceeded, as opposed to the limit on a single xattr. *7.4 Added Operations* I suggest deleting the first three paragraphs. In the first sentence of the last paragraph, suggest adding, "In order to meet these requirements," at the start. Suggest adding the following new paragraph at the end: Because some server may not be aware of the existence of these operations, a client cannot always expect that issuing one of them will either succeed or return NFS4ERR_NOTSUPP. In some cases NFS4ERR_OP_ILLEGAL will be returned or the request may encounter an XDR decode error on the server. As a result, clients should only issue these operations after determining that support is present. *7.4.1.3. DESCRIPTION **[GETXATTR]* In the second sentence of the second paragraph, suggest adding "or another error indicating the request was not understood" at the end of the sentence. *7.4.2.1. ARGUMENTS [SETXATTR]* Suggest replacing SETXATTR4_NONE by SETXATTR4_EITHER, since I think this would be clearer. *7.4.2.3. DESCRIPTION **[SETXATTR]* I'm concreted about the "SHOULD NOT" in the second sentence of the second paragraph. In particular, it isn't clear what the interoperability consequences of violating the "SHOULD NOT" might be. A possible replacement might be: However, it is not NECESSARY to change these attributes if there has been no actual change in the xattr value. Avoiding attribute change in such situation is desirable as it avoids unnecessary cache invalidation. *7.4.4.3. DESCRIPTION [REMOVEXATTR]* I think the "SHOULD" in he second paragraph needs to be rethought, since: - There is no clear reason stated why this is not a "MUST". - According to RFC2119, a "SHOULD" differs from MUST in that you can violate a "SHOULD" if you are aware of the consequences but there is no discussion to make clear what those consequences might be. *7.4.5. Valid Errors* Suggest adding "and Section 11.2 of [RFC7862]" to the end of the last sentence of the first paragraph. *7.5. Modifications to Existing Operations* In the following, I will number paragraphs including all paragraphs, whether bulleted, indented or not, or hanging. Based on the discussion in *7. Protocol Extensions* and *Acemask4 Extensions*, you might want to delete the eighth through eleventh paragraphs. On the other hand, if you retain these, you need to change "two" to "three" in the eighth paragraph. In the thirteenth through fifteenth paragraphs, suggest replacing "SHOULD" by "should". You might want to simply delete the sixteenth through twentieth paragraphs. However if you don't, you need to address the following issues in the sixteenth through eighteenth paragraphs: - It is incler what "check for it in the mode" means since these bits don't appear in the mode. - It is not clear what "MUST only" means. - The most obvious meaning of "MUST only" is that the server may not make this check in any other circumstances but that would be wrong since the server *has to *check for permissions when doing SETXATTR, GETXATTR, LISTXATTR, REMOVEXATTR. *7.7. Caching* In the second sentence of the second paragraph, suggest replacing "depend" by "be based". Suggest the following replacement for the first sentence of the sixth paragraph: An effective way to enable the client to make this determination simply is for the client to serialize all xattr changes made to a specific file. *10. References* Because some of the references may have to shift between normative and informative, I'm listing all those that need to be updated here. In particular: - [NFSv42] needs to be updated to [RFC7862]. - [NFSv42-dot-x] needs to be updated to [RFC7863]. - [NFSv4-vers] need to be updated to reference a current draft. Presumably this will be draft-ietf-nfsv4-versioning-08. *10.1. Normative References* The following issues need to be addressed: - It is unclear why RFC5662 is referenced normatively since it is a subset of RFC7863. Not clear if it needs to be be referenced informatively in this dodument. o - I believe RFCs 7862 and 7863 should be referenced normatively. - The reference to NFSv4-ver only makes sense if it is made normative.
- [nfsv4] WGLC Review of draft-Ietf-nfsv4-xattrs-03… David Noveck