<?xml version='1.0'?>   
    <!DOCTYPE rfc SYSTEM 'rfc2629.dtd' [ 
        <!ENTITY rfc2119 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'> 
        <!ENTITY rfc4271 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml'> 
        <!ENTITY rfc2234 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2234.xml'> 
        <!ENTITY rfc5492 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5492.xml'> 
        <!ENTITY rfc5882 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5882.xml'> 
        ]>
<?rfc toc="yes"?>
<?rfc tocompact="no"?>
<?rfc tocdepth="6"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="yes" ?>
<rfc category="std" docName="draft-merciaz-ietf-idr-bgp-bfd-strict-mode-00">
  <!-- ***** FRONT MATTER ***** -->
  <front>
    <title abbrev="BGP BFD Strict-Mode ">BGP BFD Strict-Mode</title>
    
    <author initials="M" surname="Zheng" 
    fullname="Mercia Zheng">
      <organization>Cisco Systems</organization>
    
      <address>
       <postal>
         <street>821 Alder Drive,</street>
         
        <region>MILPITAS, CALIFORNIA 95035</region>
        
        <country>UNITED STATES</country>
       </postal>
       
       <phone></phone>
       <email>merciaz@cisco.com</email>
       </address>
    </author>

    <author initials="A" surname="Linden" 
    fullname="Acee Lindem">
      <organization>Cisco Systems</organization>
    
      <address>
       <postal>
         <street>821 Alder Drive,</street>
         
        <region>MILPITAS, CALIFORNIA 95035</region>
        
        <country>UNITED STATES</country>
       </postal>
       
       <phone></phone>
       <email>acee@cisco.com</email>
      </address>
    </author>


    <date year="2019"/>    
    <area>Routing</area>
    <workgroup>IDR WorkGroup</workgroup>
    <abstract>
        <t>
            This document specifies extensions to RFC4271 BGP-4 that enable a BGP speaker to signal additional Bidirectional Forwarding Detection (BFD) extensions using an optional parameter BFD capability. This BFD capability enables a BGP speaker to prevent a BGP session from being established until a BFD session is established. It is referred to as BGP BFD “strict-mode”. BGP BFD strict-mode will be supported when both the local speaker and its remote peer are BFD strict-mode capable, Otherwise, a BGP speaker and its peer should not require a BFD session for BGP session establishment.
    </t>
    </abstract>
  </front>

  <!-- ***** MIDDLE MATTER ***** -->

  <middle>
      <section title="Introduction">
          <t>
              Bidirectional Forwarding Detection BFD [RFC5882] enables routers to monitor data plane connectivity and to detect faults in the bidirectional forwarding path between them. This capability is leveraged by routing protocols such as BGP [RFC4271] to rapidly react to topology changes in the face of path failures.
          </t>
          <t>
The BFD interaction with BGP is specified in Section 10.2 of [RFC5882]. When BFD is enabled for a BGP neighbor, faults in the bidirectional forwarding detected by BFD result in session termination. It is possible in some failure scenarios for the network to be in a state such that a BGP session may be established but a BFD session cannot be established. In some other scenarios, it may be possible to establish a BGP session, but a degraded or poor-quality link may result in the corresponding BFD session going up and down frequently.
</t>
<t>
To avoid situations which result in routing churn and to minimize the impact of network interruptions, it will be beneficial to disallow BGP to establish a neighbor session until BFD session is successfully established and has stabilized. We refer to this mode of operation as BGP BFD “strict-mode”. However, always using
strict-mode” would preclude BGP operation in an environment where not all routers support BFD strict-mode or have BFD enabled.
This document defines BGP “strict-mode” operation as preventing BGP session establishment until both the local and remove speakers have a stable BFD session.
The document also specifies the BGP protocol extensions for BGP capability [BGP-CAP] for announcing BFD parameters including a BGP speaker’s support for “strict-mode”, i.e., requiring a BFD session for BGP session establishment.

      </t>
      </section>     

      <section title="Terminology">
          <t> 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 <xref target="RFC2119"/>  .
          </t>
      </section>

      <section title="3. BGP BFD Capability">
          <t>
          The BGP Capability [RFC5492] for BFD parameters will allow a BGP speaker’s BFD capabilities including its support for BFD strict-mode. This capability is defined as follows:
  </t>
          <t>
   Capability code: TBD
   </t>
   <t>
	Capability length: 1 octet
    </t>
    <t>
