draft-ietf-nfsv4-nfsdirect-05.txt | draft-ietf-nfsv4-nfsdirect-06.txt | |||
---|---|---|---|---|
NFSv4 Working Group Tom Talpey | NFSv4 Working Group Tom Talpey | |||
Internet-Draft Network Appliance, Inc. | Internet-Draft Network Appliance, Inc. | |||
Intended status: Standards Track Brent Callaghan | Intended status: Standards Track Brent Callaghan | |||
Expires: November 8, 2007 Apple Computer, Inc. | Expires: January 1, 2008 Apple Computer, Inc. | |||
May 7, 2007 | July 1, 2007 | |||
NFS Direct Data Placement | NFS Direct Data Placement | |||
draft-ietf-nfsv4-nfsdirect-05 | draft-ietf-nfsv4-nfsdirect-06 | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 2, line 16 | skipping to change at page 2, line 16 | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Transfers from NFS Client to NFS Server . . . . . . . . . . 2 | 2. Transfers from NFS Client to NFS Server . . . . . . . . . . 2 | |||
3. Transfers from NFS Server to NFS Client . . . . . . . . . . 3 | 3. Transfers from NFS Server to NFS Client . . . . . . . . . . 3 | |||
4. NFS Versions 2 and 3 Mapping . . . . . . . . . . . . . . . . 4 | 4. NFS Versions 2 and 3 Mapping . . . . . . . . . . . . . . . . 4 | |||
5. NFS Version 4 Mapping . . . . . . . . . . . . . . . . . . . 5 | 5. NFS Version 4 Mapping . . . . . . . . . . . . . . . . . . . 5 | |||
6. Security . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 6. Security . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . 7 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . 7 | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | |||
9. Normative References . . . . . . . . . . . . . . . . . . . . 8 | 9. Normative References . . . . . . . . . . . . . . . . . . . . 8 | |||
10. Informative References . . . . . . . . . . . . . . . . . . 9 | 10. Informative References . . . . . . . . . . . . . . . . . . 8 | |||
11. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 9 | 11. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 9 | |||
12. Intellectual Property and Copyright Statements . . . . . 10 | 12. Intellectual Property and Copyright Statements . . . . . . 9 | |||
Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . 10 | Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
Requirements Language | Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
1. Introduction | 1. Introduction | |||
The RDMA Transport for ONC RPC [RPCRDMA] allows an RPC client | The RDMA Transport for ONC RPC [RPCRDMA] allows an RPC client | |||
application to post buffers in a Chunk list for specific arguments | application to post buffers in a Chunk list for specific arguments | |||
and results from an RPC call. The RDMA transport header conveys this | and results from an RPC call. The RDMA transport header conveys this | |||
list of client buffer addresses to the server where the application | list of client buffer addresses to the server where the application | |||
can associate them with client data and use RDMA operations to | can associate them with client data and use RDMA operations to | |||
transfer the results directly to and from the posted buffers on the | transfer the results directly to and from the posted buffers on the | |||
client. The client and server must agree on a consistent mapping of | client. The client and server must agree on a consistent mapping of | |||
posted buffers to RPC. This document details the mapping for each | posted buffers to RPC. This document details the mapping for each | |||
version of the NFS protocol [RFC1831] [RFC4506] [RFC1094] [RFC1813] | version of the NFS protocol [RFC1094] [RFC1813] [RFC3530] [NFSv4.1]. | |||
[RFC3530] [NFSv4.1]. | ||||
2. Transfers from NFS Client to NFS Server | 2. Transfers from NFS Client to NFS Server | |||
The RDMA Read list, in the RDMA transport header, allows an RPC | The RDMA Read list, in the RDMA transport header, allows an RPC | |||
client to marshal RPC call data selectively. Large chunks of data, | client to marshal RPC call data selectively. Large chunks of data, | |||
such as the file data of an NFS WRITE request, MAY be referenced by | such as the file data of an NFS WRITE request, MAY be referenced by | |||
an RDMA Read list and be moved efficiently and directly-placed by an | an RDMA Read list and be moved efficiently and directly-placed by an | |||
RDMA READ operation initiated by the server. | RDMA READ operation initiated by the server. | |||
The process of identifying these chunks for the RDMA Read list can be | The process of identifying these chunks for the RDMA Read list can be | |||
skipping to change at page 4, line 10 | skipping to change at page 4, line 9 | |||
which MUST be large enough to accept the result. If the buffer is | which MUST be large enough to accept the result. If the buffer is | |||
too small, the server MUST return an XDR encode error. The server | too small, the server MUST return an XDR encode error. The server | |||
MUST return the result data for a posted buffer by progressively | MUST return the result data for a posted buffer by progressively | |||
filling its segments, perhaps leaving some trailing segments unfilled | filling its segments, perhaps leaving some trailing segments unfilled | |||
or partially full if the size of the result is less than the total | or partially full if the size of the result is less than the total | |||
size of the buffer segments. | size of the buffer segments. | |||
The server returns the RDMA Write list to the client with the segment | The server returns the RDMA Write list to the client with the segment | |||
length fields overwritten to indicate the amount of data RDMA Written | length fields overwritten to indicate the amount of data RDMA Written | |||
to each segment. Results returned by direct placement MUST not be | to each segment. Results returned by direct placement MUST not be | |||
returned by other methods, e.g. by read chunk list or inline. If no | returned by other methods, e.g., by read chunk list or inline. If no | |||
result data at all is returned for the element, the server places no | result data at all is returned for the element, the server places no | |||
data in the buffer(s), but does return zeroes in the segment length | data in the buffer(s), but does return zeroes in the segment length | |||
fields corresponding to the result. | fields corresponding to the result. | |||
The RDMA Write list allows the client to provide multiple result | The RDMA Write list allows the client to provide multiple result | |||
buffers - each buffer maps to a specific result in the reply. The NFS | buffers - each buffer maps to a specific result in the reply. The NFS | |||
client and server implementations agree by specifying the mapping of | client and server implementations agree by specifying the mapping of | |||
results to buffers for each RPC procedure. The following sections | results to buffers for each RPC procedure. The following sections | |||
describe this mapping for versions of the NFS protocol. | describe this mapping for versions of the NFS protocol. | |||
skipping to change at page 6, line 7 | skipping to change at page 6, line 6 | |||
This specification applies to the first minor version of NFS version | This specification applies to the first minor version of NFS version | |||
4 (NFSv4.0) and any subsequent minor versions that do not override | 4 (NFSv4.0) and any subsequent minor versions that do not override | |||
this mapping. | this mapping. | |||
The Write list MUST be considered only for the COMPOUND procedure. | The Write list MUST be considered only for the COMPOUND procedure. | |||
This procedure returns results from a sequence of operations. Only | This procedure returns results from a sequence of operations. Only | |||
the opaque file data from an NFS READ operation, and the pathname | the opaque file data from an NFS READ operation, and the pathname | |||
from a READLINK operation MUST utilize entries from the Write list. | from a READLINK operation MUST utilize entries from the Write list. | |||
If there is no Write list, i.e. the list is null, then any READ or | If there is no Write list, i.e., the list is null, then any READ or | |||
READLINK operations in the COMPOUND MUST return their data inline. | READLINK operations in the COMPOUND MUST return their data inline. | |||
The NFSv4.0 client MUST ensure that any result of its READ and | The NFSv4.0 client MUST ensure that any result of its READ and | |||
READLINK requests fits within its receive buffers, lest an RDMA | READLINK requests fits within its receive buffers, lest an RDMA | |||
transport error result upon transfer. | transport error result upon transfer. | |||
The first entry in the Write list MUST be used by the first READ or | The first entry in the Write list MUST be used by the first READ or | |||
READLINK in the COMPOUND request. The next Write list entry by the | READLINK in the COMPOUND request. The next Write list entry by the | |||
by the next READ or READLINK, and so on. If there are more READ or | by the next READ or READLINK, and so on. If there are more READ or | |||
READLINK operations than Write list entries, then any remaining | READLINK operations than Write list entries, then any remaining | |||
operations MUST return their results inline. | operations MUST return their results inline. | |||
skipping to change at page 7, line 31 | skipping to change at page 7, line 29 | |||
involved in building COMPOUNDs by NFS make such a mechanism | involved in building COMPOUNDs by NFS make such a mechanism | |||
unworkable. | unworkable. | |||
However, typical NFS version 4 clients rarely issue such problematic | However, typical NFS version 4 clients rarely issue such problematic | |||
requests. In practice, they behave in much more predictable ways, in | requests. In practice, they behave in much more predictable ways, in | |||
fact most still support the traditional rsize/wsize mount parameters. | fact most still support the traditional rsize/wsize mount parameters. | |||
Therefore, most NFS version 4 clients function over RPC/RDMA in the | Therefore, most NFS version 4 clients function over RPC/RDMA in the | |||
same way as NFS versions 2 and 3, operationally. | same way as NFS versions 2 and 3, operationally. | |||
There are however advantages to allowing both client and server to | There are however advantages to allowing both client and server to | |||
operate with prearranged sie constraints, for example use of the | operate with prearranged size constraints, for example use of the | |||
sizes to better manage the server's response cache. An extension to | sizes to better manage the server's response cache. An extension to | |||
NFS version 4 supporting a more comprehensive exchange of upper layer | NFS version 4 supporting a more comprehensive exchange of upper layer | |||
parameters is part of [NFSv4.1]. | parameters is part of [NFSv4.1]. | |||
6. Security | 6. Security | |||
The RDMA transport for ONC RPC supports RPCSEC_GSS security as well | The RDMA transport for ONC RPC supports RPCSEC_GSS security as well | |||
as link-level security. The use of RDMA Write to return RPC results | as link-level security. The use of RDMA Write to return RPC results | |||
does not affect ONC RPC security. | does not affect ONC RPC security. | |||
skipping to change at page 8, line 14 | skipping to change at page 8, line 13 | |||
specification to listen on TCP port 2049, and are not required to | specification to listen on TCP port 2049, and are not required to | |||
register. | register. | |||
An NFS version 2 or version 3 server supporting RPC/RDMA on such a | An NFS version 2 or version 3 server supporting RPC/RDMA on such a | |||
network and registering itself with the RPC portmapper MAY choose an | network and registering itself with the RPC portmapper MAY choose an | |||
arbitrary port, or MAY use the alternative well-known port number for | arbitrary port, or MAY use the alternative well-known port number for | |||
its RPC/RDMA service by IANA. The chosen port MAY be registered with | its RPC/RDMA service by IANA. The chosen port MAY be registered with | |||
the RPC portmapper under the netid assigned by the requirement in | the RPC portmapper under the netid assigned by the requirement in | |||
[RPCRDMA]. | [RPCRDMA]. | |||
An NFS version 4 server supporting RPC/RDMA on such a network must | An NFS version 4 server supporting RPC/RDMA on such a network MUST | |||
MUST use the alternative well-known port number for its RPC/RDMA | use the alternative well-known port number for its RPC/RDMA service | |||
service by IANA. Clients SHOULD connect to this well-known port | by IANA. Clients SHOULD connect to this well-known port without | |||
without consulting the RPC portmapper (as for NFSv4/TCP). The | consulting the RPC portmapper (as for NFSv4/TCP). The port number | |||
following port is assigned to an NFS service over an RPC/RDMA | assigned to an NFS service over an RPC/RDMA transport is available | |||
transport: | from the IANA port registry [RFC3232]. | |||
nfs-rdma 2050 | ||||
8. Acknowledgements | 8. Acknowledgements | |||
The authors would like to thank Dave Noveck and Chet Juszczak for | The authors would like to thank Dave Noveck and Chet Juszczak for | |||
their contributions to this document. | their contributions to this document. | |||
9. Normative References | 9. Normative References | |||
[RFC2119] | [RFC2119] | |||
S. Bradner, "Key words for use in RFCs to Indicate Requirement | S. Bradner, "Key words for use in RFCs to Indicate Requirement | |||
Levels", | Levels", | |||
Best Current Practice, | Best Current Practice, | |||
BCP 14, RFC 2119, March 1997. | BCP 14, RFC 2119, March 1997. | |||
[RFC1831] | ||||
R. Srinivasan, "RPC: Remote Procedure Call Protocol Specification | ||||
Version 2", | ||||
Standards Track RFC, | ||||
http://www.ietf.org/rfc/rfc1831.txt | ||||
[RFC4506] | ||||
M. Eisler, Ed., "XDR: External Data Representation Standard", | ||||
Standards Track RFC, | ||||
http://www.ietf.org/rfc/rfc4506.txt | ||||
[RFC1094] | [RFC1094] | |||
"NFS: Network File System Protocol Specification", | "NFS: Network File System Protocol Specification", | |||
(NFS version 2) Informational RFC, | (NFS version 2) Informational RFC, | |||
http://www.ietf.org/rfc/rfc1094.txt | http://www.ietf.org/rfc/rfc1094.txt | |||
[RFC1813] | [RFC1813] | |||
B. Callaghan, B. Pawlowski, P. Staubach, "NFS Version 3 Protocol | B. Callaghan, B. Pawlowski, P. Staubach, "NFS Version 3 Protocol | |||
Specification", | Specification", | |||
Informational RFC, | Informational RFC, | |||
http://www.ietf.org/rfc/rfc1813.txt | http://www.ietf.org/rfc/rfc1813.txt | |||
[RFC1833] | [RFC1833] | |||
R. Srinivasan, "Binding Protocols for ONC RPC Version 2", | R. Srinivasan, "Binding Protocols for ONC RPC Version 2", | |||
Standards Track RFC, | Standards Track RFC, | |||
http://www.ietf.org/rfc/rfc1833.txt | http://www.ietf.org/rfc/rfc1833.txt | |||
skipping to change at page 9, line 23 | skipping to change at page 9, line 9 | |||
http://www.ietf.org/rfc/rfc1833.txt | http://www.ietf.org/rfc/rfc1833.txt | |||
[RFC3530] | [RFC3530] | |||
S. Shepler, B. Callaghan, D. Robinson, R. Thurlow, C. Beame, M. | S. Shepler, B. Callaghan, D. Robinson, R. Thurlow, C. Beame, M. | |||
Eisler, D. Noveck, "NFS version 4 Protocol", | Eisler, D. Noveck, "NFS version 4 Protocol", | |||
Standards Track RFC, | Standards Track RFC, | |||
http://www.ietf.org/rfc/rfc3530.txt | http://www.ietf.org/rfc/rfc3530.txt | |||
10. Informative References | 10. Informative References | |||
[RFC3232] | ||||
Internet Assigned Numbers Authority (IANA), | ||||
Port Registry database, | ||||
http://www.ietf.org/rfc/rfc3232.txt | ||||
http://www.iana.org/assignments/port-numbers | ||||
[RPCRDMA] | [RPCRDMA] | |||
T. Talpey, B. Callaghan, "RDMA Transport for ONC RPC" | T. Talpey, B. Callaghan, "RDMA Transport for ONC RPC" | |||
Internet Draft Work in Progress, | Internet Draft Work in Progress, | |||
draft-ietf-nfsv4-rpcrdma | draft-ietf-nfsv4-rpcrdma | |||
[NFSv4.1] | [NFSv4.1] | |||
S. Shepler et. al., ed., "NFSv4 Minor Version 1" | S. Shepler et al., ed., "NFSv4 Minor Version 1" | |||
Internet Draft Work in Progress, | Internet Draft Work in Progress, | |||
draft-ietf-nfsv4-minorversion1 | draft-ietf-nfsv4-minorversion1 | |||
[DDP] | [DDP] | |||
H. Shah et al, "Direct Data Placement over Reliable Transports", | H. Shah et al., "Direct Data Placement over Reliable Transports", | |||
Standards Track RFC, | Standards Track RFC, | |||
draft-ietf-rddp-ddp | draft-ietf-rddp-ddp | |||
[RDMAP] | [RDMAP] | |||
R. Recio et al, "An RDMA Protocol Specification", | R. Recio et al., "An RDMA Protocol Specification", | |||
Standards Track RFC, | Standards Track RFC, | |||
draft-ietf-rddp-rdmap | draft-ietf-rddp-rdmap | |||
11. Authors' Addresses | 11. Authors' Addresses | |||
Tom Talpey | Tom Talpey | |||
Network Appliance, Inc. | Network Appliance, Inc. | |||
375 Totten Pond Road | 375 Totten Pond Road | |||
Waltham, MA 02451 USA | Waltham, MA 02451 USA | |||
End of changes. 15 change blocks. | ||||
32 lines changed or deleted | 25 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |