draft-ietf-idr-bgp-enhanced-route-refresh-10.txt | rfc7313.txt | |||
---|---|---|---|---|
IDR K. Patel | Internet Engineering Task Force (IETF) K. Patel | |||
Internet-Draft E. Chen | Request for Comments: 7313 E. Chen | |||
Updates: 2918 (if approved) Cisco Systems | Updates: 2918 Cisco Systems | |||
Intended status: Standards Track B. Venkatachalapathy | Category: Standards Track B. Venkatachalapathy | |||
Expires: December 11, 2014 | ISSN: 2070-1721 July 2014 | |||
June 9, 2014 | ||||
Enhanced Route Refresh Capability for BGP-4 | Enhanced Route Refresh Capability for BGP-4 | |||
draft-ietf-idr-bgp-enhanced-route-refresh-10.txt | ||||
Abstract | Abstract | |||
In this document we enhance the existing BGP route refresh mechanisms | In this document, we enhance the existing BGP route refresh | |||
to provide for the demarcation of the beginning and the ending of a | mechanisms to provide for the demarcation of the beginning and the | |||
route refresh. The enhancement can be used to facilitate correction | ending of a route refresh. The enhancement can be used to facilitate | |||
of BGP RIB inconsistencies in a non-disruptive manner. This document | correction of BGP Routing Information Base (RIB) inconsistencies in a | |||
updates RFC 2918. | non-disruptive manner. This document updates RFC 2918. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at http://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 5741. | ||||
This Internet-Draft will expire on December 11, 2014. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
http://www.rfc-editor.org/info/rfc7313. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 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 2, line 15 | skipping to change at page 2, line 13 | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 2 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 2 | |||
3. Protocol Extensions . . . . . . . . . . . . . . . . . . . . . 2 | 3. Protocol Extensions . . . . . . . . . . . . . . . . . . . . . 2 | |||
3.1. Enhanced Route Refresh Capability . . . . . . . . . . . . 3 | 3.1. Enhanced Route Refresh Capability . . . . . . . . . . . . 3 | |||
3.2. Subtypes for ROUTE-REFRESH Message . . . . . . . . . . . 3 | 3.2. Subtypes for ROUTE-REFRESH Message . . . . . . . . . . . 3 | |||
4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 4 | 5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | |||
9. Normative References . . . . . . . . . . . . . . . . . . . . 6 | 9. Normative References . . . . . . . . . . . . . . . . . . . . 7 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
1. Introduction | 1. Introduction | |||
It is sometimes necessary to perform routing consistency validations | It is sometimes necessary to perform routing consistency validations | |||
such as checking for possible missing route withdrawals between BGP | such as checking for possible missing route withdrawals between BGP | |||
speakers [RFC4271]. Currently such validations typically involve | speakers [RFC4271]. Currently, such validations typically involve | |||
off-line, manual operations which can be tedious and time consuming. | offline, manual operations that can be tedious and time-consuming. | |||
In this document we enhance the existing BGP route refresh mechanisms | In this document, we enhance the existing BGP route refresh | |||
[RFC2918] to provide for the demarcation of the beginning and the | mechanisms [RFC2918] to provide for the demarcation of the beginning | |||
ending of a route refresh (which refers to the complete re- | and the ending of a route refresh (which refers to the complete | |||
advertisement of the Adj-RIB-Out to a peer, subject to routing | re-advertisement of the Adj-RIB-Out to a peer, subject to routing | |||
policies). The enhancement can be used to facilitate on-line, non- | policies). The enhancement can be used to facilitate online, non- | |||
disruptive consistency validation of BGP routing updates. | disruptive consistency validation of BGP routing updates. | |||
This document updates [RFC2918] by redefining a field in the ROUTE- | This document updates [RFC2918] by redefining a field in the ROUTE- | |||
REFRESH message that was previously designated as Reserved. | REFRESH message that was previously designated as Reserved. | |||
2. Requirements Language | 2. 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] only when | document are to be interpreted as described in [RFC2119] only when | |||
skipping to change at page 3, line 11 | skipping to change at page 3, line 9 | |||
The BGP protocol extensions introduced in this document include the | The BGP protocol extensions introduced in this document include the | |||
definition of a new BGP capability, named "Enhanced Route Refresh | definition of a new BGP capability, named "Enhanced Route Refresh | |||
Capability", and the specification of the message subtypes for the | Capability", and the specification of the message subtypes for the | |||
ROUTE-REFRESH message. | ROUTE-REFRESH message. | |||
3.1. Enhanced Route Refresh Capability | 3.1. Enhanced Route Refresh Capability | |||
The "Enhanced Route Refresh Capability" is a new BGP capability | The "Enhanced Route Refresh Capability" is a new BGP capability | |||
[RFC5492]. IANA has assigned a Capability Code of 70 for this | [RFC5492]. IANA has assigned a Capability Code of 70 for this | |||
capability . The Capability Length field of this capability is zero. | capability. The Capability Length field of this capability is zero. | |||
By advertising this capability to a peer, a BGP speaker conveys to | By advertising this capability to a peer, a BGP speaker conveys to | |||
the peer that the speaker supports the message subtypes for the | the peer that the speaker supports the message subtypes for the | |||
ROUTE-REFRESH message and the related procedures described in this | ROUTE-REFRESH message and the related procedures described in this | |||
document. | document. | |||
3.2. Subtypes for ROUTE-REFRESH Message | 3.2. Subtypes for ROUTE-REFRESH Message | |||
The "Reserved" field of the ROUTE-REFRESH message specified in | The "Reserved" field of the ROUTE-REFRESH message specified in | |||
[RFC2918] is re-defined as the "Message Subtype" with the following | [RFC2918] is redefined as the "Message Subtype" with the following | |||
values: | values: | |||
0 - Normal route refresh request [RFC2918] | 0 - Normal route refresh request [RFC2918] | |||
with/without ORF [RFC5291] | with/without Outbound Route Filtering (ORF) [RFC5291] | |||
1 - Demarcation of the beginning of a route refresh | 1 - Demarcation of the beginning of a route refresh | |||
(BoRR) operation. | (BoRR) operation | |||
2 - Demarcation of the ending of a route refresh | 2 - Demarcation of the ending of a route refresh | |||
(EoRR) operation. | (EoRR) operation | |||
255 - Reserved | ||||
The remaining values of the message subtypes are reserved for future | The remaining values of the message subtypes are reserved for future | |||
use. The use of the new message subtypes is described in the | use; see Section 6 ("IANA Considerations"). The use of the new | |||
Operations section. | message subtypes is described in Section 4 ("Operation"). | |||
4. Operation | 4. Operation | |||
A BGP speaker that supports the message subtypes for the ROUTE- | A BGP speaker that supports the message subtypes for the ROUTE- | |||
REFRESH message and the related procedures SHOULD advertise the | REFRESH message and the related procedures SHOULD advertise the | |||
"Enhanced Route Refresh Capability". | "Enhanced Route Refresh Capability". | |||
The following procedures are applicable only if a BGP speaker has | The following procedures are applicable only if a BGP speaker has | |||
received the "Enhanced Route Refresh Capability" from a peer. | received the "Enhanced Route Refresh Capability" from a peer. | |||
Before the speaker starts a route refresh that is either initiated | Before the speaker starts a route refresh that is either initiated | |||
locally, or in response to a "normal route refresh request" from the | locally, or in response to a "normal route refresh request" from the | |||
peer, the speaker MUST send a BoRR message. After the speaker | peer, the speaker MUST send a BoRR message. After the speaker | |||
completes the re-advertisement of the entire Adj-RIB-Out to the peer, | completes the re-advertisement of the entire Adj-RIB-Out to the peer, | |||
it MUST send an EoRR message. | it MUST send an EoRR message. | |||
Conceptually the "entire Adj-RIB-Out" for a peer in this section | Conceptually, the "entire Adj-RIB-Out" for a peer in this section | |||
refers to all the route entries in the "Adj-RIB-Out" for the peer at | refers to all the route entries in the "Adj-RIB-Out" for the peer at | |||
the start of the route refresh operation. These route entries | the start of the route refresh operation. These route entries | |||
comprise both the reachability as well as unreachability information. | comprise both the reachability as well as unreachability information. | |||
When a route entry in the "Adj-RIB-Out" changes, only the modified | When a route entry in the "Adj-RIB-Out" changes, only the modified | |||
route entry needs to be advertised. | route entry needs to be advertised. | |||
In processing a ROUTE-REFRESH message from a peer, the BGP speaker | In processing a ROUTE-REFRESH message from a peer, the BGP speaker | |||
MUST examine the "message subtype" field of the message and take the | MUST examine the "message subtype" field of the message and take the | |||
appropriate actions. The message processing rules for ROUTE-REFRESH | appropriate actions. The message processing rules for ROUTE-REFRESH | |||
message with subtype of 0 are described in [RFC2918] and [RFC5291]. | message with subtype of 0 are described in [RFC2918] and [RFC5291]. | |||
A BGP speaker can receive a BoRR message from a peer at any time, | A BGP speaker can receive a BoRR message from a peer at any time, | |||
either as a result of a peer responding to a ROUTE-REFESH message, or | either as a result of a peer responding to a ROUTE-REFRESH message, | |||
as a result of a peer unilaterally initiating a route refresh. When | or as a result of a peer unilaterally initiating a route refresh. | |||
a BGP speaker receives a BoRR message from a peer, it MUST mark all | When a BGP speaker receives a BoRR message from a peer, it MUST mark | |||
the routes with the given Address Family Identifer and Subsequent | all the routes with the given Address Family Identifier and | |||
Address Family Identifier, <AFI, SAFI> [RFC2918] from that peer as | Subsequent Address Family Identifier, <AFI, SAFI> [RFC2918], from | |||
stale. As it receives routes from its peer's subsequent Adj-RIB-Out | that peer as stale. As it receives routes from its peer's subsequent | |||
re-advertisement, these replace any corresponding stale routes. When | Adj-RIB-Out re-advertisement, these replace any corresponding stale | |||
a BGP speaker receives an EoRR message from a peer, it MUST | routes. When a BGP speaker receives an EoRR message from a peer, it | |||
immediately remove any routes from the peer that are still marked as | MUST immediately remove any routes from the peer that are still | |||
stale for that <AFI, SAFI>. Such purged routes MAY be logged for | marked as stale for that <AFI, SAFI>. Such purged routes MAY be | |||
future analysis. A BGP speaker MAY ignore any EoRR message received | logged for future analysis. A BGP speaker MAY ignore any EoRR | |||
without a prior receipt of an associated BoRR message. Such messages | message received without a prior receipt of an associated BoRR | |||
MAY be logged for future analysis. | message. Such messages MAY be logged for future analysis. | |||
An implementation MAY impose a locally configurable upper bound on | An implementation MAY impose a locally configurable upper bound on | |||
how long it would retain any stale routes. Once the upper bound is | how long it would retain any stale routes. Once the upper bound is | |||
reached, the implementation MAY remove any routes from the peer that | reached, the implementation MAY remove any routes from the peer that | |||
are still marked as stale for that <AFI, SAFI> without waiting for an | are still marked as stale for that <AFI, SAFI> without waiting for an | |||
EoRR message. | EoRR message. | |||
The following procedures are specified in order to simplify the | The following procedures are specified in order to simplify the | |||
interaction with the BGP Graceful Restart [RFC4724]. In particular, | interaction with the BGP Graceful Restart [RFC4724]. In particular, | |||
these procedures ensure that End-of-RIB (EoR) defined in Graceful | these procedures ensure that End-of-RIB (EoR) defined in Graceful | |||
Restart and EoRR as defined in this specification are kept separate, | Restart and EoRR as defined in this specification are kept separate, | |||
thereby avoiding any premature cleanup of stale routes. For a BGP | thereby avoiding any premature cleanup of stale routes. For a BGP | |||
speaker that supports the BGP Graceful Restart, it MUST NOT send a | speaker that supports the BGP Graceful Restart, it MUST NOT send a | |||
BoRR for an <AFI, SAFI> to a neighbor before it sends the EoR for the | BoRR for an <AFI, SAFI> to a neighbor before it sends the EoR for the | |||
<AFI, SAFI> to the neighbor. A BGP speaker that has received the | <AFI, SAFI> to the neighbor. A BGP speaker that has received the | |||
Graceful Restart Capability from its neighbor, MUST ignore any BoRRs | Graceful Restart Capability from its neighbor MUST ignore any BoRRs | |||
for an <AFI, SAFI> from the neighbor before the speaker receives the | for an <AFI, SAFI> from the neighbor before the speaker receives the | |||
EoR for the given <AFI, SAFI> from the neighbor. The BGP speaker | EoR for the given <AFI, SAFI> from the neighbor. The BGP speaker | |||
SHOULD log an error of the condition for further analysis. | SHOULD log an error of the condition for further analysis. | |||
5. Error Handling | 5. Error Handling | |||
This document defines a new NOTIFICATION error code: | This document defines a new NOTIFICATION error code: | |||
Error Code Symbolic Name | Error Code Name | |||
TBD ROUTE-REFRESH Message Error | 7 ROUTE-REFRESH Message Error | |||
The following error subcodes are defined as well: | The following error subcode is defined as well: | |||
Subcode Symbolic Name | Subcode Name | |||
1 Invalid Message Length | 1 Invalid Message Length | |||
The error handling specified in this section is applicable only when | The error handling specified in this section is applicable only when | |||
a BGP speaker has received the "Enhanced Route Refresh Capability" | a BGP speaker has received the "Enhanced Route Refresh Capability" | |||
from a peer. | from a peer. | |||
If the length, excluding the fixed-size message header, of the | If the length, excluding the fixed-size message header, of the | |||
received ROUTE-REFRESH message with Message Subtype 1 and 2 is not 4, | received ROUTE-REFRESH message with Message Subtype 1 and 2 is not 4, | |||
then the BGP speaker MUST send a NOTIFICATION message with the Error | then the BGP speaker MUST send a NOTIFICATION message with the Error | |||
Code of "ROUTE-REFRESH Message Error" and the subcode of "Invalid | Code of "ROUTE-REFRESH Message Error" and the subcode of "Invalid | |||
Message Length". The Data field of the NOTIFICATION message MUST | Message Length". The Data field of the NOTIFICATION message MUST | |||
contain the complete ROUTE-REFRESH message. | contain the complete ROUTE-REFRESH message. | |||
When the BGP speaker receives a ROUTE-REFRESH message with a "Message | When the BGP speaker receives a ROUTE-REFRESH message with a "Message | |||
Subtype" field other than 0, 1 or 2, it MUST ignore the received | Subtype" field other than 0, 1, or 2, it MUST ignore the received | |||
ROUTE-REFRESH message. It SHOULD log an error for further analysis. | ROUTE-REFRESH message. It SHOULD log an error for further analysis. | |||
6. IANA Considerations | 6. IANA Considerations | |||
This document defines the Enhanced Route Refresh Capability for BGP. | This document defines the Enhanced Route Refresh Capability for BGP. | |||
The Capability Code 70 has been assigned by the IANA from the "BGP | In the "Capability Codes" registry, IANA has assigned it value 70, | |||
Capability Codes" registry. IANA should update that registry entry | referencing this document. | |||
to reference this document when it is published as an RFC. This | ||||
document also defines two new subcodes for the Route Refresh message. | ||||
They need to be registered with the IANA. We request IANA to create | ||||
a new registry for the Route Refresh message subcodes as follows: | ||||
Under "Border Gateway Protocol (BGP) Parameters": | This document also defines two new subcodes for the Route Refresh | |||
Registry: "BGP Route Refresh Subcodes" | message. They have been registered with the IANA in a new registry | |||
Reference: [RFC-to-Be] | as follows: | |||
Registration Procedure(s): Values 0-127 Standards Action, values | ||||
128-254 First Come, First Served, Value 255 reserved | ||||
Value Code Reference | Under "Border Gateway Protocol (BGP) Parameters": | |||
0 Route-Refresh [RFC2918], [RFC5291] | Registry: "BGP Route Refresh Subcodes" | |||
1 BoRR [RFC-to-Be] | Reference: [RFC7313] | |||
2 EoRR [RFC-to-Be] | Registration Procedure(s): Values 0-127 Standards Action, | |||
3-127 Unassigned | values 128-254 First Come First Served | |||
128-254 Unassigned | ||||
255 Reserved [RFC-to-Be] | Value Code Reference | |||
0 Route-Refresh [RFC2918], [RFC5291] | ||||
1 BoRR [RFC7313] | ||||
2 EoRR [RFC7313] | ||||
3-254 Unassigned | ||||
255 Reserved [RFC7313] | ||||
In addition, this document defines a NOTIFICATION error code and an | In addition, this document defines a NOTIFICATION error code and an | |||
error subcode related to the ROUTE-REFRESH message. We request IANA | error subcode related to the ROUTE-REFRESH message. IANA has changed | |||
to allocate a new error code from the "BGP Error Codes" registry with | the name of the "BGP Error Codes" to "BGP Error (Notification) Codes" | |||
the symbolic name "ROUTE-REFRESH Message Error", referencing this | and added this document as a reference. IANA has allocated a new | |||
document. We request IANA to create a new registry for the error | error code from that registry with the name "ROUTE-REFRESH Message | |||
subcodes as follows: | Error", referencing this document. | |||
Under "BGP Error Subcodes": | IANA has created a new registry for the error subcodes as follows: | |||
Registry: "BGP ROUTE-REFRESH Message Error subcodes" | ||||
Reference: [RFC-to-Be] | ||||
Registration Procedure(s): Values 0-127 Standards Action, values | ||||
128-255 First Come, First Served | ||||
Value Code Reference | Under "Border Gateway Protocol (BGP) Parameters", | |||
0 Reserved | under "BGP Error Subcodes": | |||
1 Invalid Message Length [RFC-to-Be] | Registry: "BGP ROUTE-REFRESH Message Error subcodes" | |||
2-127 Unassigned | Reference: [RFC7313] | |||
128-255 Unassigned | Registration Procedure(s): Values 0-127 Standards Action, | |||
values 128-255 First Come First Served | ||||
Value Name Reference | ||||
0 Reserved [RFC7313] | ||||
1 Invalid Message Length [RFC7313] | ||||
2-255 Unassigned | ||||
7. Security Considerations | 7. Security Considerations | |||
Security considerations are given in [RFC4272] , but do not cover | Security considerations are given in [RFC4272] , but they do not | |||
Route-Refresh and many other BGP extensions. This draft does not | cover Route-Refresh and many other BGP extensions. This document | |||
significantly change the underlying security issues regarding Route- | does not significantly change the underlying security issues | |||
Refresh, although improved error handling may aid operational | regarding Route-Refresh, although improved error handling may aid | |||
security. | operational security. | |||
8. Acknowledgements | 8. Acknowledgements | |||
The authors would like to thank Pedro Marques, Pradosh Mohapatra, | The authors would like to thank Pedro Marques, Pradosh Mohapatra, | |||
Robert Raszuk, Pranav Mehta, Shyam Sethuram, Bruno Decraene, Martin | Robert Raszuk, Pranav Mehta, Shyam Sethuram, Bruno Decraene, Martin | |||
Djernaes, Jeff Haas, Ilya Varlashkin, Rob Shakir, Paul Jakma, Jie | Djernaes, Jeff Haas, Ilya Varlashkin, Rob Shakir, Paul Jakma, Jie | |||
Dong, Qing Zeng, Albert Tian, Jakob Heitz and Chris Hall for their | Dong, Qing Zeng, Albert Tian, Jakob Heitz, and Chris Hall for their | |||
review and comments. The authors would like to thank John Scudder | review and comments. The authors would like to thank John Scudder | |||
for the review and contribution to this document. | for the review and contribution to this document. | |||
9. Normative References | 9. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918, | [RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918, | |||
September 2000. | September 2000. | |||
skipping to change at page 7, line 26 | skipping to change at page 8, line 13 | |||
with BGP-4", RFC 5492, February 2009. | with BGP-4", RFC 5492, February 2009. | |||
Authors' Addresses | Authors' Addresses | |||
Keyur Patel | Keyur Patel | |||
Cisco Systems | Cisco Systems | |||
170 W. Tasman Drive | 170 W. Tasman Drive | |||
San Jose, CA 95134 | San Jose, CA 95134 | |||
USA | USA | |||
Email: keyupate@cisco.com | EMail: keyupate@cisco.com | |||
Enke Chen | Enke Chen | |||
Cisco Systems | Cisco Systems | |||
170 W. Tasman Drive | 170 W. Tasman Drive | |||
San Jose, CA 95134 | San Jose, CA 95134 | |||
USA | USA | |||
Email: enkechen@cisco.com | EMail: enkechen@cisco.com | |||
Balaji Venkatachalapathy | Balaji Venkatachalapathy | |||
Email: balaji_pv@hotmail.com | EMail: balaji_pv@hotmail.com | |||
End of changes. 33 change blocks. | ||||
108 lines changed or deleted | 105 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |