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/