Internet-Draft New Attributes for NFSv4.2 December 2021
Macklem Expires 2 July 2022 [Page]
Workgroup:
Network File System Version 4
Internet-Draft:
draft-rmacklem-nfsv4-new-attributes-00
Published:
Intended Status:
Standards Track
Expires:
Author:
R. Macklem
FreeBSD

New Attributes for Network File System Version 4, Minor Version 2

Abstract

This document proposes several new recommended attributes that extend the Network File System Version 4, Minor Version 2 protocol (NFSv4.2). All of these new attributes are read-only, per file system attributes.

Note

This note is to be removed before publishing as an RFC.

Discussion of this draft occurs on the NFSv4 working group mailing list, archived at https://mailarchive.ietf.org/arch/browse/nfsv4/. Working Group information is available at https://datatracker.ietf.org/wg/nfsv4/about/.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 2 July 2022.

1. Introduction

Implementation experience with NFSv4.2 has identified that some additional attributes providing per file system information to clients are useful. This document specifies these additional recommended attributes.

2. Protocol Extension Considerations

This document presents an extension to minor version 2 of the NFSv4 protocol as described in [RFC8178]. It describes new OPTIONAL features. NFSv4.2 servers and clients implemented without knowledge of this extension will continue to interoperate with clients and servers that are aware of the extension (whether or not they support it).

Note that [RFC7862] does not define NFSv4.2 as non-extensible, so [RFC8178] treats it as an extensible minor version. This Standards Track RFC extends NFSv4.2 but does not update [RFC7862] or [RFC8178].

3. List of new per-file system Attributes

  • The per-file system attributes are:

    • supported_operations, directory_cookie_monotonically_increasing, seek_granularity, mandatory_locking, maximum_extended_attribute_length

4. New Attributes

All of these attributes are read-only.

The list of New RECOMMENDED attributes appears in Table 1. The meaning of the columns of the table are:

Name:
The name of the attribute.
Id:
The number assigned to the attribute.
Data Type:
The XDR data type of the attribute.
Acc:
Access allowed to the attribute. R means read-only.
Defined in:
The section of this specification that describes the attribute.
Table 1
Name Id Data Type Acc Defined in:
supported_operations 83 bitmap4 R Section 5.1.1
directory_cookie_monotonically_increasing 84 bool R Section 5.1.2
seek_granularity 85 uint64_t R Section 5.1.3
mandatory_locking 86 bool R Section 5.1.4
maximum_extended_attribute_length 87 uint64_t R Section 5.1.5

5.2. Rational for New RECOMMENDED Attributes

The rationale for the new RECOMMENDED attributes follow.

5.2.1. Attribute 83: supported_operations

Without this attribute, an NFSv4.2 client must attempt an optional operation to determine if the server supports it. This attribute allows the NFSv4.2 client to avoid attempting an optional operation when it is not supported for the file object's file system on the server.

5.2.3. Attribute 85: seek_granularity

A NFSv4.2 client can avoid performing RPCs doing the SEEK operation when this attribute is equal 0 or whenever the client can determine that holes greater or equal to the value of this attribute do not exist in the file.

5.2.4. Attribute 86: mandatory_locking

A NFSv4.2 client cannot cache data for a file object unless it holds an appropriate byte range lock if the server is implementing mandatory byte range locking. Since client side data caching is required for good performance, the client needs to know that the server is implementing mandatory byte range locking, so that it can aquire byte range locks for the byte ranges being cached.

5.2.5. Attribute 87: maximum_extended_attribute_length

This attribute allows a NFSv4.2 client to avoid attempting a SETXATTR operation when the length of the extended attribute is greater than the maximum specified by this attribute.

6. Implementation Status

This section is to be removed before publishing as an RFC.

This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.

Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist.

6.1. FreeBSD NFS server and client

Organization:
FreeBSD Project
URL:
https://www.freebsd.org
Maturity:
Prototype software based on the current document.
Coverage:
The bulk of this specification is implemented.
Licensing:
BSD
Implementation experience:
The implementation of these attributes have allowed the NFSv4.2 client to avoid unnecessary RPCs against the server. The current client implementation does not include support for directory delegations nor makes use of the directory_cookie_monotonically_increasing attribute. The current client implementation does not support mandatory byte range locking.

7. References

7.1. Normative References

[RFC7862]
Haynes, T., "Network File System (NFS) Version 4 Minor Version 2 Protocol", RFC 7862, DOI 10.17487/RFC7862, , <https://www.rfc-editor.org/info/rfc7862>.
[RFC8178]
Noveck, D., "Rules for NFSv4 Extensions and Minor Versions", RFC 8178, DOI 10.17487/RFC8178, , <https://www.rfc-editor.org/info/rfc8178>.
[RFC8276]
Naik, M. and M. Eshel, "File System Extended Attributes in NFSv4", RFC 8276, DOI 10.17487/RFC8276, , <https://www.rfc-editor.org/info/rfc8276>.

7.2. Informational References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8881]
Noveck, D., Ed. and C. Lever, "Network File System (NFS) Version 4 Minor Version 1 Protocol", RFC 8881, DOI 10.17487/RFC8881, , <https://www.rfc-editor.org/info/rfc8881>.

Author's Address

Rick Macklem
FreeBSD Project
Canada