Skip to main content

Extending the Opening of Files in NFSv4.2
draft-ietf-nfsv4-delstid-08

Yes

Zaheduzzaman Sarker

No Objection

Deb Cooley
Erik Kline
Jim Guichard
Murray Kucherawy
Paul Wouters

Note: This ballot was opened for revision 05 and is now closed.

Zaheduzzaman Sarker
Yes
Deb Cooley
No Objection
Erik Kline
No Objection
Gunter Van de Velde
No Objection
Comment (2024-08-19 for -05) Sent
# Gunter Van de Velde, RTG AD, comments for draft-ietf-nfsv4-delstid-05

Many thanks for writing this document. 

Please find next some observations and non-blocking comments encountered during my processing of this work.
I am not very familiar with NFS technologies, hence maybe some of my observations and comments could be due to unexperienced.

Please find https://www.ietf.org/blog/handling-iesg-ballot-positions/ documenting the handling of ballots.

#DETAILED COMMENTS
#=================
##classified as [minor] and [major]

10	Abstract
11
12	   The Network File System v4 (NFSv4) allows a client to both open a
13	   file and be granted a delegation of that file.  This delegation
14	   provides the client the right to authoritatively cache metadata on
15	   the file locally.  This document presents several extensions for both
16	   the opening and delegating of the file to the client.  This document
17	   extends both NFSv4.1 (see RFC8881) and NFSv4.2 (see RFC7863).

[major]
The title of the document says "Extending the Opening of Files in NFSv4.2" however 
the abstract says that this works extends both NFSv4.1 (see RFC8881) and NFSv4.2 (see RFC7863)

88	   authority for the file's metadata and data.  This document presents a
89	   number of extensions which enhance the functionality of opens and
90	   delegations.  These allow the client to:

[minor]
cosmetic rewrite textblob proposal

"
This document introduces a set of extensions designed to enhance the functionality of file opens and delegations. These extensions enable the client to:
"

98	   *  during the OPEN procedure, get either the open or delegation
99	      stateids, but not both.
100
101	   *  cache both the access and modify times, reducing the number of
102	      times the client needs to go to the server to get that
103	      information.

[minor]
stateid is speciefied in https://datatracker.ietf.org/doc/html/rfc7530#section-9.1.4

[minor]
cosmetic rewrite textblob proposal

"
* During the OPEN procedure, retrieve either the open stateid or delegation stateid, but not both simultaneously.

* Cache both the access and modify timestamps, thereby reducing the frequency with which the client must query the server for this information.
"

105	   Using the process detailed in [RFC8178], the revisions in this
106	   document become an extension of NFSv4.2 [RFC7862].

[major]
See earlier in the abstract where is indicated that NFS4.1 is extended too

147	   A compound with a GETATTR or READDIR can report the file's attributes
148	   without bringing the file online.  However, either an OPEN or a
149	   LAYOUTGET might cause the file server to retrieve the archived data
150	   contents, bringing the file online.  For non-pNFS systems, the OPEN
151	   operation requires a filehandle to the data content.  For pNFS
152	   systems, the filehandle retrieved from an OPEN need not cause the
153	   data content to be retrieved.  But when the LAYOUTGET operation is
154	   processed, a layout type specific mapping will cause the data content
155	   to be retrieved from offline storage.

[minor]
I am not familiar with terminology as GETATTR, READDIR, LAYOUTGET, pNFS
Should refereces be added if these are not wellknown in the technology area?

157	   If the client is not aware that the file is offline, it might
158	   inadvertently open the file to determine what type of file it is
159	   accessing.  By interrogating the new attribute FATTR4_OFFLINE, a

[minor]
Is FATTR4_OFFLINE a particular abbreviation for something of meaning?
(i have no NFS experience)

170	   /// typedef bool            fattr4_offline;

[minor]
Here lower case is used, while earlierand later the same with upper case is used? Is this intentional?

189	   The fattr4_open_arguments attribute is a new XDR extension which

[minor]
Should this attribute be upper case FATTR4_OPEN_ARGUMENTS ?

465	   only supports NFSv4.2.  An implementation could add a NFSv3 server
466	   which is a NFSv4.2 client gateway the two incompatible systems.  As

[minor]
The phrase seems wrong? What about:

"
An implementation may introduce an NFSv3 server that functions as an NFSv4.2 client, serving as a gateway between the two otherwise incompatible systems.
"
Jim Guichard
No Objection
John Scudder
No Objection
Comment (2024-08-20 for -05) Sent
Thanks for an easy review. One tiny nit: in Section 4.1 you refer to “this draft” when talking about the document. That won’t age well when it’s published as an RFC. “This specification” is probably better.
Murray Kucherawy
No Objection
Orie Steele
No Objection
Comment (2024-08-19 for -05) Sent
# Orie Steele, ART AD, comments for draft-ietf-nfsv4-delstid-05 
CC @OR13

* line numbers:
  - https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-nfsv4-delstid-05.txt&submitcheck=True

* comment syntax:
  - https://github.com/mnot/ietf-comments/blob/main/format.md

* "Handling Ballot Positions":
  - https://ietf.org/about/groups/iesg/statements/handling-ballot-positions/

