<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->
<?rfc docmapping="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-nfsv4-uncacheable-directories-07" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Uncacheable Dirents">Adding an Uncacheable Directory-Entry Metadata Attribute to NFSv4.2</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-nfsv4-uncacheable-directories-07"/>
    <author initials="T." surname="Haynes" fullname="Thomas Haynes">
      <organization>Hammerspace</organization>
      <address>
        <email>loghyr@gmail.com</email>
      </address>
    </author>
    <date/>
    <area>General</area>
    <workgroup>Network File System Version 4</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 48?>

<t>Network File System version 4.2 (NFSv4.2) clients may cache
directory-entry (dirent) metadata returned by READDIR to improve
performance.  In some deployments, the rate at which directory
contents change at the server exceeds the validity of typical
NFSv4.2 client caches, so that a client serving READDIR responses
from its local cache returns entries or attribute values that no
longer reflect the current state of the directory.  This document
introduces an uncacheable dirent metadata attribute for NFSv4.2
that allows a server to indicate that a client honouring the
attribute is required to retrieve directory-entry metadata from
the server on each READDIR rather than serving the response from
a local cache.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 63?>

<t>Note to RFC Editor: please remove this section prior to publication.</t>
      <t>Discussion of this draft takes place
on the NFSv4 working group mailing list (nfsv4@ietf.org),
which is archived at
<eref target="https://mailarchive.ietf.org/arch/search/?email_list=nfsv4"/>. Source
code and issues list for this draft can be found at
<eref target="https://github.com/ietf-wg-nfsv4/uncacheable-directories"/>.</t>
      <t>Working Group information can be found at <eref target="https://github.com/ietf-wg-nfsv4"/>.</t>
    </note>
  </front>
  <middle>
    <?line 76?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Clients of remote filesystems may cache directory-entry metadata
to improve performance.  This caching presumes that directory
contents and the attributes of its entries remain stable for the
duration of a client cache lifetime.  In some deployments that
presumption does not hold; the conditions under which this is the
case for the deployment that motivates this work are described in
<xref target="deployment-motivation"/>.</t>
      <t>In this document, the term directory is used to describe the
context in which directory entries are retrieved.  The uncacheable
dirent metadata attribute applies to the caching of directory-entry
metadata, including names and associated file object metadata such
as size and timestamps.  It does not prohibit caching of the
directory object itself, nor does it affect caching of file data.</t>
      <t>Caching of directory-entry metadata can result in incorrect size
and timestamp information when files are modified concurrently,
reducing the effectiveness of uncacheable file data semantics
(<xref target="I-D.ietf-nfsv4-uncacheable-files"/>) when directory-entry
metadata is stale.  This can lead to applications observing
inconsistent metadata and data views even when file data caching
is disabled.</t>
      <t>This document introduces the uncacheable dirent metadata attribute
to NFSv4.2 to allow servers to advise clients that caching of
directory-entry metadata is unsuitable.  Using the process detailed
in <xref target="RFC8178"/>, the revisions in this document become an extension
of NFSv4.2 <xref target="RFC7862"/>.  They are built on top of the external data
representation (XDR) <xref target="RFC4506"/> generated from <xref target="RFC7863"/>.</t>
    </section>
    <section anchor="deployment-motivation">
      <name>Deployment Motivation</name>
      <t>A class of deployment exposes a single file namespace concurrently
through multiple file-access protocols, typically including
NFSv4.2, NFSv3, and the Server Message Block (SMB) protocol family
<xref target="MS-SMB2"/>.  The same directories are reachable from all of those
protocols and, in many such deployments, from server-side policy
components (placement, replication, archival, tiering) that act on
the namespace without a client connection.  Changes to a directory's
contents -- entries added, entries removed, entries whose attributes
have been updated -- may therefore originate at any time from any
of those sources.</t>
      <t>NFSv4.2 client implementations typically cache directory-entry
metadata returned by READDIR for a period bounded by either the
directory's change attribute or a heuristic timeout.  In deployments
of the kind described above, the rate of server-side directory churn
can exceed what those caches can track, so that an NFSv4.2 client
serving READDIR responses from its local cache will, with some
regularity, return entries or attribute values that no longer reflect
the current state of the directory at the server.</t>
      <t>The fattr4_uncacheable_dirent_metadata attribute is the server's
mechanism to identify a directory for which this risk is high
enough that client-side caching is not safe.  When the server sets
the attribute on a directory, an honouring client retrieves
directory-entry metadata from the server on each READDIR rather
than from a local cache.</t>
      <t>In the deployments that motivate this work, no attribute values
