| rfc8881v7.txt | rfc8881.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) D. Noveck, Ed. | Internet Engineering Task Force (IETF) D. Noveck, Ed. | |||
| Request for Comments: 8881 NetApp | Request for Comments: 8881 NetApp | |||
| Obsoletes: 5661 C. Lever | Obsoletes: 5661 C. Lever | |||
| Category: Standards Track ORACLE | Category: Standards Track ORACLE | |||
| ISSN: 2070-1721 July 2020 | ISSN: 2070-1721 August 2020 | |||
| Network File System (NFS) Version 4 Minor Version 1 Protocol | Network File System (NFS) Version 4 Minor Version 1 Protocol | |||
| 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 subsequently. The later minor version has | protocol extensions made subsequently. The later minor version has | |||
| no dependencies on NFS version 4 minor version 0, and is considered a | no dependencies on NFS version 4 minor version 0, and is considered a | |||
| skipping to change at line 390 ¶ | skipping to change at line 390 ¶ | |||
| one in state Rejected, that will need to be addressed in a later | one in state Rejected, that will need to be addressed in a later | |||
| document. This will involve making changes to consensus decisions | document. This will involve making changes to consensus decisions | |||
| reflected in RFC 5661, in situations in which the working group | reflected in RFC 5661, in situations in which the working group | |||
| has decided that the treatment in RFC 5661 is incorrect and needs | has decided that the treatment in RFC 5661 is incorrect and needs | |||
| to be revised to reflect the working group's new consensus and to | to be revised to reflect the working group's new consensus and to | |||
| ensure compatibility with existing implementations that do not | ensure compatibility with existing implementations that do not | |||
| follow the handling described in RFC 5661. | follow the handling described in RFC 5661. | |||
| Note that it is expected that all such errata reports will remain | Note that it is expected that all such errata reports will remain | |||
| relevant to implementors and the authors of an eventual | relevant to implementors and the authors of an eventual | |||
| rfc5661bis, despite the fact that this document, when approved, | rfc5661bis, despite the fact that this document obsoletes RFC 5661 | |||
| will obsolete RFC 5661 [66]. | [66]. | |||
| * There is a need for a new approach to the description of | * There is a need for a new approach to the description of | |||
| internationalization since the current internationalization | internationalization since the current internationalization | |||
| section (Section 14) has never been implemented and does not meet | section (Section 14) has never been implemented and does not meet | |||
| the needs of the NFSv4 protocol. Possible solutions are to create | the needs of the NFSv4 protocol. Possible solutions are to create | |||
| a new internationalization section modeled on that in [68] or to | a new internationalization section modeled on that in [68] or to | |||
| create a new document describing internationalization for all | create a new document describing internationalization for all | |||
| NFSv4 minor versions and reference that document in the RFCs | NFSv4 minor versions and reference that document in the RFCs | |||
| defining both NFSv4.0 and NFSv4.1. | defining both NFSv4.0 and NFSv4.1. | |||
| skipping to change at line 4956 ¶ | skipping to change at line 4956 ¶ | |||
| Named attributes are accessed by the new OPENATTR operation, which | Named attributes are accessed by the new OPENATTR operation, which | |||
| accesses a hidden directory of attributes associated with a file | accesses a hidden directory of attributes associated with a file | |||
| system object. OPENATTR takes a filehandle for the object and | system object. OPENATTR takes a filehandle for the object and | |||
| returns the filehandle for the attribute hierarchy. The filehandle | returns the filehandle for the attribute hierarchy. The filehandle | |||
| for the named attributes is a directory object accessible by LOOKUP | for the named attributes is a directory object accessible by LOOKUP | |||
| or READDIR and contains files whose names represent the named | or READDIR and contains files whose names represent the named | |||
| attributes and whose data bytes are the value of the attribute. For | attributes and whose data bytes are the value of the attribute. For | |||
| example: | example: | |||
| +==========+===========+=================================+ | +----------+-----------+---------------------------------+ | |||
| +==========+===========+=================================+ | ||||
| | LOOKUP | "foo" | ; look up file | | | LOOKUP | "foo" | ; look up file | | |||
| +----------+-----------+---------------------------------+ | +----------+-----------+---------------------------------+ | |||
| | GETATTR | attrbits | | | | GETATTR | attrbits | | | |||
| +----------+-----------+---------------------------------+ | +----------+-----------+---------------------------------+ | |||
| | OPENATTR | | ; access foo's named attributes | | | OPENATTR | | ; access foo's named attributes | | |||
| +----------+-----------+---------------------------------+ | +----------+-----------+---------------------------------+ | |||
| | LOOKUP | "x11icon" | ; look up specific attribute | | | LOOKUP | "x11icon" | ; look up specific attribute | | |||
| +----------+-----------+---------------------------------+ | +----------+-----------+---------------------------------+ | |||
| | READ | 0,4096 | ; read stream of bytes | | | READ | 0,4096 | ; read stream of bytes | | |||
| +----------+-----------+---------------------------------+ | +----------+-----------+---------------------------------+ | |||
| skipping to change at line 10237 ¶ | skipping to change at line 10236 ¶ | |||
| no previous CLOSE operation has been sent to the server, a CLOSE | no previous CLOSE operation has been sent to the server, a CLOSE | |||
| operation must be sent to the server. | operation must be sent to the server. | |||
| * If a file has other open references at the client, then OPEN | * If a file has other open references at the client, then OPEN | |||
| operations must be sent to the server. The appropriate stateids | operations must be sent to the server. The appropriate stateids | |||
| will be provided by the server for subsequent use by the client | will be provided by the server for subsequent use by the client | |||
| since the delegation stateid will no longer be valid. These OPEN | since the delegation stateid will no longer be valid. These OPEN | |||
| requests are done with the claim type of CLAIM_DELEGATE_CUR. This | requests are done with the claim type of CLAIM_DELEGATE_CUR. This | |||
| will allow the presentation of the delegation stateid so that the | will allow the presentation of the delegation stateid so that the | |||
| client can establish the appropriate rights to perform the OPEN. | client can establish the appropriate rights to perform the OPEN. | |||
| (see Section 18.16, which describes the OPEN operation, for | (See Section 18.16, which describes the OPEN operation, for | |||
| details.) | details.) | |||
| * If there are granted byte-range locks, the corresponding LOCK | * If there are granted byte-range locks, the corresponding LOCK | |||
| operations need to be performed. This applies to the | operations need to be performed. This applies to the | |||
| OPEN_DELEGATE_WRITE delegation case only. | OPEN_DELEGATE_WRITE delegation case only. | |||
| * For an OPEN_DELEGATE_WRITE delegation, if at the time of recall | * For an OPEN_DELEGATE_WRITE delegation, if at the time of recall | |||
| the file is not open for OPEN4_SHARE_ACCESS_WRITE/ | the file is not open for OPEN4_SHARE_ACCESS_WRITE/ | |||
| OPEN4_SHARE_ACCESS_BOTH, all modified data for the file must be | OPEN4_SHARE_ACCESS_BOTH, all modified data for the file must be | |||
| flushed to the server. If the delegation had not existed, the | flushed to the server. If the delegation had not existed, the | |||
| skipping to change at line 27257 ¶ | skipping to change at line 27256 ¶ | |||
| expansive recovery of file system objects if the metadata server does | expansive recovery of file system objects if the metadata server does | |||
| not get a positive indication from all clients holding a | not get a positive indication from all clients holding a | |||
| LAYOUTIOMODE4_RW layout that they have successfully completed all | LAYOUTIOMODE4_RW layout that they have successfully completed all | |||
| their writes. Sending a LAYOUTCOMMIT (if required) and then | their writes. Sending a LAYOUTCOMMIT (if required) and then | |||
| following with LAYOUTRETURN can provide such an indication and allow | following with LAYOUTRETURN can provide such an indication and allow | |||
| for graceful and efficient recovery. | for graceful and efficient recovery. | |||
| If loca_reclaim is TRUE, the metadata server is free to either | If loca_reclaim is TRUE, the metadata server is free to either | |||
| examine or ignore the value in the field loca_stateid. The metadata | examine or ignore the value in the field loca_stateid. The metadata | |||
| server implementation might or might not encode in its layout stateid | server implementation might or might not encode in its layout stateid | |||
| information that allows the metadate server to perform a consistency | information that allows the metadata server to perform a consistency | |||
| check on the LAYOUTCOMMIT request. | check on the LAYOUTCOMMIT request. | |||
| 18.43. Operation 50: LAYOUTGET - Get Layout Information | 18.43. Operation 50: LAYOUTGET - Get Layout Information | |||
| 18.43.1. ARGUMENT | 18.43.1. ARGUMENT | |||
| struct LAYOUTGET4args { | struct LAYOUTGET4args { | |||
| /* CURRENT_FH: file */ | /* CURRENT_FH: file */ | |||
| bool loga_signal_layout_avail; | bool loga_signal_layout_avail; | |||
| layouttype4 loga_layout_type; | layouttype4 loga_layout_type; | |||
| skipping to change at line 30269 ¶ | skipping to change at line 30268 ¶ | |||
| principals, is of considerable importance. | principals, is of considerable importance. | |||
| 22. IANA Considerations | 22. IANA Considerations | |||
| This section uses terms that are defined in [63]. | This section uses terms that are defined in [63]. | |||
| 22.1. IANA Actions | 22.1. IANA Actions | |||
| This update does not require any modification of, or additions to, | This update does not require any modification of, or additions to, | |||
| registry entries or registry rules associated with NFSv4.1. However, | registry entries or registry rules associated with NFSv4.1. However, | |||
| since this document obsoletes RFC 8881, IANA has updated all registry | since this document obsoletes RFC 5661, IANA has updated all registry | |||
| entries and registry rules references that point to RFC 5661 to point | entries and registry rules references that point to RFC 5661 to point | |||
| to this document instead. | to this document instead. | |||
| Previous actions by IANA related to NFSv4.1 are listed in the | Previous actions by IANA related to NFSv4.1 are listed in the | |||
| remaining subsections of Section 22. | remaining subsections of Section 22. | |||
| 22.2. Named Attribute Definitions | 22.2. Named Attribute Definitions | |||
| IANA created a registry called the "NFSv4 Named Attribute Definitions | IANA created a registry called the "NFSv4 Named Attribute Definitions | |||
| Registry". | Registry". | |||
| skipping to change at line 31493 ¶ | skipping to change at line 31492 ¶ | |||
| The slot sequence can be used as needed, and cases in which it | The slot sequence can be used as needed, and cases in which it | |||
| would be of no use are appropriately noted. | would be of no use are appropriately noted. | |||
| * It had been assumed that the only functions of EXCHANGE_ID were to | * It had been assumed that the only functions of EXCHANGE_ID were to | |||
| inform the server of the client, to create the client ID, and to | inform the server of the client, to create the client ID, and to | |||
| communicate it to the client. When multiple simultaneous | communicate it to the client. When multiple simultaneous | |||
| connections are involved, as often happens when trunking, that | connections are involved, as often happens when trunking, that | |||
| treatment was inadequate in that it ignored the role of | treatment was inadequate in that it ignored the role of | |||
| EXCHANGE_ID in associating the client ID with the connection on | EXCHANGE_ID in associating the client ID with the connection on | |||
| which it was done, so that it could be used by a subsequent | which it was done, so that it could be used by a subsequent | |||
| CREATE_SESSSION whose parameters do not include an explicit client | CREATE_SESSION whose parameters do not include an explicit client | |||
| ID. | ID. | |||
| The new treatment explicitly discusses the role of EXCHANGE_ID in | The new treatment explicitly discusses the role of EXCHANGE_ID in | |||
| associating the client ID with the connection so it can be used by | associating the client ID with the connection so it can be used by | |||
| CREATE_SESSION and in associating a connection with an existing | CREATE_SESSION and in associating a connection with an existing | |||
| session. | session. | |||
| The new treatment can be found in Section 18.35 above. It supersedes | The new treatment can be found in Section 18.35 above. It supersedes | |||
| the treatment in Section 18.35 of RFC 5661 [66]. | the treatment in Section 18.35 of RFC 5661 [66]. | |||
| End of changes. 7 change blocks. | ||||
| 9 lines changed or deleted | 8 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||