Capability value: Consists of 1 octet BFD flags as follows:
</t>
      <figure  >
            <preamble/>
            <artwork ><![CDATA[
         +--------------------------------------------------+
         | BFD Flags (8 bits)                               |
         +--------------------------------------------------+



                                ]]></artwork>
              <postamble></postamble>
          </figure>
          <t>
              The use and meaning of the fields are as follows:
      </t>
      <t>
             BFD Flags:
      This field contains bit flags relating to BFD.

  </t>
    <figure  >
            <preamble/>
            <artwork ><![CDATA[
                 0 1 2 3 4 5 6 7
	       	+-+-+-+-+-+-+-+-+
              	|S| Reserved    |
              	+-+-+-+-+-+-+-+-+


                                          ]]></artwork>
              <postamble></postamble>
          </figure>
          <t>
              The most significant bit is defined as state of Strict-Mode ("Strict-Mode", or "S") bit, which can be used by a BGP speaker to signal its support for BFD Strict-mode. When set (value 1), this bit indicates that the BGP speaker has the BFD “Strict-mode” enabled. If both local BGP speaker and its peer are enabled with BFD strict-mode, then BGP session establishment will be disallowed until a BFD session is established. A BGP speaker with BFD strict-mode enabled MUST advertise the BFD capability with “S” bit value 1.
      </t>
      <t>
          The remaining bits are reserved and SHOULD be set to zero by the
          sender and MUST be ignored by the receiver.

  </t>

  </section>

  <section title="Operation">
      <t>
          A BGP speaker that supports capabilities advertisement sends an OPEN message to its BGP peer, the message MAY include an Optional Parameter, called Capabilities. The parameter lists the capabilities supported by the speaker. By following BGP capabilities advertisement procedures defined in [RFC5492], BFD capability advertisement for strict-mode is advertised to BGP peers.
  </t>
  <t>
      A BGP speaker which supports capabilities advertisement and has BFD strict-mode enabled MUST include the BGP BFD capability with the “S” Bit set in the BGP capabilities it advertises.
      </t>
      <t>
          A BGP speaker which supports BFD capability advertisement, examines the list of capabilities present in the Capabilities BFD Parameter that the speaker receives from its peer. If both the local and remote BGP speakers BFD strict-mode enabled, then BGP session establishment will be prevented until a BFD session is up. If either peer has not advertised the BFD Capability with strict-mode enabled, then a BFD session SHOULD NOT be required prior to BGP session establishment. This does not preclude usage of BFD after BGP session establishment [RFC5882].
  </t>
  <t>
      A BGP speaker which does not support or recognize BFD capability should ignore the BFD capability. If a BGP speaker advertising the capability receives the Unsupported Capability NOTIFICATION message, it MUST NOT be result in BGP session termination.
      </t>
      </section>
      <section title="Backward Compatibility">
          <t>
              The new BFD capability will introduce any backward compatibility if the procedures defined in this document are followed. A BGP speaker which does not support BFD capability MUST ignore this capability. The Unsupported Capability NOTIFICATION message MUST NOT result in session termination by the BGP speaker advertising the capability.
      </t>
  </section>
  <section title="Security Considerations">
      <t>
          This specification doesn't change the basic security model inherent in [RFC4271]. To the extent [RFC4271] might be said to help defend against denials of service by making the control plane more resilient, this extension may modestly increase that resilience; however, there are enough confounding and deployment-specific factors that no general claims can be made.
  </t>
      </section>
      <section title="IANA Considerations">
          <t>
              This document defines a new BGP capability – BFD Capability. The Capability Code for BFD Capability is TBD.
      </t>
      <t>
          IANA is requested to establish a “BGP BFD Capability Flags” registry within the "Border Gateway Protocol (BGP) Parameters" grouping. The Registration Procedure should be Standards Action, the initial values as follows:
  </t>
   <figure  >
            <preamble/>
            <artwork ><![CDATA[

      +--------------+---------------+------------+---------------+
      | Bit Position |      Name     | Short Name |   Reference   |
      +--------------+---------------+------------+---------------+
      |      0       | Strict-Mode   |     S      | this document |
      |      1-7     | Unassigned    |            | this document |
      +--------------+---------------+------------+---------------+



                                          ]]></artwork>
              <postamble></postamble>
          </figure>
  </section>

      <section title="Acknowledgement">
          <t>
              The authors would like to acknowledge the review and inputs from Shyam Sethuram and Mohammed Mirza.
      </t>
      </section>

    
    
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
  <references title="Informative References">
          &rfc4271;
          &rfc2119;
          &rfc2234;
          &rfc5492;
          &rfc5882;
      </references>

  </back>
</rfc>