returned for a given dirent vary across users.  The server returns
the same set of entries with the same attribute values to all NFSv4
clients of a given directory regardless of the requesting user's
identity.</t>
      <t>The SMB protocol family includes a related concept called
Access-Based Enumeration (ABE) <xref target="MS-ABE"/> <xref target="MS-SMB2"/>, in which an
SMB server filters the visible set of directory entries by the
requesting user's access rights.  ABE is named here as background
for readers familiar with the SMB ecosystem.  The NFSv4.2 attribute
defined in this document is not an NFS surface for ABE: it does not
require, specify, or depend on per-user directory filtering, and
the servers that motivate this work do not apply such filtering to
NFSv4.2 READDIR responses.</t>
    </section>
    <section anchor="definitions">
      <name>Definitions</name>
      <dl>
        <dt>Access Based Enumeration (ABE)</dt>
        <dd>
          <t>A Server Message Block (SMB) <xref target="MS-SMB2"/> feature in which the
server filters the visible set of directory entries by the
requesting user's access rights <xref target="MS-ABE"/>.  Used in this document
only as background for readers familiar with the SMB ecosystem;
the NFSv4.2 attribute defined here is not an NFS surface for ABE.</t>
        </dd>
        <dt>dirent</dt>
        <dd>
          <t>A directory-entry representing a file or subdirectory and its
associated attributes.</t>
        </dd>
        <dt>dirent caching</dt>
        <dd>
          <t>A client-side cache of directory-entry names and associated file
object metadata, used to avoid repeated directory lookup and attribute
retrieval.</t>
        </dd>
        <dt>uncacheable dirent metadata attribute</dt>
        <dd>
          <t>An NFSv4.2 file attribute that advises clients not to cache
directory-entry metadata associated with file objects, including
names, size, and timestamps.</t>
        </dd>
      </dl>
      <t>This document assumes familiarity with NFSv4.2 operations, attributes,
and error handling as defined in <xref target="RFC8881"/> and <xref target="RFC7862"/>.</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="caching-of-directory-entry-metadata">
      <name>Caching of Directory-Entry Metadata</name>
      <t>The fattr4_uncacheable_dirent_metadata attribute is a read-write boolean
attribute that applies to directory objects and has a data type
of boolean.  The attribute is not set on individual file objects
and applies only to directory-entry metadata returned from the
directory on which it is set.</t>
      <t>The uncacheable dirent metadata attribute enables correct presentation
of directory-entry metadata in deployments where directory contents
may change at the server at a rate that exceeds the validity of
typical client caches. As such, it is an <bcp14>OPTIONAL</bcp14> attribute to
implement for NFSv4.2.  If both the client and the server support
this attribute, and the attribute is set on a directory, the
client <bcp14>MUST</bcp14> retrieve directory-entry metadata from the server on
each READDIR rather than serving the response from a local cache.</t>
      <t>This document specifies the required observable behavior rather
than mandating a particular internal implementation strategy.
Clients <bcp14>MAY</bcp14> employ more sophisticated mechanisms, such as
time-limited caches that revalidate against the server on each
READDIR, provided that the externally visible behavior is
equivalent to retrieving directory-entry metadata from the
server on each READDIR.</t>
      <t>Allowing clients to set this attribute provides a portable mechanism
to request that directory-entry metadata not be cached, without
requiring changes to application behavior or out-of-band administrative
configuration.</t>
      <t>A client can determine whether the uncacheable dirent metadata attribute
is supported for a given directory by examining the supported_attrs
attribute for that directory's filesystem or by probing support using
the procedures described in <xref target="RFC8178"/>.</t>
      <t>The only way that the server can determine that the client supports
the attribute is if the client sends either a GETATTR or a SETATTR
with the uncacheable dirent metadata attribute.</t>
      <t>The uncacheable dirent metadata attribute governs caching behavior of
directory-entry metadata returned by READDIR and related operations,
not the directory object itself.</t>
      <t>The uncacheable dirent metadata attribute addresses a different
aspect of client-side caching than fattr4_uncacheable_file_data
(<xref target="I-D.ietf-nfsv4-uncacheable-files"/>). The file data attribute
governs caching of file contents, while the dirent metadata attribute
governs caching of directory-entry metadata returned by READDIR and
related operations. The attributes are independent and may be used
separately.</t>
      <t>This attribute does not define behavior for positive or negative name