## Comments

### Extends or Updates?

```
16	   the opening and delegating of the file to the client.  This document
17	   extends both NFSv4.1 (see RFC8881) and NFSv4.2 (see RFC7863).
```

### What are stateids

```
98	   *  during the OPEN procedure, get either the open or delegation
99	      stateids, but not both.
```

Consider a reference to Section 8.2 of RFC8881.

### Introduce "compound"

```
147	   A compound with a GETATTR or READDIR can report the file's attributes
148	   without bringing the file online.  However, either an OPEN or a
```

Perhaps add a reference to Section 2.3 of RFC8881?

### Introduce "pNFS" / "non-pNFS"

```
150	   contents, bringing the file online.  For non-pNFS systems, the OPEN
151	   operation requires a filehandle to the data content.  For pNFS
152	   systems, the filehandle retrieved from an OPEN need not cause the
153	   data content to be retrieved.  But when the LAYOUTGET operation is
154	   processed, a layout type specific mapping will cause the data content
155	   to be retrieved from offline storage.
```

Expand on first use, reference Section 12 of RFC 8881?

### can -> SHOULD / will -> MUST?

```
339	   The client is already prepared to not get a delegation stateid even
340	   if requested.  In order to not send an open stateid, the server can
341	   indicate that fact with the result flag of
342	   OPEN4_RESULT_NO_OPEN_STATEID.  The open stateid field,
343	   OPEN4resok.stateid (see Section 18.16.2 of [RFC8881]), will also be
344	   set to the special all zero stateid.
```

Should this be made normative?

### maybe race conditions

```
425	   Failure to properly sequence the operations may lead to race cases.
```

Can this be avoided with normative language?

Its possible this is addressed with the normative paragraphs that follow.


### 2008 reference for LEGAL

Is this necessary? Is there a more recent reference?

```
540	   Both the XDR description and the scripts used for extracting the XDR
541	   description are Code Components as described in Section 4 of "Legal
542	   Provisions Relating to IETF Documents" [LEGAL].  These Code
543	   Components are licensed according to the terms of that document.
```

```
594	   [LEGAL]    IETF Trust, "Legal Provisions Relating to IETF Documents",
595	              November 2008, <http://trustee.ietf.org/docs/IETF-Trust-
596	              License-Policy.pdf>.
```
Paul Wouters
No Objection
Roman Danyliw
No Objection
Comment (2024-08-19 for -05) Sent
** Section 6.1
-- What is the purpose of Section 6.1 and is it needed? The text appears to be re-explaining the licensing terms that already apply.

** Per the following reference used in the above Section 6.1 text:
   [LEGAL]    IETF Trust, "Legal Provisions Relating to IETF Documents",
              November 2008, <http://trustee.ietf.org/docs/IETF-Trust-
              License-Policy.pdf>.

The above URL redirects to a landing page at https://trustee.ietf.org/documents/trust-legal-provisions/.  Is there a particular TLP in mind?  Based on the 2008 date, is TLP v1.0 being referenced?
Warren Kumari
No Objection
Comment (2024-08-19 for -05) Sent
Thank you for writing this document...

I am **so** no an NFS person, but I found the document a fascinating read, and it sounds like it solves a real issue, in a reasonable fashion...

I especially liked S 4.1.  Implementation Experience, because I was wondering if this has actually been implemented :-)  

Thanks,
W
Éric Vyncke
No Objection
Comment (2024-08-19 for -05) Sent
# Éric Vyncke, INT AD, comments for draft-ietf-nfsv4-delstid-05

Thank you for the work put into this document.

Please find below some non-blocking COMMENT points (but replies would be appreciated even if only for my own education).

Special thanks to Christopher Inacio for the shepherd's detailed write-up including the WG consensus and the justification of the intended status.

I hope that this review helps to improve the document,

Regards,

-éric

# COMMENTS (non-blocking)

## Abstract

The text about `Discussion of this draft...` should not be part of the abstract but be in its own dedicated section.

## Section 1

While the abstract contains `This document extends both NFSv4.1 (see RFC8881) and NFSv4.2 (see RFC7863)`, this section only has `the revisions in this document become an extension of NFSv4.2 [RFC7862]`. I.e., there is a discrepancy at first sight.

Some explanations about `delegation stateids` will be welcome for the reader.

## Section 2

Should there be informative reference (or a warning in section 1.1 to re-use terms from RFC xyz) for GETATTR, ... ?

## Section 3

What is `bitmap4`, while I am not a NFS expert, I would expect having some terminology defined (see comment to section 2).

## Section 3.1

I am not familiar with XDR, but I wonder why the specifications are split in multiple CODE brackets rather than a single one. Also puzzled by the use of `///` as I read them as comments. Even section 6 does not explain why there is a need for a sentinel.

## Section 5.1

Suggest to mention NFSv3 in the section title.

## Section 6.1

It does not really hurt repeating the code licensing but it is redundant with "Copyright notice"

## Section 8

As I am not a NFS expert, I find strange that IANA registries are not used in this document. But, if this is the authors/WG choice, then let it be.