draft-ietf-nfsv4-minorversion2-37.txt | draft-ietf-nfsv4-minorversion2-38.txt | |||
---|---|---|---|---|
NFSv4 T. Haynes | NFSv4 T. Haynes | |||
Internet-Draft Primary Data | Internet-Draft Primary Data | |||
Intended status: Standards Track April 27, 2015 | Intended status: Standards Track April 28, 2015 | |||
Expires: October 29, 2015 | Expires: October 30, 2015 | |||
NFS Version 4 Minor Version 2 | NFS Version 4 Minor Version 2 | |||
draft-ietf-nfsv4-minorversion2-37.txt | draft-ietf-nfsv4-minorversion2-38.txt | |||
Abstract | Abstract | |||
This Internet-Draft describes NFS version 4 minor version two, | This Internet-Draft describes NFS version 4 minor version two, | |||
describing the protocol extensions made from NFS version 4 minor | describing the protocol extensions made from NFS version 4 minor | |||
version 1. Major extensions introduced in NFS version 4 minor | version 1. Major extensions introduced in NFS version 4 minor | |||
version two include: Server Side Copy, Application I/O Advise, Space | version two include: Server Side Copy, Application I/O Advise, Space | |||
Reservations, Sparse Files, Application Data Blocks, and Labeled NFS. | Reservations, Sparse Files, Application Data Blocks, and Labeled NFS. | |||
Requirements Language | Requirements Language | |||
skipping to change at page 1, line 40 | skipping to change at page 1, line 40 | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 October 29, 2015. | This Internet-Draft will expire on October 30, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 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 | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 4, line 11 | skipping to change at page 4, line 11 | |||
for a File System . . . . . . . . . . . . . . . . . . . 57 | for a File System . . . . . . . . . . . . . . . . . . . 57 | |||
15. NFSv4.2 Operations . . . . . . . . . . . . . . . . . . . . . 59 | 15. NFSv4.2 Operations . . . . . . . . . . . . . . . . . . . . . 59 | |||
15.1. Operation 59: ALLOCATE - Reserve Space in A Region of a | 15.1. Operation 59: ALLOCATE - Reserve Space in A Region of a | |||
File . . . . . . . . . . . . . . . . . . . . . . . . . . 59 | File . . . . . . . . . . . . . . . . . . . . . . . . . . 59 | |||
15.2. Operation 60: COPY - Initiate a server-side copy . . . . 60 | 15.2. Operation 60: COPY - Initiate a server-side copy . . . . 60 | |||
15.3. Operation 61: COPY_NOTIFY - Notify a source server of a | 15.3. Operation 61: COPY_NOTIFY - Notify a source server of a | |||
future copy . . . . . . . . . . . . . . . . . . . . . . 64 | future copy . . . . . . . . . . . . . . . . . . . . . . 64 | |||
15.4. Operation 62: DEALLOCATE - Unreserve Space in a Region | 15.4. Operation 62: DEALLOCATE - Unreserve Space in a Region | |||
of a File . . . . . . . . . . . . . . . . . . . . . . . 66 | of a File . . . . . . . . . . . . . . . . . . . . . . . 66 | |||
15.5. Operation 63: IO_ADVISE - Application I/O access pattern | 15.5. Operation 63: IO_ADVISE - Application I/O access pattern | |||
hints . . . . . . . . . . . . . . . . . . . . . . . . . 67 | hints . . . . . . . . . . . . . . . . . . . . . . . . . 68 | |||
15.6. Operation 64: LAYOUTERROR - Provide Errors for the | 15.6. Operation 64: LAYOUTERROR - Provide Errors for the | |||
Layout . . . . . . . . . . . . . . . . . . . . . . . . . 73 | Layout . . . . . . . . . . . . . . . . . . . . . . . . . 73 | |||
15.7. Operation 65: LAYOUTSTATS - Provide Statistics for the | 15.7. Operation 65: LAYOUTSTATS - Provide Statistics for the | |||
Layout . . . . . . . . . . . . . . . . . . . . . . . . . 76 | Layout . . . . . . . . . . . . . . . . . . . . . . . . . 76 | |||
15.8. Operation 66: OFFLOAD_CANCEL - Stop an Offloaded | 15.8. Operation 66: OFFLOAD_CANCEL - Stop an Offloaded | |||
Operation . . . . . . . . . . . . . . . . . . . . . . . 78 | Operation . . . . . . . . . . . . . . . . . . . . . . . 78 | |||
15.9. Operation 67: OFFLOAD_STATUS - Poll for Status of | 15.9. Operation 67: OFFLOAD_STATUS - Poll for Status of | |||
Asynchronous Operation . . . . . . . . . . . . . . . . . 79 | Asynchronous Operation . . . . . . . . . . . . . . . . . 79 | |||
15.10. Operation 68: READ_PLUS - READ Data or Holes from a File 80 | 15.10. Operation 68: READ_PLUS - READ Data or Holes from a File 80 | |||
15.11. Operation 69: SEEK - Find the Next Data or Hole . . . . 85 | 15.11. Operation 69: SEEK - Find the Next Data or Hole . . . . 85 | |||
15.12. Operation 70: WRITE_SAME - WRITE an ADB Multiple Times | 15.12. Operation 70: WRITE_SAME - WRITE an ADB Multiple Times | |||
to a File . . . . . . . . . . . . . . . . . . . . . . . 86 | to a File . . . . . . . . . . . . . . . . . . . . . . . 86 | |||
15.13. Operation 71: CLONE - Clone a range of file into another | 15.13. Operation 71: CLONE - Clone a range of file into another | |||
file . . . . . . . . . . . . . . . . . . . . . . . . . . 90 | file . . . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
16. NFSv4.2 Callback Operations . . . . . . . . . . . . . . . . . 91 | 16. NFSv4.2 Callback Operations . . . . . . . . . . . . . . . . . 92 | |||
16.1. Operation 15: CB_OFFLOAD - Report results of an | 16.1. Operation 15: CB_OFFLOAD - Report results of an | |||
asynchronous operation . . . . . . . . . . . . . . . . . 92 | asynchronous operation . . . . . . . . . . . . . . . . . 92 | |||
17. Security Considerations . . . . . . . . . . . . . . . . . . . 93 | 17. Security Considerations . . . . . . . . . . . . . . . . . . . 93 | |||
18. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 93 | 18. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 94 | |||
19. References . . . . . . . . . . . . . . . . . . . . . . . . . 93 | 19. References . . . . . . . . . . . . . . . . . . . . . . . . . 94 | |||
19.1. Normative References . . . . . . . . . . . . . . . . . . 93 | 19.1. Normative References . . . . . . . . . . . . . . . . . . 94 | |||
19.2. Informative References . . . . . . . . . . . . . . . . . 94 | 19.2. Informative References . . . . . . . . . . . . . . . . . 94 | |||
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 96 | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 96 | |||
Appendix B. RFC Editor Notes . . . . . . . . . . . . . . . . . . 97 | Appendix B. RFC Editor Notes . . . . . . . . . . . . . . . . . . 97 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 97 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 97 | |||
1. Introduction | 1. Introduction | |||
1.1. The NFS Version 4 Minor Version 2 Protocol | 1.1. The NFS Version 4 Minor Version 2 Protocol | |||
The NFS version 4 minor version 2 (NFSv4.2) protocol is the third | The NFS version 4 minor version 2 (NFSv4.2) protocol is the third | |||
skipping to change at page 59, line 43 | skipping to change at page 59, line 43 | |||
<CODE ENDS> | <CODE ENDS> | |||
15.1.3. DESCRIPTION | 15.1.3. DESCRIPTION | |||
Whenever a client wishes to reserve space for a region in a file it | Whenever a client wishes to reserve space for a region in a file it | |||
calls the ALLOCATE operation with the current filehandle set to the | calls the ALLOCATE operation with the current filehandle set to the | |||
filehandle of the file in question, and the start offset and length | filehandle of the file in question, and the start offset and length | |||
in bytes of the region set in aa_offset and aa_length respectively. | in bytes of the region set in aa_offset and aa_length respectively. | |||
CURRENT_FH must be a regular file. If CURRENT_FH is not a regular | ||||
file, the operation MUST fail and return NFS4ERR_WRONG_TYPE. | ||||
The aa_stateid MUST refer to a stateid that is valid for a WRITE | ||||
operation and follows the rules for stateids in Sections 8.2.5 and | ||||
18.32.3 of [RFC5661]. | ||||
The server will ensure that backing blocks are reserved to the region | The server will ensure that backing blocks are reserved to the region | |||
specified by aa_offset and aa_length, and that no future writes into | specified by aa_offset and aa_length, and that no future writes into | |||
this region will return NFS4ERR_NOSPC. If the region lies partially | this region will return NFS4ERR_NOSPC. If the region lies partially | |||
or fully outside the current file size the file size will be set to | or fully outside the current file size the file size will be set to | |||
aa_offset + aa_length implicitly. If the server cannot guarantee | aa_offset + aa_length implicitly. If the server cannot guarantee | |||
this, it must return NFS4ERR_NOSPC. | this, it must return NFS4ERR_NOSPC. | |||
The ALLOCATE operation can also be used to extend the size of a file | The ALLOCATE operation can also be used to extend the size of a file | |||
if the region specified by aa_offset and aa_length extends beyond the | if the region specified by aa_offset and aa_length extends beyond the | |||
current file size. In that case any data outside of the previous | current file size. In that case any data outside of the previous | |||
skipping to change at page 67, line 24 | skipping to change at page 67, line 32 | |||
15.4.3. DESCRIPTION | 15.4.3. DESCRIPTION | |||
Whenever a client wishes to unreserve space for a region in a file it | Whenever a client wishes to unreserve space for a region in a file it | |||
calls the DEALLOCATE operation with the current filehandle set to the | calls the DEALLOCATE operation with the current filehandle set to the | |||
filehandle of the file in question, and the start offset and length | filehandle of the file in question, and the start offset and length | |||
in bytes of the region set in da_offset and da_length respectively. | in bytes of the region set in da_offset and da_length respectively. | |||
If no space was allocated or reserved for all or parts of the region, | If no space was allocated or reserved for all or parts of the region, | |||
the DEALLOCATE operation will have no effect for the region that | the DEALLOCATE operation will have no effect for the region that | |||
already is in unreserved state. All further reads from the region | already is in unreserved state. All further reads from the region | |||
passed to DEALLOCATE MUST return zeros until overwritten. The | passed to DEALLOCATE MUST return zeros until overwritten. | |||
filehandle specified must be that of a regular file. | ||||
CURRENT_FH must be a regular file. If CURRENT_FH is not a regular | ||||
file, the operation MUST fail and return NFS4ERR_WRONG_TYPE. | ||||
The da_stateid MUST refer to a stateid that is valid for a WRITE | ||||
operation and follows the rules for stateids in Sections 8.2.5 and | ||||
18.32.3 of [RFC5661]. | ||||
Situations may arise where da_offset and/or da_offset + da_length | Situations may arise where da_offset and/or da_offset + da_length | |||
will not be aligned to a boundary for which the server does | will not be aligned to a boundary for which the server does | |||
allocations or deallocations. For most file systems, this is the | allocations or deallocations. For most file systems, this is the | |||
block size of the file system. In such a case, the server can | block size of the file system. In such a case, the server can | |||
deallocate as many bytes as it can in the region. The blocks that | deallocate as many bytes as it can in the region. The blocks that | |||
cannot be deallocated MUST be zeroed. | cannot be deallocated MUST be zeroed. | |||
DEALLOCATE will result in the space_used attribute being decreased by | DEALLOCATE will result in the space_used attribute being decreased by | |||
the number of bytes that were deallocated. The space_freed attribute | the number of bytes that were deallocated. The space_freed attribute | |||
End of changes. 8 change blocks. | ||||
11 lines changed or deleted | 24 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |