--- 1/draft-ietf-idr-bgp-gr-notification-04.txt 2015-04-27 12:14:51.835164662 -0700 +++ 2/draft-ietf-idr-bgp-gr-notification-05.txt 2015-04-27 12:14:51.851165051 -0700 @@ -1,21 +1,21 @@ Network Working Group K. Patel Internet-Draft R. Fernando Intended status: Standards Track Cisco Systems Expires: October 29, 2015 J. Scudder J. Haas Juniper Networks April 27, 2015 Notification Message support for BGP Graceful Restart - draft-ietf-idr-bgp-gr-notification-04.txt + draft-ietf-idr-bgp-gr-notification-05.txt Abstract The current BGP Graceful Restart mechanism limits the usage of BGP Graceful Restart to BGP protocol messages other than a BGP NOTIFICATION message. This document defines an extension to the BGP Graceful Restart that permits the Graceful Restart procedures to be performed when the BGP speaker receives a BGP NOTIFICATION Message. This document also defines a new BGP NOTIFICATION Cease Error subcode to prevent BGP speakers supporting the extension defined in this @@ -65,46 +65,49 @@ it for publication as an RFC or to translate it into languages other than English. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. Modifications to BGP Graceful Restart Capability . . . . . . 3 3. BGP Hard Reset Subcode . . . . . . . . . . . . . . . . . . . 4 3.1. Sending a Hard Reset . . . . . . . . . . . . . . . . . . 4 - 3.2. Sending a Hard Reset . . . . . . . . . . . . . . . . . . 4 + 3.2. Receiving a Hard Reset . . . . . . . . . . . . . . . . . 5 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 - 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 + 4.1. Rules for the Receiving Speaker . . . . . . . . . . . . . 5 + 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 + 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 7. Security Considerations . . . . . . . . . . . . . . . . . . . 6 - 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 8.1. Normative References . . . . . . . . . . . . . . . . . . 6 - 8.2. Informative References . . . . . . . . . . . . . . . . . 6 + 8. Normative References . . . . . . . . . . . . . . . . . . . . 6 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction For many classes of errors, the BGP protocol must send a NOTIFICATION message and reset the peering session to handle the error condition. The BGP Graceful Restart extension defined in [RFC4724] requires that normal BGP procedures defined in [RFC4271] be followed when a NOTIFICATION message is sent or received. This document defines an extension to BGP Graceful Restart that permits the Graceful Restart procedures to be performed when the BGP speaker receives a NOTIFICATION message. This permits the BGP speaker to avoid flapping reachability and continue forwarding while the BGP speaker restarts the session to handle errors detected in the BGP protocol. - This document defines a BGP NOTIFICATION cease Error subcode for the - Cease Error code to prevent BGP speakers supporting the extension - defined in this document from performing a Graceful Restart. + At a high level, this document can be summed up as follows. When a + BGP session is reset, both speakers operate as "Receiving Speakers" + according to [RFC4724], meaning they retain each other's routes. + This is also true for HOLDTIME expiration. The functionality can be + defeated using a "Hard Reset" subcode for the BGP NOTIFICATION Cease + Error code. If a Hard Reset is used, a full session reset is + performed. 1.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 2. Modifications to BGP Graceful Restart Capability The BGP Graceful Restart Capability is augmented to signal the @@ -134,152 +137,164 @@ Restart Flags: This field contains bit flags relating to restart. 0 1 2 3 +-+-+-+-+ |R|N| | +-+-+-+-+ - The second most significant bit "N" is defined as a BGP Graceful - Notification bit, which is used to indicate the Graceful Restart - support for BGP NOTIFICATION messages. BGP speaker indicates the - Graceful Restart support for BGP NOTIFICATION messages and its - ability to handle the new BGP NOTIFICATION Cease message subcode and - the format for a BGP NOTIFICATION Cease message defined in [RFC4486] - when the Graceful NOTIFICATION bit is set (value 1). + The second most significant bit ("N") is defined as the BGP Graceful + Notification bit, which is used to indicate Graceful Restart support + for BGP NOTIFICATION messages. A BGP speaker indicates support for + the procedures of this document, by advertising a Graceful Restart + Capability with its Graceful NOTIFICATION bit set (value 1). This + also implies support for the format for a BGP NOTIFICATION Cease + message defined in [RFC4486]. Flags for Address Family: This field contains bit flags relating to routes that were advertised with the given AFI and SAFI. 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |F|N| Reserved | +-+-+-+-+-+-+-+-+ The usage of second most significant bit "N" is deprecated. This bit - SHOULD be reserved and set to 0. + MUST be advertised as 0 and MUST be ignored upon receipt. 3. BGP Hard Reset Subcode - A new BGP Cease message subcode is defined known as BGP Hard Reset - Subcode. The value of this subcode is 9. + A new BGP NOTIFICATION Cease message subcode is defined known as the + BGP Hard Reset Subcode. The value of this subcode is discussed in + Section 6. We refer to a BGP NOTIFICATION Cease message with the + Hard Reset subcode as a Hard Reset message, or just a Hard Reset. 3.1. Sending a Hard Reset - A Hard Reset NOTIFICATION Message is used to indicate to a peer with - which the Graceful Notification flag has been exchanged, that the - session is to be fully terminated. + A Hard Reset message is used to indicate to a peer with which the + Graceful Notification flag has been exchanged, that the session is to + be fully terminated. - When sending a Hard Reset NOTIFICATION, the data portion of the - NOTIFICATION message MUST be used to indicate the reason for the hard - reset. The reason is encoded using a standard BGP Cease error - subcode and MAY also include any relevant data subsequent to the - subcode. + When sending a Hard Reset, the data portion of the NOTIFICATION is + encoded as follows: -3.2. Sending a Hard Reset + +--------+--------+-------- + | ErrCode| Subcode| Data + +--------+--------+-------- - Whenever a BGP speaker receives a NOTIFICATION message with the Cease - Error code and Hard Reset Error subcode, the speaker MUST terminate - the BGP session following the standard procedures in [RFC4271]. + ErrCode is a BGP Error Code (as documented in the IANA BGP Error + Codes registry) that indicates the reason for the hard reset. + + Subcode is a BGP Error Subcode (as documented in the IANA BGP Error + Subcodes registry) as appropriate for the ErrCode. Similarly, Data + is as appropriate for the ErrCode and Subcode. + +3.2. Receiving a Hard Reset + + Whenever a BGP speaker receives a Hard Reset, the speaker MUST + terminate the BGP session following the standard procedures in + [RFC4271]. 4. Operation A BGP speaker that is willing to receive and send BGP NOTIFICATION - messages in Graceful mode SHOULD advertise the BGP Graceful + messages in Graceful mode MUST advertise the BGP Graceful Notification Flag "N" using the Graceful Restart Capability as defined in [RFC4724]. - When a BGP Speaker receives a BGP NOTIFICATION message, it SHOULD - follow the standard rules of the receiving speaker mentioned in - [RFC4724] for all AFI/SAFIs for which it has announced the BGP - Graceful Notification flag. The BGP speaker generating a BGP - NOTIFICATION message SHOULD follow the standard rules of the - receiving Speaker in [RFC4724] for all AFI/SAFIs that were announced - with the BGP Graceful Notification flag. - - A BGP speaker MAY continue to operate in the Graceful Restart mode - even if it receives a Graceful Restart capability without a Graceful - Notification Flag. + When such a BGP Speaker receives a BGP NOTIFICATION message other + than a Hard Reset, it MUST follow the rules for the Receiving Speaker + mentioned in Section 4.1. The BGP speaker generating the BGP + NOTIFICATION message MUST also follow the rules for the Receiving + Speaker. When a BGP speaker resets its session due to a HOLDTIME expiry, it - SHOULD follow the standard rules of the receiving speaker mentioned - in [RFC4724] aside from generating a BGP NOTIFICATION message as - mentioned in [RFC4271]. + should generate the relevant BGP NOTIFICATION message as mentioned in + [RFC4271], but subsequently it MUST follow the rules for the + Receiving Speaker mentioned in Section 4.1. - Once the session is re-established, both BGP speakers MUST set their - "Forwarding State" bit to 1 if they want to apply planned graceful - restart. The handling of the "Forwarding State" bit should be done - as specified by the procedures of the Receiving speaker in [RFC4724] - are applied. + Once the session is re-established, both BGP speakers SHOULD set + their "Forwarding State" bit to 1. If the "Forwarding State" bit is + not set, then according to the procedures of [RFC4724] S. 4.2, the + relevant routes will be flushed, defeating the goals of this + specification. - As part of this extension, any possible consecutive restarts SHOULD - NOT delete a route (from the peer) previously marked as stale, until - required by rules mentioned in [RFC4724]. +4.1. Rules for the Receiving Speaker + + [RFC4724] S. 4.2 defines rules for the Receiving Speaker. These are + modified as follows. + + As part of this extension, routes from the peer previously marked as + stale MUST NOT be deleted, until and unless the timer mentioned in + the final paragraph of [RFC4724] S. 4.2 expires, or unless a Hard + Reset is performed. This supersedes the "consecutive restarts" + requirement of [RFC4724] S. 4.2. + + In addition to the rules already specified in [RFC4724] S. 4.2 for + how variations in the received Graceful Restart Capability should be + interpreted (the paragraph that begins "Once the session is re- + established..."), if the Graceful Notification ("N") bit is not set + in the newly received Graceful Restart Capability, no new actions are + triggered on the Receiving Speaker -- in particular, a clear "N" bit + does not trigger deletion of stale routes. + + Other than these modifications, the rules for the Receiving Speaker + are as specified in [RFC4724] S. 4.2. 5. Acknowledgements - The authors would like to thank Robert Raszuk for the review and + The authors would like to thank Jim Uttaro for the suggestion, and + Chris Hall, Paul Mattes and Robert Raszuk for the review and comments. 6. IANA Considerations - This document defines a new BGP Cease message subcode known as BGP - Hard Reset Subcode. IANA mantains the list of existing BGP Cease - message subcodes. This document proposes defining a new BGP Cease - message subcode known as BGP Hard Reset Subcode with the value 9. + IANA is requested to assign a new subcode in the "BGP Cease + NOTIFICATION message subcodes" registry. The suggested name for the + code point is "Hard Reset". The suggested value is 9. 7. Security Considerations This extension to BGP does not change the underlying security issues - inherent in the existing [RFC4724] and [RFC4271] - -8. References + inherent in the existing [RFC4724] and [RFC4271]. -8.1. Normative References +8. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. - [RFC2842] Chandra, R. and J. Scudder, "Capabilities Advertisement - with BGP-4", RFC 2842, May 2000. - [RFC3392] Chandra, R. and J. Scudder, "Capabilities Advertisement with BGP-4", RFC 3392, November 2002. [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006. [RFC4486] Chen, E. and V. Gillet, "Subcodes for BGP Cease Notification Message", RFC 4486, April 2006. [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, January 2007. -8.2. Informative References - - [RFC2858] Bates, T., Rekhter, Y., Chandra, R., and D. Katz, - "Multiprotocol Extensions for BGP-4", RFC 2858, June 2000. - Authors' Addresses - Keyur Patel Cisco Systems 170 W. Tasman Drive San Jose, CA 95134 USA Email: keyupate@cisco.com + Rex Fernando Cisco Systems 170 W. Tasman Drive San Jose, CA 95134 USA Email: rex@cisco.com John Scudder Juniper Networks