[nfsv4] Re: Artart last call review of draft-ietf-nfsv4-layoutwcc-04
Thomas Haynes <loghyr@gmail.com> Wed, 20 November 2024 18:49 UTC
Return-Path: <loghyr@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 B9DE6C1CAE8A; Wed, 20 Nov 2024 10:49:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.103
X-Spam-Level:
X-Spam-Status: No, score=-2.103 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_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id s1M7Agn0e1_c; Wed, 20 Nov 2024 10:49:23 -0800 (PST)
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8954DC157915; Wed, 20 Nov 2024 10:49:18 -0800 (PST)
Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-720aa3dbda5so89469b3a.1; Wed, 20 Nov 2024 10:49:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732128558; x=1732733358; darn=ietf.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=Bcw8D1P2h8TPMK8JgmhL0PiInsq1v6VAYDJxwENFO9I=; b=jDFX+CchKKJjxfsBT2Ol9ZZ7WxlLbQh2+MXiitdXUERGpKOlVPfJaVBIpbx4c4bNE5 AYO7hhCORvA6XxXtop3ePEDfx9/3nXevVCKXKUf/bmcymzj1oYjZMlU+u3ggt1U6jaRC pXongwpA6y1ImW6h6fX7lSGgmtBNnyVGa+dz4Ij+ag0fad0eo6E8Oa7bfE8+t14Zaw9z FsnrVICchr20O0CLY23WpiXJDnVd9eWfLg0lPFKKyrPIgDFojTAVudqXBBPUpxCNZQWx rTfEkT74wjVEvsMFF73Qm+4IFC1kRv5GcVwEXw6HoKUt0EBwA/O0SzFvWAnKck137EdE tlDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732128558; x=1732733358; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Bcw8D1P2h8TPMK8JgmhL0PiInsq1v6VAYDJxwENFO9I=; b=gHAPNlrXncm6kOupOYgTaNltdd8TmJdZdyKXlkbXH5nLl8QJIdIMA0i/kkm/8aIZHh HjfyfVgfuMbD28hVbsxGMlnFWGDKRZhoh3+WyxELs61iU52mrUszkQ7kNXSy32Zvmr3Z uqFKwgD13bc5TI8Yx5tfl6N+gfjaFW5fPbOkOMjdJP8Mbrvv0TdpMavqmP5gZYv/A9E0 lfmKPnctbbTMNTxEoYSJ7oV93fJAqe7oelAqnWvhBpgh8icbKEoZ8TvltGBGJuResUZt YO3JL3bdljsKENlJpMvKg4SkxRcApdxd49Kpnp4a199e5QfWxfcOKtR0yIWqQWCi2uM8 tFcQ==
X-Forwarded-Encrypted: i=1; AJvYcCVXwGe7E3YDAIgOL8masHwHashSxzu2O+zotmtYgIpI3iJUEkFxn2lfjVodc3amchyNFo2TuBOSDeta@ietf.org, AJvYcCVli1r4ZSEcwB/IxpVQGNDtpjM+912RREBSKFFDGNqcyYzpYe6IgA9DPLXTdiWugfnYR5pnrNQ=@ietf.org, AJvYcCVu7MchniFMRwKPfZGKgf/CCJhINPWOnc5VpIcDqWy16nTWVdQTWOjyqdntf0iCZsfKjRGoHffz5bBOct3OzRYIWV5FQRt8x8iP0z+/upE=@ietf.org
X-Gm-Message-State: AOJu0Yxl60Vkq4T9auHHNpefAiCBFRGaBm8UcUBiNXIvZKefyjGC6PiU sRTkrbpxtEQLKNFvBuS6PoSzMx3s2iYjGu/oOs1k3oHXhBQ1T6P2hvRr8bfC
X-Google-Smtp-Source: AGHT+IGwM+kGePj3iDs+iwi2fTNyCpYaJ0qOmi+JlsjjJ2jRQ+YL0qpyYnvJq587XIGMRVkCbXhjqQ==
X-Received: by 2002:a05:6a00:4fd0:b0:71e:41b3:a56b with SMTP id d2e1a72fcca58-724bed5a65fmr5345330b3a.24.1732128557501; Wed, 20 Nov 2024 10:49:17 -0800 (PST)
Received: from smtpclient.apple ([2601:647:5b00:bf9:89ee:8be6:8c5f:9c00]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-724bef8d9c6sm1981364b3a.115.2024.11.20.10.49.16 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Nov 2024 10:49:17 -0800 (PST)
From: Thomas Haynes <loghyr@gmail.com>
Message-Id: <1DAF88AD-B8DB-4881-BA0C-92D960EF7420@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_736F2665-5612-4D0A-8B76-D3200F415A8D"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.200.121\))
Date: Wed, 20 Nov 2024 10:49:05 -0800
In-Reply-To: <173200468806.467793.10095469586238257761@dt-datatracker-5f77bcf4bd-r6ljv>
To: Carsten Bormann <cabo@tzi.org>
References: <173200468806.467793.10095469586238257761@dt-datatracker-5f77bcf4bd-r6ljv>
X-Mailer: Apple Mail (2.3826.200.121)
Message-ID-Hash: 5GLQQOFJZ3NT3NIZ2VUKZKLCZ7R5QWNR
X-Message-ID-Hash: 5GLQQOFJZ3NT3NIZ2VUKZKLCZ7R5QWNR
X-MailFrom: loghyr@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-nfsv4.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: art@ietf.org, draft-ietf-nfsv4-layoutwcc.all@ietf.org, last-call@ietf.org, nfsv4@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [nfsv4] Re: Artart last call review of draft-ietf-nfsv4-layoutwcc-04
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/TEHR321gUPGfqMq0R0SDMrMGwXg>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Owner: <mailto:nfsv4-owner@ietf.org>
List-Post: <mailto:nfsv4@ietf.org>
List-Subscribe: <mailto:nfsv4-join@ietf.org>
List-Unsubscribe: <mailto:nfsv4-leave@ietf.org>
Hi Carsten,
Thanks for the review, comments inline.
I really appreciate the reference comment, it will make my drafts better. And I am sure I will like learning how to link the sections.
> On Nov 19, 2024, at 12:24 AM, Carsten Bormann via Datatracker <noreply@ietf.org> wrote:
>
> Reviewer: Carsten Bormann
> Review result: Ready with Issues
>
> (Insert ARTART review boilerplate here.)
>
> I have been using NFS and XDR since the early 1980s, but I am not an
> expert on NFSv4.2 or pNFS.
>
> I did not find a github repository for the draft, so I'll provide
> comments in a more traditional/tedious form. (Please use the
> venue/"about this document" facilities of document generation to make
> the repo easy to find for reviewers.)
git@github.com:loghyr/layout_wcc.git
I’ve been using GitHub a long time before many WGs adopted it, so this probably appears rather simplistic to what is now standard.
>
> Any page numbers below are those in the plaintext form of the I-D.
>
> ## Major
>
> There is an editors' note that appear to be unanswered questions:
> §2 (p5):
> // Can it go into LAYOUTRETURN?
> Please answer.
>
The answer is no - not without a lot of effort.
Not sure how I forgot to remove this - I might have added it late, not realizing we were at a LC.
Removed the AI.
> §3.4.2 says: The reason to
> provide these two attributes is in case of NFS4ERR_ACCESS, the
> metadata server can compare what it expects the values of the uid and
> gid of the data file to be versus the actual values. It can then
> repair the permissions as needed or modify the expected values it has
> cached.
> To someone not familiar with the underlying protocols, this appears to
> be very weak advice on what the metadata server should be doing here.
> In particular, is such a "repair" already covered by the Security
> Considerations in [RFC7862] (which is all the Security Considerations
> in this document amount to)?
No, not RFC7862, but RFC8435, see Section 2.2.
The security model of RFC8435 is set the mode bits to be S_IRUSR | S_IWUSR | S_IRGRP
The user can read and write. The group can read.
Then the uid and gid are set to specific values. These values are sent to the client in the LAYOUTGET reply.
If the client requests a LAYOUTIOMODE4_READ layout, then the uid is mangled in the reply such that the client can not WRITE with those credentials.
The quoted text in Section 3.4.2. is stating that if the uid and gid reported in the LAYOUT_WCC do not match those stored for the data file, then the server either needs to use a SETATTR to adjust the data file or it needs to update the stored values.
I can be more explicit in the text if needed to be.
>
> Also, it says:
> The mapping of NFSv3 to NFSv4 attributes shown in Table 1 also
> details which attributes the LAYOUT_WCC SHOULD be providing to the
> metadata server, [...]
> Does it? I cannot find that information.
> Or is the intended meaning that *all* the attributes shown in Table 1
> SHOULD be provided?
*all*
> What is the limit of the SHOULD (i.e., under what specific
> circumstances can that be overridden)?
New text is:
The NFSv3 attributes returned in the WCC of WRITE, READ, and COMMIT are a smaller subset
of what can be transmitted as a NFSv4 attribute. The mapping of NFSv3 to NFSv4 attributes
is shown in Table 1. The LAYOUT_WCC MUST provide all of these attributes to the metadata server.
Both the uid and gid are stringified into their respective attributes of owner and owner_group.
….
>
> (I note that there is a lower-case "should" in Section 3.4.1 (p6);
> please check that this is the intended [non-2119] meaning.)
>
It is the intended meaning.
Changed “should” to “can”.
> ## Minor
>
> The definitions (1.1) should probably mention any other sources of
> definitions that this document relies on (e.g., for "layout").
Lol - I’ve been getting requests to shorten these sections by pointing the reader to earlier documents.
I.e., in layout_rec, I state:
See Section 1.1 of [RFC8435] for a set of definitions.
See https://datatracker.ietf.org/doc/draft-ietf-nfsv4-layrec/
If anything, I would remove all of the definitions here except WCC and point the reader to RFC8435.
But I currently have:
1.1. Definitions
See Section 1.1 of [RFC8435] for a fuller set of definitions.
>
> Section 3.6 could hint at how the optionality is handled (e.g., does
> the client stop sending the operation when it gets a specific error
> from the server?).
> (The answer may be obvious with the level of knowledge about NFSv4.2
> actually required by this document, please ignore this observation
> then.)
It would move to REQUIRED with NFSv4.3 along with all of the OPTIONAL ops of RFC8435.
>
> Section 3.7:
> But the positional correspondence between the elements is not
> sufficient to determine the attributes to update.
> [...]
> In either case, the combination of ffdsw_deviceid, ffdsw_stateid, and
> ffdsw_fh_vers will uniquely identify the attributes to be updated.
> Is this really about the specific attributes to update/to be updated
> or is it actually about identifying the information object (mirror?)
> in which the attributes are to be updated?
It is about identifying the information object, which is a mirror.
>
> One would expect Section 4 to be boilerplate now; does this differ in
> any way from similar sections in previous documents?
>
No, just the name of the final file are changed.
> ## Nits
>
> Nits are given as a pair of old and new lines, if possible.
>
> Abstract (p1)
> It does not provide a mechanism for the data server to update the
> metadata server of changes to the data part of the file. The client
> Abstract(p1)
> allow the client to update the metadata server to changes on the data
> Which one should it be -- update "of" or update "to"?
>
“To"
> §1.1 (p3): ease of use
> Section 2.1 of [RFC8434]
> (enable directly linking the section reference on this citation)
> (This is a recurring comment to a couple dozen other places in the
> document as well.)
>
More than willing to do that, if you let me know how.
> §2 (p4): Typo
> Because there is no contol protocol (see [RFC8434]) possible with all
> Because there is no control protocol (see [RFC8434]) possible with all
>
Ack
> §2 (p5): consistency
> Is it "flexible files layout" (plural, used here) or "Flexible File
> Layout" (singular, as in abstract/introduction)?
>
Singular. Fixed up in the places I could find
> §2 (p5): typo
> model, the metatdate server MAY make such calls anyway in order to
> model, the metadata server MAY make such calls anyway in order to
>
Ack
> §3.4.1 (p6): typo
> data files. While The client can send a LAYOUT_WCC at any time,
> data files. While the client can send a LAYOUT_WCC at any time,
>
Ack
> §3.4.2 (p7): typo
> metadata server, Both the uid and gid are stringified into their
> metadata server. Both the uid and gid are stringified into their
>
Ack
> §3.4.2 (p7): Table 1 could use a caption
Ack
>
> §3.5 (p9): Table 2 could use a caption, maybe moving the stray text line
> Valid Error Returns for LAYOUT_WCC
> Is there anything gained from presenting this list in an essentially
> single-cell table?
> Maybe it could be formatted to resemble Table 12 (Valid Error Returns
> for Each Protocol Operation) in Section 15.2 of [RFC8881]?
>
Ack
> §4 (p10)): Typo
> shell script to produce the machine readable XDR description of the
> shell script to produce the machine-readable XDR description of the
>
Ack
> §4 (p11): Typo
> code snippets belong in their respective areas of the that XDR.
> code snippets belong in their respective areas of that XDR.
>
Ack
> §7.1 (p11): missing link
> This reference seems to be hand-built and is providing an unusual citation of
> the draft name (which is also missing a link): [delstid] Haynes, T. and T.
> Myklebust, "Extending the Opening of Files in NFSv4.2",
> draft-ietf-nfsv4-delstid-02.xml (Work In Progress), February 2023. Please use
> the references from bib.ietf.org instead.
That draft is not finished going through the EDIT cycle.
Wow, followed your advice and that is nice. Thanks!
>
> ## Sorry, could not resist
>
> §4 (p10): (would be even easier with sed -E)
> grep '^ *///' $* | sed 's?^ */// ??' | sed 's?^ *///$??'
> sed -n 's,^ *///,,p' "$@" | sed 's/^ //‘
>
This has been in place for 20 years, loathe to change it at all. :-)
>
>
- [nfsv4] Artart last call review of draft-ietf-nfs… Carsten Bormann via Datatracker
- [nfsv4] Re: Artart last call review of draft-ietf… Thomas Haynes