draft-ietf-netconf-beep-03.txt   draft-ietf-netconf-beep-04.txt 
Network Working Group E. Lear Network Working Group E. Lear
Internet-Draft K. Crozier Internet-Draft K. Crozier
Expires: May 16, 2005 Cisco Systems Expires: September 17, 2005 Cisco Systems
November 15, 2004 March 19, 2005
Using the NETCONF Protocol over Blocks Extensible Exchange Protocol Using the NETCONF Protocol over Blocks Extensible Exchange Protocol
(BEEP) (BEEP)
draft-ietf-netconf-beep-03 draft-ietf-netconf-beep-04
Status of this Memo Status of this Memo
By submitting this Internet-Draft, I certify that any applicable This document is an Internet-Draft and is subject to all provisions
patent or other IPR claims of which I am aware have been disclosed, of section 3 of RFC 3667. By submitting this Internet-Draft, each
and any of which I become aware will be disclosed, in accordance with author represents that any 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 become aware will be disclosed, in accordance with
RFC 3668. RFC 3668.
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 other groups may also distribute working documents as
Internet-Drafts. Internet-Drafts.
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."
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. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 16, 2005. This Internet-Draft will expire on September 17, 2005.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2004). All Rights Reserved. Copyright (C) The Internet Society (2005).
Abstract Abstract
This document specifies an application protocol mapping for the This document specifies an application protocol mapping for the
NETCONF protocol over the Blocks Extensible Exchange Protocol (BEEP). NETCONF protocol over the Blocks Extensible Exchange Protocol (BEEP).
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Why BEEP? . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Why BEEP? . . . . . . . . . . . . . . . . . . . . . . . . 3
2. BEEP Transport Mapping . . . . . . . . . . . . . . . . . . . . 4 2. BEEP Transport Mapping . . . . . . . . . . . . . . . . . . . . 4
2.1 NETCONF Session Establishment . . . . . . . . . . . . . . 4 2.1 NETCONF Session Establishment . . . . . . . . . . . . . . 4
2.2 Capabilities Exchange . . . . . . . . . . . . . . . . . . 4 2.2 Starting a Channel for NETCONF . . . . . . . . . . . . . . 4
2.3 NETCONF Session Usage . . . . . . . . . . . . . . . . . . 4 2.3 NETCONF Session Usage . . . . . . . . . . . . . . . . . . 6
2.4 NETCONF Session Teardown . . . . . . . . . . . . . . . . . 5 2.4 NETCONF Session Teardown . . . . . . . . . . . . . . . . . 6
2.5 BEEP Profile for NETCONF . . . . . . . . . . . . . . . . . 5 2.5 BEEP Profile for NETCONF . . . . . . . . . . . . . . . . . 6
2.5.1 BEEP Profile . . . . . . . . . . . . . . . . . . . . 5
3. Security Considerations . . . . . . . . . . . . . . . . . . . 8 3. Security Considerations . . . . . . . . . . . . . . . . . . . 8
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.1 Normative References . . . . . . . . . . . . . . . . . . . . 11 6.1 Normative References . . . . . . . . . . . . . . . . . . . . 11
6.2 Informative References . . . . . . . . . . . . . . . . . . . 11 6.2 Informative References . . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 12
A. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 13 A. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Intellectual Property and Copyright Statements . . . . . . . . 14 Intellectual Property and Copyright Statements . . . . . . . . 14
1. Introduction 1. Introduction
The NETCONF protocol [1] defines a simple mechanism through which a The NETCONF protocol [1] defines a simple mechanism through which a
network device can be managed. NETCONF is designed to be usable over network device can be managed. NETCONF is designed to be usable over
a variety of application protocols. This document specifies an a variety of application protocols. This document specifies an
application protocol mapping for NETCONF over the Blocks Extensible application protocol mapping for NETCONF over the Blocks Extensible
Exchange Protocol (BEEP) [2] . Exchange Protocol (BEEP) [6] .
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 RFC 2119 [4]. document are to be interpreted as described in RFC 2119 [2].
1.1 Why BEEP? 1.1 Why BEEP?
Use of BEEP is natural as an application protocol for transport of Use of BEEP is natural as an application protocol for transport of
XML. As a peer to peer protocol, BEEP provides an easy way to XML. As a peer to peer protocol, BEEP provides an easy way to
implement NETCONF, no matter which side of the connection was the implement NETCONF, no matter which side of the connection was the
initiator. This "bidirectionality" allows for either side to play initiator. This "bidirectionality" allows for either manager or
the role of the manager with no protocol changes. Either side can agent to initiate a connection. This is particularly important to
open a channel. Either side could initiate an RPC. This is support large number of intermittantly connected devices, as well as
particularly important to support operational models that involve those devices that must reverse the management connection in the face
small devices connecting to a manager, and those devices that must of firewalls and NATs.
reverse the management connection in the face of firewalls and NATs.
The SASL profile used by BEEP allows for a simple and direct mapping The SASL profile used by BEEP allows for a simple and direct mapping
to the existing security model for CLI, while TLS provides a strong to the existing security model for CLI, while TLS provides a strong
well tested encryption mechanism with either server or server and well tested encryption mechanism with either server or server and
client-side authentication. client-side authentication.
2. BEEP Transport Mapping 2. BEEP Transport Mapping
All NETCONF over BEEP implementations MUST implement the profile and All NETCONF over BEEP implementations MUST implement the profile and
functional mapping between NETCONF and BEEP as described below. functional mapping between NETCONF and BEEP as described below.
2.1 NETCONF Session Establishment 2.1 NETCONF Session Establishment
Managers may be either BEEP listeners or initiators. Similarly, Managers may be either BEEP listeners or initiators. Similarly,
agents may be either listeners or initiators. Thus the initial agents may be either listeners or initiators. Thus the initial
exchange takes place without regard to whether a manager or the agent exchange takes place without regard to whether a manager or the agent
is the initiator. After the transport connection is established, as is the initiator. After the transport connection is established, as
greetings are exchanged, they should each announce their support for greetings are exchanged, they SHOULD each announce their support for
TLS [6] and optionally SASL [5] (see below), as well as for the TLS [4] and optionally SASL [3]. Once greetings are exchanged, if
SYSLOG profile [7]. Once greetings are exchanged, if TLS is to be TLS is to be used and available by both parties, the listener STARTs
used and available by both parties, the listener STARTs a channel a channel with the TLS profile.
with the TLS profile.
Once TLS has been started, a new greeting is sent by both initiator Once TLS has been started, a new greeting is sent by both initiator
and listener, as required by the BEEP RFC. and listener, as required by the BEEP RFC.
At this point, if SASL is desired, the initiator starts BEEP channel At this point, if SASL is desired, the initiator starts a BEEP
1 to perform a SASL exchange to authenticate itself. When SASL is channel to perform a SASL exchange to authenticate itself. Upon
completed, the channel MUST be closed. completion of authentication the channel is closed. That is, the
channel is exclusively used to authenticate.
Examples of both TLS and SASL profiles can be found in [6].
It is anticipated that the SASL PLAIN mechanism will be heavily used
in conjunction with TLS.[5] In such cases, in accordance with RFC
2595 the PLAIN mechanism MUST NOT be advertised in the first BEEP
<greeting>, but only in the one following a successful TLS
negotiation. This applies only if TLS and SASL PLAIN mechanisms are
both to be used. The SASL PLAIN mechanism SHOULD NOT be used
unencrypted channels to avoid risk of eavesdropping.
Once authentication has occurred, there is no need to distinguish Once authentication has occurred, there is no need to distinguish
between initiator and listener. We now distinguish between manager between initiator and listener. We now distinguish between manager
and agent. and agent, and it is assumed that each knows its role in the
conversation.
2.2 Capabilities Exchange 2.2 Starting a Channel for NETCONF
The manager now establishes an NETCONF a new channel. As initiators The manager now establishes new channel and specifies the single
assign odd channels and listeners assign even channels, this next NETCONF profile. For example:
channel is BEEP channel 1 or 2, depending on whether the manager is
the initiator or the listener. (M = Manager ; A = Agent )
M: MSG 0 1 . 10 48 101
M: Content-type: application/beep+xml
M: <start number="1">
M: <profile uri="http://iana.org/beep/netconf" />
M: </start>
M: END
A: RPY 0 1 . 38 87
A: Content-Type: application/beep+xml
A:
A: <profile uri="http://iana.org/beep/netconf" />
A: END
At this point we are ready to proceed on BEEP channel 1 with NETCONF
operations.
Next the manager and the agent exchange NETCONF <hello> elements on
the new channel so that each side learns the other's capabilities.
This occurs through a MSG. Each side will then respond with
positively. The following example is adapted from [1] Section 8.1:
A: MSG 1 0 . 0 436
A: Content-type: application/beep+xml
A:
A: <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
A: <capabilities>
A: <capability>
A: urn:ietf:params:xml:ns:netconf:base:1.0
A: </capability>
A: <capability>
A: urn:ietf:params:xml:ns:netconf:base:1.0#startup
A: </capability>
A: <capability>
A: http:/example.net/router/2.3/core#myfeature
A: </capability>
A: </capabilities>
A: <session-id>4</session-id>
A: </hello>
A: END
M: RPY 1 0 . 0 0
M: END
Certain NETCONF capabilities may require additional BEEP channels. Certain NETCONF capabilities may require additional BEEP channels.
When such capabilities are defined, a BEEP mapping must be defined as When such capabilities are defined, a BEEP mapping must be defined as
well. well.
At this point, the NETCONF session is established, and capabilities At this point, the NETCONF session is established, and capabilities
have been exchanged. have been exchanged.
2.3 NETCONF Session Usage 2.3 NETCONF Session Usage
Nearly all NETCONF operations are executed through the <RPC> tag. To Nearly all NETCONF operations are executed through the <rpc> tag. To
issue an RPC, the manager transmits on the operational channel a BEEP issue an RPC, the manager transmits on the operational channel a BEEP
MSG containing the RPC and its arguments. In accordance with the MSG containing the RPC and its arguments. In accordance with the
BEEP standard, RPC requests may be split across multiple BEEP frames. BEEP standard, RPC requests may be split across multiple BEEP frames.
Once received and processed, the agent responds with BEEP RPYs on the Once received and processed, the agent responds with BEEP RPYs on the
same channel with the response to the RPC. In accordance with the same channel with the response to the RPC. In accordance with the
BEEP standard, responses may be BEEP standard, responses may be split across multiple BEEP frames.
split across multiple BEEP frames.
2.4 NETCONF Session Teardown 2.4 NETCONF Session Teardown
Upon receipt of <close-session> from the manager, once the agent has Upon receipt of <close-session> from the manager, once the agent has
completed all RPCs, it will close BEEP channel 0. When an agent completed all RPCs, it will close BEEP channel 0. When an agent
needs to initiate a close it will do so by closing BEEP channel 0. needs to initiate a close it will do so by closing BEEP channel 0.
Although not required to do so, the agent should allow for a Although not required to do so, the agent should allow for a
reasonable period for a manager to release an existing lock prior to reasonable period for a manager to release an existing lock prior to
initiating a close. Once the agent has closed channel 0, all locks initiating a close. Once the agent has closed channel 0, all locks
are released, and each side follows tear down procedures as specified are released, and each side follows tear down procedures as specified
in [3]. Having received a BEEP close or having sent <close-session>, in [7]. Having received a BEEP close or having sent <close-session>,
a manager MUST NOT send further requests. If there are additional a manager MUST NOT send further requests. If there are additional
activities due to expanded capabilities, these MUST cease in an activities due to expanded capabilities, these MUST cease in an
orderly manner, and should be properly described in the capability orderly manner, and should be properly described in the capability
mapping. mapping.
2.5 BEEP Profile for NETCONF 2.5 BEEP Profile for NETCONF
There are two commands in the BEEP profile. <rpc> and <rpc-reply>. Profile Identification: http://iana.org/beep/netconf
2.5.1 BEEP Profile
<!-- DTD for netconf operations over BEEP
Refer to this DTD as:
<!ENTITY % NETCONF PUBLIC "netconf/Operation/1.0" "">
%NETCONF;
-->
<!-- Contents
Overview
Includes
Profile Summaries
Entity Definitions
Operations
rpc
rpc-reply
-->
<!-- Overview NETCONF operation channel -->
<!-- Includes -->
<!ENTITY % BEEP PUBLIC "-//Blocks//DTD BEEP//EN"
"">
%BEEP;
<!-- Profile summaries
BEEP profile NETCONF
role MSG RPY ERR
==== === === ===
I or L rpc ok error
I or L rpc-reply ok error
-->
<!--
Entity Definitions
entity syntax/reference example
====== ================ =======
a RPC
RPC-DATA Alpha
a RPC reply number
RPC-REPLY 1*3DIGIT
-->
<!ENTITY % RPC-REPLY "CDATA"> messages exchanged during Channel Creation: not applicable
<!ENTITY % RPC-DATA "CDATA">
--> Messages starting one-to-one exchanges: "hello", "rpc", "rpc-reply"
<!-- Messages in positive replies: "rpc-reply"
RPC command
-->
<!ELEMENT RPC (#PCDATA)> Messages in negative replies: "rpc-reply"
<!ATTLIST RPC
RPC-DATA %RPC_DATA; #REQUIRED>
<!-- Messages in one-to-many exchanges: none
Result of RPC.
-->
<!ELEMENT RPC-REPLY (#PCDATA)> Message syntax: [1]
<!ATTLIST RPC-REPLY
RPC-REPLY %RPC-REPLY; #REQUIRED
RPC-DATA %RPC-DATA #REQUIRED>
<!-- End of DTD --> message semantics: [1]
Contact Information: c.f., the "Author's Address" section of this
memo.
3. Security Considerations 3. Security Considerations
Configuration information is by its very nature sensitive. Its Configuration information is by its very nature sensitive. Its
transmission in the clear and without integrity checking leaves transmission in the clear and without integrity checking leaves
devices open to classic so-called "person in the middle" attacks. devices open to classic so-called "person in the middle" attacks.
Configuration information often times contains passwords, user names, Configuration information often times contains passwords, user names,
service descriptions, and topological information, all of which are service descriptions, and topological information, all of which are
sensitive. A NETCONF application protocol, therefore, must minimally sensitive. A NETCONF application protocol, therefore, must minimally
support options for both confidentiality and authentication. support options for both confidentiality and authentication.
BEEP makes use of both transport layer security and SASL. We require BEEP makes use of both transport layer security and SASL. We require
that TLS be used in BEEP as described by the BEEP standard. that TLS be used in BEEP as described by the BEEP standard.
Client-side certificates are strongly desirable, but an SASL Client-side certificates are strongly desirable, but an SASL
authentication is the bare minimum. SASL allows for the use of authentication is the bare minimum. SASL allows for the use of
protocols such as RADIUS [10], so that authentication can occur off protocols such as RADIUS [10], so that authentication can occur off
the box. the box.
SASL authentication will occur on the first channel creation, and In keeping with the BEEP standard, SASL authentication will occur on
prior to issuance of any protocol operations. No further the first channel creation, and prior to issuance of any protocol
authentication may occur during the same session. This avoids a operations. No further authentication may occur during the same
situation where rights are different between different channels. If session. This avoids a situation where rights are different between
an implementation wishes to support multiple accesses by different different channels. If an implementation wishes to support multiple
individuals with different rights, then multiple sessions are accesses by different individuals with different rights, then
required. multiple sessions are required.
Different environments may well allow different rights prior to and Different environments may well allow different rights prior to and
then after authentication. An authorization model is not specified then after authentication. An authorization model is not specified
in this document. When an operation is not properly authorized then in this document. When an operation is not properly authorized then
a simple "permission denied" is sufficient. Note that authorization a simple rpc-error containing "permission denied" is sufficient.
information may be exchanged in the form of configuration Note that authorization information may be exchanged in the form of
information, which is all the more reason to ensure the security of configuration information, which is all the more reason to ensure the
the connection. security of the connection.
4. IANA Considerations 4. IANA Considerations
The IANA will assign a TCP port for NETCONF. The IANA will assign a TCP port for NETCONF, and register the BEEP
profile contained here-in.
5. Acknowledgments 5. Acknowledgments
This work is the product of the NETCONF IETF working group, and many This work is the product of the NETCONF IETF working group, and many
people have contributed to the NETCONF discussion. Most notably, Rob people have contributed to the NETCONF discussion. Most notably, Rob
Ens, Phil Schafer, Andy Bierman, Wes Hardiger, Ted Goddard, and Ens, Phil Schafer, Andy Bierman, Wes Hardiger, Ted Goddard, and
Margaret Wasserman all contributed in some fashion to this work, Margaret Wasserman all contributed in some fashion to this work,
which was originally to be found in the NETCONF base protocol which was originally to be found in the NETCONF base protocol
specification. Thanks also to Weijing Chen, Keith Allen, Juergen specification. Thanks also to Weijing Chen, Keith Allen, Juergen
Schoenwaelder, and Eamon O'Tuathail for their very constructive Schoenwaelder, and Eamon O'Tuathail for their very constructive
participation. participation.
6. References 6. References
6.1 Normative References 6.1 Normative References
[1] Enns, R., "NETCONF Configuration Protocol", [1] Enns, R., "NETCONF Configuration Protocol",
draft-ietf-netconf-prot-03 (work in progress), June 2004. draft-ietf-netconf-prot-04 (work in progress), October 2004.
[2] Rose, M., "The Blocks Extensible Exchange Protocol Core", RFC
3080, March 2001.
[3] Rose, M., "Mapping the BEEP Core onto TCP", RFC 3081, March
2001.
[4] Bradner, S., "Key words for use in RFCs to Indicate Requirement [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[5] Myers, J., "Simple Authentication and Security Layer (SASL)", [3] Myers, J., "Simple Authentication and Security Layer (SASL)",
RFC 2222, October 1997. RFC 2222, October 1997.
[6] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A. and [4] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A. and
P. Kocher, "The TLS Protocol Version 1.0", RFC 2246, January P. Kocher, "The TLS Protocol Version 1.0", RFC 2246, January
1999. 1999.
[7] New, D. and M. Rose, "Reliable Delivery for syslog", RFC 3195, [5] Newman, C., "Using TLS with IMAP, POP3 and ACAP", RFC 2595, June
November 2001. 1999.
[6] Rose, M., "The Blocks Extensible Exchange Protocol Core", RFC
3080, March 2001.
[7] Rose, M., "Mapping the BEEP Core onto TCP", RFC 3081, March
2001.
6.2 Informative References 6.2 Informative References
[8] Bray, T., Paoli, J., Sperberg-McQueen, C. and E. Maler, [8] Bray, T., Paoli, J., Sperberg-McQueen, C. and E. Maler,
"Extensible Markup Language (XML) 1.0 (Second Edition)", W3C "Extensible Markup Language (XML) 1.0 (Second Edition)", W3C
REC REC-xml-20001006, October 2000. REC REC-xml-20001006, October 2000.
[9] Hollenbeck, S., Rose, M. and L. Masinter, "Guidelines for the [9] Hollenbeck, S., Rose, M. and L. Masinter, "Guidelines for the
Use of Extensible Markup Language (XML) within IETF Protocols", Use of Extensible Markup Language (XML) within IETF Protocols",
BCP 70, RFC 3470, January 2003. BCP 70, RFC 3470, January 2003.
[10] Rigney, C., Willens, S., Rubens, A. and W. Simpson, "Remote [10] Rigney, C., Willens, S., Rubens, A. and W. Simpson, "Remote
Authentication Dial In User Service (RADIUS)", RFC 2865, June Authentication Dial In User Service (RADIUS)", RFC 2865, June
2000. 2000.
Authors' Addresses Authors' Addresses
Eliot Lear Eliot Lear
Cisco Systems Cisco Systems
Glatt-com Glatt-com
Glattzentr Glattzentrum, Zurich 8301
um, Zurich 8301
CH CH
EMail: lear@cisco.com EMail: lear@cisco.com
Ken Crozier Ken Crozier
Cisco Systems Cisco Systems
170 W. Tasman Dr. 170 W. Tasman Dr.
San Jose, CA 95134-1706 San Jose, CA 95134-1706
US US
EMail: kcrozier@cisco.com EMail: kcrozier@cisco.com
Appendix A. Change Log Appendix A. Change Log
03, 04: minor gnits relating to <close-session> 04: complete revamp of the profile. Added <hello> as well as
examples.
03: minor gnits relating to <close-session>
02: added comments about locking 02: added comments about locking
01: Removed management channel, rpc-status, rpc-abort, and associated 01: Removed management channel, rpc-status, rpc-abort, and associated
profile changes. profile changes.
Intellectual Property Statement 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 to Intellectual Property Rights or other rights that might be claimed to
skipping to change at page 14, line 41 skipping to change at page 14, line 41
This document and the information contained herein are provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement Copyright Statement
Copyright (C) The Internet Society (2004). This document is subject Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights. except as set forth therein, the authors retain all their rights.
Acknowledgment Acknowledgment
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. 

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