caching or for caching of LOOKUP results outside the scope of
directory-entry metadata returned by READDIR and related operations.</t>
      <t>Directory delegations grant a client exclusive caching rights subject
to server recall.  In deployments where directory contents change at
a rate that makes per-change recall impractical, a directory delegation
does not provide the always-refetch semantics defined by the uncacheable
dirent metadata attribute.  These mechanisms are independent.</t>
      <t>Clients <bcp14>MUST NOT</bcp14> assume that directory-entry metadata is valid beyond
the READDIR that produced it.</t>
      <section anchor="sec_dirents">
        <name>Uncacheable Directory-Entry Metadata</name>
        <t>The fattr4_uncacheable_dirent_metadata attribute is a read-write boolean
attribute that applies to directory objects.
Authorization to query or modify this attribute is governed by
existing NFSv4.2 authorization mechanisms.</t>
        <t>If a directory object has the uncacheable dirent metadata attribute
set, the client <bcp14>MUST</bcp14> retrieve directory-entry metadata from the
server on each READDIR rather than serving the response from a
local cache.  This ensures that the returned metadata reflects
the current state of the directory as determined by the server.</t>
        <t>The uncacheable dirent metadata attribute does not modify the
semantics of the NFSv4.2 change attribute.  Clients <bcp14>MUST</bcp14> continue to
use the change attribute to detect directory modifications and to
determine when directory contents may have changed, even when
directory-entry metadata caching is suppressed.  Suppressing caching
of directory-entry metadata does not remove the need for change-based
validation.</t>
        <t>Servers <bcp14>SHOULD</bcp14> assume that clients which do not query or set this
attribute may cache directory-entry metadata, and therefore <bcp14>SHOULD
NOT</bcp14> rely on this attribute for correctness unless client support
is confirmed.</t>
        <t>A directory delegation grants a client the right to cache
directory-entry metadata until the server recalls the delegation.
The always-refetch rule of this attribute is incompatible with that
grant.  If a directory has both the uncacheable dirent metadata
attribute set and an outstanding directory delegation, the server
<bcp14>MUST</bcp14> recall the delegation, after which the client follows the
always-refetch rule on each subsequent READDIR.  A server <bcp14>MUST NOT</bcp14>
grant a new directory delegation on a directory while the
uncacheable dirent metadata attribute is set on that directory.</t>
      </section>
    </section>
    <section anchor="example-directory-enumeration-with-and-without-dirent-metadata-caching">
      <name>Example: Directory Enumeration With and Without Dirent Metadata Caching</name>
      <t>This example illustrates the difference in client-visible behavior when
directory-entry metadata caching is enabled versus when the uncacheable
dirent metadata attribute is set on a directory.  In both scenarios,
the set of entries in the directory does not change between the two
calls; an attribute value of one entry is updated at the server
between calls.  The difference is whether the second call observes
the updated attribute value.</t>
      <section anchor="classic-directory-enumeration-directory-entry-metadata-cached">
        <name>Classic Directory Enumeration (Directory-Entry Metadata Cached)</name>
        <t>In this scenario, the client caches directory-entry metadata obtained
from the server and reuses it for the second readdir.</t>
        <figure anchor="fig-cached-dirents">
          <name>Directory-Entry Metadata Cached</name>
          <artwork><![CDATA[
Application             NFSv4.2 Client        NFSv4.2 Server
-----------             --------------        --------------
readdir("/dir")
   |
   |                     READDIR
   |-------------------->------------------------>
   |                     entries:
   |                       a (size=100)
   |                       b (size=200)
   |                       c (size=300)
   |<--------------------<------------------------
   |
(entries cached in client)

                                            (concurrent writer extends
                                             a from size=100 to
                                             size=500)

readdir("/dir")
   |
   |                     (no network traffic)
   |                     entries returned from
   |                     client cache:
   |                       a (size=100)
   |                       b (size=200)
   |                       c (size=300)
]]></artwork>
        </figure>
        <t>In this case, <xref target="fig-cached-dirents"/> shows that directory-entry
metadata retrieved by the first READDIR is reused to satisfy the
second.  The cached response reflects entry a's size as it was
at the time of the first call; it does not reflect the update
that occurred at the server between calls.  This behavior is
typical of legacy NFSv4.2 clients and maximizes performance, but
it can result in applications observing dirent attribute values
that do not reflect the current state of the server.</t>
      </section>
      <section anchor="directory-enumeration-with-uncacheable-dirent-metadata">
        <name>Directory Enumeration With Uncacheable Dirent Metadata</name>
        <t>In this scenario, the directory has the uncacheable dirent metadata
