draft-ietf-nfsv4-nfsdirect-01.txt   draft-ietf-nfsv4-nfsdirect-02.txt 
Internet-Draft Brent Callaghan Internet-Draft Brent Callaghan
Expires: August 2005 Tom Talpey Expires: April 2006 Tom Talpey
Document: draft-ietf-nfsv4-nfsdirect-01 February, 2005 Document: draft-ietf-nfsv4-nfsdirect-02 October, 2005
NFS Direct Data Placement NFS Direct Data Placement
Status of this Memo Status of this Memo
By submitting this Internet-Draft, I certify that any applicable By submitting this Internet-Draft, each author represents that any
patent or other IPR claims of which I am aware have been disclosed, applicable patent or other IPR claims of which he or she is aware
or will be disclosed, and any of which I become aware will be dis- have been or will be disclosed, and any of which he or she becomes
closed, in accordance with RFC 3668. 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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other docu- months and may be updated, replaced, or obsoleted by other docu-
ments at any time. It is inappropriate to use Internet-Drafts as ments at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in reference material or to cite them other than as "work in
progress." progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt The list of Inter- http://www.ietf.org/ietf/1id-abstracts.txt The list of Inter-
net-Draft Shadow Directories can be accessed at net-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Copyright Notice
Copyright (C) The Internet Society (2005). All Rights Reserved.
Abstract Abstract
The RDMA transport for ONC RPC provides direct data placement for NFS The RDMA transport for ONC RPC provides direct data placement for NFS
data. Direct data placement not only reduces the amount of data that data. Direct data placement not only reduces the amount of data that
needs to be copied in an NFS call, but allows much of the data needs to be copied in an NFS call, but allows much of the data
movement over the network to be implemented in RDMA hardware. This movement over the network to be implemented in RDMA hardware. This
draft describes the use of direct data placement by means of server- draft describes the use of direct data placement by means of server-
initiated RDMA operations into client-supplied buffers in a Chunk initiated RDMA operations into client-supplied buffers in a Chunk
list for implementations of NFS versions 2, 3, and 4 over an RDMA list for implementations of NFS versions 2, 3, and 4 over an RDMA
transport. transport.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. RDMA Read List . . . . . . . . . . . . . . . . . . . . . . . 2 2. Transfers from NFS Client to NFS Server . . . . . . . . . . 2
3. RDMA Write List . . . . . . . . . . . . . . . . . . . . . . 3 3. Transfers from NFS Server to NFS Client . . . . . . . . . . 2
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 . . . . . . . . . . . . . . . . . . . . . . 7 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7
9. Normative References . . . . . . . . . . . . . . . . . . . . 7 9. Normative References . . . . . . . . . . . . . . . . . . . . 7
10. Informative References . . . . . . . . . . . . . . . . . . 8 10. Informative References . . . . . . . . . . . . . . . . . . 8
11. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 9 11. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 8
12. Full Copyright Statement . . . . . . . . . . . . . . . . . 9 12. Intellectual Property and Copyright Statements . . . . . . 8
Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 10 Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . 9
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. version of the NFS protocol.
2. RDMA Read List 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 marshall 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, can be referenced from such as the file data of an NFS WRITE request, may be referenced by
the RDMA Read list and be moved efficiently and direct-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
implemented entirely within the RPC layer. It is transparent to the implemented entirely within the RPC layer. It is transparent to the
upper-level protocol, such as NFS. For instance, the file data upper-level protocol, such as NFS. For instance, the file data
portion of an NFS WRITE request can be selected as an RDMA "chunk" portion of an NFS WRITE request can be selected as an RDMA "chunk"
within the XDR marshalling code of RPC based on a size criterion, within the XDR marshalling code of RPC based on a size criterion,
independently of the NFS protocol layer. The XDR unmarshalling on the independently of the NFS protocol layer. The XDR unmarshalling on the
receiving system can identify the correspondence between Read chunks receiving system can identify the correspondence between Read chunks
and protocol elements via the XDR position value encoded in the Read and protocol elements via the XDR position value encoded in the Read
chunk entry. chunk entry.
However, the implementation of the RDMA Write list requires some help RPC RDMA Read chunks are employed by this NFS mapping to convey
from the NFS protocol layer to identify the candidate chunks. Since specific NFS data to the server in a manner which may be directly
there is no simple XDR position value to unambiguously label Write placed. The following sections describe this mapping for versions of
chunks, both client and server must agree on a mapping of write chunk the NFS protocol.
entries to protocol elements.
3. RDMA Write List 3. Transfers from NFS Server to NFS Client
The RDMA Write list, in the RDMA transport header, allows the client The RDMA Write list, in the RDMA transport header, allows the client
to post one or more buffers into which the server will RDMA Write to post one or more buffers into which the server will RDMA Write
designated result chunks directly. If the client sends a null write designated result chunks directly. If the client sends a null write
list, then results from the RPC call will be returned as either an list, then results from the RPC call will be returned as either an
in-line reply, as chunks in an RDMA Read list of server-posted inline reply, as chunks in an RDMA Read list of server-posted
buffers, or in a client-posted reply buffer. buffers, or in a client-posted reply buffer.
Each posted buffer in a Write list is represented as an array of Each posted buffer in a Write list is represented as an array of
memory segments. This allows the client some flexibility in memory segments. This allows the client some flexibility in
submitting discontiguous memory segments into which the server will submitting discontiguous memory segments into which the server will
scatter the result. Each segment is described by a triplet scatter the result. Each segment is described by a triplet
consisting of the segment handle or steering tag (STag), segment consisting of the segment handle or steering tag (STag), segment
length, and memory address or offset. length, and memory address or offset.
struct xdr_rdma_segment { struct xdr_rdma_segment {
skipping to change at page 4, line 20 skipping to change at page 3, line 50
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 in-line. 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
data in the buffer(s), but does return zeroes in the segment length
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 must map to a specific result in the reply. The buffers - each buffer must map to a specific result in the reply. The
NFS client and server implementations must agree on the mapping of NFS client and server implementations must agree on 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.
Through the use of RDMA Write lists in NFS requests, it is not Through the use of RDMA Write lists in NFS requests, it is not
necessary to employ the RDMA Read lists in the NFS replies, as necessary to employ the RDMA Read lists in the NFS replies, as
described in the RPC/RDMA protocol. This enables more efficient described in the RPC/RDMA protocol. This enables more efficient
operation, by avoiding the need for the server to expose buffers for operation, by avoiding the need for the server to expose buffers for
RDMA, and also avoiding "RDMA_DONE" messages. RDMA, and also avoiding "RDMA_DONE" exchanges. Clients may
additionally employ RDMA Reply chunks to receive entire messages, as
described in [RPCRDMA].
4. NFS Versions 2 and 3 Mapping 4. NFS Versions 2 and 3 Mapping
A single RDMA Write list entry may be posted by the client to receive A single RDMA Write list entry may be posted by the client to receive
either the opaque file data from a READ request or the pathname from either the opaque file data from a READ request or the pathname from
a READLINK request. The server will ignore a Write list for any a READLINK request. The server will ignore a Write list for any
other NFS procedure, as well as any Write list entries beyond the other NFS procedure, as well as any Write list entries beyond the
first in the list. first in the list.
Similarly, a single RDMA Read list entry may be posted by the client Similarly, a single RDMA Read list entry may be posted by the client
skipping to change at page 5, line 29 skipping to change at page 5, line 15
fashion, which may improve server performance. fashion, which may improve server performance.
The NFS version 2 and 3 protocols are frequently limited in practice The NFS version 2 and 3 protocols are frequently limited in practice
to requests containing less than or equal to 8 kilobytes and 32 to requests containing less than or equal to 8 kilobytes and 32
kilobytes of data, respectively. In these cases, it is often kilobytes of data, respectively. In these cases, it is often
practical to support basic operation without employing a practical to support basic operation without employing a
configuration exchange as discussed in [RPCRDMA]. The server can configuration exchange as discussed in [RPCRDMA]. The server can
post buffers large enough to receive the largest possible incoming post buffers large enough to receive the largest possible incoming
message (approximately 12KB/36KB would be vastly sufficient in the message (approximately 12KB/36KB would be vastly sufficient in the
above cases), and the client can post buffers large enough to receive above cases), and the client can post buffers large enough to receive
replies based on the "rsize" it is using to the server. Flow control replies based on the "rsize" it is using to the server. Because the
is handled dynamically by the RPC RDMA protocol, and write padding is server will never return data in excess of this size, the client can
optional and therefore may remain unused. be assured of the adequacy of its posted buffer sizes.
Flow control is handled dynamically by the RPC RDMA protocol, and
write padding is optional and therefore may remain unused.
Alternatively, if the server is administratively configured to values Alternatively, if the server is administratively configured to values
appropriate for all its clients, the same assurance of appropriate for all its clients, the same assurance of
interoperability within the domain can be made. interoperability within the domain can be made.
The use of a configuration protocol with NFS v2 and v3 is therefore The use of a configuration protocol with NFS v2 and v3 is therefore
optional. Employing a configuration exchange may allow some advantage optional. Employing a configuration exchange may allow some advantage
to server resource management through accurately sizing buffers, to server resource management through accurately sizing buffers,
enabling the server to know exactly how many RDMA Reads may be in enabling the server to know exactly how many RDMA Reads may be in
progress at once on the client connection, and enabling client write progress at once on the client connection, and enabling client write
skipping to change at page 6, line 12 skipping to change at page 5, line 46
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 will be considered only for the COMPOUND procedure. The Write list will 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 will utilize entries from the Write list. from a READLINK operation will 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 either in- READLINK operations in the COMPOUND must return their data inline.
line or via RDMA READ (using the Read list). The NFSv4.0 client must ensure that any result of its READ and
READLINK requests must fit within its receive buffers, or an RDMA
transport error may occur.
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 request. The next Write list entry by the by the READLINK in the COMPOUND request. The next Write list entry by the
next READ or READLINK, and so on. If there are more READ or READLINK by the next READ or READLINK, and so on. If there are more READ or
operations than Write list entries, then any remaining operations READLINK operations than Write list entries, then any remaining
must return their results in-line or via the Read list. operations must return their results inline.
If a Write list entry is presented, then the corresponding READ or If a Write list entry is presented, then the corresponding READ or
READLINK must return its data via an RDMA WRITE to the buffer READLINK must return its data via an RDMA WRITE to the buffer
indicated by the Write list entry. If the Write list entry has zero indicated by the Write list entry. If the Write list entry has zero
RDMA segments, or if the total size of the segments is zero, then the RDMA segments, or if the total size of the segments is zero, then the
corresponding READ or READLINK operation must return its result in- corresponding READ or READLINK operation must return its result
line or via Read list. inline.
The following example shows an RDMA Write list with three posted The following example shows an RDMA Write list with three posted
buffers A, B, and C. The designated operations in the compound buffers A, B, and C. The designated operations in the compound
request, READ and READLINK, consume the posted buffers by writing request, READ and READLINK, consume the posted buffers by writing
their results back to each buffer. their results back to each buffer.
RDMA Write list: RDMA Write list:
A --> B --> C A --> B --> C
skipping to change at page 7, line 4 skipping to change at page 6, line 33
RDMA Write list: RDMA Write list:
A --> B --> C A --> B --> C
Compound request: Compound request:
PUTFH LOOKUP READ PUTFH LOOKUP READLINK PUTFH LOOKUP READ PUTFH LOOKUP READ PUTFH LOOKUP READLINK PUTFH LOOKUP READ
| | | | | |
v v v v v v
A B C A B C
If the client does not want to have the READLINK result returned If the client does not want to have the READLINK result returned
directly, then it provides a zero length array of segment triplets directly, then it provides a zero length array of segment triplets
for buffer B or sets the values in the segment triplet for buffer B for buffer B or sets the values in the segment triplet for buffer B
to zeros so that the READLINK result will be returned in-line. to zeros so that the READLINK result will be returned inline.
The situation is similar for RDMA Read lists and applies to the The situation is similar for RDMA Read lists sent by the client and
NFSv4.0 WRITE and SYMLINK procedures as for v3. Additionally, inline applies to the NFSv4.0 WRITE and SYMLINK procedures as for v3.
segments too large to fit in posted buffers may be transferred in Additionally, inline segments too large to fit in posted buffers may
special "RDMA_NOMSG" messages. be transferred in special "RDMA_NOMSG" messages.
Non-RDMA (inline) WRITE transfers may optionally employ the Non-RDMA (inline) WRITE transfers may optionally employ the
"RDMA_MSGP" padding method described in the RPC/RDMA protocol, if the "RDMA_MSGP" padding method described in the RPC/RDMA protocol, if the
appropriate value for the server is known to the client. Padding appropriate value for the server is known to the client. Padding
allows the opaque file data to arrive at the server in an aligned allows the opaque file data to arrive at the server in an aligned
fashion, which may improve server performance. In order to ensure fashion, which may improve server performance. In order to ensure
accurate alignment for all data, it is likely that the client will accurate alignment for all data, it is likely that the client will
restrict its use of optional padding to COMPOUND requests containing restrict its use of optional padding to COMPOUND requests containing
only a single WRITE operation. only a single WRITE operation.
Unlike NFS versions 2 and 3, the maximum size of an NFS version 4 Unlike NFS versions 2 and 3, the maximum size of an NFS version 4
COMPOUND is unbounded, even when RDMA chunks are in use. While it COMPOUND is unbounded, even when RDMA chunks are in use. While it
might appear that a configuration protocol exchange (as described in might appear that a configuration protocol exchange (such as the one
[RPCRDMA]) would help, in fact the layering issues involved in described in [RPCRDMA]) would help, in fact the layering issues
building COMPOUNDs by NFS make such a mechanism unworkable. Instead, involved in building COMPOUNDs by NFS make such a mechanism
an extension to NFS version 4 supporting a more comprehensive unworkable. Instead, an extension to NFS version 4 supporting a more
exchange of upper layer (NFSv4) parameters is proposed in comprehensive exchange of upper layer (NFSv4) parameters is proposed
[NFSSESSIONS]. This proposal also addresses other use of the sizes, in [NFSSESS]. This proposal also addresses other use of the sizes,
such as in the server's response cache. such as in the server's response cache.
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.
7. IANA Considerations 7. IANA Considerations
skipping to change at page 8, line 45 skipping to change at page 8, line 20
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
[RPCRDMA] [RPCRDMA]
B. Callaghan, T. Talpey, "RDMA Transport for ONC RPC" B. Callaghan, T. Talpey, "RDMA Transport for ONC RPC"
Internet Draft Work in Progress, Internet Draft Work in Progress,
http://www.ietf.org/internet-drafts/ draft-ietf-nfsv4-rpcrdma
draft-ietf-nfsv4-rpcrdma-01.txt
[NFSSESSIONS] [NFSSESS]
T. Talpey, S. Shepler, J. Bauman, "NFSv4 Session Extensions" T. Talpey, S. Shepler, J. Bauman, "NFSv4 Session Extensions"
Internet Draft Work in Progress, Internet Draft Work in Progress,
http://www.ietf.org/internet-drafts/ draft-ietf-nfsv4-sess
draft-ietf-nfsv4-sess-01.txt
11. Authors' Addresses 11. Authors' Addresses
Brent Callaghan Brent Callaghan
1614 Montalto Dr. 1614 Montalto Dr.
Mountain View, California 94040 USA Mountain View, California 94040 USA
Phone: +1 650 968 2333 Phone: +1 650 968 2333
EMail: brent.callaghan@gmail.com EMail: brent.callaghan@gmail.com
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
Phone: +1 781 768 5329 Phone: +1 781 768 5329
EMail: thomas.talpey@netapp.com EMail: thomas.talpey@netapp.com
12. Full Copyright Statement 12. Intellectual Property and Copyright Statements
Copyright (C) The Internet Society (2005). This document is sub-
ject to the rights, licenses and restrictions contained in BCP 78
and except as set forth therein, the authors retain all their
rights.
This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REP-
RESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed Intellectual Property Rights or other rights that might be claimed
to pertain to the implementation or use of the technology described to pertain to the implementation or use of the technology described
in this document or the extent to which any license under such in this document or the extent to which any license under such
rights might or might not be available; nor does it represent that rights might or might not be available; nor does it represent that
it has made any independent effort to identify any such rights. it has made any independent effort to identify any such rights.
Information on the procedures with respect to rights in RFC docu- Information on the procedures with respect to rights in RFC docu-
ments can be found in BCP 78 and BCP 79. ments can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any Copies of IPR disclosures made to the IETF Secretariat and any
skipping to change at page 10, line 29 skipping to change at page 9, line 26
of such proprietary rights by implementers or users of this speci- of such proprietary rights by implementers or users of this speci-
fication can be obtained from the IETF on-line IPR repository at fication can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf- this standard. Please address the information to the IETF at ietf-
ipr@ietf.org. ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REP-
RESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2005). This document is sub-
ject to the rights, licenses and restrictions contained in BCP 78,
and except as set forth therein, the authors retain all their
rights.
Acknowledgement Acknowledgement
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is currently provided by the
Internet Society. Internet Society.
 End of changes. 27 change blocks. 
71 lines changed or deleted 78 lines changed or added

This html diff was produced by rfcdiff 1.27, available from http://www.levkowetz.com/ietf/tools/rfcdiff/