<?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-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Uncacheable Directory Attribute">Adding an Uncacheable Directory Attribute to NFSv4.2</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-nfsv4-uncacheable-directories-00"/>
    <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 51?>

<t>The Network File System version 4.2 (NFSv4.2) allows a client to
cache both metadata for file and directory objects.  While caching
directory entries (dirents) can improve performance, it can also
prevent the server from enforcing access control on individual
dirents.  This document introduces a new uncacheable directory
attribute for NFSv4.2.  Dirents marked as uncacheable <bcp14>MUST NOT</bcp14> be
stored in client-side caches.  This ensures data consistency and
integrity by requiring clients to always retrieve the most recent
data directly from the server. This document extends NFSv4.2 (see
RFC7862).</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 64?>

<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 75?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>With a remote filesystem, the client typically caches both directory
entries (dirents) in order to improve performance.  Several assumptions
are made about the rate of change in the dirents.  With NFSv4.2,
this could theoretically be mitigated by directory delegations for
the dirents.</t>
      <t>There are prior efforts to bypass the dirent caching.  Access
Based Enumeration (ABE) is used in Server Message Block (SMB)
<xref target="SMB2"/> protocol to effectively limit the namespace visibility per
user.</t>
      <t>This document introduces the uncacheable directory attribute to
NFSv4.2 to implement ABE. As such, it is an <bcp14>OPTIONAL</bcp14> to implement
attribute for NFSv4.2. However, if both the client and the server
support this attribute, then the client <bcp14>MUST</bcp14> follow the semantics
of uncacheable dirents.<cref anchor="_2">What about mixed modes?</cref></t>
      <t>A client can easily determine whether or not a server supports
the uncacheable directory attribute with a simple GETATTR on any
dirent. If the server does not support the uncacheable
attribute, it will return an error of NFS4ERR_ATTRNOTSUPP.</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 directory attribute.</t>
      <t>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 anchor="definitions">
        <name>Definitions</name>
        <dl>
          <dt>Access Based Enumeration (ABE)</dt>
          <dd>
            <t>When servicing a READDIR or GETATTR operation, the server provides
results based on the access permissions of the user making the request.</t>
          </dd>
          <dt>dirent</dt>
          <dd>
            <t>A directory entry, representing either a file or a subdirectory. In
the context of NFSv4, a dirent marked as uncacheable <bcp14>MUST NOT</bcp14> be cached
by clients.</t>
          </dd>
          <dt>dirent caching</dt>
          <dd>
            <t>A client cache that is used to avoid looking up attributes.</t>
          </dd>
          <dt>file caching</dt>
          <dd>
            <t>A client cache, normally called the page cache, which caches the