attribute set.  The client retrieves directory-entry metadata from
the server on each READDIR.</t>
        <figure anchor="fig-uncached-dirents">
          <name>Directory-Entry Metadata Not Cached</name>
          <artwork><![CDATA[
Application             NFSv4.2 Client        NFSv4.2 Server
-----------             --------------        --------------
readdir("/dir")
   |
   |                     READDIR
   |-------------------->------------------------>
   |                     entries:
   |                       a (size=100)
   |                       b (size=200)
   |                       c (size=300)
   |<--------------------<------------------------
   |
(no directory-entry metadata retained)

                                            (concurrent writer extends
                                             a from size=100 to
                                             size=500)

readdir("/dir")
   |
   |                     READDIR
   |-------------------->------------------------>
   |                     entries:
   |                       a (size=500)
   |                       b (size=200)
   |                       c (size=300)
   |<--------------------<------------------------
]]></artwork>
        </figure>
        <t>In this case, <xref target="fig-uncached-dirents"/> shows that each readdir
request results in a READDIR operation sent to the server, so
the second call observes the updated size of entry a.  The set
of entries returned is unchanged between calls; only the
attribute value differs.  The client may still cache other
information, provided the externally observable behavior is
equivalent to retrieving directory-entry metadata from the
server on each READDIR.</t>
      </section>
      <section anchor="discussion">
        <name>Discussion</name>
        <t>This example demonstrates that the uncacheable dirent metadata
attribute does not mandate a particular client implementation, but
it does require the always-refetch behavior specified in
<xref target="sec_dirents"/>.  The attribute ensures that NFSv4.2 clients
observe directory contents reflecting the current state of the
server in deployments where the rate of directory change exceeds
the validity of typical client caches.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to RFC Editor: please remove this section prior to publication.</t>
      <t>There is a prototype Hammerspace server which implements the
uncacheable dirent metadata attribute and a prototype Linux client
which treats the attribute as an indication to retrieve directory-
entry metadata from the server on each READDIR rather than from a
local cache.</t>
      <t>In the prototype, directories whose contents change at the server
at a rate exceeding typical client cache lifetimes are marked with
the fattr4_uncacheable_dirent_metadata attribute.</t>
      <t>The Linux client decodes the attribute in fs/nfs/nfs4xdr.c into a
per-inode flag (nfsi-&gt;uncacheable).  The readdir path in fs/nfs/dir.c
consults this flag to skip the readdir cache and refetch from the
server on each readdir call.  Clients may employ more sophisticated
mechanisms, such as time-limited caches that revalidate against the
server on each READDIR, provided that the externally observable
behavior matches the always-refetch semantics described in this
document.</t>
      <t>At the time of writing, the prototype encodes the attribute on the
wire alongside the companion file-data attribute defined in
<xref target="I-D.ietf-nfsv4-uncacheable-files"/> as a single shared flag.  A
follow-on prototype branch separates the two attributes as the
two documents specify.</t>
      <t>Experience with the prototype indicates that the attribute enables
servers to identify directories whose contents change faster than
typical NFSv4.2 client cache lifetimes can track, while remaining
compatible with existing NFSv4.2 semantics.</t>
    </section>
    <section anchor="xdr-for-uncacheable-dirents-attribute">
      <name>XDR for Uncacheable Dirents Attribute</name>
      <sourcecode type="xdr"><![CDATA[
///
/// typedef bool            fattr4_uncacheable_dirent_metadata;
///
/// const FATTR4_UNCACHEABLE_DIRENT_METADATA   = 88;
///
]]></sourcecode>
    </section>
    <section anchor="extraction-of-xdr">
      <name>Extraction of XDR</name>
      <t>This document contains the external data representation (XDR)
<xref target="RFC4506"/> description of the uncacheable dirent metadata attribute.  The XDR
description is presented in a manner that facilitates easy extraction
into a ready-to-compile format. To extract the machine-readable XDR
description, use the following shell script:</t>
      <sourcecode type="shell"><![CDATA[
#!/bin/sh
grep '^ *///' $* | sed 's?^ */// ??' | sed 's?^ *///$??'
]]></sourcecode>
      <t>For example, if the script is named 'extract.sh' and this document is
