Network Working Group                                           K. Patel
Internet-Draft                                               R. Fernando
Intended status: Standards Track                           Cisco Systems
Expires: December 5, 2014 October 29, 2015                                     J. Scudder
                                                                 J. Haas
                                                        Juniper Networks
                                                            June 3, 2014
                                                          April 27, 2015

         Notification Message support for BGP Graceful Restart
               draft-ietf-idr-bgp-gr-notification-03.txt
               draft-ietf-idr-bgp-gr-notification-04.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
   document from performing a Graceful Restart.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   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
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on December 5, 2014. October 29, 2015.

Copyright Notice

   Copyright (c) 2014 2015 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   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.  Receiving  Sending a Hard Reset  . . . . . . . . . . . . . . . . .   5 .   4
   4.  Operation . . . . . . . . . . . . . . . . . . . . . . . . . .   5
     4.1.  Rules for the Receiving Speaker
   5.  Acknowledgements  . . . . . . . . . . . . .   5
   5.  Acknowledgements . . . . . . . . .   5
   6.  IANA Considerations . . . . . . . . . . . . .   6
   6.  IANA Considerations . . . . . . . .   5
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   7.  Security Considerations
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
   8.
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     8.2.  Informative 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.

   At a high level, this

   This document can be summed up as follows.  When defines 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" NOTIFICATION cease Error subcode for the BGP NOTIFICATION
   Cease Error code.  If a Hard Reset is used, code to prevent BGP speakers supporting the extension
   defined in this document from performing a full session reset is
   performed. Graceful Restart.

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
   Graceful Restart support for BGP NOTIFICATION messages.  In
   particular, the Restart flags field and the Flags field for Address
   Family are augmented as follows:

            +--------------------------------------------------+
            | Restart Flags (4 bits)                           |
            +--------------------------------------------------+
            | Restart Time in seconds (12 bits)                |
            +--------------------------------------------------+
            | Address Family Identifier (16 bits)              |
            +--------------------------------------------------+
            | Subsequent Address Family Identifier (8 bits)    |
            +--------------------------------------------------+
            | Flags for Address Family (8 bits)                |
            +--------------------------------------------------+
            | ...                                              |
            +--------------------------------------------------+
            | Address Family Identifier (16 bits)              |
            +--------------------------------------------------+
            | Subsequent Address Family Identifier (8 bits)    |
            +--------------------------------------------------+
            | Flags for Address Family (8 bits)                |
            +--------------------------------------------------+

    Restart Flags:

            This field contains bit flags relating to restart.

                0 1 2 3
               +-+-+-+-+
               |R|N|   |
               +-+-+-+-+

   The second most significant bit ("N") "N" is defined as the a BGP Graceful
   Notification bit, which is used to indicate the 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 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]. [RFC4486]
   when the Graceful NOTIFICATION bit is set (value 1).

    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
   MUST
   SHOULD be advertised as 0 reserved and MUST be ignored upon receipt. set to 0.

3.  BGP Hard Reset Subcode

   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. 9.

3.1.  Sending a Hard Reset

   A Hard Reset message 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.

   When sending a Hard Reset, Reset NOTIFICATION, the data portion of the
   NOTIFICATION is
   encoded as follows:

       +--------+--------+--------
       | ErrCode| Subcode| Data
       +--------+--------+--------

   ErrCode is a BGP Error Code (as documented in the IANA BGP Error
   Codes registry) that indicates message MUST be used to indicate the reason for the hard
   reset.

   Subcode  The reason is encoded using a standard 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 Cease error
   subcode and Subcode. MAY also include any relevant data subsequent to the
   subcode.

3.2.  Receiving  Sending a Hard Reset

   Whenever a BGP speaker receives a NOTIFICATION message with the Cease
   Error code and Hard Reset, Reset Error subcode, 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 MUST SHOULD advertise the BGP Graceful
   Notification Flag "N" using the Graceful Restart Capability as
   defined in [RFC4724].

   When such a BGP Speaker receives a BGP NOTIFICATION message other
   than a Hard Reset, message, it MUST SHOULD
   follow the standard rules for of the Receiving Speaker receiving speaker mentioned in Section 4.1.
   [RFC4724] for all AFI/SAFIs for which it has announced the BGP
   Graceful Notification flag.  The BGP speaker generating the a BGP
   NOTIFICATION message MUST also SHOULD follow the standard rules of the
   receiving Speaker in [RFC4724] for all AFI/SAFIs that were announced
   with the Receiving
   Speaker. 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 a BGP speaker resets its session due to a HOLDTIME expiry, it
   should generate
   SHOULD follow the relevant standard rules of the receiving speaker mentioned
   in [RFC4724] aside from generating a BGP NOTIFICATION message as
   mentioned in
   [RFC4271], but subsequently it MUST follow the rules for the
   Receiving Speaker mentioned in Section 4.1. [RFC4271].

   Once the session is re-established, both BGP speakers SHOULD MUST set their
   "Forwarding State" bit to 1.  If 1 if they want to apply planned graceful
   restart.  The handling of the "Forwarding State" bit is
   not set, then according to the procedures of [RFC4724] S. 4.2, the
   relevant routes will should be flushed, defeating done
   as specified by the goals procedures of this
   specification.

4.1.  Rules for the Receiving Speaker speaker in [RFC4724] S. 4.2 defines rules for the Receiving Speaker.  These
   are
   modified as follows. applied.

   As part of this extension, routes from any possible consecutive restarts SHOULD
   NOT delete a route (from the peer peer) previously marked as
   stale MUST NOT be deleted, stale, 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
   required by rules for the Receiving Speaker
   are as specified mentioned in [RFC4724] S. 4.2. [RFC4724].

5.  Acknowledgements

   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

   IANA is requested to assign

   This document defines a new BGP Cease message subcode in known as BGP
   Hard Reset Subcode.  IANA mantains the "BGP list of existing BGP Cease
   NOTIFICATION
   message subcodes" registry.  The suggested name for subcodes.  This document proposes defining a new BGP Cease
   message subcode known as BGP Hard Reset Subcode with 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]. [RFC4271]

8.  References

8.1.  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
   1194 N. Mathilda Ave
   Sunnyvale, CA  94089
   USA

   Email: jgs@juniper.net

   Jeff Haas
   Juniper Networks
   1194 N. Mathilda Ave
   Sunnyvale, CA  94089
   USA

   Email: jhaas@juniper.net