contents of a regular file. Typical usage would be to accumulate
changes to be bunched together for writing to the server.</t>
          </dd>
        </dl>
        <t>Further, the definitions of the following terms are referenced as follows:</t>
        <ul spacing="normal">
          <li>
            <t>directory delegations (<xref section="10.9" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>GETATTR (<xref section="18.7" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>hidden (<xref section="5.8.2.15" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>Mandatory Access Control (MAC) (<xref target="RFC4949"/>)</t>
          </li>
          <li>
            <t>NF4DIR (<xref section="5.8.1.2" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>NFS4ERR_ATTRNOTSUPP (<xref section="15.1.15.1" sectionFormat="of" target="RFC8881"/></t>
          </li>
          <li>
            <t>mode (<xref section="6.2.4" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>offline (<xref section="2" sectionFormat="of" target="RFC9754"/>)</t>
          </li>
          <li>
            <t>owner (<xref section="5.8.2.26" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>owner_group (<xref section="5.8.2.27" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>READDIR (<xref section="18.23" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>SETATTR (<xref section="18.30" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>system (<xref section="5.8.2.36" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
          <li>
            <t>type (<xref section="5.8.1.2" sectionFormat="of" target="RFC8881"/>)</t>
          </li>
        </ul>
      </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>
    <section anchor="caching-of-dirents">
      <name>Caching of Dirents</name>
      <t>With a remote filesystem, the client typically caches directory
entries (dirents) locally to improve performance. This cooperation
succeeds because both the server and client operate under POSIX
semantics (<xref target="POSIX.1"/>) and agree to interpretation of mode bits with
respect to the uid and gid in NFSv3 <xref target="RFC1813"/>. For NFSv4.2, these
would respectively be the mode, owner, and owner_group attributes
defined in <xref section="5" sectionFormat="of" target="RFC8881"/>.  Note that this cooperation
does not apply to Access Control List (ACLs) entries as NFSv4.2
does not implement a strict POSIX style ACL.</t>
      <t>NFSv4.2 does implement NFSv4.1 ACLs, which are enforced on the
server and not the client. As such, ACL enforcement requires the
client to bypass the dirent cache to have checks done when a new
user attempts to access the dirent.</t>
      <t>Another consideration is that not all server implementations natively
support the SMB <xref target="SMB2"/>. Instead, they layer Samba <xref target="Samba"/> on
top of the NFSv4.2 service. The attributes of hidden, system, and
offline have already been introduced in the NFSv4.2 protocol to
support Samba.  The Samba implementation can utilize these attributes
to provide SMB semantics. While private protocols can supply these
features, it is better to drive them into open standards.</t>
      <t>Another concept that can be adapted from SMB is that of Access Based
Enumeration (ABE). If a share or a folder has ABE enabled, then the
user can only see the files and sub-folders for which they have
permissions.</t>
      <t>Under the POSIX model, this can be done on the client and not
the server. However, that only works with uid, gid, and mode bits.
If we consider identity mappings, ACLS, and server local policies,
then the determination of ABE <bcp14>MUST</bcp14> be done on the server.</t>
      <t>Since cached dirents are shared by all users on a client, and the
client cannot determine access permissions for individual dirents,
all users are presented with the same set of attributes. To address
this, this document introduces the new uncacheable directory
attribute. This attribute instructs the client not to cache the
dirent for a file or directory object. Consequently, each time a
client queries for these attributes, the server's response can be
tailored to the specific user making the request.</t>
      <section anchor="sec_dirents">
        <name>Uncacheable Dirents</name>
        <t>If a file object or directory has the uncacheable directory attribute
set, then the client <bcp14>MUST NOT</bcp14> cache its dirent attributes. This
means that even if the client has previously retrieved the attributes
for a user, it <bcp14>MUST</bcp14> query the server again for those attributes on
subsequent requests. Additionally, the client <bcp14>MUST NOT</bcp14> share
attributes between different users.</t>
      </section>
    </section>
    <section anchor="xdr-for-offline-attribute">
      <name>XDR for Offline Attribute</name>
      <sourcecode type="xdr"><![CDATA[
///
/// typedef bool            fattr4_uncacheable_directory;
///
/// const FATTR4_UNCACHEABLE_DIRECTORY   = 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 directory 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>For a given user A, a client <bcp14>MUST NOT</bcp14> make access decisions for
uncacheable dirents retrieved for another user B. These decisions
<bcp14>MUST</bcp14> be made by the server.  If the client is Labeled NFS aware
(<xref target="RFC7204"/>), then the client <bcp14>MUST</bcp14> locally enforce the MAC security
policies.</t>
      <t>The uncacheable directory attribute allows dirents to be annotated
such that attributes are presented to the user based on the server's
access control decisions.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </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="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="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>
        <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="RFC9754">
          <front>
            <title>Extensions for Opening and Delegating Files in NFSv4.2</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <author fullname="T. Myklebust" initials="T." surname="Myklebust"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Network File System v4 (NFSv4) allows a client to both open a file and be granted a delegation of that file. This delegation provides the client the right to authoritatively cache metadata on the file locally. This document presents several extensions for both opening the file and delegating it to the client. This document extends NFSv4.2 (see RFC 7863).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9754"/>
          <seriesInfo name="DOI" value="10.17487/RFC9754"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="POSIX.1">
          <front>
            <title>The Open Group Base Specifications Issue 7</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2013"/>
          </front>
          <seriesInfo name="IEEE Std 1003.1, 2013 Edition" value=""/>
        </reference>
        <reference anchor="RFC1813">
          <front>
            <title>NFS Version 3 Protocol Specification</title>
            <author fullname="B. Callaghan" initials="B." surname="Callaghan"/>
            <author fullname="B. Pawlowski" initials="B." surname="Pawlowski"/>
            <author fullname="P. Staubach" initials="P." surname="Staubach"/>
            <date month="June" year="1995"/>
            <abstract>
              <t>This paper describes the NFS version 3 protocol. This paper is provided so that people can write compatible implementations. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1813"/>
          <seriesInfo name="DOI" value="10.17487/RFC1813"/>
        </reference>
        <reference anchor="Samba" target="https://www.samba.org/">
          <front>
            <title>Samba.org. Samba Project Website.</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SMB2">
          <front>
            <title>Server Message Block (SMB) Protocol Versions 2 and 3</title>
            <author>
              <organization>Microsoft Learn</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 285?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Trond Myklebust, Mike Snitzer,  and Thomas Haynes all worked on the
prototype at Hammerspace.</t>
      <t>Chris Inacio, Brian Pawlowski, and Gorry Fairhurst helped guide
this process.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
qgJ5GrCKZC+nqCW0u972V1sD8T8y9jFMqScAAA==

-->

</rfc>