named 'spec.txt', execute the following command:</t>
      <sourcecode type="shell"><![CDATA[
sh extract.sh < spec.txt > uncacheable_prot.x
]]></sourcecode>
      <t>This script removes leading blank spaces and the sentinel sequence '///'
from each line. XDR descriptions with the sentinel sequence are embedded
throughout the document.</t>
      <t>Note that the XDR code contained in this document depends on types from
the NFSv4.2 nfs4_prot.x file (generated from <xref target="RFC7863"/>).  This includes
both nfs types that end with a 4, such as offset4, length4, etc., as
well as more generic types such as uint32_t and uint64_t.</t>
      <t>While the XDR can be appended to that from <xref target="RFC7863"/>, the code snippets
should be placed in their appropriate sections within the existing XDR.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This attribute is not a security mechanism.  It addresses correctness
of client-side caching when client-cached directory-entry metadata
can become stale relative to the current state of the directory at
the server.  It does not change NFSv4.2 authentication or authorization
semantics, and it does not impose access controls on the entries it
describes.</t>
      <t>Authorization to set or modify the fattr4_uncacheable_dirent_metadata
attribute is governed by existing NFSv4.2 authorization mechanisms.
Servers <bcp14>MAY</bcp14> restrict modification of this attribute based on local
policy, file ownership, or access control rules.  This document does
not define a new authorization model.</t>
      <t>If the client supports Labeled NFS (see <xref target="RFC7204"/> for background),
the client <bcp14>MUST</bcp14> locally enforce the MAC security policies defined by
NFSv4.2 (<xref target="RFC7862"/>, Section 9).  This obligation is independent of
whether directory-entry metadata is cached or refetched.</t>
      <t>The uncacheable dirent metadata attribute allows servers to indicate
