| draft-ietf-nfsv4-rfc8881bis-10.txt | draft-ietf-nfsv4-rfc8881bis-11.txt | |||
|---|---|---|---|---|
| NFSv4 D. Noveck, Ed. | NFSv4 D. Noveck, Ed. | |||
| Internet-Draft NetApp | Internet-Draft NetApp | |||
| Obsoletes: 8881, 8434 (if approved) 14 September 2026 | Obsoletes: 8881, 8434 (if approved) 23 September 2026 | |||
| Updates: 5664, 8154 (if approved) | Updates: 5664, 8154 (if approved) | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: 18 March 2027 | Expires: 27 March 2027 | |||
| Network File System (NFS) Version 4 Minor Version 1 Protocol | Network File System (NFS) Version 4 Minor Version 1 Protocol | |||
| draft-ietf-nfsv4-rfc8881bis-10 | draft-ietf-nfsv4-rfc8881bis-11 | |||
| Abstract | Abstract | |||
| This document describes the Network File System (NFS) version 4 minor | This document describes the Network File System (NFS) version 4 minor | |||
| version 1, including features retained from the base protocol (NFS | version 1, including features retained from the base protocol (NFS | |||
| version 4 minor version 0, which is specified in RFC 7530) and | version 4 minor version 0, which is specified in RFC 7530) and | |||
| protocol extensions made and part of Minor Version 1. The later | protocol extensions made and part of Minor Version 1. The later | |||
| minor version has no dependencies on NFS version 4 minor version 0, | minor version has no dependencies on NFS version 4 minor version 0, | |||
| and was, until recently, documented as a completely separate | and was, until recently, documented as a completely separate | |||
| protocol. | protocol. | |||
| skipping to change at page 1, line 45 ¶ | skipping to change at page 1, line 45 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 18 March 2027. | This Internet-Draft will expire on 27 March 2027. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2026 IETF Trust and the persons identified as the | Copyright (c) 2026 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 2, line 36 ¶ | skipping to change at page 2, line 36 ¶ | |||
| outside the IETF Standards Process, and derivative works of it may | outside the IETF Standards Process, and derivative works of it may | |||
| not be created outside the IETF Standards Process, except to format | not be created outside the IETF Standards Process, except to format | |||
| it for publication as an RFC or to translate it into languages other | it for publication as an RFC or to translate it into languages other | |||
| than English. | than English. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction to this Update . . . . . . . . . . . . . . . . . 18 | 1. Introduction to this Update . . . . . . . . . . . . . . . . . 18 | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 19 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 19 | |||
| 1.2. The Changed Role of this Specification . . . . . . . . . 20 | 1.2. The Changed Role of this Specification . . . . . . . . . 20 | |||
| 1.3. Possibility of Compatibility Issues . . . . . . . . . . . 21 | 1.3. Addressing Major Mistakes . . . . . . . . . . . . . . . . 21 | |||
| 1.3.1. Compatibility issues for RFCTBD10 . . . . . . . . . . 22 | 1.4. Possibility of Compatibility Issues . . . . . . . . . . . 23 | |||
| 1.3.2. Compatibility issues for NFSv4-wide Documents . . . . 25 | 1.4.1. Compatibility issues for RFCTBD10 . . . . . . . . . . 24 | |||
| 1.3.3. Compatibility issues for RFCTBD30 . . . . . . . . . . 26 | 1.4.2. Compatibility issues for NFSv4-wide Documents . . . . 26 | |||
| 1.4. Addressing Protocol Defects Via XDR Changes . . . . . . . 27 | 1.4.3. Compatibility issues for RFCTBD30 . . . . . . . . . . 28 | |||
| 1.5. Incorporation of RFC8434 . . . . . . . . . . . . . . . . 33 | 1.5. Addressing Protocol Defects Via XDR Changes . . . . . . . 28 | |||
| 2. Introduction to this Minor Version Specification . . . . . . 34 | 1.6. Incorporation of RFC8434 . . . . . . . . . . . . . . . . 34 | |||
| 2.1. The NFS Version 4 Minor Version 1 Protocol . . . . . . . 34 | 2. Introduction to this Minor Version Specification . . . . . . 35 | |||
| 2.2. Scope of This Document . . . . . . . . . . . . . . . . . 34 | 2.1. The NFS Version 4 Minor Version 1 Protocol . . . . . . . 35 | |||
| 2.3. NFSv4 Goals . . . . . . . . . . . . . . . . . . . . . . . 34 | 2.2. Scope of This Document . . . . . . . . . . . . . . . . . 35 | |||
| 2.4. NFSv4.1 Goals . . . . . . . . . . . . . . . . . . . . . . 35 | 2.3. NFSv4 Goals . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
| 2.5. General Definitions . . . . . . . . . . . . . . . . . . . 36 | 2.4. NFSv4.1 Goals . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 2.6. Overview of NFSv4.1 Features . . . . . . . . . . . . . . 39 | 2.5. General Definitions . . . . . . . . . . . . . . . . . . . 37 | |||
| 2.7. RPC and Security . . . . . . . . . . . . . . . . . . . . 39 | 2.6. Overview of NFSv4.1 Features . . . . . . . . . . . . . . 40 | |||
| 2.8. Protocol Structure . . . . . . . . . . . . . . . . . . . 39 | 2.7. RPC and Security . . . . . . . . . . . . . . . . . . . . 41 | |||
| 2.8.1. Core Protocol . . . . . . . . . . . . . . . . . . . . 40 | 2.8. Protocol Structure . . . . . . . . . . . . . . . . . . . 41 | |||
| 2.8.2. Separate Data Access Paths . . . . . . . . . . . . . 40 | 2.8.1. Core Protocol . . . . . . . . . . . . . . . . . . . . 41 | |||
| 2.8.2. Separate Data Access Paths . . . . . . . . . . . . . 41 | ||||
| 2.9. File System Model . . . . . . . . . . . . . . . . . . . . 40 | 2.9. File System Model . . . . . . . . . . . . . . . . . . . . 42 | |||
| 2.9.1. Filehandles . . . . . . . . . . . . . . . . . . . . . 41 | 2.9.1. Filehandles . . . . . . . . . . . . . . . . . . . . . 42 | |||
| 2.9.2. Numbered File Attributes . . . . . . . . . . . . . . 41 | 2.9.2. Numbered File Attributes . . . . . . . . . . . . . . 42 | |||
| 2.9.3. Named Attributes . . . . . . . . . . . . . . . . . . 44 | 2.9.3. Named Attributes . . . . . . . . . . . . . . . . . . 45 | |||
| 2.9.4. Multi-Server Namespace . . . . . . . . . . . . . . . 44 | 2.9.4. Multi-Server Namespace . . . . . . . . . . . . . . . 45 | |||
| 3. Locking Facilities . . . . . . . . . . . . . . . . . . . . . 45 | 3. Locking Facilities . . . . . . . . . . . . . . . . . . . . . 46 | |||
| 4. Differences from NFSv4.0 . . . . . . . . . . . . . . . . . . 46 | 4. Differences from NFSv4.0 . . . . . . . . . . . . . . . . . . 47 | |||
| 5. Core Infrastructure . . . . . . . . . . . . . . . . . . . . . 47 | 5. Core Infrastructure . . . . . . . . . . . . . . . . . . . . . 48 | |||
| 5.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 47 | 5.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 48 | |||
| 5.2. RPC and XDR . . . . . . . . . . . . . . . . . . . . . . . 47 | 5.2. RPC and XDR . . . . . . . . . . . . . . . . . . . . . . . 48 | |||
| 5.3. RPC-Based Security . . . . . . . . . . . . . . . . . . . 47 | 5.3. RPC-Based Security . . . . . . . . . . . . . . . . . . . 48 | |||
| 5.3.1. RPCSEC_GSS and Security Services . . . . . . . . . . 48 | 5.3.1. RPCSEC_GSS and Security Services . . . . . . . . . . 49 | |||
| 5.4. COMPOUND and CB_COMPOUND . . . . . . . . . . . . . . . . 48 | 5.4. COMPOUND and CB_COMPOUND . . . . . . . . . . . . . . . . 49 | |||
| 5.5. Client Identifiers and Client Owners . . . . . . . . . . 49 | 5.5. Client Identifiers and Client Owners . . . . . . . . . . 50 | |||
| 5.5.1. Upgrade from NFSv4.0 to NFSv4.1 . . . . . . . . . . . 53 | 5.5.1. Upgrade from NFSv4.0 to NFSv4.1 . . . . . . . . . . . 54 | |||
| 5.5.2. Server Release of Client ID . . . . . . . . . . . . . 53 | 5.5.2. Server Release of Client ID . . . . . . . . . . . . . 54 | |||
| 5.5.3. Resolving Client Owner Conflicts . . . . . . . . . . 54 | 5.5.3. Resolving Client Owner Conflicts . . . . . . . . . . 55 | |||
| 5.6. Server Owners . . . . . . . . . . . . . . . . . . . . . . 55 | 5.6. Server Owners . . . . . . . . . . . . . . . . . . . . . . 56 | |||
| 5.7. Transport Layers . . . . . . . . . . . . . . . . . . . . 56 | 5.7. Transport Layers . . . . . . . . . . . . . . . . . . . . 57 | |||
| 5.7.1. Desirable and Needed Properties of Transports . . . . 56 | 5.7.1. Desirable and Needed Properties of Transports . . . . 57 | |||
| 5.7.2. Client and Server Transport Behavior . . . . . . . . 57 | 5.7.2. Client and Server Transport Behavior . . . . . . . . 58 | |||
| 5.7.3. Ports . . . . . . . . . . . . . . . . . . . . . . . . 59 | 5.7.3. Ports . . . . . . . . . . . . . . . . . . . . . . . . 60 | |||
| 6. Security-related Infrastructure . . . . . . . . . . . . . . . 59 | 6. Security-related Infrastructure . . . . . . . . . . . . . . . 60 | |||
| 6.1. NFSv4.1-specific Recommendations and Requirements Regarding | 6.1. NFSv4.1-specific Recommendations and Requirements Regarding | |||
| Security Services . . . . . . . . . . . . . . . . . . . . 60 | Security Services . . . . . . . . . . . . . . . . . . . . 61 | |||
| 6.2. NFSv4.1-specific Details of Security Negotiation . . . . 62 | 6.2. NFSv4.1-specific Details of Security Negotiation . . . . 63 | |||
| 6.2.1. Put Filehandle Operations . . . . . . . . . . . . . . 62 | 6.2.1. Put Filehandle Operations . . . . . . . . . . . . . . 63 | |||
| 6.2.2. LINK and RENAME . . . . . . . . . . . . . . . . . . . 65 | 6.2.2. LINK and RENAME . . . . . . . . . . . . . . . . . . . 66 | |||
| 7. Session . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 | 7. Session . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 | |||
| 7.1. Motivation and Overview . . . . . . . . . . . . . . . . . 66 | 7.1. Motivation and Overview . . . . . . . . . . . . . . . . . 67 | |||
| 7.2. NFSv4 Integration . . . . . . . . . . . . . . . . . . . . 67 | 7.2. NFSv4 Integration . . . . . . . . . . . . . . . . . . . . 68 | |||
| 7.2.1. SEQUENCE and CB_SEQUENCE . . . . . . . . . . . . . . 68 | 7.2.1. SEQUENCE and CB_SEQUENCE . . . . . . . . . . . . . . 69 | |||
| 7.2.2. Client ID and Session Association . . . . . . . . . . 68 | 7.2.2. Client ID and Session Association . . . . . . . . . . 69 | |||
| 7.3. Channels . . . . . . . . . . . . . . . . . . . . . . . . 69 | 7.3. Channels . . . . . . . . . . . . . . . . . . . . . . . . 70 | |||
| 7.3.1. Association of Connections, Channels, and Sessions . 69 | 7.3.1. Association of Connections, Channels, and Sessions . 70 | |||
| 7.4. Server Scope . . . . . . . . . . . . . . . . . . . . . . 70 | 7.4. Server Scope . . . . . . . . . . . . . . . . . . . . . . 71 | |||
| 7.5. Trunking . . . . . . . . . . . . . . . . . . . . . . . . 72 | 7.5. Trunking . . . . . . . . . . . . . . . . . . . . . . . . 73 | |||
| 7.5.1. Verifying Claims of Matching Server Identity . . . . 75 | 7.5.1. Verifying Claims of Matching Server Identity . . . . 76 | |||
| 7.6. Exactly Once Semantics . . . . . . . . . . . . . . . . . 76 | 7.6. Exactly Once Semantics . . . . . . . . . . . . . . . . . 77 | |||
| 7.6.1. Slot Identifiers and Reply Cache . . . . . . . . . . 78 | 7.6.1. Slot Identifiers and Reply Cache . . . . . . . . . . 79 | |||
| 7.6.2. Retry and Replay of Reply . . . . . . . . . . . . . . 87 | 7.6.2. Retry and Replay of Reply . . . . . . . . . . . . . . 88 | |||
| 7.6.3. Resolving Server Callback Races . . . . . . . . . . . 89 | 7.6.3. Resolving Server Callback Races . . . . . . . . . . . 90 | |||
| 7.6.4. COMPOUND and CB_COMPOUND Construction Issues . . . . 90 | 7.6.4. COMPOUND and CB_COMPOUND Construction Issues . . . . 91 | |||
| 7.6.5. Setting Size limits for Sessions . . . . . . . . . . 92 | 7.6.5. Setting Size limits for Sessions . . . . . . . . . . 93 | |||
| 7.7. RDMA Considerations . . . . . . . . . . . . . . . . . . . 93 | 7.7. RDMA Considerations . . . . . . . . . . . . . . . . . . . 94 | |||
| 7.7.1. RDMA Connection Resources . . . . . . . . . . . . . . 93 | 7.7.1. RDMA Connection Resources . . . . . . . . . . . . . . 94 | |||
| 7.7.2. Flow Control . . . . . . . . . . . . . . . . . . . . 94 | 7.7.2. Flow Control . . . . . . . . . . . . . . . . . . . . 95 | |||
| 7.7.3. Padding . . . . . . . . . . . . . . . . . . . . . . . 94 | 7.7.3. Padding . . . . . . . . . . . . . . . . . . . . . . . 95 | |||
| 7.7.4. Dual RDMA and Non-RDMA Transports . . . . . . . . . . 96 | 7.7.4. Dual RDMA and Non-RDMA Transports . . . . . . . . . . 97 | |||
| 7.8. Session Security . . . . . . . . . . . . . . . . . . . . 96 | 7.8. Session Security . . . . . . . . . . . . . . . . . . . . 97 | |||
| 7.8.1. Session Callback Security . . . . . . . . . . . . . . 96 | 7.8.1. Session Callback Security . . . . . . . . . . . . . . 97 | |||
| 7.8.2. Backchannel RPC Security . . . . . . . . . . . . . . 96 | 7.8.2. Backchannel RPC Security . . . . . . . . . . . . . . 97 | |||
| 7.8.3. Protection from Unauthorized State Changes . . . . . 97 | 7.8.3. Protection from Unauthorized State Changes . . . . . 98 | |||
| 7.9. The Secret State Verifier (SSV) GSS Mechanism . . . . . . 101 | 7.9. The Secret State Verifier (SSV) GSS Mechanism . . . . . . 102 | |||
| 7.10. Security Considerations for RPCSEC_GSS When Using the SSV | 7.10. Security Considerations for RPCSEC_GSS When Using the SSV | |||
| Mechanism . . . . . . . . . . . . . . . . . . . . . . . 106 | Mechanism . . . . . . . . . . . . . . . . . . . . . . . 107 | |||
| 7.11. Session Mechanics - Steady State . . . . . . . . . . . . 107 | 7.11. Session Mechanics - Steady State . . . . . . . . . . . . 108 | |||
| 7.11.1. Obligations of the Server . . . . . . . . . . . . . 107 | 7.11.1. Obligations of the Server . . . . . . . . . . . . . 108 | |||
| 7.11.2. Obligations of the Client . . . . . . . . . . . . . 107 | 7.11.2. Obligations of the Client . . . . . . . . . . . . . 108 | |||
| 7.11.3. Steps the Client Takes to Establish a Session . . . 108 | 7.11.3. Steps the Client Takes to Establish a Session . . . 109 | |||
| 7.12. Session Inactivity Timer . . . . . . . . . . . . . . . . 109 | 7.12. Session Inactivity Timer . . . . . . . . . . . . . . . . 110 | |||
| 7.13. Session Mechanics - Recovery . . . . . . . . . . . . . . 109 | 7.13. Session Mechanics - Recovery . . . . . . . . . . . . . . 110 | |||
| 7.13.1. Events Requiring Client Action . . . . . . . . . . . 109 | 7.13.1. Events Requiring Client Action . . . . . . . . . . . 110 | |||
| 7.13.2. Events Requiring Server Action . . . . . . . . . . . 114 | 7.13.2. Events Requiring Server Action . . . . . . . . . . . 115 | |||
| 7.14. Parallel NFS and Sessions . . . . . . . . . . . . . . . . 115 | 7.14. Parallel NFS and Sessions . . . . . . . . . . . . . . . . 116 | |||
| 8. Persistence . . . . . . . . . . . . . . . . . . . . . . . . . 115 | 8. Persistence . . . . . . . . . . . . . . . . . . . . . . . . . 116 | |||
| 8.1. Need for Feature Respecification . . . . . . . . . . . . 116 | 8.1. Need for Feature Respecification . . . . . . . . . . . . 117 | |||
| 8.2. Persistence of Reply Cache . . . . . . . . . . . . . . . 117 | 8.2. Persistence of Reply Cache . . . . . . . . . . . . . . . 118 | |||
| 8.3. Persistence of Locking State . . . . . . . . . . . . . . 119 | 8.3. Persistence of Locking State . . . . . . . . . . . . . . 120 | |||
| 8.4. Client Handling of Server Failure When Persistence Can be | 8.4. Client Handling of Server Failure When Persistence Can be | |||
| Used . . . . . . . . . . . . . . . . . . . . . . . . . . 120 | Used . . . . . . . . . . . . . . . . . . . . . . . . . . 121 | |||
| 8.5. Client Use of Session-based Persistence . . . . . . . . . 121 | 8.5. Client Use of Session-based Persistence . . . . . . . . . 122 | |||
| 8.6. Client Use of Clientid-based Persistence . . . . . . . . 123 | 8.6. Client Use of Clientid-based Persistence . . . . . . . . 124 | |||
| 9. Protocol Constants and Data Types . . . . . . . . . . . . . . 124 | 9. Protocol Constants and Data Types . . . . . . . . . . . . . . 125 | |||
| 9.1. Basic Constants . . . . . . . . . . . . . . . . . . . . . 124 | 9.1. Basic Constants . . . . . . . . . . . . . . . . . . . . . 125 | |||
| 9.2. Basic Data Types . . . . . . . . . . . . . . . . . . . . 125 | 9.2. Basic Data Types . . . . . . . . . . . . . . . . . . . . 126 | |||
| 9.3. Structured Data Types . . . . . . . . . . . . . . . . . . 128 | 9.3. Structured Data Types . . . . . . . . . . . . . . . . . . 129 | |||
| 9.3.1. nfstime4 . . . . . . . . . . . . . . . . . . . . . . 128 | 9.3.1. nfstime4 . . . . . . . . . . . . . . . . . . . . . . 129 | |||
| 9.3.2. time_how4 . . . . . . . . . . . . . . . . . . . . . . 129 | 9.3.2. time_how4 . . . . . . . . . . . . . . . . . . . . . . 130 | |||
| 9.3.3. settime4 . . . . . . . . . . . . . . . . . . . . . . 129 | 9.3.3. settime4 . . . . . . . . . . . . . . . . . . . . . . 130 | |||
| 9.3.4. specdata4 . . . . . . . . . . . . . . . . . . . . . . 129 | 9.3.4. specdata4 . . . . . . . . . . . . . . . . . . . . . . 130 | |||
| 9.3.5. fsid4 . . . . . . . . . . . . . . . . . . . . . . . . 129 | 9.3.5. fsid4 . . . . . . . . . . . . . . . . . . . . . . . . 130 | |||
| 9.3.6. change_policy4 . . . . . . . . . . . . . . . . . . . 129 | 9.3.6. change_policy4 . . . . . . . . . . . . . . . . . . . 130 | |||
| 9.3.7. fattr4 . . . . . . . . . . . . . . . . . . . . . . . 130 | 9.3.7. fattr4 . . . . . . . . . . . . . . . . . . . . . . . 131 | |||
| 9.3.8. change_info4 . . . . . . . . . . . . . . . . . . . . 130 | 9.3.8. change_info4 . . . . . . . . . . . . . . . . . . . . 131 | |||
| 9.3.9. netaddr4 . . . . . . . . . . . . . . . . . . . . . . 130 | 9.3.9. netaddr4 . . . . . . . . . . . . . . . . . . . . . . 131 | |||
| 9.3.10. state_owner4 . . . . . . . . . . . . . . . . . . . . 131 | 9.3.10. state_owner4 . . . . . . . . . . . . . . . . . . . . 132 | |||
| 9.3.11. open_to_lock_owner4 . . . . . . . . . . . . . . . . . 131 | 9.3.11. open_to_lock_owner4 . . . . . . . . . . . . . . . . . 132 | |||
| 9.3.12. stateid4 . . . . . . . . . . . . . . . . . . . . . . 131 | 9.3.12. stateid4 . . . . . . . . . . . . . . . . . . . . . . 132 | |||
| 9.3.13. layouttype4 . . . . . . . . . . . . . . . . . . . . . 132 | 9.3.13. layouttype4 . . . . . . . . . . . . . . . . . . . . . 133 | |||
| 9.3.14. deviceid4 . . . . . . . . . . . . . . . . . . . . . . 132 | 9.3.14. deviceid4 . . . . . . . . . . . . . . . . . . . . . . 133 | |||
| 9.3.15. device_addr4 . . . . . . . . . . . . . . . . . . . . 133 | 9.3.15. device_addr4 . . . . . . . . . . . . . . . . . . . . 134 | |||
| 9.3.16. layout_content4 . . . . . . . . . . . . . . . . . . . 133 | 9.3.16. layout_content4 . . . . . . . . . . . . . . . . . . . 134 | |||
| 9.3.17. layout4 . . . . . . . . . . . . . . . . . . . . . . . 133 | 9.3.17. layout4 . . . . . . . . . . . . . . . . . . . . . . . 134 | |||
| 9.3.18. layoutupdate4 . . . . . . . . . . . . . . . . . . . . 134 | 9.3.18. layoutupdate4 . . . . . . . . . . . . . . . . . . . . 135 | |||
| 9.3.19. layouthint4 . . . . . . . . . . . . . . . . . . . . . 134 | 9.3.19. layouthint4 . . . . . . . . . . . . . . . . . . . . . 135 | |||
| 9.3.20. layoutiomode4 . . . . . . . . . . . . . . . . . . . . 134 | 9.3.20. layoutiomode4 . . . . . . . . . . . . . . . . . . . . 135 | |||
| 9.3.21. nfs_impl_id4 . . . . . . . . . . . . . . . . . . . . 135 | 9.3.21. nfs_impl_id4 . . . . . . . . . . . . . . . . . . . . 136 | |||
| 9.3.22. threshold_item4 . . . . . . . . . . . . . . . . . . . 135 | 9.3.22. threshold_item4 . . . . . . . . . . . . . . . . . . . 136 | |||
| 9.3.23. mdsthreshold4 . . . . . . . . . . . . . . . . . . . . 136 | 9.3.23. mdsthreshold4 . . . . . . . . . . . . . . . . . . . . 137 | |||
| 10. Filehandles . . . . . . . . . . . . . . . . . . . . . . . . . 137 | 10. Filehandles . . . . . . . . . . . . . . . . . . . . . . . . . 138 | |||
| 10.1. Obtaining the First Filehandle . . . . . . . . . . . . . 137 | 10.1. Obtaining the First Filehandle . . . . . . . . . . . . . 138 | |||
| 10.1.1. Root Filehandle . . . . . . . . . . . . . . . . . . 137 | 10.1.1. Root Filehandle . . . . . . . . . . . . . . . . . . 138 | |||
| 10.1.2. Public Filehandle . . . . . . . . . . . . . . . . . 138 | 10.1.2. Public Filehandle . . . . . . . . . . . . . . . . . 139 | |||
| 10.2. Filehandle Types . . . . . . . . . . . . . . . . . . . . 138 | 10.2. Filehandle Types . . . . . . . . . . . . . . . . . . . . 139 | |||
| 10.2.1. General Properties of a Filehandle . . . . . . . . . 138 | 10.2.1. General Properties of a Filehandle . . . . . . . . . 139 | |||
| 10.2.2. Persistent Filehandle . . . . . . . . . . . . . . . 139 | 10.2.2. Persistent Filehandle . . . . . . . . . . . . . . . 140 | |||
| 10.2.3. Volatile Filehandle . . . . . . . . . . . . . . . . 139 | 10.2.3. Volatile Filehandle . . . . . . . . . . . . . . . . 140 | |||
| 10.3. One Method of Constructing a Volatile Filehandle . . . . 141 | 10.3. One Method of Constructing a Volatile Filehandle . . . . 142 | |||
| 10.4. Client Recovery from Filehandle Expiration . . . . . . . 141 | 10.4. Client Recovery from Filehandle Expiration . . . . . . . 142 | |||
| 11. File Attributes . . . . . . . . . . . . . . . . . . . . . . . 142 | 11. File Attributes . . . . . . . . . . . . . . . . . . . . . . . 143 | |||
| 11.1. Categorization of File Attributes . . . . . . . . . . . 142 | 11.1. Categorization of File Attributes . . . . . . . . . . . 143 | |||
| 11.2. Changes in the Categorization of File Attributes . . . . 143 | 11.2. Changes in the Categorization of File Attributes . . . . 144 | |||
| 11.3. Categorization of Authorization-related Attributes . . . 144 | 11.3. Categorization of Authorization-related Attributes . . . 145 | |||
| 11.4. REQUIRED Attributes . . . . . . . . . . . . . . . . . . 145 | 11.4. REQUIRED Attributes . . . . . . . . . . . . . . . . . . 146 | |||
| 11.5. OPTIONAL Attributes . . . . . . . . . . . . . . . . . . 145 | 11.5. OPTIONAL Attributes . . . . . . . . . . . . . . . . . . 146 | |||
| 11.6. Experimental Attributes . . . . . . . . . . . . . . . . 146 | 11.6. Experimental Attributes . . . . . . . . . . . . . . . . 147 | |||
| 11.7. Named Attributes . . . . . . . . . . . . . . . . . . . . 146 | 11.7. Named Attributes . . . . . . . . . . . . . . . . . . . . 147 | |||
| 12. Classification of Attributes . . . . . . . . . . . . . . . . 149 | 12. Classification of Attributes . . . . . . . . . . . . . . . . 150 | |||
| 13. Set-Only and Get-Only Attributes . . . . . . . . . . . . . . 150 | 13. Set-Only and Get-Only Attributes . . . . . . . . . . . . . . 151 | |||
| 14. REQUIRED Attributes - List and Definition References . . . . 150 | 14. REQUIRED Attributes - List and Definition References . . . . 151 | |||
| 15. OPTIONAL Attributes - List and Definition References . . . . 151 | 15. OPTIONAL Attributes - List and Definition References . . . . 152 | |||
| 16. Attribute Definitions . . . . . . . . . . . . . . . . . . . . 155 | 16. Attribute Definitions . . . . . . . . . . . . . . . . . . . . 156 | |||
| 16.1. Definitions of REQUIRED Attributes . . . . . . . . . . . 155 | 16.1. Definitions of REQUIRED Attributes . . . . . . . . . . . 156 | |||
| 16.1.1. Attribute 0: supported_attrs . . . . . . . . . . . . 155 | 16.1.1. Attribute 0: supported_attrs . . . . . . . . . . . . 156 | |||
| 16.1.2. Attribute 1: type . . . . . . . . . . . . . . . . . 156 | 16.1.2. Attribute 1: type . . . . . . . . . . . . . . . . . 157 | |||
| 16.1.3. Attribute 2: fh_expire_type . . . . . . . . . . . . 156 | 16.1.3. Attribute 2: fh_expire_type . . . . . . . . . . . . 157 | |||
| 16.1.4. Attribute 3: change . . . . . . . . . . . . . . . . 156 | 16.1.4. Attribute 3: change . . . . . . . . . . . . . . . . 157 | |||
| 16.1.5. Attribute 4: size . . . . . . . . . . . . . . . . . 157 | 16.1.5. Attribute 4: size . . . . . . . . . . . . . . . . . 158 | |||
| 16.1.6. Attribute 5: link_support . . . . . . . . . . . . . 157 | 16.1.6. Attribute 5: link_support . . . . . . . . . . . . . 158 | |||
| 16.1.7. Attribute 6: symlink_support . . . . . . . . . . . . 157 | 16.1.7. Attribute 6: symlink_support . . . . . . . . . . . . 158 | |||
| 16.1.8. Attribute 7: named_attr . . . . . . . . . . . . . . 157 | 16.1.8. Attribute 7: named_attr . . . . . . . . . . . . . . 158 | |||
| 16.1.9. Attribute 8: fsid . . . . . . . . . . . . . . . . . 157 | 16.1.9. Attribute 8: fsid . . . . . . . . . . . . . . . . . 158 | |||
| 16.1.10. Attribute 9: unique_handles . . . . . . . . . . . . 157 | 16.1.10. Attribute 9: unique_handles . . . . . . . . . . . . 158 | |||
| 16.1.11. Attribute 10: lease_time . . . . . . . . . . . . . . 157 | 16.1.11. Attribute 10: lease_time . . . . . . . . . . . . . . 158 | |||
| 16.1.12. Attribute 11: rdattr_error . . . . . . . . . . . . . 157 | 16.1.12. Attribute 11: rdattr_error . . . . . . . . . . . . . 158 | |||
| 16.1.13. Attribute 19: filehandle . . . . . . . . . . . . . . 157 | 16.1.13. Attribute 19: filehandle . . . . . . . . . . . . . . 158 | |||
| 16.1.14. Attribute 75: suppattr_exclcreat . . . . . . . . . . 157 | 16.1.14. Attribute 75: suppattr_exclcreat . . . . . . . . . . 158 | |||
| 16.2. Definitions of Uncategorized OPTIONAL Attributes . . . . 158 | 16.2. Definitions of Uncategorized OPTIONAL Attributes . . . . 159 | |||
| 16.2.1. Attribute 14: archive . . . . . . . . . . . . . . . 158 | 16.2.1. Attribute 14: archive . . . . . . . . . . . . . . . 159 | |||
| 16.2.2. Attribute 15: cansettime . . . . . . . . . . . . . . 158 | 16.2.2. Attribute 15: cansettime . . . . . . . . . . . . . . 159 | |||
| 16.2.3. Attribute 16: case_insensitive . . . . . . . . . . . 158 | 16.2.3. Attribute 16: case_insensitive . . . . . . . . . . . 159 | |||
| 16.2.4. Attribute 17: case_preserving . . . . . . . . . . . 158 | 16.2.4. Attribute 17: case_preserving . . . . . . . . . . . 159 | |||
| 16.2.5. Attribute 60: change_policy . . . . . . . . . . . . 158 | 16.2.5. Attribute 60: change_policy . . . . . . . . . . . . 159 | |||
| 16.2.6. Attribute 18: chown_restricted . . . . . . . . . . . 159 | 16.2.6. Attribute 18: chown_restricted . . . . . . . . . . . 160 | |||
| 16.2.7. Attribute 20: fileid . . . . . . . . . . . . . . . . 159 | 16.2.7. Attribute 20: fileid . . . . . . . . . . . . . . . . 160 | |||
| 16.2.8. Attribute 21: files_avail . . . . . . . . . . . . . 159 | 16.2.8. Attribute 21: files_avail . . . . . . . . . . . . . 160 | |||
| 16.2.9. Attribute 22: files_free . . . . . . . . . . . . . . 159 | 16.2.9. Attribute 22: files_free . . . . . . . . . . . . . . 160 | |||
| 16.2.10. Attribute 23: files_total . . . . . . . . . . . . . 159 | 16.2.10. Attribute 23: files_total . . . . . . . . . . . . . 160 | |||
| 16.2.11. Attribute 76: fs_charset_cap . . . . . . . . . . . . 159 | 16.2.11. Attribute 76: fs_charset_cap . . . . . . . . . . . . 160 | |||
| 16.2.12. Attribute 24: fs_locations . . . . . . . . . . . . . 159 | 16.2.12. Attribute 24: fs_locations . . . . . . . . . . . . . 160 | |||
| 16.2.13. Attribute 67: fs_locations_info . . . . . . . . . . 159 | 16.2.13. Attribute 67: fs_locations_info . . . . . . . . . . 160 | |||
| 16.2.14. Attribute 61: fs_status . . . . . . . . . . . . . . 159 | 16.2.14. Attribute 61: fs_status . . . . . . . . . . . . . . 160 | |||
| 16.2.15. Attribute 25: hidden . . . . . . . . . . . . . . . . 160 | 16.2.15. Attribute 25: hidden . . . . . . . . . . . . . . . . 161 | |||
| 16.2.16. Attribute 26: homogeneous . . . . . . . . . . . . . 160 | 16.2.16. Attribute 26: homogeneous . . . . . . . . . . . . . 161 | |||
| 16.2.17. Attribute 27: maxfilesize . . . . . . . . . . . . . 160 | 16.2.17. Attribute 27: maxfilesize . . . . . . . . . . . . . 161 | |||
| 16.2.18. Attribute 28: maxlink . . . . . . . . . . . . . . . 160 | 16.2.18. Attribute 28: maxlink . . . . . . . . . . . . . . . 161 | |||
| 16.2.19. Attribute 29: maxname . . . . . . . . . . . . . . . 160 | 16.2.19. Attribute 29: maxname . . . . . . . . . . . . . . . 161 | |||
| 16.2.20. Attribute 30: maxread . . . . . . . . . . . . . . . 160 | 16.2.20. Attribute 30: maxread . . . . . . . . . . . . . . . 161 | |||
| 16.2.21. Attribute 31: maxwrite . . . . . . . . . . . . . . . 160 | 16.2.21. Attribute 31: maxwrite . . . . . . . . . . . . . . . 161 | |||
| 16.2.22. Attribute 32: mimetype . . . . . . . . . . . . . . . 160 | 16.2.22. Attribute 32: mimetype . . . . . . . . . . . . . . . 161 | |||
| 16.2.23. Attribute 55: mounted_on_fileid . . . . . . . . . . 160 | 16.2.23. Attribute 55: mounted_on_fileid . . . . . . . . . . 161 | |||
| 16.2.24. Attribute 34: no_trunc . . . . . . . . . . . . . . . 162 | 16.2.24. Attribute 34: no_trunc . . . . . . . . . . . . . . . 163 | |||
| 16.2.25. Attribute 35: numlinks . . . . . . . . . . . . . . . 162 | 16.2.25. Attribute 35: numlinks . . . . . . . . . . . . . . . 163 | |||
| 16.2.26. Attribute 38: quota_avail_hard . . . . . . . . . . . 162 | 16.2.26. Attribute 38: quota_avail_hard . . . . . . . . . . . 163 | |||
| 16.2.27. Attribute 39: quota_avail_soft . . . . . . . . . . . 162 | 16.2.27. Attribute 39: quota_avail_soft . . . . . . . . . . . 163 | |||
| 16.2.28. Attribute 40: quota_used . . . . . . . . . . . . . . 163 | 16.2.28. Attribute 40: quota_used . . . . . . . . . . . . . . 164 | |||
| 16.2.29. Attribute 41: rawdev . . . . . . . . . . . . . . . . 163 | 16.2.29. Attribute 41: rawdev . . . . . . . . . . . . . . . . 164 | |||
| 16.2.30. Attribute 42: space_avail . . . . . . . . . . . . . 163 | 16.2.30. Attribute 42: space_avail . . . . . . . . . . . . . 164 | |||
| 16.2.31. Attribute 43: space_free . . . . . . . . . . . . . . 163 | 16.2.31. Attribute 43: space_free . . . . . . . . . . . . . . 164 | |||
| 16.2.32. Attribute 44: space_total . . . . . . . . . . . . . 163 | 16.2.32. Attribute 44: space_total . . . . . . . . . . . . . 164 | |||
| 16.2.33. Attribute 45: space_used . . . . . . . . . . . . . . 163 | 16.2.33. Attribute 45: space_used . . . . . . . . . . . . . . 164 | |||
| 16.2.34. Attribute 46: system . . . . . . . . . . . . . . . . 163 | 16.2.34. Attribute 46: system . . . . . . . . . . . . . . . . 164 | |||
| 16.2.35. Attribute 47: time_access . . . . . . . . . . . . . 164 | 16.2.35. Attribute 47: time_access . . . . . . . . . . . . . 165 | |||
| 16.2.36. Attribute 48: time_access_set . . . . . . . . . . . 164 | 16.2.36. Attribute 48: time_access_set . . . . . . . . . . . 165 | |||
| 16.2.37. Attribute 49: time_backup . . . . . . . . . . . . . 164 | 16.2.37. Attribute 49: time_backup . . . . . . . . . . . . . 165 | |||
| 16.2.38. Attribute 50: time_create . . . . . . . . . . . . . 164 | 16.2.38. Attribute 50: time_create . . . . . . . . . . . . . 165 | |||
| 16.2.39. Attribute 51: time_delta . . . . . . . . . . . . . . 164 | 16.2.39. Attribute 51: time_delta . . . . . . . . . . . . . . 165 | |||
| 16.2.40. Attribute 52: time_metadata . . . . . . . . . . . . 164 | 16.2.40. Attribute 52: time_metadata . . . . . . . . . . . . 165 | |||
| 16.2.41. Attribute 53: time_modify . . . . . . . . . . . . . 164 | 16.2.41. Attribute 53: time_modify . . . . . . . . . . . . . 165 | |||
| 16.2.42. Attribute 54: time_modify_set . . . . . . . . . . . 165 | 16.2.42. Attribute 54: time_modify_set . . . . . . . . . . . 166 | |||
| 17. Interpreting User and Group Designations . . . . . . . . . . 165 | 17. Interpreting User and Group Designations . . . . . . . . . . 166 | |||
| 17.1. Translation Framework . . . . . . . . . . . . . . . . . 167 | 17.1. Translation Framework . . . . . . . . . . . . . . . . . 168 | |||
| 17.2. Issue to be Addressed Regarding Translation . . . . . . 167 | 17.2. Issue to be Addressed Regarding Translation . . . . . . 168 | |||
| 17.3. User and Group Designations of the Form Name@Domain . . 168 | 17.3. User and Group Designations of the Form Name@Domain . . 169 | |||
| 17.4. User and Group Designations of the Form of Stringized | 17.4. User and Group Designations of the Form of Stringized | |||
| Numerics . . . . . . . . . . . . . . . . . . . . . . . . 170 | Numerics . . . . . . . . . . . . . . . . . . . . . . . . 171 | |||
| 17.5. User and Group Designations of the Form | 17.5. User and Group Designations of the Form | |||
| Integer@Domain . . . . . . . . . . . . . . . . . . . . . 170 | Integer@Domain . . . . . . . . . . . . . . . . . . . . . 171 | |||
| 18. Character Case Attributes . . . . . . . . . . . . . . . . . . 171 | 18. Character Case Attributes . . . . . . . . . . . . . . . . . . 172 | |||
| 19. Directory Notification Attributes . . . . . . . . . . . . . . 171 | 19. Directory Notification Attributes . . . . . . . . . . . . . . 172 | |||
| 19.1. Attribute 56: dir_notif_delay . . . . . . . . . . . . . 171 | 19.1. Attribute 56: dir_notif_delay . . . . . . . . . . . . . 172 | |||
| 19.2. Attribute 57: dirent_notif_delay . . . . . . . . . . . . 171 | 19.2. Attribute 57: dirent_notif_delay . . . . . . . . . . . . 172 | |||
| 20. pNFS Attribute Definitions . . . . . . . . . . . . . . . . . 171 | 20. pNFS Attribute Definitions . . . . . . . . . . . . . . . . . 172 | |||
| 20.1. Attribute 62: fs_layout_type . . . . . . . . . . . . . . 171 | 20.1. Attribute 62: fs_layout_type . . . . . . . . . . . . . . 172 | |||
| 20.2. Attribute 66: layout_alignment . . . . . . . . . . . . . 172 | 20.2. Attribute 66: layout_alignment . . . . . . . . . . . . . 173 | |||
| 20.3. Attribute 65: layout_blksize . . . . . . . . . . . . . . 172 | 20.3. Attribute 65: layout_blksize . . . . . . . . . . . . . . 173 | |||
| 20.4. Attribute 63: layout_hint . . . . . . . . . . . . . . . 172 | 20.4. Attribute 63: layout_hint . . . . . . . . . . . . . . . 173 | |||
| 20.5. Attribute 64: layout_type . . . . . . . . . . . . . . . 172 | 20.5. Attribute 64: layout_type . . . . . . . . . . . . . . . 173 | |||
| 20.6. Attribute 68: mdsthreshold . . . . . . . . . . . . . . . 173 | 20.6. Attribute 68: mdsthreshold . . . . . . . . . . . . . . . 174 | |||
| 21. Retention Attributes . . . . . . . . . . . . . . . . . . . . 173 | 21. Retention Attributes . . . . . . . . . . . . . . . . . . . . 174 | |||
| 21.1. Attribute 69: retention_get . . . . . . . . . . . . . . 174 | 21.1. Attribute 69: retention_get . . . . . . . . . . . . . . 175 | |||
| 21.2. Attribute 70: retention_set . . . . . . . . . . . . . . 174 | 21.2. Attribute 70: retention_set . . . . . . . . . . . . . . 175 | |||
| 21.3. Attribute 71: retentevt_get . . . . . . . . . . . . . . 175 | 21.3. Attribute 71: retentevt_get . . . . . . . . . . . . . . 176 | |||
| 21.4. Attribute 72: retentevt_set . . . . . . . . . . . . . . 175 | 21.4. Attribute 72: retentevt_set . . . . . . . . . . . . . . 176 | |||
| 21.5. Attribute 73: retention_hold . . . . . . . . . . . . . . 176 | 21.5. Attribute 73: retention_hold . . . . . . . . . . . . . . 177 | |||
| 22. Access Control Attributes . . . . . . . . . . . . . . . . . . 176 | 22. Access Control Attributes . . . . . . . . . . . . . . . . . . 177 | |||
| 23. Single-Server Namespace . . . . . . . . . . . . . . . . . . . 176 | 23. Single-Server Namespace . . . . . . . . . . . . . . . . . . . 177 | |||
| 23.1. Server Exports . . . . . . . . . . . . . . . . . . . . . 177 | 23.1. Server Exports . . . . . . . . . . . . . . . . . . . . . 178 | |||
| 23.2. Browsing Exports . . . . . . . . . . . . . . . . . . . . 177 | 23.2. Browsing Exports . . . . . . . . . . . . . . . . . . . . 178 | |||
| 23.3. Server Pseudo File System . . . . . . . . . . . . . . . 178 | 23.3. Server Pseudo File System . . . . . . . . . . . . . . . 179 | |||
| 23.4. Multiple Roots . . . . . . . . . . . . . . . . . . . . . 178 | 23.4. Multiple Roots . . . . . . . . . . . . . . . . . . . . . 179 | |||
| 23.5. Filehandle Volatility . . . . . . . . . . . . . . . . . 178 | 23.5. Filehandle Volatility . . . . . . . . . . . . . . . . . 179 | |||
| 23.6. Exported Root . . . . . . . . . . . . . . . . . . . . . 179 | 23.6. Exported Root . . . . . . . . . . . . . . . . . . . . . 180 | |||
| 23.7. Mount Point Crossing . . . . . . . . . . . . . . . . . . 179 | 23.7. Mount Point Crossing . . . . . . . . . . . . . . . . . . 180 | |||
| 23.8. Security Policy and Namespace Presentation . . . . . . . 180 | 23.8. Security Policy and Namespace Presentation . . . . . . . 181 | |||
| 24. State Management . . . . . . . . . . . . . . . . . . . . . . 181 | 24. State Management . . . . . . . . . . . . . . . . . . . . . . 182 | |||
| 24.1. Client and Session ID . . . . . . . . . . . . . . . . . 181 | 24.1. Client and Session ID . . . . . . . . . . . . . . . . . 182 | |||
| 24.2. Stateid Definition . . . . . . . . . . . . . . . . . . . 182 | 24.2. Stateid Definition . . . . . . . . . . . . . . . . . . . 183 | |||
| 24.2.1. Stateid Types . . . . . . . . . . . . . . . . . . . 182 | 24.2.1. Stateid Types . . . . . . . . . . . . . . . . . . . 183 | |||
| 24.2.2. Stateid Structure . . . . . . . . . . . . . . . . . 184 | 24.2.2. Stateid Structure . . . . . . . . . . . . . . . . . 185 | |||
| 24.2.3. Special Stateids . . . . . . . . . . . . . . . . . . 185 | 24.2.3. Special Stateids . . . . . . . . . . . . . . . . . . 186 | |||
| 24.2.4. Stateid Lifetime and Validation . . . . . . . . . . 187 | 24.2.4. Stateid Lifetime and Validation . . . . . . . . . . 188 | |||
| 24.2.5. Stateid Use for I/O Operations . . . . . . . . . . . 190 | 24.2.5. Stateid Use for I/O Operations . . . . . . . . . . . 191 | |||
| 24.2.6. Stateid Use for SETATTR Operations . . . . . . . . . 191 | 24.2.6. Stateid Use for SETATTR Operations . . . . . . . . . 192 | |||
| 24.3. Lease Renewal . . . . . . . . . . . . . . . . . . . . . 191 | 24.3. Lease Renewal . . . . . . . . . . . . . . . . . . . . . 192 | |||
| 24.4. Crash Recovery . . . . . . . . . . . . . . . . . . . . . 193 | 24.4. Crash Recovery . . . . . . . . . . . . . . . . . . . . . 194 | |||
| 24.4.1. Client Failure and Recovery . . . . . . . . . . . . 194 | 24.4.1. Client Failure and Recovery . . . . . . . . . . . . 195 | |||
| 24.4.2. Server Failure and Recovery . . . . . . . . . . . . 195 | 24.4.2. Server Failure and Recovery . . . . . . . . . . . . 196 | |||
| 24.4.3. Network Partitions and Recovery . . . . . . . . . . 200 | 24.4.3. Network Partitions and Recovery . . . . . . . . . . 201 | |||
| 24.5. Server Revocation of Locks . . . . . . . . . . . . . . . 205 | 24.5. Server Revocation of Locks . . . . . . . . . . . . . . . 206 | |||
| 24.6. Short and Long Leases . . . . . . . . . . . . . . . . . 206 | 24.6. Short and Long Leases . . . . . . . . . . . . . . . . . 207 | |||
| 24.7. Clocks, Propagation Delay, and Calculating Lease | 24.7. Clocks, Propagation Delay, and Calculating Lease | |||
| Expiration . . . . . . . . . . . . . . . . . . . . . . . 206 | Expiration . . . . . . . . . . . . . . . . . . . . . . . 207 | |||
| 24.8. Obsolete Locking Infrastructure from NFSv4.0 . . . . . . 207 | 24.8. Obsolete Locking Infrastructure from NFSv4.0 . . . . . . 208 | |||
| 25. File Locking and Share Reservations . . . . . . . . . . . . . 208 | 25. File Locking and Share Reservations . . . . . . . . . . . . . 209 | |||
| 25.1. Opens and Byte-Range Locks . . . . . . . . . . . . . . . 208 | 25.1. Opens and Byte-Range Locks . . . . . . . . . . . . . . . 209 | |||
| 25.1.1. State-Owner Definition . . . . . . . . . . . . . . . 208 | 25.1.1. State-Owner Definition . . . . . . . . . . . . . . . 209 | |||
| 25.1.2. Use of the Stateid and Locking . . . . . . . . . . . 209 | 25.1.2. Use of the Stateid and Locking . . . . . . . . . . . 210 | |||
| 25.2. Lock Ranges . . . . . . . . . . . . . . . . . . . . . . 212 | ||||
| 25.3. Upgrading and Downgrading Locks . . . . . . . . . . . . 212 | 25.2. Lock Ranges . . . . . . . . . . . . . . . . . . . . . . 213 | |||
| 25.4. Stateid Seqid Values and Byte-Range Locks . . . . . . . 213 | 25.3. Upgrading and Downgrading Locks . . . . . . . . . . . . 213 | |||
| 25.5. Issues with Multiple Open-Owners . . . . . . . . . . . . 213 | 25.4. Stateid Seqid Values and Byte-Range Locks . . . . . . . 214 | |||
| 25.6. Blocking Locks . . . . . . . . . . . . . . . . . . . . . 214 | 25.5. Issues with Multiple Open-Owners . . . . . . . . . . . . 214 | |||
| 25.7. Share Reservations . . . . . . . . . . . . . . . . . . . 215 | 25.6. Blocking Locks . . . . . . . . . . . . . . . . . . . . . 215 | |||
| 25.8. OPEN/CLOSE Operations . . . . . . . . . . . . . . . . . 216 | 25.7. Share Reservations . . . . . . . . . . . . . . . . . . . 216 | |||
| 25.9. Open Upgrade and Downgrade . . . . . . . . . . . . . . . 217 | 25.8. OPEN/CLOSE Operations . . . . . . . . . . . . . . . . . 217 | |||
| 25.10. Parallel OPENs . . . . . . . . . . . . . . . . . . . . . 218 | 25.9. Open Upgrade and Downgrade . . . . . . . . . . . . . . . 218 | |||
| 25.11. Reclaim of Open and Byte-Range Locks . . . . . . . . . . 218 | 25.10. Parallel OPENs . . . . . . . . . . . . . . . . . . . . . 219 | |||
| 26. Client-Side Caching for Files . . . . . . . . . . . . . . . . 219 | 25.11. Reclaim of Open and Byte-Range Locks . . . . . . . . . . 219 | |||
| 26.1. Performance Challenges for Client-Side Caching . . . . . 221 | 26. Client-Side Caching for Files . . . . . . . . . . . . . . . . 220 | |||
| 26.2. Delegation and Callbacks . . . . . . . . . . . . . . . . 222 | 26.1. Performance Challenges for Client-Side Caching . . . . . 222 | |||
| 26.2.1. Delegation Recovery . . . . . . . . . . . . . . . . 224 | 26.2. Delegation and Callbacks . . . . . . . . . . . . . . . . 223 | |||
| 26.3. Data Caching . . . . . . . . . . . . . . . . . . . . . . 227 | 26.2.1. Delegation Recovery . . . . . . . . . . . . . . . . 225 | |||
| 26.3.1. Data Caching and OPENs . . . . . . . . . . . . . . . 227 | 26.3. Data Caching . . . . . . . . . . . . . . . . . . . . . . 228 | |||
| 26.3.2. Data Caching and Close-to-open Consistency . . . . . 228 | 26.3.1. Data Caching and OPENs . . . . . . . . . . . . . . . 228 | |||
| 26.3.3. Data Caching and Files Open for Write . . . . . . . 229 | 26.3.2. Data Caching and Close-to-open Consistency . . . . . 229 | |||
| 26.3.4. Data Caching and File Locking . . . . . . . . . . . 230 | 26.3.3. Data Caching and Files Open for Write . . . . . . . 230 | |||
| 26.3.5. Data Caching and Mandatory File Locking . . . . . . 232 | 26.3.4. Data Caching and File Locking . . . . . . . . . . . 231 | |||
| 26.3.6. Data Caching and File Identity . . . . . . . . . . . 232 | 26.3.5. Data Caching and Mandatory File Locking . . . . . . 233 | |||
| 26.4. Open Delegation . . . . . . . . . . . . . . . . . . . . 233 | 26.3.6. Data Caching and File Identity . . . . . . . . . . . 233 | |||
| 26.4.1. Open Delegation and Data Caching . . . . . . . . . . 236 | 26.4. Open Delegation . . . . . . . . . . . . . . . . . . . . 234 | |||
| 26.4.2. Open Delegation and File Locks . . . . . . . . . . . 237 | 26.4.1. Open Delegation and Data Caching . . . . . . . . . . 237 | |||
| 26.4.3. Handling of CB_GETATTR . . . . . . . . . . . . . . . 238 | 26.4.2. Open Delegation and File Locks . . . . . . . . . . . 238 | |||
| 26.4.4. Recall of Open Delegation . . . . . . . . . . . . . 241 | 26.4.3. Handling of CB_GETATTR . . . . . . . . . . . . . . . 239 | |||
| 26.4.5. Clients That Fail to Honor Delegation Recalls . . . 243 | 26.4.4. Recall of Open Delegation . . . . . . . . . . . . . 242 | |||
| 26.4.6. Delegation Revocation . . . . . . . . . . . . . . . 243 | 26.4.5. Clients That Fail to Honor Delegation Recalls . . . 244 | |||
| 26.4.7. Delegations via WANT_DELEGATION . . . . . . . . . . 244 | 26.4.6. Delegation Revocation . . . . . . . . . . . . . . . 244 | |||
| 26.5. Data Caching and Revocation . . . . . . . . . . . . . . 245 | 26.4.7. Delegations via WANT_DELEGATION . . . . . . . . . . 245 | |||
| 26.5.1. Revocation Recovery for Write Open Delegation . . . 245 | 26.5. Data Caching and Revocation . . . . . . . . . . . . . . 246 | |||
| 26.6. Attribute Caching . . . . . . . . . . . . . . . . . . . 246 | 26.5.1. Revocation Recovery for Write Open Delegation . . . 246 | |||
| 26.6. Attribute Caching . . . . . . . . . . . . . . . . . . . 247 | ||||
| 26.6.1. Attribute Caching Coherence Between Requesting Client | 26.6.1. Attribute Caching Coherence Between Requesting Client | |||
| and Server . . . . . . . . . . . . . . . . . . . . . 247 | and Server . . . . . . . . . . . . . . . . . . . . . 248 | |||
| 26.6.2. Attribute Caching Coherence Between Requesting Client | 26.6.2. Attribute Caching Coherence Between Requesting Client | |||
| and Other Clients . . . . . . . . . . . . . . . . . . 248 | and Other Clients . . . . . . . . . . . . . . . . . . 249 | |||
| 26.6.3. Attribute Caching Coherence Between Requesting Client | 26.6.3. Attribute Caching Coherence Between Requesting Client | |||
| and Remote Applications . . . . . . . . . . . . . . . 249 | and Remote Applications . . . . . . . . . . . . . . . 250 | |||
| 26.7. Data and Metadata Caching and Memory Mapped Files . . . 250 | 26.7. Data and Metadata Caching and Memory Mapped Files . . . 251 | |||
| 27. Client-side Name and Directory Caching . . . . . . . . . . . 251 | 27. Client-side Name and Directory Caching . . . . . . . . . . . 252 | |||
| 27.1. Name and Directory Caching without Directory | 27.1. Name and Directory Caching without Directory | |||
| Delegations . . . . . . . . . . . . . . . . . . . . . . 252 | Delegations . . . . . . . . . . . . . . . . . . . . . . 253 | |||
| 27.1.1. Name Caching . . . . . . . . . . . . . . . . . . . . 252 | 27.1.1. Name Caching . . . . . . . . . . . . . . . . . . . . 253 | |||
| 27.1.2. Directory Caching . . . . . . . . . . . . . . . . . 253 | 27.1.2. Directory Caching . . . . . . . . . . . . . . . . . 254 | |||
| 27.2. Directory Delegations and Notifications . . . . . . . . 254 | 27.2. Directory Delegations and Notifications . . . . . . . . 255 | |||
| 27.2.1. Motivation for Directory Delegations . . . . . . . . 255 | 27.2.1. Motivation for Directory Delegations . . . . . . . . 256 | |||
| 27.2.2. Directory Caching Features . . . . . . . . . . . . . 255 | 27.2.2. Directory Caching Features . . . . . . . . . . . . . 256 | |||
| 27.2.3. Directory Delegation Notifications . . . . . . . . . 256 | 27.2.3. Directory Delegation Notifications . . . . . . . . . 257 | |||
| 27.2.4. Directory Delegation Choices . . . . . . . . . . . . 257 | 27.2.4. Directory Delegation Choices . . . . . . . . . . . . 258 | |||
| 27.2.5. Directory Delegation Mechanics . . . . . . . . . . . 259 | 27.2.5. Directory Delegation Mechanics . . . . . . . . . . . 260 | |||
| 27.2.6. Directory Delegation Authorization Extensions . . . 264 | 27.2.6. Directory Delegation Authorization Extensions . . . 265 | |||
| 27.2.7. Former Authorization Practices and Their Current | 27.2.7. Former Authorization Practices and Their Current | |||
| Validity . . . . . . . . . . . . . . . . . . . . . . 266 | Validity . . . . . . . . . . . . . . . . . . . . . . 267 | |||
| 27.2.8. Alternatives to Use of Directory Delegation | 27.2.8. Alternatives to Use of Directory Delegation | |||
| Authorization Support . . . . . . . . . . . . . . . . 268 | Authorization Support . . . . . . . . . . . . . . . . 269 | |||
| 27.2.9. Directory Delegation Authorization Support . . . . . 270 | 27.2.9. Directory Delegation Authorization Support . . . . . 271 | |||
| 27.2.10. Directory Delegation Feature Version Management . . 272 | 27.2.10. Directory Delegation Feature Version Management . . 273 | |||
| 27.2.11. Directory Content Notifications . . . . . . . . . . 273 | 27.2.11. Directory Content Notifications . . . . . . . . . . 274 | |||
| 27.2.12. Directory Attribute Notifications . . . . . . . . . 277 | 27.2.12. Directory Attribute Notifications . . . . . . . . . 278 | |||
| 27.2.13. Directory Delegation Authorization-related | 27.2.13. Directory Delegation Authorization-related | |||
| Information . . . . . . . . . . . . . . . . . . . . . 279 | Information . . . . . . . . . . . . . . . . . . . . . 280 | |||
| 27.2.14. Directory Delegation Recall . . . . . . . . . . . . 282 | 27.2.14. Directory Delegation Recall . . . . . . . . . . . . 283 | |||
| 27.2.15. Directory Delegation Recovery . . . . . . . . . . . 283 | 27.2.15. Directory Delegation Recovery . . . . . . . . . . . 284 | |||
| 28. Multi-Server Namespace . . . . . . . . . . . . . . . . . . . 283 | 28. Multi-Server Namespace . . . . . . . . . . . . . . . . . . . 284 | |||
| 28.1. Terminology . . . . . . . . . . . . . . . . . . . . . . 283 | 28.1. Terminology . . . . . . . . . . . . . . . . . . . . . . 284 | |||
| 28.1.1. Terminology Related to Trunking . . . . . . . . . . 283 | 28.1.1. Terminology Related to Trunking . . . . . . . . . . 284 | |||
| 28.1.2. Terminology Related to File System Location . . . . 285 | 28.1.2. Terminology Related to File System Location . . . . 286 | |||
| 28.2. File System Location Attributes . . . . . . . . . . . . 287 | 28.2. File System Location Attributes . . . . . . . . . . . . 288 | |||
| 28.3. File System Presence or Absence . . . . . . . . . . . . 288 | 28.3. File System Presence or Absence . . . . . . . . . . . . 289 | |||
| 28.4. Getting Attributes for an Absent File System . . . . . . 289 | 28.4. Getting Attributes for an Absent File System . . . . . . 290 | |||
| 28.4.1. GETATTR within an Absent File System . . . . . . . . 289 | 28.4.1. GETATTR within an Absent File System . . . . . . . . 290 | |||
| 28.4.2. READDIR and Absent File Systems . . . . . . . . . . 291 | 28.4.2. READDIR and Absent File Systems . . . . . . . . . . 292 | |||
| 28.5. Uses of File System Location Information . . . . . . . . 291 | 28.5. Uses of File System Location Information . . . . . . . . 292 | |||
| 28.5.1. Combining Multiple Uses in a Single Attribute . . . 292 | 28.5.1. Combining Multiple Uses in a Single Attribute . . . 293 | |||
| 28.5.2. File System Location Attributes and Trunking . . . . 293 | 28.5.2. File System Location Attributes and Trunking . . . . 294 | |||
| 28.5.3. File System Location Attributes and Connection Type | 28.5.3. File System Location Attributes and Connection Type | |||
| Selection . . . . . . . . . . . . . . . . . . . . . . 294 | Selection . . . . . . . . . . . . . . . . . . . . . . 295 | |||
| 28.5.4. File System Replication . . . . . . . . . . . . . . 295 | 28.5.4. File System Replication . . . . . . . . . . . . . . 296 | |||
| 28.5.5. File System Migration . . . . . . . . . . . . . . . 297 | 28.5.5. File System Migration . . . . . . . . . . . . . . . 298 | |||
| 28.5.6. Referrals . . . . . . . . . . . . . . . . . . . . . 299 | 28.5.6. Referrals . . . . . . . . . . . . . . . . . . . . . 300 | |||
| 28.5.7. Changes in File System Location Attributes . . . . . 301 | 28.5.7. Changes in File System Location Attributes . . . . . 302 | |||
| 28.6. Trunking without File System Location Information . . . 302 | 28.6. Trunking without File System Location Information . . . 303 | |||
| 28.7. Users and Groups in a Multi-Server Namespace . . . . . . 302 | 28.7. Users and Groups in a Multi-Server Namespace . . . . . . 303 | |||
| 28.8. Additional Client-Side Considerations . . . . . . . . . 303 | 28.8. Additional Client-Side Considerations . . . . . . . . . 304 | |||
| 28.9. Overview of File Access Transitions . . . . . . . . . . 304 | 28.9. Overview of File Access Transitions . . . . . . . . . . 305 | |||
| 28.10. Effecting Network Endpoint Transitions . . . . . . . . . 304 | 28.10. Effecting Network Endpoint Transitions . . . . . . . . . 305 | |||
| 28.11. Effecting File System Transitions . . . . . . . . . . . 305 | 28.11. Effecting File System Transitions . . . . . . . . . . . 306 | |||
| 28.11.1. File System Transitions and Simultaneous Access . . 306 | 28.11.1. File System Transitions and Simultaneous Access . . 307 | |||
| 28.11.2. Filehandles and File System Transitions . . . . . . 307 | 28.11.2. Filehandles and File System Transitions . . . . . . 308 | |||
| 28.11.3. Fileids and File System Transitions . . . . . . . . 308 | 28.11.3. Fileids and File System Transitions . . . . . . . . 309 | |||
| 28.11.4. Fsids and File System Transitions . . . . . . . . . 309 | 28.11.4. Fsids and File System Transitions . . . . . . . . . 310 | |||
| 28.11.5. The Change Attribute and File System Transitions . 310 | 28.11.5. The Change Attribute and File System Transitions . 311 | |||
| 28.11.6. Write Verifiers and File System Transitions . . . . 310 | 28.11.6. Write Verifiers and File System Transitions . . . . 311 | |||
| 28.11.7. READDIR Cookies and Verifiers and File System | 28.11.7. READDIR Cookies and Verifiers and File System | |||
| Transitions . . . . . . . . . . . . . . . . . . . . . 310 | Transitions . . . . . . . . . . . . . . . . . . . . . 311 | |||
| 28.11.8. File System Data and File System Transitions . . . 311 | 28.11.8. File System Data and File System Transitions . . . 312 | |||
| 28.11.9. Lock State and File System Transitions . . . . . . 312 | 28.11.9. Lock State and File System Transitions . . . . . . 313 | |||
| 28.12. Transferring State upon Migration . . . . . . . . . . . 317 | ||||
| 28.12. Transferring State upon Migration . . . . . . . . . . . 316 | 28.12.1. Transparent State Migration and pNFS . . . . . . . 317 | |||
| 28.12.1. Transparent State Migration and pNFS . . . . . . . 316 | 28.13. Client Responsibilities When Access Is Transitioned . . 319 | |||
| 28.13. Client Responsibilities When Access Is Transitioned . . 318 | 28.13.1. Client Transition Notifications . . . . . . . . . . 319 | |||
| 28.13.1. Client Transition Notifications . . . . . . . . . . 318 | 28.13.2. Performing Migration Discovery . . . . . . . . . . 322 | |||
| 28.13.2. Performing Migration Discovery . . . . . . . . . . 321 | 28.13.3. Overview of Client Response to NFS4ERR_MOVED . . . 325 | |||
| 28.13.3. Overview of Client Response to NFS4ERR_MOVED . . . 324 | ||||
| 28.13.4. Obtaining Access to Sessions and State after | 28.13.4. Obtaining Access to Sessions and State after | |||
| Migration . . . . . . . . . . . . . . . . . . . . . . 326 | Migration . . . . . . . . . . . . . . . . . . . . . . 327 | |||
| 28.13.5. Obtaining Access to Sessions and State after Network | 28.13.5. Obtaining Access to Sessions and State after Network | |||
| Address Transfer . . . . . . . . . . . . . . . . . . 328 | Address Transfer . . . . . . . . . . . . . . . . . . 329 | |||
| 28.14. Server Responsibilities Upon Migration . . . . . . . . . 328 | 28.14. Server Responsibilities Upon Migration . . . . . . . . . 329 | |||
| 28.14.1. Server Responsibilities in Effecting State Reclaim | 28.14.1. Server Responsibilities in Effecting State Reclaim | |||
| after Migration . . . . . . . . . . . . . . . . . . . 329 | after Migration . . . . . . . . . . . . . . . . . . . 330 | |||
| 28.14.2. Server Responsibilities in Effecting Transparent | 28.14.2. Server Responsibilities in Effecting Transparent | |||
| State Migration . . . . . . . . . . . . . . . . . . . 330 | State Migration . . . . . . . . . . . . . . . . . . . 331 | |||
| 28.14.3. Server Responsibilities in Effecting Session | 28.14.3. Server Responsibilities in Effecting Session | |||
| Transfer . . . . . . . . . . . . . . . . . . . . . . 332 | Transfer . . . . . . . . . . . . . . . . . . . . . . 333 | |||
| 28.15. Effecting File System Referrals . . . . . . . . . . . . 334 | 28.15. Effecting File System Referrals . . . . . . . . . . . . 335 | |||
| 28.15.1. Referral Example (LOOKUP) . . . . . . . . . . . . . 335 | 28.15.1. Referral Example (LOOKUP) . . . . . . . . . . . . . 336 | |||
| 28.15.2. Referral Example (READDIR) . . . . . . . . . . . . 339 | 28.15.2. Referral Example (READDIR) . . . . . . . . . . . . 340 | |||
| 28.16. The Attribute fs_locations . . . . . . . . . . . . . . . 341 | 28.16. The Attribute fs_locations . . . . . . . . . . . . . . . 342 | |||
| 28.17. The Attribute fs_locations_info . . . . . . . . . . . . 344 | 28.17. The Attribute fs_locations_info . . . . . . . . . . . . 345 | |||
| 28.17.1. The fs_locations_server4 Structure . . . . . . . . 348 | 28.17.1. The fs_locations_server4 Structure . . . . . . . . 349 | |||
| 28.17.2. The fs_locations_info4 Structure . . . . . . . . . 355 | 28.17.2. The fs_locations_info4 Structure . . . . . . . . . 356 | |||
| 28.17.3. The fs_locations_item4 Structure . . . . . . . . . 356 | 28.17.3. The fs_locations_item4 Structure . . . . . . . . . 357 | |||
| 28.18. The Attribute fs_status . . . . . . . . . . . . . . . . 358 | 28.18. The Attribute fs_status . . . . . . . . . . . . . . . . 359 | |||
| 29. Parallel NFS (pNFS) . . . . . . . . . . . . . . . . . . . . . 362 | 29. Parallel NFS (pNFS) . . . . . . . . . . . . . . . . . . . . . 363 | |||
| 29.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 362 | 29.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 363 | |||
| 29.2. Layout Types . . . . . . . . . . . . . . . . . . . . . . 365 | 29.2. Layout Types . . . . . . . . . . . . . . . . . . . . . . 366 | |||
| 29.3. Normative Layout Specification Terminology . . . . . . . 365 | 29.3. Normative Layout Specification Terminology . . . . . . . 366 | |||
| 29.4. pNFS Definitions . . . . . . . . . . . . . . . . . . . . 366 | 29.4. pNFS Definitions . . . . . . . . . . . . . . . . . . . . 367 | |||
| 29.4.1. Metadata . . . . . . . . . . . . . . . . . . . . . . 367 | 29.4.1. Metadata . . . . . . . . . . . . . . . . . . . . . . 368 | |||
| 29.4.2. Metadata Server . . . . . . . . . . . . . . . . . . 367 | 29.4.2. Metadata Server . . . . . . . . . . . . . . . . . . 368 | |||
| 29.4.3. pNFS Client . . . . . . . . . . . . . . . . . . . . 367 | 29.4.3. pNFS Client . . . . . . . . . . . . . . . . . . . . 368 | |||
| 29.4.4. Data Storage Devices . . . . . . . . . . . . . . . . 368 | 29.4.4. Data Storage Devices . . . . . . . . . . . . . . . . 369 | |||
| 29.4.5. Data Access Protocol . . . . . . . . . . . . . . . . 368 | 29.4.5. Data Access Protocol . . . . . . . . . . . . . . . . 369 | |||
| 29.4.6. Control Protocol . . . . . . . . . . . . . . . . . . 368 | 29.4.6. Control Protocol . . . . . . . . . . . . . . . . . . 369 | |||
| 29.4.7. Layout . . . . . . . . . . . . . . . . . . . . . . . 369 | 29.4.7. Layout . . . . . . . . . . . . . . . . . . . . . . . 370 | |||
| 29.4.8. Layout Iomode . . . . . . . . . . . . . . . . . . . 369 | 29.4.8. Layout Iomode . . . . . . . . . . . . . . . . . . . 370 | |||
| 29.4.9. Device IDs . . . . . . . . . . . . . . . . . . . . . 370 | 29.4.9. Device IDs . . . . . . . . . . . . . . . . . . . . . 371 | |||
| 29.5. pNFS Operations . . . . . . . . . . . . . . . . . . . . 372 | 29.5. pNFS Operations . . . . . . . . . . . . . . . . . . . . 373 | |||
| 29.6. pNFS Attributes . . . . . . . . . . . . . . . . . . . . 373 | 29.6. pNFS Attributes . . . . . . . . . . . . . . . . . . . . 374 | |||
| 29.7. Layout Semantics . . . . . . . . . . . . . . . . . . . . 373 | 29.7. Layout Semantics . . . . . . . . . . . . . . . . . . . . 374 | |||
| 29.7.1. Guarantees Provided by Layouts . . . . . . . . . . . 373 | 29.7.1. Guarantees Provided by Layouts . . . . . . . . . . . 374 | |||
| 29.7.2. Getting a Layout . . . . . . . . . . . . . . . . . . 374 | 29.7.2. Getting a Layout . . . . . . . . . . . . . . . . . . 375 | |||
| 29.7.3. Layout Stateid . . . . . . . . . . . . . . . . . . . 376 | 29.7.3. Layout Stateid . . . . . . . . . . . . . . . . . . . 377 | |||
| 29.7.4. Committing a Layout . . . . . . . . . . . . . . . . 379 | 29.7.4. Committing a Layout . . . . . . . . . . . . . . . . 380 | |||
| 29.7.5. Recalling a Layout . . . . . . . . . . . . . . . . . 380 | 29.7.5. Recalling a Layout . . . . . . . . . . . . . . . . . 381 | |||
| 29.7.6. Revoking Layouts . . . . . . . . . . . . . . . . . . 388 | 29.7.6. Revoking Layouts . . . . . . . . . . . . . . . . . . 389 | |||
| 29.7.7. Metadata Server Write Propagation . . . . . . . . . 388 | 29.7.7. Metadata Server Write Propagation . . . . . . . . . 389 | |||
| 29.8. pNFS Mechanics . . . . . . . . . . . . . . . . . . . . . 388 | 29.8. pNFS Mechanics . . . . . . . . . . . . . . . . . . . . . 389 | |||
| 29.9. Recovery . . . . . . . . . . . . . . . . . . . . . . . . 390 | 29.9. Recovery . . . . . . . . . . . . . . . . . . . . . . . . 391 | |||
| 29.9.1. Recovery from Client Restart . . . . . . . . . . . . 390 | 29.9.1. Recovery from Client Restart . . . . . . . . . . . . 391 | |||
| 29.9.2. Dealing with Lease Expiration on the Client . . . . 391 | 29.9.2. Dealing with Lease Expiration on the Client . . . . 392 | |||
| 29.9.3. Dealing with Loss of Layout State on the Metadata | 29.9.3. Dealing with Loss of Layout State on the Metadata | |||
| Server . . . . . . . . . . . . . . . . . . . . . . . 392 | Server . . . . . . . . . . . . . . . . . . . . . . . 393 | |||
| 29.9.4. Recovery from Metadata Server Restart . . . . . . . 392 | 29.9.4. Recovery from Metadata Server Restart . . . . . . . 393 | |||
| 29.9.5. Operations during Metadata Server Grace Period . . . 394 | 29.9.5. Operations during Metadata Server Grace Period . . . 395 | |||
| 29.9.6. Storage Device Recovery . . . . . . . . . . . . . . 395 | 29.9.6. Storage Device Recovery . . . . . . . . . . . . . . 396 | |||
| 29.10. Metadata and Storage Device Roles . . . . . . . . . . . 395 | 29.10. Metadata and Storage Device Roles . . . . . . . . . . . 396 | |||
| 29.11. Security Issues for pNFS . . . . . . . . . . . . . . . . 396 | 29.11. Security Issues for pNFS . . . . . . . . . . . . . . . . 397 | |||
| 29.11.1. Security-related Handling for non-RPC Storage | 29.11.1. Security-related Handling for non-RPC Storage | |||
| Protocols . . . . . . . . . . . . . . . . . . . . . . 398 | Protocols . . . . . . . . . . . . . . . . . . . . . . 399 | |||
| 29.11.2. Security-related Handling for RPC Storage Protocols | 29.11.2. Security-related Handling for RPC Storage Protocols | |||
| that are NFSv4 Minor Versions Assisted by Control | that are NFSv4 Minor Versions Assisted by Control | |||
| Protocols . . . . . . . . . . . . . . . . . . . . . . 399 | Protocols . . . . . . . . . . . . . . . . . . . . . . 400 | |||
| 29.11.3. Security-related Handling for RPC Storage Protocols | 29.11.3. Security-related Handling for RPC Storage Protocols | |||
| using NFS Versions together with Control Protocol | using NFS Versions together with Control Protocol | |||
| Assistance . . . . . . . . . . . . . . . . . . . . . 400 | Assistance . . . . . . . . . . . . . . . . . . . . . 401 | |||
| 30. Specification of Layout Types . . . . . . . . . . . . . . . . 401 | 30. Specification of Layout Types . . . . . . . . . . . . . . . . 402 | |||
| 30.1. Layout Specification Needs . . . . . . . . . . . . . . . 401 | 30.1. Layout Specification Needs . . . . . . . . . . . . . . . 402 | |||
| 30.1.1. Layout Type Interoperability Models . . . . . . . . 402 | 30.1.1. Layout Type Interoperability Models . . . . . . . . 403 | |||
| 30.1.2. Layout-Type-Specific Data Types . . . . . . . . . . 403 | 30.1.2. Layout-Type-Specific Data Types . . . . . . . . . . 404 | |||
| 30.1.3. Control Protocol Layout Management Functions" . . . 403 | 30.1.3. Control Protocol Layout Management Functions" . . . 404 | |||
| 30.1.4. Other Control Protocol Functions" . . . . . . . . . 404 | 30.1.4. Other Control Protocol Functions" . . . . . . . . . 405 | |||
| 30.1.5. IO Checking Requirements . . . . . . . . . . . . . . 407 | 30.1.5. IO Checking Requirements . . . . . . . . . . . . . . 408 | |||
| 30.1.6. Security-related Requirements" . . . . . . . . . . . 408 | 30.1.6. Security-related Requirements" . . . . . . . . . . . 409 | |||
| 30.1.7. Recovery Requirements" . . . . . . . . . . . . . . . 408 | 30.1.7. Recovery Requirements" . . . . . . . . . . . . . . . 409 | |||
| 30.1.8. Requirements Regarding Committing Layouts . . . . . 408 | 30.1.8. Requirements Regarding Committing Layouts . . . . . 409 | |||
| 30.1.9. Requirements Regarding Layout Termination . . . . . 409 | 30.1.9. Requirements Regarding Layout Termination . . . . . 410 | |||
| 30.1.10. Requirements Regarding Feature Interactions" . . . . 410 | 30.1.10. Requirements Regarding Feature Interactions" . . . . 411 | |||
| 30.2. Addressing Extensibility Issues Related to Layout | 30.2. Addressing Extensibility Issues Related to Layout | |||
| Types . . . . . . . . . . . . . . . . . . . . . . . . . 410 | Types . . . . . . . . . . . . . . . . . . . . . . . . . 411 | |||
| 30.2.1. Extensibility of Existing Layout-Type-Specific Data | 30.2.1. Extensibility of Existing Layout-Type-Specific Data | |||
| Types . . . . . . . . . . . . . . . . . . . . . . . . 411 | Types . . . . . . . . . . . . . . . . . . . . . . . . 412 | |||
| 30.2.2. Additional Extensibility for Existing | 30.2.2. Additional Extensibility for Existing | |||
| Layout-Type-Specific Data Types . . . . . . . . . . . 412 | Layout-Type-Specific Data Types . . . . . . . . . . . 413 | |||
| 30.2.3. Creation of Additional Layout-Type-Specific Data | 30.2.3. Creation of Additional Layout-Type-Specific Data | |||
| Types . . . . . . . . . . . . . . . . . . . . . . . . 413 | Types . . . . . . . . . . . . . . . . . . . . . . . . 414 | |||
| 30.2.4. Interactions Between Layout Types and Protocol | 30.2.4. Interactions Between Layout Types and Protocol | |||
| Extension and Versioning . . . . . . . . . . . . . . 414 | Extension and Versioning . . . . . . . . . . . . . . 415 | |||
| 30.2.5. Effect of Extensions to the client-MDS Protocol on | 30.2.5. Effect of Extensions to the client-MDS Protocol on | |||
| Existing Layout Types . . . . . . . . . . . . . . . . 416 | ||||
| 30.2.6. Effect of Extensions to the Data Access Protocol on | ||||
| Existing Layout Types . . . . . . . . . . . . . . . . 417 | Existing Layout Types . . . . . . . . . . . . . . . . 417 | |||
| 30.3. Addressing Requirements for Existing Layout Types . . . 418 | 30.2.6. Effect of Extensions to the Data Access Protocol on | |||
| 30.3.1. Blocks Layout Type and Layout Type Requirements . . 419 | Existing Layout Types . . . . . . . . . . . . . . . . 418 | |||
| 30.3.2. Scsi Layout Type and Layout Type Requirements . . . 420 | ||||
| 30.3.3. Object Layout Type and Layout Type Requirements . . 421 | 30.3. Addressing Requirements for Existing Layout Types . . . 419 | |||
| 30.3.1. Blocks Layout Type and Layout Type Requirements . . 420 | ||||
| 30.3.2. Scsi Layout Type and Layout Type Requirements . . . 421 | ||||
| 30.3.3. Object Layout Type and Layout Type Requirements . . 422 | ||||
| 30.3.4. Flexible Files Layout Type and Layout Type | 30.3.4. Flexible Files Layout Type and Layout Type | |||
| Requirements . . . . . . . . . . . . . . . . . . . . 422 | Requirements . . . . . . . . . . . . . . . . . . . . 423 | |||
| 30.3.5. Needed Updates to Layout Specification Documents . . 425 | 30.3.5. Needed Updates to Layout Specification Documents . . 426 | |||
| 31. The pNFS File Layout Type . . . . . . . . . . . . . . . . . . 425 | 31. The pNFS File Layout Type . . . . . . . . . . . . . . . . . . 426 | |||
| 31.1. Recent Changes to the File Layout Type . . . . . . . . . 427 | 31.1. Recent Changes to the File Layout Type . . . . . . . . . 428 | |||
| 31.2. File Layout Type Motivation . . . . . . . . . . . . . . 428 | 31.2. File Layout Type Motivation . . . . . . . . . . . . . . 429 | |||
| 31.3. Protocol Feature Support for the Files Layout Type . . . 429 | 31.3. Protocol Feature Support for the Files Layout Type . . . 430 | |||
| 31.4. Storage Protocol for the Files Layout Type . . . . . . . 429 | 31.4. Storage Protocol for the Files Layout Type . . . . . . . 430 | |||
| 31.5. Client ID and Session Considerations . . . . . . . . . . 431 | 31.5. Client ID and Session Considerations . . . . . . . . . . 432 | |||
| 31.5.1. Sessions Considerations for Data Servers . . . . . . 433 | 31.5.1. Sessions Considerations for Data Servers . . . . . . 434 | |||
| 31.6. File Layout Definitions . . . . . . . . . . . . . . . . 434 | 31.6. File Layout Definitions . . . . . . . . . . . . . . . . 435 | |||
| 31.7. File Layout Data Types . . . . . . . . . . . . . . . . . 434 | 31.7. File Layout Data Types . . . . . . . . . . . . . . . . . 435 | |||
| 31.7.1. File Layout Hint-related Data Types . . . . . . . . 435 | 31.7.1. File Layout Hint-related Data Types . . . . . . . . 436 | |||
| 31.7.2. File Layout Content-related Data Types . . . . . . . 437 | 31.7.2. File Layout Content-related Data Types . . . . . . . 438 | |||
| 31.8. Interpreting the File Layout . . . . . . . . . . . . . . 440 | 31.8. Interpreting the File Layout . . . . . . . . . . . . . . 441 | |||
| 31.8.1. Determining the Stripe Unit Number . . . . . . . . . 440 | 31.8.1. Determining the Stripe Unit Number . . . . . . . . . 441 | |||
| 31.8.2. Interpreting the File Layout Using Sparse Packing . 440 | 31.8.2. Interpreting the File Layout Using Sparse Packing . 441 | |||
| 31.8.3. Interpreting the File Layout Using Dense Packing . . 443 | 31.8.3. Interpreting the File Layout Using Dense Packing . . 444 | |||
| 31.8.4. Sparse and Dense Stripe Unit Packing . . . . . . . . 446 | 31.8.4. Sparse and Dense Stripe Unit Packing . . . . . . . . 447 | |||
| 31.9. Multipathing to Data Servers . . . . . . . . . . . . . . 448 | 31.9. Multipathing to Data Servers . . . . . . . . . . . . . . 449 | |||
| 31.10. Operations Sent to NFSv4.1 Data Servers . . . . . . . . 450 | 31.10. Operations Sent to NFSv4.1 Data Servers . . . . . . . . 451 | |||
| 31.11. COMMIT through Metadata Server . . . . . . . . . . . . . 452 | 31.11. COMMIT through Metadata Server . . . . . . . . . . . . . 453 | |||
| 31.12. The Layout Iomode . . . . . . . . . . . . . . . . . . . 453 | 31.12. The Layout Iomode . . . . . . . . . . . . . . . . . . . 454 | |||
| 31.13. LAYOUTCOMMIT on file layouts . . . . . . . . . . . . . . 454 | 31.13. LAYOUTCOMMIT on file layouts . . . . . . . . . . . . . . 455 | |||
| 31.14. File Layout Type Control Protocol . . . . . . . . . . . 456 | 31.14. File Layout Type Control Protocol . . . . . . . . . . . 457 | |||
| 31.14.1. Control Protocol State Coordination . . . . . . . . 457 | 31.14.1. Control Protocol State Coordination . . . . . . . . 458 | |||
| 31.14.2. Control Protocol Authorization Coordination . . . . 460 | 31.14.2. Control Protocol Authorization Coordination . . . . 461 | |||
| 31.14.3. Control Protocol Layout Management . . . . . . . . 460 | 31.14.3. Control Protocol Layout Management . . . . . . . . 461 | |||
| 31.14.4. Control Protocol Role in Storage Allocation for File | 31.14.4. Control Protocol Role in Storage Allocation for File | |||
| Layout Type . . . . . . . . . . . . . . . . . . . . . 460 | Layout Type . . . . . . . . . . . . . . . . . . . . . 461 | |||
| 31.14.5. IO Validation for the Files Layout Type . . . . . . 461 | 31.14.5. IO Validation for the Files Layout Type . . . . . . 462 | |||
| 31.15. File Attributes . . . . . . . . . . . . . . . . . . . . 461 | 31.15. File Attributes . . . . . . . . . . . . . . . . . . . . 462 | |||
| 31.16. Data Server Component File Size . . . . . . . . . . . . 462 | 31.16. Data Server Component File Size . . . . . . . . . . . . 463 | |||
| 31.17. Revocation and Fencing for the Files Layout Type . . . . 463 | 31.17. Revocation and Fencing for the Files Layout Type . . . . 464 | |||
| 31.18. Layout/IO Conflicts for the Files Layout Type . . . . . 464 | 31.18. Layout/IO Conflicts for the Files Layout Type . . . . . 465 | |||
| 31.19. File Layout MDS-directed IO . . . . . . . . . . . . . . 465 | 31.19. File Layout MDS-directed IO . . . . . . . . . . . . . . 466 | |||
| 31.20. File Layout Handling of Mandatory Byte-Range Locks . . . 465 | 31.20. File Layout Handling of Mandatory Byte-Range Locks . . . 466 | |||
| 31.21. Layout Recall Issues for File Layout Type . . . . . . . 467 | 31.21. Layout Recall Issues for File Layout Type . . . . . . . 468 | |||
| 31.22. Restrictions on Layout Information Discard for File Layout | 31.22. Restrictions on Layout Information Discard for File Layout | |||
| Type . . . . . . . . . . . . . . . . . . . . . . . . . 467 | Type . . . . . . . . . . . . . . . . . . . . . . . . . 468 | |||
| 31.23. Dealing with Client and Server Failure . . . . . . . . . 468 | 31.23. Dealing with Client and Server Failure . . . . . . . . . 469 | |||
| 31.23.1. Dealing with MDS Failure . . . . . . . . . . . . . 469 | 31.23.1. Dealing with MDS Failure . . . . . . . . . . . . . 470 | |||
| 31.23.2. Dealing with Data Server Failure . . . . . . . . . 471 | 31.23.2. Dealing with Data Server Failure . . . . . . . . . 472 | |||
| 31.23.3. Dealing with Client Failure . . . . . . . . . . . . 473 | 31.23.3. Dealing with Client Failure . . . . . . . . . . . . 474 | |||
| 31.24. Dealing with Lease Expiration . . . . . . . . . . . . . 473 | ||||
| 31.25. Security Issues for the File Layout Type . . . . . . . . 474 | 31.24. Dealing with Lease Expiration . . . . . . . . . . . . . 474 | |||
| 31.25. Security Issues for the File Layout Type . . . . . . . . 475 | ||||
| 31.26. Necessary Changes to the Files Layout Type to Meet Layout | 31.26. Necessary Changes to the Files Layout Type to Meet Layout | |||
| Type Requirements . . . . . . . . . . . . . . . . . . . 475 | Type Requirements . . . . . . . . . . . . . . . . . . . 476 | |||
| 31.27. The File Layout Type and Layout Type Requirements . . . 476 | 31.27. The File Layout Type and Layout Type Requirements . . . 477 | |||
| 32. Internationalization . . . . . . . . . . . . . . . . . . . . 478 | 32. Internationalization . . . . . . . . . . . . . . . . . . . . 479 | |||
| 32.1. UTF-8 Capabilities . . . . . . . . . . . . . . . . . . . 478 | 32.1. UTF-8 Capabilities . . . . . . . . . . . . . . . . . . . 479 | |||
| 33. Error Values . . . . . . . . . . . . . . . . . . . . . . . . 479 | 33. Error Values . . . . . . . . . . . . . . . . . . . . . . . . 480 | |||
| 33.1. Error Definitions . . . . . . . . . . . . . . . . . . . 479 | 33.1. Error Definitions . . . . . . . . . . . . . . . . . . . 480 | |||
| 33.1.1. General Errors . . . . . . . . . . . . . . . . . . . 484 | 33.1.1. General Errors . . . . . . . . . . . . . . . . . . . 485 | |||
| 33.1.2. Filehandle Errors . . . . . . . . . . . . . . . . . 487 | 33.1.2. Filehandle Errors . . . . . . . . . . . . . . . . . 488 | |||
| 33.1.3. Compound Structure Errors . . . . . . . . . . . . . 489 | 33.1.3. Compound Structure Errors . . . . . . . . . . . . . 490 | |||
| 33.1.4. File System Errors . . . . . . . . . . . . . . . . . 491 | 33.1.4. File System Errors . . . . . . . . . . . . . . . . . 492 | |||
| 33.1.5. State Management Errors . . . . . . . . . . . . . . 493 | 33.1.5. State Management Errors . . . . . . . . . . . . . . 494 | |||
| 33.1.6. Security Errors . . . . . . . . . . . . . . . . . . 493 | 33.1.6. Security Errors . . . . . . . . . . . . . . . . . . 494 | |||
| 33.1.7. Name Errors . . . . . . . . . . . . . . . . . . . . 494 | 33.1.7. Name Errors . . . . . . . . . . . . . . . . . . . . 495 | |||
| 33.1.8. Locking Errors . . . . . . . . . . . . . . . . . . . 495 | 33.1.8. Locking Errors . . . . . . . . . . . . . . . . . . . 496 | |||
| 33.1.9. Reclaim Errors . . . . . . . . . . . . . . . . . . . 496 | 33.1.9. Reclaim Errors . . . . . . . . . . . . . . . . . . . 497 | |||
| 33.1.10. pNFS Errors . . . . . . . . . . . . . . . . . . . . 498 | 33.1.10. pNFS Errors . . . . . . . . . . . . . . . . . . . . 499 | |||
| 33.1.11. Session Use Errors . . . . . . . . . . . . . . . . . 499 | 33.1.11. Session Use Errors . . . . . . . . . . . . . . . . . 500 | |||
| 33.1.12. Session Management Errors . . . . . . . . . . . . . 500 | 33.1.12. Session Management Errors . . . . . . . . . . . . . 501 | |||
| 33.1.13. Client Management Errors . . . . . . . . . . . . . . 501 | 33.1.13. Client Management Errors . . . . . . . . . . . . . . 502 | |||
| 33.1.14. Delegation Errors . . . . . . . . . . . . . . . . . 502 | 33.1.14. Delegation Errors . . . . . . . . . . . . . . . . . 503 | |||
| 33.1.15. Attribute Handling Errors . . . . . . . . . . . . . 502 | 33.1.15. Attribute Handling Errors . . . . . . . . . . . . . 503 | |||
| 33.1.16. Obsoleted Errors . . . . . . . . . . . . . . . . . . 503 | 33.1.16. Obsoleted Errors . . . . . . . . . . . . . . . . . . 504 | |||
| 33.2. Operations and Their Valid Errors . . . . . . . . . . . 504 | 33.2. Operations and Their Valid Errors . . . . . . . . . . . 505 | |||
| 33.3. Callback Operations and Their Valid Errors . . . . . . . 521 | 33.3. Callback Operations and Their Valid Errors . . . . . . . 522 | |||
| 33.4. Errors and the Operations That Use Them . . . . . . . . 524 | 33.4. Errors and the Operations That Use Them . . . . . . . . 525 | |||
| 34. NFSv4.1 Procedures . . . . . . . . . . . . . . . . . . . . . 539 | 34. NFSv4.1 Procedures . . . . . . . . . . . . . . . . . . . . . 540 | |||
| 34.1. Procedure 0: NULL - No Operation . . . . . . . . . . . . 539 | 34.1. Procedure 0: NULL - No Operation . . . . . . . . . . . . 540 | |||
| 34.2. Procedure 1: COMPOUND - Compound Operations . . . . . . 540 | 34.2. Procedure 1: COMPOUND - Compound Operations . . . . . . 541 | |||
| 35. Operations: REQUIRED, RECOMMENDED, or OPTIONAL . . . . . . . 551 | 35. Operations: REQUIRED, RECOMMENDED, or OPTIONAL . . . . . . . 552 | |||
| 36. NFSv4.1 Operations . . . . . . . . . . . . . . . . . . . . . 557 | 36. NFSv4.1 Operations . . . . . . . . . . . . . . . . . . . . . 558 | |||
| 36.1. Operation 3: ACCESS - Check Access Rights . . . . . . . 557 | 36.1. Operation 3: ACCESS - Check Access Rights . . . . . . . 558 | |||
| 36.2. Operation 4: CLOSE - Close File . . . . . . . . . . . . 562 | 36.2. Operation 4: CLOSE - Close File . . . . . . . . . . . . 563 | |||
| 36.3. Operation 5: COMMIT - Commit Cached Data . . . . . . . . 563 | 36.3. Operation 5: COMMIT - Commit Cached Data . . . . . . . . 564 | |||
| 36.4. Operation 6: CREATE - Create a Non-Regular File | 36.4. Operation 6: CREATE - Create a Non-Regular File | |||
| Object . . . . . . . . . . . . . . . . . . . . . . . . 566 | Object . . . . . . . . . . . . . . . . . . . . . . . . 567 | |||
| 36.5. Operation 7: DELEGPURGE - Purge Delegations Awaiting | 36.5. Operation 7: DELEGPURGE - Purge Delegations Awaiting | |||
| Recovery . . . . . . . . . . . . . . . . . . . . . . . 569 | Recovery . . . . . . . . . . . . . . . . . . . . . . . 570 | |||
| 36.6. Operation 8: DELEGRETURN - Return Delegation . . . . . . 570 | 36.6. Operation 8: DELEGRETURN - Return Delegation . . . . . . 571 | |||
| 36.7. Operation 9: GETATTR - Get Attributes . . . . . . . . . 570 | 36.7. Operation 9: GETATTR - Get Attributes . . . . . . . . . 571 | |||
| 36.8. Operation 10: GETFH - Get Current Filehandle . . . . . . 572 | 36.8. Operation 10: GETFH - Get Current Filehandle . . . . . . 573 | |||
| 36.9. Operation 11: LINK - Create Link to a File . . . . . . . 573 | 36.9. Operation 11: LINK - Create Link to a File . . . . . . . 574 | |||
| 36.10. Operation 12: LOCK - Create Lock . . . . . . . . . . . . 576 | 36.10. Operation 12: LOCK - Create Lock . . . . . . . . . . . . 577 | |||
| 36.11. Operation 13: LOCKT - Test for Lock . . . . . . . . . . 581 | 36.11. Operation 13: LOCKT - Test for Lock . . . . . . . . . . 582 | |||
| 36.12. Operation 14: LOCKU - Unlock File . . . . . . . . . . . 582 | 36.12. Operation 14: LOCKU - Unlock File . . . . . . . . . . . 583 | |||
| 36.13. Operation 15: LOOKUP - Lookup Filename . . . . . . . . . 584 | 36.13. Operation 15: LOOKUP - Lookup Filename . . . . . . . . . 585 | |||
| 36.14. Operation 16: LOOKUPP - Lookup Parent Directory . . . . 585 | 36.14. Operation 16: LOOKUPP - Lookup Parent Directory . . . . 586 | |||
| 36.15. Operation 17: NVERIFY - Verify Difference in | 36.15. Operation 17: NVERIFY - Verify Difference in | |||
| Attributes . . . . . . . . . . . . . . . . . . . . . . 587 | Attributes . . . . . . . . . . . . . . . . . . . . . . 588 | |||
| 36.16. Operation 18: OPEN - Open a Regular File . . . . . . . . 588 | 36.16. Operation 18: OPEN - Open a Regular File . . . . . . . . 589 | |||
| 36.17. Operation 19: OPENATTR - Open Named Attribute | 36.17. Operation 19: OPENATTR - Open Named Attribute | |||
| Directory . . . . . . . . . . . . . . . . . . . . . . . 610 | Directory . . . . . . . . . . . . . . . . . . . . . . . 611 | |||
| 36.18. Operation 21: OPEN_DOWNGRADE - Reduce Open File | 36.18. Operation 21: OPEN_DOWNGRADE - Reduce Open File | |||
| Access . . . . . . . . . . . . . . . . . . . . . . . . 611 | Access . . . . . . . . . . . . . . . . . . . . . . . . 612 | |||
| 36.19. Operation 22: PUTFH - Set Current Filehandle . . . . . . 613 | 36.19. Operation 22: PUTFH - Set Current Filehandle . . . . . . 614 | |||
| 36.20. Operation 23: PUTPUBFH - Set Public Filehandle . . . . . 614 | 36.20. Operation 23: PUTPUBFH - Set Public Filehandle . . . . . 615 | |||
| 36.21. Operation 24: PUTROOTFH - Set Root Filehandle . . . . . 615 | 36.21. Operation 24: PUTROOTFH - Set Root Filehandle . . . . . 616 | |||
| 36.22. Operation 25: READ - Read from File . . . . . . . . . . 616 | 36.22. Operation 25: READ - Read from File . . . . . . . . . . 617 | |||
| 36.23. Operation 26: READDIR - Read Directory . . . . . . . . . 618 | 36.23. Operation 26: READDIR - Read Directory . . . . . . . . . 619 | |||
| 36.24. Operation 27: READLINK - Read Symbolic Link . . . . . . 622 | 36.24. Operation 27: READLINK - Read Symbolic Link . . . . . . 623 | |||
| 36.25. Operation 28: REMOVE - Remove File System Object . . . . 623 | 36.25. Operation 28: REMOVE - Remove File System Object . . . . 624 | |||
| 36.26. Operation 29: RENAME - Rename Directory Entry . . . . . 627 | 36.26. Operation 29: RENAME - Rename Directory Entry . . . . . 628 | |||
| 36.27. Operation 31: RESTOREFH - Restore Saved Filehandle . . . 631 | 36.27. Operation 31: RESTOREFH - Restore Saved Filehandle . . . 632 | |||
| 36.28. Operation 32: SAVEFH - Save Current Filehandle . . . . . 632 | 36.28. Operation 32: SAVEFH - Save Current Filehandle . . . . . 633 | |||
| 36.29. Operation 33: SECINFO - Obtain Available Security . . . 633 | 36.29. Operation 33: SECINFO - Obtain Available Security . . . 634 | |||
| 36.30. Operation 34: SETATTR - Set Attributes . . . . . . . . . 637 | 36.30. Operation 34: SETATTR - Set Attributes . . . . . . . . . 638 | |||
| 36.31. Operation 37: VERIFY - Verify Same Attributes . . . . . 640 | 36.31. Operation 37: VERIFY - Verify Same Attributes . . . . . 641 | |||
| 36.32. Operation 38: WRITE - Write to File . . . . . . . . . . 641 | 36.32. Operation 38: WRITE - Write to File . . . . . . . . . . 642 | |||
| 36.33. Operation 40: BACKCHANNEL_CTL - Backchannel Control . . 646 | 36.33. Operation 40: BACKCHANNEL_CTL - Backchannel Control . . 647 | |||
| 36.34. Operation 41: BIND_CONN_TO_SESSION - Associate Connection | 36.34. Operation 41: BIND_CONN_TO_SESSION - Associate Connection | |||
| with Session . . . . . . . . . . . . . . . . . . . . . 648 | with Session . . . . . . . . . . . . . . . . . . . . . 649 | |||
| 36.35. Operation 42: EXCHANGE_ID - Instantiate Client ID . . . 651 | 36.35. Operation 42: EXCHANGE_ID - Instantiate Client ID . . . 652 | |||
| 36.36. Operation 43: CREATE_SESSION - Create New Session and | 36.36. Operation 43: CREATE_SESSION - Create New Session and | |||
| Confirm Client ID . . . . . . . . . . . . . . . . . . . 669 | Confirm Client ID . . . . . . . . . . . . . . . . . . . 670 | |||
| 36.37. Operation 44: DESTROY_SESSION - Destroy a Session . . . 680 | 36.37. Operation 44: DESTROY_SESSION - Destroy a Session . . . 681 | |||
| 36.38. Operation 45: FREE_STATEID - Free Stateid with No | 36.38. Operation 45: FREE_STATEID - Free Stateid with No | |||
| Locks . . . . . . . . . . . . . . . . . . . . . . . . . 681 | Locks . . . . . . . . . . . . . . . . . . . . . . . . . 682 | |||
| 36.39. Operation 46: GET_DIR_DELEGATION - Get a Directory | 36.39. Operation 46: GET_DIR_DELEGATION - Get a Directory | |||
| Delegation . . . . . . . . . . . . . . . . . . . . . . 682 | Delegation . . . . . . . . . . . . . . . . . . . . . . 683 | |||
| 36.40. Operation 47: GETDEVICEINFO - Get Device Information . . 688 | 36.40. Operation 47: GETDEVICEINFO - Get Device Information . . 689 | |||
| 36.41. Operation 48: GETDEVICELIST - Get All Device Mappings for | 36.41. Operation 48: GETDEVICELIST - Get All Device Mappings for | |||
| a File System . . . . . . . . . . . . . . . . . . . . . 691 | a File System . . . . . . . . . . . . . . . . . . . . . 692 | |||
| 36.42. Operation 49: LAYOUTCOMMIT - Commit Writes Made Using a | 36.42. Operation 49: LAYOUTCOMMIT - Commit Writes Made Using a | |||
| Layout . . . . . . . . . . . . . . . . . . . . . . . . 692 | Layout . . . . . . . . . . . . . . . . . . . . . . . . 693 | |||
| 36.43. Operation 50: LAYOUTGET - Get Layout Information . . . . 697 | 36.43. Operation 50: LAYOUTGET - Get Layout Information . . . . 698 | |||
| 36.44. Operation 51: LAYOUTRETURN - Release Layout | 36.44. Operation 51: LAYOUTRETURN - Release Layout | |||
| Information . . . . . . . . . . . . . . . . . . . . . . 708 | Information . . . . . . . . . . . . . . . . . . . . . . 709 | |||
| 36.45. Operation 52: SECINFO_NO_NAME - Get Security on Unnamed | 36.45. Operation 52: SECINFO_NO_NAME - Get Security on Unnamed | |||
| Object . . . . . . . . . . . . . . . . . . . . . . . . 712 | Object . . . . . . . . . . . . . . . . . . . . . . . . 713 | |||
| 36.46. Operation 53: SEQUENCE - Supply Per-Procedure Sequencing | 36.46. Operation 53: SEQUENCE - Supply Per-Procedure Sequencing | |||
| and Control . . . . . . . . . . . . . . . . . . . . . . 713 | and Control . . . . . . . . . . . . . . . . . . . . . . 714 | |||
| 36.47. Operation 54: SET_SSV - Update SSV for a Client ID . . . 719 | 36.47. Operation 54: SET_SSV - Update SSV for a Client ID . . . 720 | |||
| 36.48. Operation 55: TEST_STATEID - Test Stateids for | 36.48. Operation 55: TEST_STATEID - Test Stateids for | |||
| Validity . . . . . . . . . . . . . . . . . . . . . . . 722 | Validity . . . . . . . . . . . . . . . . . . . . . . . 723 | |||
| 36.50. Operation 57: DESTROY_CLIENTID - Destroy a Client ID . . 726 | ||||
| 36.50. Operation 57: DESTROY_CLIENTID - Destroy a Client ID . . 727 | ||||
| 36.51. Operation 58: RECLAIM_COMPLETE - Indicates Reclaims | 36.51. Operation 58: RECLAIM_COMPLETE - Indicates Reclaims | |||
| Finished . . . . . . . . . . . . . . . . . . . . . . . 727 | Finished . . . . . . . . . . . . . . . . . . . . . . . 728 | |||
| 36.52. Operation 10044: ILLEGAL - Illegal Operation . . . . . . 731 | 36.52. Operation 10044: ILLEGAL - Illegal Operation . . . . . . 732 | |||
| 37. NFSv4.1 Callback Procedures . . . . . . . . . . . . . . . . . 732 | 37. NFSv4.1 Callback Procedures . . . . . . . . . . . . . . . . . 733 | |||
| 37.1. Procedure 0: CB_NULL - No Operation . . . . . . . . . . 732 | 37.1. Procedure 0: CB_NULL - No Operation . . . . . . . . . . 733 | |||
| 37.2. Procedure 1: CB_COMPOUND - Compound Operations . . . . . 732 | 37.2. Procedure 1: CB_COMPOUND - Compound Operations . . . . . 733 | |||
| 38. NFSv4.1 Callback Operations . . . . . . . . . . . . . . . . . 736 | 38. NFSv4.1 Callback Operations . . . . . . . . . . . . . . . . . 737 | |||
| 38.1. Operation 3: CB_GETATTR - Get Attributes . . . . . . . . 736 | 38.1. Operation 3: CB_GETATTR - Get Attributes . . . . . . . . 737 | |||
| 38.2. Operation 4: CB_RECALL - Recall a Delegation . . . . . . 737 | 38.2. Operation 4: CB_RECALL - Recall a Delegation . . . . . . 738 | |||
| 38.3. Operation 5: CB_LAYOUTRECALL - Recall Layout from | 38.3. Operation 5: CB_LAYOUTRECALL - Recall Layout from | |||
| Client . . . . . . . . . . . . . . . . . . . . . . . . 738 | Client . . . . . . . . . . . . . . . . . . . . . . . . 739 | |||
| 38.4. Operation 6: CB_NOTIFY - Notify Client Using Directory | 38.4. Operation 6: CB_NOTIFY - Notify Client Using Directory | |||
| Delegations . . . . . . . . . . . . . . . . . . . . . . 742 | Delegations . . . . . . . . . . . . . . . . . . . . . . 743 | |||
| 38.5. Operation 7: CB_PUSH_DELEG - Offer Previously Requested | 38.5. Operation 7: CB_PUSH_DELEG - Offer Previously Requested | |||
| Delegation to Client . . . . . . . . . . . . . . . . . 758 | Delegation to Client . . . . . . . . . . . . . . . . . 759 | |||
| 38.6. Operation 8: CB_RECALL_ANY - Keep Any N Recallable | 38.6. Operation 8: CB_RECALL_ANY - Keep Any N Recallable | |||
| Objects . . . . . . . . . . . . . . . . . . . . . . . . 759 | Objects . . . . . . . . . . . . . . . . . . . . . . . . 760 | |||
| 38.7. Operation 9: CB_RECALLABLE_OBJ_AVAIL - Signal Resources | 38.7. Operation 9: CB_RECALLABLE_OBJ_AVAIL - Signal Resources | |||
| for Recallable Objects . . . . . . . . . . . . . . . . 762 | for Recallable Objects . . . . . . . . . . . . . . . . 763 | |||
| 38.8. Operation 10: CB_RECALL_SLOT - Change Flow Control | 38.8. Operation 10: CB_RECALL_SLOT - Change Flow Control | |||
| Limits . . . . . . . . . . . . . . . . . . . . . . . . 763 | Limits . . . . . . . . . . . . . . . . . . . . . . . . 764 | |||
| 38.9. Operation 11: CB_SEQUENCE - Supply Backchannel Sequencing | 38.9. Operation 11: CB_SEQUENCE - Supply Backchannel Sequencing | |||
| and Control . . . . . . . . . . . . . . . . . . . . . . 764 | and Control . . . . . . . . . . . . . . . . . . . . . . 765 | |||
| 38.10. Operation 12: CB_WANTS_CANCELLED - Cancel Pending | 38.10. Operation 12: CB_WANTS_CANCELLED - Cancel Pending | |||
| Delegation Wants . . . . . . . . . . . . . . . . . . . 767 | Delegation Wants . . . . . . . . . . . . . . . . . . . 768 | |||
| 38.11. Operation 13: CB_NOTIFY_LOCK - Notify Client of Possible | 38.11. Operation 13: CB_NOTIFY_LOCK - Notify Client of Possible | |||
| Lock Availability . . . . . . . . . . . . . . . . . . . 768 | Lock Availability . . . . . . . . . . . . . . . . . . . 769 | |||
| 38.12. Operation 14: CB_NOTIFY_DEVICEID - Notify Client of Device | 38.12. Operation 14: CB_NOTIFY_DEVICEID - Notify Client of Device | |||
| ID Changes . . . . . . . . . . . . . . . . . . . . . . 769 | ID Changes . . . . . . . . . . . . . . . . . . . . . . 770 | |||
| 38.13. Operation 10044: CB_ILLEGAL - Illegal Callback | 38.13. Operation 10044: CB_ILLEGAL - Illegal Callback | |||
| Operation . . . . . . . . . . . . . . . . . . . . . . . 772 | Operation . . . . . . . . . . . . . . . . . . . . . . . 773 | |||
| 39. Security Considerations . . . . . . . . . . . . . . . . . . . 772 | 39. Security Considerations . . . . . . . . . . . . . . . . . . . 773 | |||
| 39.1. Issues with Inherited Security Considerations Section . 772 | 39.1. Issues with Inherited Security Considerations Section . 773 | |||
| 39.2. Threat Analysis . . . . . . . . . . . . . . . . . . . . 773 | 39.2. Threat Analysis . . . . . . . . . . . . . . . . . . . . 774 | |||
| 39.2.1. Threat Analysis for Use of Persistent Sessions and | 39.2.1. Threat Analysis for Use of Persistent Sessions and | |||
| Locking State . . . . . . . . . . . . . . . . . . . . 773 | Locking State . . . . . . . . . . . . . . . . . . . . 774 | |||
| 39.2.2. Threat Analysis for Use of pNFS . . . . . . . . . . 774 | 39.2.2. Threat Analysis for Use of pNFS . . . . . . . . . . 775 | |||
| 40. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 779 | 40. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 780 | |||
| 40.1. IANA Actions . . . . . . . . . . . . . . . . . . . . . . 779 | 40.1. IANA Actions . . . . . . . . . . . . . . . . . . . . . . 780 | |||
| 40.2. Named Attribute Definitions . . . . . . . . . . . . . . 779 | 40.2. Named Attribute Definitions . . . . . . . . . . . . . . 780 | |||
| 40.2.1. Initial Registry . . . . . . . . . . . . . . . . . . 780 | 40.2.1. Initial Registry . . . . . . . . . . . . . . . . . . 781 | |||
| 40.2.2. Updating Registrations . . . . . . . . . . . . . . . 780 | 40.2.2. Updating Registrations . . . . . . . . . . . . . . . 781 | |||
| 40.3. Device ID Notifications . . . . . . . . . . . . . . . . 780 | 40.3. Device ID Notifications . . . . . . . . . . . . . . . . 781 | |||
| 40.3.1. Initial Registry . . . . . . . . . . . . . . . . . . 781 | 40.3.1. Initial Registry . . . . . . . . . . . . . . . . . . 782 | |||
| 40.3.2. Updating Registrations . . . . . . . . . . . . . . . 781 | 40.3.2. Updating Registrations . . . . . . . . . . . . . . . 782 | |||
| 40.4. Object Recall Types . . . . . . . . . . . . . . . . . . 782 | 40.4. Object Recall Types . . . . . . . . . . . . . . . . . . 783 | |||
| 40.4.1. Initial Registry . . . . . . . . . . . . . . . . . . 783 | 40.4.1. Initial Registry . . . . . . . . . . . . . . . . . . 784 | |||
| 40.4.2. Updating Registrations . . . . . . . . . . . . . . . 783 | 40.4.2. Updating Registrations . . . . . . . . . . . . . . . 784 | |||
| 40.5. Layout Types . . . . . . . . . . . . . . . . . . . . . . 784 | ||||
| 40.5. Layout Types . . . . . . . . . . . . . . . . . . . . . . 783 | 40.5.1. Initial Registry . . . . . . . . . . . . . . . . . . 785 | |||
| 40.5.1. Initial Registry . . . . . . . . . . . . . . . . . . 784 | 40.5.2. Updating Registrations . . . . . . . . . . . . . . . 786 | |||
| 40.5.2. Updating Registrations . . . . . . . . . . . . . . . 785 | ||||
| 40.5.3. IANA-Related Requirements for Layout Type | 40.5.3. IANA-Related Requirements for Layout Type | |||
| Specifications . . . . . . . . . . . . . . . . . . . 785 | Specifications . . . . . . . . . . . . . . . . . . . 786 | |||
| 40.6. Path Variable Definitions . . . . . . . . . . . . . . . 785 | 40.6. Path Variable Definitions . . . . . . . . . . . . . . . 786 | |||
| 40.6.1. Path Variables Registry . . . . . . . . . . . . . . 786 | 40.6.1. Path Variables Registry . . . . . . . . . . . . . . 787 | |||
| 40.6.2. Values for the ${ietf.org:CPU_ARCH} Variable . . . . 787 | 40.6.2. Values for the ${ietf.org:CPU_ARCH} Variable . . . . 788 | |||
| 40.6.3. Values for the ${ietf.org:OS_TYPE} Variable . . . . 788 | 40.6.3. Values for the ${ietf.org:OS_TYPE} Variable . . . . 789 | |||
| 41. References . . . . . . . . . . . . . . . . . . . . . . . . . 788 | 41. References . . . . . . . . . . . . . . . . . . . . . . . . . 789 | |||
| 41.1. Normative References . . . . . . . . . . . . . . . . . . 789 | 41.1. Normative References . . . . . . . . . . . . . . . . . . 790 | |||
| 41.2. Informative References . . . . . . . . . . . . . . . . . 792 | 41.2. Informative References . . . . . . . . . . . . . . . . . 793 | |||
| Appendix A. Nature of the Changes Being Made for This Update . . 795 | Appendix A. Nature of the Changes Being Made for This Update . . 796 | |||
| A.1. Reliance on NFSv4-wide Documents . . . . . . . . . . . . 796 | A.1. Reliance on NFSv4-wide Documents . . . . . . . . . . . . 797 | |||
| A.2. Adaptation of the NFSv4-wide Security Document to | A.2. Adaptation of the NFSv4-wide Security Document to | |||
| v4.1-specific Features . . . . . . . . . . . . . . . . . 796 | v4.1-specific Features . . . . . . . . . . . . . . . . . 797 | |||
| A.3. Changes to Effect Necessary Cleanup and Correction . . . 797 | A.3. Changes to Effect Necessary Cleanup and Correction . . . 798 | |||
| Appendix B. Status of The Changes Being Made in this Update . . 799 | Appendix B. Status of The Changes Being Made in this Update . . 800 | |||
| B.1. Changes Completed So Far in this Update . . . . . . . . . 799 | B.1. Changes Completed So Far in this Update . . . . . . . . . 800 | |||
| B.2. Changes Made in this Update to Address NFSv4.1 Errata | B.2. Changes Made in this Update to Address NFSv4.1 Errata | |||
| Reports . . . . . . . . . . . . . . . . . . . . . . . . . 800 | Reports . . . . . . . . . . . . . . . . . . . . . . . . . 801 | |||
| B.3. Changes Being Made Now in this Update . . . . . . . . . . 802 | B.3. Changes Being Made Now in this Update . . . . . . . . . . 803 | |||
| B.4. Changes That Will Need to be Made Later in this Update . 805 | B.4. Changes That Will Need to be Made Later in this Update . 806 | |||
| Appendix C. Work Done in Various Drafts . . . . . . . . . . . . 805 | Appendix C. Work Done in Various Drafts . . . . . . . . . . . . 806 | |||
| C.1. Changes Made in 5661bis Draft -00 . . . . . . . . . . . . 806 | C.1. Changes Made in 5661bis Draft -00 . . . . . . . . . . . . 807 | |||
| C.2. Changes Made in 5661bis Draft -01 . . . . . . . . . . . . 806 | C.2. Changes Made in 5661bis Draft -01 . . . . . . . . . . . . 807 | |||
| C.3. Changes Made in 5661bis Draft -02 . . . . . . . . . . . . 808 | C.3. Changes Made in 5661bis Draft -02 . . . . . . . . . . . . 809 | |||
| C.4. Changes Made in 5661bis Draft -03 . . . . . . . . . . . . 808 | C.4. Changes Made in 5661bis Draft -03 . . . . . . . . . . . . 809 | |||
| C.5. Changes Made in 5661bis Draft -04 . . . . . . . . . . . . 809 | C.5. Changes Made in 5661bis Draft -04 . . . . . . . . . . . . 810 | |||
| C.6. Changes Made in 5661bis Draft -05 . . . . . . . . . . . . 811 | C.6. Changes Made in 5661bis Draft -05 . . . . . . . . . . . . 812 | |||
| C.7. Changes Made in 5661bis Draft -06 . . . . . . . . . . . . 812 | C.7. Changes Made in 5661bis Draft -06 . . . . . . . . . . . . 813 | |||
| C.8. Changes Made in 5661bis Draft -07 . . . . . . . . . . . . 813 | C.8. Changes Made in 5661bis Draft -07 . . . . . . . . . . . . 814 | |||
| C.9. Changes Made in 5661bis Draft -08 . . . . . . . . . . . . 813 | C.9. Changes Made in 5661bis Draft -08 . . . . . . . . . . . . 814 | |||
| C.10. Changes Made in 5661bis Draft -09 . . . . . . . . . . . . 813 | C.10. Changes Made in 5661bis Draft -09 . . . . . . . . . . . . 814 | |||
| C.11. Changes Made in 5661bis Draft -10 . . . . . . . . . . . . 814 | C.11. Changes Made in 5661bis Draft -10 . . . . . . . . . . . . 815 | |||
| C.12. Changes Made in 5661bis Draft -11 . . . . . . . . . . . . 814 | C.12. Changes Made in 5661bis Draft -11 . . . . . . . . . . . . 815 | |||
| C.13. Changes Made in 8881bis Draft -00 . . . . . . . . . . . . 815 | C.13. Changes Made in 8881bis Draft -00 . . . . . . . . . . . . 816 | |||
| C.14. Changes Made in 8881bis Draft -01 . . . . . . . . . . . . 815 | C.14. Changes Made in 8881bis Draft -01 . . . . . . . . . . . . 816 | |||
| C.15. Changes Made in 8881bis Draft -02 . . . . . . . . . . . . 816 | C.15. Changes Made in 8881bis Draft -02 . . . . . . . . . . . . 817 | |||
| C.16. Changes Made in 8881bis Draft -03 . . . . . . . . . . . . 817 | C.16. Changes Made in 8881bis Draft -03 . . . . . . . . . . . . 818 | |||
| C.17. Changes Made in 8881bis Draft -04 . . . . . . . . . . . . 818 | C.17. Changes Made in 8881bis Draft -04 . . . . . . . . . . . . 819 | |||
| C.18. Changes Made in 8881bis Draft -05 . . . . . . . . . . . . 819 | C.18. Changes Made in 8881bis Draft -05 . . . . . . . . . . . . 820 | |||
| C.19. Changes Made in 8881bis Draft -06 . . . . . . . . . . . . 819 | C.19. Changes Made in 8881bis Draft -06 . . . . . . . . . . . . 820 | |||
| C.20. Changes Made in 8881bis Draft -07 . . . . . . . . . . . . 821 | C.20. Changes Made in 8881bis Draft -07 . . . . . . . . . . . . 822 | |||
| C.21. Changes Made in 8881bis Draft -08 . . . . . . . . . . . . 822 | C.21. Changes Made in 8881bis Draft -08 . . . . . . . . . . . . 823 | |||
| C.22. Changes Made in 8881bis Draft -09 . . . . . . . . . . . . 822 | C.22. Changes Made in 8881bis Draft -09 . . . . . . . . . . . . 823 | |||
| C.23. Changes Made in 8881bis Draft -10 . . . . . . . . . . . . 823 | C.23. Changes Made in 8881bis Draft -10 . . . . . . . . . . . . 824 | |||
| Appendix D. Issues Requiring Further Discussion . . . . . . . . 824 | C.24. Changes Made in 8881bis Draft -11 . . . . . . . . . . . . 825 | |||
| D.1. Appropriate Uses of RFC2119 Keywords . . . . . . . . . . 824 | Appendix D. Issues Requiring Further Discussion . . . . . . . . 825 | |||
| D.1.1. Appropriate Use of "SHOULD" and "SHOULD NOT" . . . . 825 | D.1. Appropriate Uses of RFC2119 Keywords . . . . . . . . . . 825 | |||
| D.1.2. Uses of "MUST" and "MUST NOT" that are Problematic . 827 | D.1.1. Appropriate Use of "SHOULD" and "SHOULD NOT" . . . . 826 | |||
| D.1.2. Uses of "MUST" and "MUST NOT" that are Problematic . 828 | ||||
| D.1.3. Issues Regarding Use of RFC2119 Keywords | D.1.3. Issues Regarding Use of RFC2119 Keywords | |||
| "Sparingly" . . . . . . . . . . . . . . . . . . . . . 830 | "Sparingly" . . . . . . . . . . . . . . . . . . . . . 831 | |||
| D.1.4. Going Forward Regarding Use of RFC2119 Keywords . . . 832 | D.1.4. Going Forward Regarding Use of RFC2119 Keywords . . . 833 | |||
| D.2. Issues Regarding Proposed and Actual Changes . . . . . . 832 | D.2. Issues Regarding Proposed and Actual Changes . . . . . . 833 | |||
| D.2.1. Changes Regarding Request Aborts, Retries, and the | D.2.1. Changes Regarding Request Aborts, Retries, and the | |||
| Session Model . . . . . . . . . . . . . . . . . . . . 833 | Session Model . . . . . . . . . . . . . . . . . . . . 834 | |||
| D.2.2. Issues Regarding Directory Delegation that Need to be | D.2.2. Issues Regarding Directory Delegation that Need to be | |||
| Resolved . . . . . . . . . . . . . . . . . . . . . . 835 | Resolved . . . . . . . . . . . . . . . . . . . . . . 836 | |||
| D.2.3. Changes Regarding Memory Mapping . . . . . . . . . . 843 | D.2.3. Changes Regarding Memory Mapping . . . . . . . . . . 844 | |||
| D.2.4. Issues Regarding Handling of Persistence . . . . . . 844 | D.2.4. Issues Regarding Handling of Persistence . . . . . . 845 | |||
| D.2.5. Changes in Attribute Categorization . . . . . . . . . 849 | D.2.5. Changes in Attribute Categorization . . . . . . . . . 850 | |||
| D.2.6. Changes in Treatment of Attributes for Named Attribute | D.2.6. Changes in Treatment of Attributes for Named Attribute | |||
| Directories . . . . . . . . . . . . . . . . . . . . . 849 | Directories . . . . . . . . . . . . . . . . . . . . . 850 | |||
| D.2.7. Changes Made as a Result of REJECTED Errata | D.2.7. Changes Made as a Result of REJECTED Errata | |||
| Reports . . . . . . . . . . . . . . . . . . . . . . . 851 | Reports . . . . . . . . . . . . . . . . . . . . . . . 852 | |||
| D.2.8. Changes Made to Address Problems in Description of | D.2.8. Changes Made to Address Problems in Description of | |||
| REMOVE/RENAME . . . . . . . . . . . . . . . . . . . . 852 | REMOVE/RENAME . . . . . . . . . . . . . . . . . . . . 853 | |||
| D.2.9. Changes Made to Address Lack of Clarity Regarding "The | D.2.9. Changes Made to Address Lack of Clarity Regarding "The | |||
| Forgetful Model" . . . . . . . . . . . . . . . . . . 853 | Forgetful Model" . . . . . . . . . . . . . . . . . . 854 | |||
| D.2.10. Need for Replacement of RFC8434 . . . . . . . . . . . 854 | D.2.10. Need for Replacement of RFC8434 . . . . . . . . . . . 855 | |||
| D.2.11. Remaining Issues for Discussion After Replacement of | D.2.11. Remaining Issues for Discussion After Replacement of | |||
| RFC8434 . . . . . . . . . . . . . . . . . . . . . . . 855 | RFC8434 . . . . . . . . . . . . . . . . . . . . . . . 856 | |||
| D.2.12. Layout-Type-Specificity for LAYOUTCOMMIT . . . . . . 858 | D.2.12. Layout-Type-Specificity for LAYOUTCOMMIT . . . . . . 859 | |||
| D.2.13. Layout-Type-Specificity for Layout Termination . . . 859 | D.2.13. Layout-Type-Specificity for Layout Termination . . . 860 | |||
| D.2.14. Possible Generalization Data Server Failure | D.2.14. Possible Generalization Data Server Failure | |||
| Handling . . . . . . . . . . . . . . . . . . . . . . 860 | Handling . . . . . . . . . . . . . . . . . . . . . . 861 | |||
| D.2.15. Discussion Needed re Status of RFC5663 . . . . . . . 860 | D.2.15. Discussion Needed re Status of RFC5663 . . . . . . . 861 | |||
| D.2.16. Discussion of Possible Additional Access Flags . . . 861 | D.2.16. Discussion of Possible Additional Access Flags . . . 862 | |||
| D.2.17. Discussion of Named Attributes and Their Possible | D.2.17. Discussion of Named Attributes and Their Possible | |||
| Relationship with Extended Attributes . . . . . . . . 861 | Relationship with Extended Attributes . . . . . . . . 862 | |||
| D.2.18. Discussion of Neglected Caching Needs . . . . . . . . 864 | D.2.18. Discussion of Neglected Caching Needs . . . . . . . . 865 | |||
| D.2.19. Discussion Regarding Ways of Avoiding Cache | D.2.19. Discussion Regarding Ways of Avoiding Cache | |||
| Incoherence . . . . . . . . . . . . . . . . . . . . . 865 | Incoherence . . . . . . . . . . . . . . . . . . . . . 866 | |||
| D.2.20. Discussion Regarding Possible Semantic Changes to | D.2.20. Discussion Regarding Possible Semantic Changes to | |||
| Address Cache Incoherence . . . . . . . . . . . . . . 867 | Address Cache Incoherence . . . . . . . . . . . . . . 868 | |||
| D.2.21. Discussion of Proper Placement to Address Interactions | D.2.21. Discussion of Proper Placement to Address Interactions | |||
| between RFCs 8178 and 8404 . . . . . . . . . . . . . 870 | between RFCs 8178 and 8404 . . . . . . . . . . . . . 871 | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 872 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 873 | |||
| Acknowledgments for This Update . . . . . . . . . . . . . . . 872 | Acknowledgments for This Update . . . . . . . . . . . . . . . 873 | |||
| Acknowledgments for Previous Specification Documents . . . . 873 | Acknowledgments for Previous Specification Documents . . . . 874 | |||
| RFC Editor Notes . . . . . . . . . . . . . . . . . . . . . . . 874 | RFC Editor Notes . . . . . . . . . . . . . . . . . . . . . . . 875 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 875 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 876 | |||
| 1. Introduction to this Update | 1. Introduction to this Update | |||
| This document is intended to be the basis for a revised and updated | This document is intended to be the basis for an effort to provide a | |||
| specification of NFSv4.1. Unlike [RFC8881], which provided a | revised and updated specification of NFSv4.1. Unlike [RFC8881], | |||
| limited-function update to [RFC5661], this document has a broader | which provided a limited-function update to [RFC5661], this document | |||
| mandate and will do the following: | and the associated respecification effort has a broader mandate and | |||
| will do the following: | ||||
| * Revise any text known to be wrong or otherwise inappropriate. | * Revise any text known to be wrong or otherwise inappropriate. | |||
| Such text will not be retained as it has been merely because it is | Such text will not be retained as it has been merely because it is | |||
| outside a limited pre-specified change scope. | outside a limited pre-specified change scope. | |||
| This includes changes suggested by errata reports for RFC's 5661 | This includes changes suggested by errata reports for RFC's 5661 | |||
| and 8881, most of which wre marked as ACCEPzTEd or HELD OVER. | and 8881, most of which wre marked as ACCEPTEd or HELD OVER. | |||
| Also included were some errata reports with the status REJECTED, | Also included were some errata reports with the status REJECTED, | |||
| where there is a Working Group Consensus that change is necessary. | where there is a Working Group Consensus that change is necessary. | |||
| There were erratta reports (e.g. 8705, 8716) which had not been | There were erratta reports (e.g. 8705, 8716) which had not been | |||
| verified but whose editoral nature made it necessary to adopt them | verified but whose editoral nature made it necessary to adopt them | |||
| in this document. | in this document. | |||
| * Address major mistakes resulting from misunderstanding or | ||||
| miasapplication of the requirements of [RFC2624] or the security | ||||
| requirements of internet protocols whcih was not addressed | ||||
| appropriately in that document. For discussion of the means by | ||||
| which such mistakes can be addressed in the context of this | ||||
| respecification effort and within the rules established by | ||||
| [RFC8178], see Section 1.3 | ||||
| * Correct protocol defects, that, by their nature, can and should be | * Correct protocol defects, that, by their nature, can and should be | |||
| addressed via a limited use of the extension mechanism described | addressed via a limited use of the extension mechanism described | |||
| in Section 9 of [RFC8178]. | in Section 9 of [RFC8178]. | |||
| For more discussion of the correction of existing protocol | For more discussion of the correction of existing protocol | |||
| defects, see Section 1.4. This discussion, which covers protocol | defects, see Section 1.5. This discussion, which covers protocol | |||
| defects addressed in NFSv4-wide documents in addition to this | defects addressed in NFSv4-wide documents in addition to this | |||
| document, will focus on how compatibility issues are addressed | document, will focus on how compatibility issues are addressed | |||
| when defects are corrected. It will also pay attention to the | when defects are corrected. It will also pay attention to the | |||
| question of when XDR extensions in a bis document are necessary as | question of when XDR extensions in a bis document are necessary as | |||
| part of providing features already included (albeit incorrectly) | part of providing features already included (albeit incorrectly) | |||
| in the current minor version as opposed to deferring such | in the current minor version as opposed to deferring such | |||
| extensions to later minor versions. | extensions to later minor versions. | |||
| * Incorporate the necessary changes to the description of NFSv4.1 | * Incorporate the necessary changes to the description of NFSv4.1 | |||
| that were published in documents marked as updating [RFC8881], in | that were published in documents marked as updating [RFC8881], in | |||
| this case [RFC8434]. | this case [RFC8434]. | |||
| This incorporation involved a major advance in our understanding | This incorporation involved a major advance in our understanding | |||
| of the structure and benefits of pNFS and the possibilities of its | of the structure and benefits of pNFS and the possibilities of its | |||
| further extension. See Section 1.5. | further extension. See Section 1.6. | |||
| As a result of restructurring done as part of the above, this | As a result of restructurring done as part of the above, this | |||
| document serves as the lead document for a broader respecfication of | document serves as the lead document for a broader respecfication of | |||
| NSv4.1. As part of this respecification, areas of the protocol that | NSv4.1. As part of this respecification, areas of the protocol that | |||
| did not differ substantially in exiting minor versions were dealt | did not differ substantially in exiting minor versions were dealt | |||
| with in new NFSv4-wide documents. | with in new NFSv4-wide documents. | |||
| 1.1. Requirements Language | 1.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| skipping to change at page 21, line 35 ¶ | skipping to change at page 21, line 39 ¶ | |||
| The availability of new transport-level security features such as | The availability of new transport-level security features such as | |||
| those provided by RPC-with-TLS [RFC9289] provides a basis to | those provided by RPC-with-TLS [RFC9289] provides a basis to | |||
| correct many of the above issues. | correct many of the above issues. | |||
| In providing that sort of correction, we need to be careful not to | In providing that sort of correction, we need to be careful not to | |||
| declare existing implementations non-compliant post facto, while | declare existing implementations non-compliant post facto, while | |||
| still providing adequate warning of the security consequences of | still providing adequate warning of the security consequences of | |||
| continuing to use the NFS Version 4 protocol insecurely, as | continuing to use the NFS Version 4 protocol insecurely, as | |||
| described in previous specifications. | described in previous specifications. | |||
| 1.3. Possibility of Compatibility Issues | 1.3. Addressing Major Mistakes | |||
| While it might be unexpected to address major mistakes including | ||||
| design errors within a respecification effort such as this, there is | ||||
| no real alternative for misdesigned OPTIONAL features. This is | ||||
| despite tht fact that the effort is based on a bis document and | ||||
| includes NFSv4-wide revisions of specific protocol areas that are | ||||
| taking on a role like that of bis ducuments. | ||||
| While a major misdesign within the core of NFSv4 would call for a | ||||
| major document rewrite, we need to do that work as part of the | ||||
| mandate of this respecfication effort for the minor version in which | ||||
| the feature is embedded, despite the atypical nature of the required | ||||
| revisions. | ||||
| The infrastructure defined in [RFC8178] would allow the consequences | ||||
| of any such misdesign to be addressed by adding a replacemet feature | ||||
| as long as compatibility is maintaned. Despite this opportunity, it | ||||
| might be difficult to design, implement and review such replacement | ||||
| feaues in the limited time available to ccomplish a respecification | ||||
| effort. | ||||
| In many cases dealt with in this respecification effort, these | ||||
| difficulties are exacerbated by the fact that the original errors | ||||
| have occurred decades ago ,when NFSv4.0 was being defined, so that we | ||||
| need to address coping mechanisms that have convinced many working | ||||
| group members that the issues might be addressed, without disturbing | ||||
| design assumptions that have been shown to be invalid. | ||||
| As a result of these cirscmtnces, we had three options in dealing | ||||
| with these difficult issues. | ||||
| * Deferring the existing flawed approach as outside the scope of | ||||
| NFSv4.1 and deferring the necessary replacement to an extension | ||||
| outside NFSb4.1. | ||||
| This approach was taken in the caso of the unsuitability of the | ||||
| security negotiation framework adopted to provide protecion for | ||||
| data in flight limiited to specfic regions of the namespace. | ||||
| While it was possible to adapt the negotiaton to better support | ||||
| use of connection-orienred security facilities, this was not done | ||||
| and the necessary anges were deferred a forthcoing extension. | ||||
| * Retaining a substantial part of the mistaken implementation, while | ||||
| deferring other parts to later extensions, depite the fact that | ||||
| NFSv4.1 is left withe the unfortunate consequences of the mistaken | ||||
| design. | ||||
| This approach was taken to deal with the profound | ||||
| underspecification of ACL-baaed authorization semantics. In this | ||||
| case the consequences were to create the possibility of many | ||||
| variant approaches so that we ere nable to bound the time | ||||
| necessary to provide a unified approach to many areas. For more | ||||
| detail, regarding the ways in which the flexibility provided by | ||||
| [RFC8178] was used, see REFTBD22. | ||||
| * Supporting a replacement or addition as a defect correction as | ||||
| rovided for by [RFC8178]. | ||||
| The inadequate support for the secuity of data in flight was dealt | ||||
| with by adding a recommendation that connection-baed faclities be | ||||
| used as described in more detail in REFTBD21. | ||||
| While this issue arose durig the definition, it cannot be | ||||
| chacteized as a "defect" in that context since, at the time, there | ||||
| was no alternative, giving te lack of TLS at that time. With | ||||
| regard to the specification of NFSv4.1 this problem can be | ||||
| considered as an RFC8178-correctible defect, although | ||||
| compatibility issues prevent it being made a requiremen. | ||||
| 1.4. Possibility of Compatibility Issues | ||||
| Because this document or other documents that are part of this | Because this document or other documents that are part of this | |||
| specification update might make changes to matters previously | respecification effort might make changes to matters previously | |||
| discussed in [RFC8881], the possibility of compatibility issues | discussed in [RFC8881], the possibility of compatibility issues | |||
| cannot be excluded. | cannot be excluded. | |||
| However, the likelihood of such issues arising is expected to be low | However, the likelihood of such issues arising is expected to be low | |||
| because: | because: | |||
| * In many cases, descriptions within [RFC8881] differed from the | * In many cases, descriptions within [RFC8881] differed from the | |||
| existing implementations and change was necessary to avoid | existing implementations and change was necessary to avoid | |||
| directing implementers to create implementations that could not | directing implementers to create implementations that could not | |||
| interoperate with existing implementations. | interoperate with existing implementations. | |||
| skipping to change at page 22, line 21 ¶ | skipping to change at page 23, line 47 ¶ | |||
| * In some cases, problems in the protocol as previously are being | * In some cases, problems in the protocol as previously are being | |||
| corrected as described in Section 9 of [RFC8178], by creating | corrected as described in Section 9 of [RFC8178], by creating | |||
| OPTIONAL protocol extensions. In such cases, implementations | OPTIONAL protocol extensions. In such cases, implementations | |||
| unaware of the extensions will function as they did before, while | unaware of the extensions will function as they did before, while | |||
| others have the option of using the extensions when interacting | others have the option of using the extensions when interacting | |||
| with an implementation supporting the extension. | with an implementation supporting the extension. | |||
| Specific updates are dealt with in the following subsections: | Specific updates are dealt with in the following subsections: | |||
| * Updates in RFCTBD10 are addressed in Section 1.3.1. | * Updates in RFCTBD10 are addressed in Section 1.4.1. | |||
| * Updates in new NFSv4-wide documents are discussed un | * Updates in new NFSv4-wide documents are discussed un | |||
| Section 1.3.2. | Section 1.4.2. | |||
| * Updates in RFCTBD30 are addressed in Section 1.3.3. | * Updates in RFCTBD30 are addressed in Section 1.4.3. | |||
| 1.3.1. Compatibility issues for RFCTBD10 | 1.4.1. Compatibility issues for RFCTBD10 | |||
| This document introduces a number of potential incompatibilities that | This document introduces a number of potential incompatibilities that | |||
| either cannot be realized or could only be realized in situations | either cannot be realized or could only be realized in situations | |||
| highly unlikely to exist. For discussion of the reasons such | highly unlikely to exist. For discussion of the reasons such | |||
| incompatibilities are highly unlikely to be problematic, see the rest | incompatibilities are highly unlikely to be problematic, see the rest | |||
| of this section which also explains the needs for the changes. | of this section which also explains the needs for the changes. | |||
| One important example concerns the conversion of the attributes mode, | One important example concerns the conversion of the attributes mode, | |||
| owner, and owner_group from OPTIONAL to REQUIRED. Since the vast | owner, and owner_group from OPTIONAL to REQUIRED. Since the vast | |||
| majority of servers support these attributes and the vast majority of | majority of servers support these attributes and the vast majority of | |||
| skipping to change at page 25, line 16 ¶ | skipping to change at page 26, line 33 ¶ | |||
| defects as discussed in Section 9 of [RFC8178]. In addition the | defects as discussed in Section 9 of [RFC8178]. In addition the | |||
| added requirement for delegation recall on certain changes to the | added requirement for delegation recall on certain changes to the | |||
| directory will not lead to incompatibility since the server is | directory will not lead to incompatibility since the server is | |||
| free to recall delegations as it chooses. In the case of possible | free to recall delegations as it chooses. In the case of possible | |||
| existing servers that fail to recall the delegation in such cases, | existing servers that fail to recall the delegation in such cases, | |||
| they will become non-compliant. However, this fact is not | they will become non-compliant. However, this fact is not | |||
| troublesome as we will be going from a compliant server that does | troublesome as we will be going from a compliant server that does | |||
| not work correctly to a non-compliant one, with the non-compliance | not work correctly to a non-compliant one, with the non-compliance | |||
| being an important cue to fix the server. | being an important cue to fix the server. | |||
| 1.3.2. Compatibility issues for NFSv4-wide Documents | 1.4.2. Compatibility issues for NFSv4-wide Documents | |||
| For these three NFSv4-wide documents, a major implementation area was | For these three NFSv4-wide documents, a major implementation area was | |||
| respecified because of major problem in the existing NFSv4.1 | respecified because of major problem in the existing NFSv4.1 | |||
| descriptions of these areas. Because the replacement text was | descriptions of these areas. Because the replacement text was | |||
| intended to reflect the actual implementation, the likelihood of | intended to reflect the actual implementation, the likelihood of | |||
| incompatibilities is quite low: | incompatibilities is quite low: | |||
| * RFCTBD20 respecified internationalization in a fashion quite | * RFCTBD20 respecified internationalization in a fashion quite | |||
| different from the way it is specified in [RFC5661] and [RFC8881]. | different from the way it is specified in [RFC5661] and [RFC8881]. | |||
| skipping to change at page 26, line 43 ¶ | skipping to change at page 28, line 11 ¶ | |||
| The one possible formal incompatibility arises from the three ACE | The one possible formal incompatibility arises from the three ACE | |||
| mask bits corresponding to the POSIX R, W, and X bits. support | mask bits corresponding to the POSIX R, W, and X bits. support | |||
| for these are now REQUIRED whereas previously it had been | for these are now REQUIRED whereas previously it had been | |||
| suggested that they were effectively optional along with all the | suggested that they were effectively optional along with all the | |||
| other ACE mask bits. The chance of this being a problem is low | other ACE mask bits. The chance of this being a problem is low | |||
| since, we have not heard any discussion of server without support | since, we have not heard any discussion of server without support | |||
| for all of these bits and the difficulty of adopting to POSIX | for all of these bits and the difficulty of adopting to POSIX | |||
| semantics, of such implementations existed would certainly have | semantics, of such implementations existed would certainly have | |||
| led to Working Group discussion of the issue. | led to Working Group discussion of the issue. | |||
| 1.3.3. Compatibility issues for RFCTBD30 | 1.4.3. Compatibility issues for RFCTBD30 | |||
| These changes can be divided into three groups: | These changes can be divided into three groups: | |||
| * In many cases, the XDR changes consist of changes in the typedef | * In many cases, the XDR changes consist of changes in the typedef | |||
| naming structure, with no change to the structure of messages | naming structure, with no change to the structure of messages | |||
| described by the XDR. As a result, compatibility issues are not | described by the XDR. As a result, compatibility issues are not | |||
| expected to arise. | expected to arise. | |||
| * Many changes cannot create incompatibilities because the change | * Many changes cannot create incompatibilities because the change | |||
| consists only of changed names of typedefs. Such changes were | consists only of changed names of typedefs. Such changes were | |||
| skipping to change at page 27, line 24 ¶ | skipping to change at page 28, line 39 ¶ | |||
| is indicated in comments, so there is no XDR change to generate an | is indicated in comments, so there is no XDR change to generate an | |||
| incompatibility. | incompatibility. | |||
| * All substantive XDR changes take the form of XDR extensions as | * All substantive XDR changes take the form of XDR extensions as | |||
| provided for by Section 9 of [RFC8178]. As a result, | provided for by Section 9 of [RFC8178]. As a result, | |||
| implementations unaware of the change will function as they dis | implementations unaware of the change will function as they dis | |||
| previously, while those that are aware of extension have the | previously, while those that are aware of extension have the | |||
| option of adapting to the support or non-support by the peer | option of adapting to the support or non-support by the peer | |||
| implementation. | implementation. | |||
| 1.4. Addressing Protocol Defects Via XDR Changes | 1.5. Addressing Protocol Defects Via XDR Changes | |||
| This section provides an overview of situations in which it was | This section provides an overview of situations in which it was | |||
| necessary to change the protocol XDR to correct specification issues | necessary to change the protocol XDR to correct specification issues | |||
| that needed to be addressed as part of the respecification effort. | that needed to be addressed as part of the respecification effort. | |||
| Although all these issues can, from today's perspective, be viewed as | Although all these issues can, from today's perspective, be viewed as | |||
| arising from mistakes, it is not always clear whether that | arising from mistakes, it is not always clear whether that | |||
| description is appropriate given the knowledge available when the | description is appropriate given the knowledge available when the | |||
| decisions were made. In any case, the fact that we would have done | decisions were made. In any case, the fact that we would have done | |||
| something different if the decision were made today does not imply | something different if the decision were made today does not imply | |||
| that the bis document should adopt that approach. The following | that the bis document should adopt that approach. The following | |||
| skipping to change at page 33, line 15 ¶ | skipping to change at page 34, line 32 ¶ | |||
| Formerly considered troublesome even in the AUTH_SYS case | Formerly considered troublesome even in the AUTH_SYS case | |||
| despite the fact that there is no explanation given as to how to | despite the fact that there is no explanation given as to how to | |||
| effect mapping between numeric ids and strings. Instead, it is | effect mapping between numeric ids and strings. Instead, it is | |||
| assumed that client and server will somehow agree to do this | assumed that client and server will somehow agree to do this | |||
| without the specification making it possible or giving a | without the specification making it possible or giving a | |||
| convincing reason that such mapping is needed. | convincing reason that such mapping is needed. | |||
| Of the above, only the items 7, 8, 9, 10, and 14 required protocol | Of the above, only the items 7, 8, 9, 10, and 14 required protocol | |||
| extension to resolve. All will to be incorporated in RFCTBD30. | extension to resolve. All will to be incorporated in RFCTBD30. | |||
| 1.5. Incorporation of RFC8434 | 1.6. Incorporation of RFC8434 | |||
| The incorporation of [RFC8434], originally written to clarify the | The incorporation of [RFC8434], originally written to clarify the | |||
| requirements for new layout types, resulted in a deep and significant | requirements for new layout types, resulted in a deep and significant | |||
| improvement in our understanding of pNFS-related features of the | improvement in our understanding of pNFS-related features of the | |||
| protocol and how various layout types deal with similar issues. | protocol and how various layout types deal with similar issues. | |||
| As a consequence, the original description of pNFS, formerly in | As a consequence, the original description of pNFS, formerly in | |||
| Sections 12 and 13 of [RFC8881] has been restructured as three top- | Sections 12 and 13 of [RFC8881] has been restructured as three top- | |||
| level sections in the revised NFsv4.1 specification: | level sections in the revised NFsv4.1 specification: | |||
| skipping to change at page 795, line 5 ¶ | skipping to change at page 796, line 5 ¶ | |||
| [RFC7931] Noveck, D., Ed., Shivam, P., Lever, C., and B. Baker, | [RFC7931] Noveck, D., Ed., Shivam, P., Lever, C., and B. Baker, | |||
| "NFSv4.0 Migration: Specification Update", RFC 7931, | "NFSv4.0 Migration: Specification Update", RFC 7931, | |||
| DOI 10.17487/RFC7931, July 2016, | DOI 10.17487/RFC7931, July 2016, | |||
| <https://www.rfc-editor.org/info/rfc7931>. | <https://www.rfc-editor.org/info/rfc7931>. | |||
| [RFC8434] Haynes, T., "Requirements for Parallel NFS (pNFS) Layout | [RFC8434] Haynes, T., "Requirements for Parallel NFS (pNFS) Layout | |||
| Types", RFC 8434, DOI 10.17487/RFC8434, August 2018, | Types", RFC 8434, DOI 10.17487/RFC8434, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8434>. | <https://www.rfc-editor.org/info/rfc8434>. | |||
| [RFC2624] Shepler, S., "NFS Version 4 Design Considerations", | ||||
| RFC 2624, DOI 10.17487/RFC2624, June 1999, | ||||
| <https://www.rfc-editor.org/info/rfc2624>. | ||||
| [RFC3010] Shepler, S., Callaghan, B., Robinson, D., Thurlow, R., | [RFC3010] Shepler, S., Callaghan, B., Robinson, D., Thurlow, R., | |||
| Beame, C., Eisler, M., and D. Noveck, "NFS version 4 | Beame, C., Eisler, M., and D. Noveck, "NFS version 4 | |||
| Protocol", RFC 3010, DOI 10.17487/RFC3010, December 2000, | Protocol", RFC 3010, DOI 10.17487/RFC3010, December 2000, | |||
| <https://www.rfc-editor.org/info/rfc3010>. | <https://www.rfc-editor.org/info/rfc3010>. | |||
| [I-D.dnoveck-nfsv4-security] | [I-D.dnoveck-nfsv4-security] | |||
| Noveck, D., "Security for the NFSv4 Protocols", Work in | Noveck, D., "Security for the NFSv4 Protocols", Work in | |||
| Progress, Internet-Draft, draft-dnoveck-nfsv4-security-16, | Progress, Internet-Draft, draft-dnoveck-nfsv4-security-16, | |||
| 10 September 2026, <https://datatracker.ietf.org/doc/html/ | 10 September 2026, <https://datatracker.ietf.org/doc/html/ | |||
| draft-dnoveck-nfsv4-security-16>. | draft-dnoveck-nfsv4-security-16>. | |||
| skipping to change at page 811, line 29 ¶ | skipping to change at page 812, line 29 ¶ | |||
| anyone other than the delegation holder cause a recall of a | anyone other than the delegation holder cause a recall of a | |||
| delegation. In particular, the case of changes done by NFSv4.0 | delegation. In particular, the case of changes done by NFSv4.0 | |||
| clients needed clarification as did the rules for write delegations. | clients needed clarification as did the rules for write delegations. | |||
| Added a discussion of the defects fixed as part of the rfc8881bis | Added a discussion of the defects fixed as part of the rfc8881bis | |||
| effort, focusing on the possibility of compatibility issues and the | effort, focusing on the possibility of compatibility issues and the | |||
| limited use of protocol extension, as provided for in Section 9 of | limited use of protocol extension, as provided for in Section 9 of | |||
| [RFC8178]. This work included: | [RFC8178]. This work included: | |||
| * Adding a summary of the work done to correct existing protocol | * Adding a summary of the work done to correct existing protocol | |||
| defects in a new Section 1.4 | defects in a new Section 1.5 | |||
| * Extension of the notification enum to enable changes discussed | * Extension of the notification enum to enable changes discussed | |||
| below to enable implementation of directory delegations. | below to enable implementation of directory delegations. | |||
| * Preliminary discussion of a new OPTIONAL attribute aclchoices to | * Preliminary discussion of a new OPTIONAL attribute aclchoices to | |||
| avoid having to wait for v4.2 to implement an aclfeatures | avoid having to wait for v4.2 to implement an aclfeatures | |||
| attribute, as previously anticipated. | attribute, as previously anticipated. | |||
| Made a series of changes to the discussion of directory delegations | Made a series of changes to the discussion of directory delegations | |||
| in Appendix D.2.2 and elsewhere. This work was prompted by | in Appendix D.2.2 and elsewhere. This work was prompted by | |||
| skipping to change at page 824, line 20 ¶ | skipping to change at page 825, line 20 ¶ | |||
| architectural role of pNFS as oopposed to the original motivation | architectural role of pNFS as oopposed to the original motivation | |||
| reflected in the name of the feature. | reflected in the name of the feature. | |||
| * Changes to Section 2.8.2 to de-emphasise parallelism no always | * Changes to Section 2.8.2 to de-emphasise parallelism no always | |||
| present ) in favor of a separate data access path which is the | present ) in favor of a separate data access path which is the | |||
| core nnovatio. | core nnovatio. | |||
| * Changes to Section 4 to stress theg role of alternate data paths | * Changes to Section 4 to stress theg role of alternate data paths | |||
| and their likely uses. | and their likely uses. | |||
| C.24. Changes Made in 8881bis Draft -11 | ||||
| Made clearer the role of the respecfication effort by: | ||||
| * Introducing the concept of respecification effort earlier in the | ||||
| docment | ||||
| * Adding a new bullet item to the list of goals in Section 1 devoted | ||||
| to the need to addressing major errors. | ||||
| * Adding a new Section 1.3 dealing with the process issues of | ||||
| adressing major mistakes including design error in the context of | ||||
| the respecification effort. | ||||
| Appendix D. Issues Requiring Further Discussion | Appendix D. Issues Requiring Further Discussion | |||
| This Appendix discusses issues that the working group needs to | This Appendix discusses issues that the working group needs to | |||
| discuss before making decisions regarding potentially necessary | discuss before making decisions regarding potentially necessary | |||
| specification changes. Despite the need for working group decisions | specification changes. Despite the need for working group decisions | |||
| on certain policy matters, some of the specific examples cited have | on certain policy matters, some of the specific examples cited have | |||
| already been addressed by revised text within the draft specification | already been addressed by revised text within the draft specification | |||
| proper. | proper. | |||
| D.1. Appropriate Uses of RFC2119 Keywords | D.1. Appropriate Uses of RFC2119 Keywords | |||
| End of changes. 102 change blocks. | ||||
| 678 lines changed or deleted | 778 lines changed or added | |||
This html diff was produced by rfcdiff 1.49. The latest version is available from https://github.com/ietf-tools/rfcdiff | ||||