<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" docName="draft-mirsky-bfd-mpls-demand-15" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.6.0 -->
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

  <front>
    <title abbrev="BFD Demand Mode over P2P MPLS LSP">BFD in Demand Mode over a Point-to-Point MPLS LSP</title>
    <seriesInfo name="Internet-Draft" value="draft-mirsky-bfd-mpls-demand-15"/>
    
    <author fullname="Greg Mirsky" initials="G." surname="Mirsky">
      <organization>Ericsson</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    
    <date year="2023"/>
    
    <area>Routing</area>
    <workgroup>BFD Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>BFD</keyword>
    <keyword>Demand mode</keyword>
    <keyword>LSP</keyword>
    <abstract>
      <t>
      This document describes procedures for using Bidirectional Forwarding Detection (BFD) in Demand mode
      to detect data plane failures in Multiprotocol Label Switching (MPLS) point-to-point
      Label Switched Paths.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro-section" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
      <xref target="RFC5884" format="default"/> defined use of the Asynchronous method of Bidirectional 
      Detection (BFD) <xref target="RFC5880" format="default"/> to monitor and detect failures in
      the data path of a Multiprotocol Label Switching (MPLS)
      Label Switched Path (LSP). Use of the Demand mode, also specified in <xref target="RFC5880" format="default"/>,
      has not been defined so far. This document describes procedures for using the Demand mode of BFD protocol
      to detect data plane failures in MPLS point-to-point (p2p) LSPs. 
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>Acronyms</name>

        <t>MPLS:       Multiprotocol Label Switching</t>
        <t>LSP:        Label Switched Path</t>
        <t>LER:        Label switching Edge Router</t>
        <t>BFD:        Bidirectional Forwarding Detection</t>
        <t>p2p:        Point-to-Point</t>
      </section>
      <!--
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
   "MAY", and "OPTIONAL" in this document are to be interpreted as
   described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> 
   when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
      -->
   
    <section anchor="demand-bfd-section" numbered="true" toc="default">
      <name>Use of the BFD Demand Mode</name>
      <t>
      <xref target="RFC5880" format="default"/> defines that the Demand mode may be:
      </t>
      <ul spacing="normal">
        <li>asymmetric, i.e. used in one direction of a BFD session;</li>
        <li>switched to and from without bringing BFD session to Down state through using a Poll Sequence.</li>
      </ul>
      <t>
      For the case of BFD over MPLS LSP, ingress Label switching Edge Router (LER) usually acts as Active BFD peer
      and egress LER acts as Passive BFD peer. The Active peer bootstraps the BFD session by using LSP ping.
      If the BFD session is configured to use the Demand mode, once the BFD session
      is in Up state the ingress LER switches to the Demand mode 
      as defined in Section 6.6 <xref target="RFC5880" format="default"/>.
      The egress LER also follows procedures defined in Section 6.6 <xref target="RFC5880" format="default"/> and 
      ceases further transmission of periodic BFD control packets to the ingress LER.
      </t>
      <t>
      In this state BFD peers remain as long as the egress LER is in Up state. The ingress LER can
      periodically check continuity of a bidirectional path between the ingress and egress LERs by using the Poll Sequence,
      as described in Section 6.6 <xref target="RFC5880" format="default"/>. An implementation
      that supports using the Poll Sequence as the mechanism for
      bidirectional path continuity check must control the interval between consecutive
      Poll Sequences. The default value could be selected as 1 second.
      </t>
      <t>
      If the Detection Time at the egress
      LER expires, the session state on the egress LER transitions to the Down state according to Section 6.2 of <xref target="RFC5880"/>.
      As a result, the BFD system exits the Demand mode and sends the BFD Control packet to the ingress LER with 
      the Status (Sta) field set to the Down (1) value and the Diagnostic (Diag) field set to Control Detection Time Expired (1) value. 
      The egress LER periodically transmits these
      Control packets to the ingress LER until either it receives the valid BFD control packet from the ingress LER.
      The interval between BFD control packets is determined according to Section 6.8.7 of <xref target="RFC5880"/>.
      </t>
      <t>
      The ingress LER transmits BFD Control packets over the MPLS LSP
      with the Demand (D) flag set at the negotiated interval per <xref target="RFC5880" format="default"/>.
      If it receives the valid BFD packet from
      the egress LER with the Status (Sta) field set to Down and the Diagnostic (Diag) field value Control Detection Time Expired,
      the ingress LER indicates that the monitored LSP has a failure.
      Consequently, the BFD system on the ingress LER advances the state of the BFD session to the Init state
      and sends a BFD control packet with the Demand (D) flag cleared. That packet is transmitted periodically. The BFD system continues
      performing in the BFD Asynchronous mode until the BFD session reaches the Up state. Then the ingress LER switches to the Demand mode.
      </t>
      
     <section anchor="multipoint" numbered="true" toc="default">
      <name>The Applicability of BFD for Multipoint Networks</name>
      <t>
      <xref target="RFC8562" format="default"/> and <xref target="RFC8563" format="default"/>
      define the use of BFD in multipoint networks. This specification analyzes the case of p2p LSP.
      In that scenario, the ingress of the LSP acts as the MultipointHead, and the egress - as MultipointTail. The BFD state machines for MultipointHead,
      MultipointClient, and MultipointTail don't use the three-way handshakes for session establishment and teardown. As a result,
      the Init state is absent, and the session transitions to the Up state once the BFD session is administratively enabled. Hence, a BFD
      session over a p2p LSP, using principles of <xref target="RFC8562" format="default"/> or <xref target="RFC8563" format="default"/>,
      can be established faster if the MultipointTail has been provisioned with the value of My Discriminator used by the MultipointHead for
      that BFD session. That value can be provided to the MultipointTail using different mechanisms, e.g., an extension to IGP.
      Description of mechanism to provide the value of My Discriminator used by the MultipointHead for the particular BFD session
      is outside the scope of this specification.
      </t>
      <t>
      Unsolicited notification of the detected failure by the MultipointTail to the MultipointClient performs
      as described in <xref target="demand-bfd-section"/> for the case
      after the ingress BFD system switches the remote peer into the Demand mode.
      </t>
    </section>
     
    </section>
    
    
  
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document doesn't require any IANA action.
      This section can be removed before the publication of the document.</t>
    </section>
    
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
      This document does not introduce new security aspects but inherits all security considerations
      from <xref target="RFC5880" format="default"/>, <xref target="RFC5884" format="default"/>, <xref target="RFC7726" format="default"/>,
      <xref target="RFC8029" format="default"/>, <xref target="RFC6425" format="default"/>,
      <xref target="RFC8562" format="default"/>, and <xref target="RFC8563" format="default"/>
      </t>
    </section>
    
        <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>
      The author expresses his genuine appreciation of the extensive technical comments and the discussion with Jeffrey Haas
      that helped to clarify and properly position this document relative to the existing BFD specifications.
      </t>
    </section>
    
  </middle>
  <back>
    <references>
      <name>Normative References</name>
     <!--
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      -->
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5880.xml"/>
  <!-- <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5883.xml"/> -->
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5884.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6425.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7726.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8562.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8563.xml"/>
    </references>
    
    <!--
    <references title="Informative References">

    </references>
-->
  </back>
</rfc>