that directory-entry metadata should not be assumed to remain valid
beyond the READDIR that produced it.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.  Numbered FATTR4 attributes for
NFSv4 are assigned by WG coordination through IETF publication
rather than by an IANA registry, consistent with the assignment of
attributes 81 and 82 in <xref target="RFC8275"/> and <xref target="RFC8276"/>.  Attribute
number 88 was selected on the NFSv4 working group mailing list in
conjunction with the assignment of number 87 in
<xref target="I-D.ietf-nfsv4-uncacheable-files"/>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4506">
          <front>
            <title>XDR: External Data Representation Standard</title>
            <author fullname="M. Eisler" initials="M." role="editor" surname="Eisler"/>
            <date month="May" year="2006"/>
            <abstract>
              <t>This document describes the External Data Representation Standard (XDR) protocol as it is currently deployed and accepted. This document obsoletes RFC 1832. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="67"/>
          <seriesInfo name="RFC" value="4506"/>
          <seriesInfo name="DOI" value="10.17487/RFC4506"/>
        </reference>
        <reference anchor="RFC7862">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 2 Protocol</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document describes NFS version 4 minor version 2; it describes the protocol extensions made from NFS version 4 minor version 1. Major extensions introduced in NFS version 4 minor version 2 include the following: Server-Side Copy, Application Input/Output (I/O) Advise, Space Reservations, Sparse Files, Application Data Blocks, and Labeled NFS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7862"/>
          <seriesInfo name="DOI" value="10.17487/RFC7862"/>
        </reference>
        <reference anchor="RFC7863">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 2 External Data Representation Standard (XDR) Description</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides the External Data Representation (XDR) description for NFS version 4 minor version 2.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7863"/>
          <seriesInfo name="DOI" value="10.17487/RFC7863"/>
        </reference>
        <reference anchor="RFC8178">
          <front>
            <title>Rules for NFSv4 Extensions and Minor Versions</title>
            <author fullname="D. Noveck" initials="D." surname="Noveck"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document describes the rules relating to the extension of the NFSv4 family of protocols. It covers the creation of minor versions, the addition of optional features to existing minor versions, and the correction of flaws in features already published as Proposed Standards. The rules relating to the construction of minor versions and the interaction of minor version implementations that appear in this document supersede the minor versioning rules in RFC 5661 and other RFCs defining minor versions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8178"/>
          <seriesInfo name="DOI" value="10.17487/RFC8178"/>
        </reference>
        <reference anchor="RFC8881">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 1 Protocol</title>
            <author fullname="D. Noveck" initials="D." role="editor" surname="Noveck"/>
            <author fullname="C. Lever" initials="C." surname="Lever"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document describes the Network File System (NFS) version 4 minor version 1, including features retained from the base protocol (NFS version 4 minor version 0, which is specified in RFC 7530) and protocol extensions made subsequently. The later minor version has no dependencies on NFS version 4 minor version 0, and is considered a separate protocol.</t>
              <t>This document obsoletes RFC 5661. It substantially revises the treatment of features relating to multi-server namespace, superseding the description of those features appearing in RFC 5661.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8881"/>
          <seriesInfo name="DOI" value="10.17487/RFC8881"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-nfsv4-uncacheable-files">
          <front>
            <title>Adding an Uncacheable File Data Attribute to NFSv4.2</title>
            <author fullname="Thomas Haynes" initials="T." surname="Haynes">
              <organization>Hammerspace</organization>
            </author>
            <date day="27" month="June" year="2026"/>
            <abstract>
              <t>   Network File System version 4.2 (NFSv4.2) clients commonly perform
   client-side caching of file data in order to improve performance.  On
   some systems, applications may influence client data caching
   behavior, but there is no standardized mechanism for a server or
   administrator to indicate that particular file data should not be
   cached by clients for reasons of performance or correctness.  This
   document introduces a new file data caching attribute for NFSv4.2.
   Files marked with this attribute are intended to be accessed with
   client-side caching of file data suppressed, in order to support
   workloads that require predictable data visibility.  This document
   extends NFSv4.2.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-nfsv4-uncacheable-files-09"/>
        </reference>
        <reference anchor="RFC7204">
          <front>
            <title>Requirements for Labeled NFS</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>This memo outlines high-level requirements for the integration of flexible Mandatory Access Control (MAC) functionality into the Network File System (NFS) version 4.2 (NFSv4.2). It describes the level of protections that should be provided over protocol components and the basic structure of the proposed system. The intent here is not to present the protocol changes but to describe the environment in which they reside.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7204"/>
          <seriesInfo name="DOI" value="10.17487/RFC7204"/>
        </reference>
        <reference anchor="RFC8275">
          <front>
            <title>Allowing Inheritable NFSv4 Access Control Entries to Override the Umask</title>
            <author fullname="J. Fields" initials="J." surname="Fields"/>
            <author fullname="A. Gruenbacher" initials="A." surname="Gruenbacher"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>In many environments, inheritable NFSv4 Access Control Entries (ACEs) can be rendered ineffective by the application of the per-process file mode creation mask (umask). This can be addressed by transmitting the umask and create mode as separate pieces of data, allowing the server to make more intelligent decisions about the permissions to set on new files. This document proposes a protocol extension to accomplish that.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8275"/>
          <seriesInfo name="DOI" value="10.17487/RFC8275"/>
        </reference>
        <reference anchor="RFC8276">
          <front>
            <title>File System Extended Attributes in NFSv4</title>
            <author fullname="M. Naik" initials="M." surname="Naik"/>
            <author fullname="M. Eshel" initials="M." surname="Eshel"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>This document describes an optional feature extending the NFSv4 protocol. This feature allows extended attributes (hereinafter also referred to as xattrs) to be interrogated and manipulated using NFSv4 clients. Xattrs are provided by a file system to associate opaque metadata, not interpreted by the file system, with files and directories. Such support is present in many modern local file systems. New file attributes are provided to allow clients to query the server for xattr support, with that support consisting of new operations to get and set xattrs on file system objects.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8276"/>
          <seriesInfo name="DOI" value="10.17487/RFC8276"/>
        </reference>
        <reference anchor="MS-ABE" target="https://techcommunity.microsoft.com/blog/askds/access-based-enumeration-abe-concepts-part-1-of-2/400435">
          <front>
            <title>Access-Based Enumeration (ABE) Concepts</title>
            <author>
              <organization>Microsoft</organization>
            </author>
            <date year="2009" month="May"/>
          </front>
        </reference>
        <reference anchor="MS-SMB2" target="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/">
          <front>
            <title>Server Message Block (SMB) Protocol Versions 2 and 3</title>
            <author>
              <organization>Microsoft Corporation</organization>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Microsoft" value="MS-SMB2"/>
        </reference>
      </references>
    </references>
    <?line 527?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Trond Myklebust, Mike Snitzer, Jon Flynn, Keith Mannthey, and Thomas
Haynes all worked on the prototype at Hammerspace.</t>
      <t>Rick Macklem, Chuck Lever, and Dave Noveck reviewed the document.</t>
      <t>Chris Inacio, Chuck Lever, Brian Pawlowski, and Gorry Fairhurst
helped guide this process.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
pP4bJEzHDtNVAAA=

-->

</rfc>
