<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-mirsky-mpls-p2mp-bfd-01" ipr="trust200902">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

  <front>
    <title abbrev="Multi-Point BFD over P2MP MPLS LSP">BFD for Multipoint Networks over Point-to-Multi-Point MPLS LSP</title>

    <author fullname="Greg Mirsky" initials="G." surname="Mirsky">
      <organization>ZTE Corp.</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

        <email>gregimirsky@gmail.com</email>
      </address>
    </author>

    <date day="28" month="June" year="2017"/>

    <area>Routing</area>

    <workgroup>BESS Working Group</workgroup>

    <keyword>Internet-Draft</keyword>
   
   <keyword>BFD</keyword>
   
   <keyword>Multipoint LSP</keyword>

    <abstract>
      <t>
      This document describes procedures for using Bidirectional Forwarding Detection (BFD) for multipoint networks
      to detect data plane failures in Multiprotocol Label Switching (MPLS) point-to-multipoint (p2mp)
      Label Switched Paths (LSPs). It also describes applicability of out-band solutions to bootstrap a BFD session
      in this environment.
      </t>
    </abstract>
  </front>
  
  <middle>

    <section anchor="intro-section" title="Introduction">
      <t>
      <xref target="I-D.ietf-bfd-multipoint"/> defines a method of using Bidirectional 
      Detection (BFD) <xref target="RFC5880"/> to monitor and detect unicast failures
      between the sender (head) and one or more receivers (tails) in multipoint or multicast
      networks. This document describes procedures for using such mode of BFD protocol
      to detect data plane failures in Multiprotocol Label Switching (MPLS) point-to-multipoint (p2mp)
      Label Switched Paths (LSPs). The document also describes applicability of out-band solutions
      to bootstrap a BFD session in this environment.
      </t>

    </section>
    
      <section title="Conventions used in this document">
     <section title="Terminology">     
     <t>MPLS:       Multiprotocol Label Switching</t>
     <t>LSP:        Label Switched Path</t>
     <t>BFD:        Bidirectional Forwarding Detection</t>
     <t>p2mp:       Point-to-Multipoint</t>
     <t>FEC:        Forwarding Equivalence Class</t>
     <t>G-ACh:      Generic Associated Channel</t>
     <t>ACH:        Associated Channel Header</t>
     <t>GAL:        G-ACh Label</t>     
     </section>
     
     <section title="Requirements Language">
        <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"/> <xref target="RFC8174"/> 
   when, and only when, they appear in all capitals, as shown here.
    </t>
    </section>
    </section>

    <section anchor="encaps-section" title="Multipoint BFD Encapsulation">
      <t>
      <xref target="I-D.ietf-bfd-multipoint"/> defines the tail of multipoint BFD session
      demultiplexes received BFD control packet based not on Your Discriminator, as defined in <xref target="RFC5880"/>,
      but using source IP address, My Discriminator and the identity of the multipoint tree
      which the Multipoint BFD Control packet was received from. The identity of the multipoint tree
      MAY be provided by the p2mp MPLS LSP label in case of inclusive p-tree or upstream assigned label
      in case of aggregate p-tree. 
      </t>

      <section anchor="ip-encaps-section" title="IP Encapsulation of Multipoint BFD">
        <t>
        IP/UDP encapsulation for multipoint BFD over p2mp MPLS LSP follows the same rules as
        defined in Section 7 <xref target="RFC5884"/> for BFD over p2p LSP:
        <list style="simbols">
        <t>UDP destination port MUST be set to 3784;</t>
        <t>destination IP address MUST be from the 127/8 range for IPv4 and
        from the 0:0:0:0:0:FFFF:7F00/104 range for IPv6;</t>
        <t>if multiple alternative paths for the given p2mp LSP Forwarding 
        Equivalence Class(FEC) exist, the MultipointHead
        SHOULD use Entropy Label <xref target="RFC6790"/> used for LSP Ping <xref target="RFC8029"/>
        to exercise that particular alternative path;</t>
        <t>or the MultipointHead MAY use, as destination IP address, the IP address discovered by LSP Ping traceroute 
        <xref target="RFC8029"/> to exercise that particular alternate path.
        </t>
        </list>
        </t>

      </section>

      <section anchor="non-ip-encaps-section" title="Non-IP Encapsulation of Multipoint BFD">
        <t>
        Non-IP encapsulation for multipoint BFD over p2mp MPLS LSP MUST use Generic 
        Associated Channel (G-ACh) Label (GAL) <xref target="RFC5586"/> at the bottom of the label
        stack followed by Associated Channel Header (ACH). Channel Type field in ACH MUST be set to
        BFD CV <xref target="RFC6428"/>. To provide identity of the MultipointHead for the particular
        multipoint BFD session this document defines new Source MEP ID type TBA1 <xref target="iana-source-mep-ip"/>
        IP Address. If the Length value is 4, then the Value field contains IPv4 address. If the Length 
        value is 16, then the Value field contains IPv6 address. Any other value of the Length field MUST
        be considered as error and the BFD control packet MUST be discarded.
        </t>

      </section>      
    </section>

    <section anchor="bootstrapping-section" title="Bootstrapping Multipoint BFD">
      <section anchor="lsp-section" title="LSP Ping">
        <t>
        MaultipointHead MAY use LSP Ping <xref target="RFC8029"/> using in Target FEC TLV, as appropriate,
        sub-TLVs defined in Section 3.1 <xref target="RFC6425"/>.
        </t>

      </section>

      <section anchor="control-plane-section" title="Control Plane">
        <t>
        BGP-BFD Attribute <xref target="I-D.ietf-bess-mvpn-fast-failover"/> MAY be used to bootstrap multipoint BFD 
        session on a tail.
        </t>

      </section>
      
      </section>


    <section anchor="Security" title="Security Considerations">
      <t>
      This document does not introduce new security aspects but inherits all security considerations
      from <xref target="RFC5880"/>, <xref target="RFC5884"/>, <xref target="RFC7726"/>,
      <xref target="I-D.ietf-bfd-multipoint"/>, <xref target="RFC8029"/>, and <xref target="RFC6425"/>.
      </t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <section anchor="iana-source-mep-ip" title="Source MEP ID IP Address Type">
        <t>IANA is required to allocate value (TBD) for the
        Source Source MEP ID IP Address type from the "CC/CV MEP-ID TLV" registry
        which is under the "Pseudowire Associated Channel Types" registry.</t>

    <texttable anchor="source-mep-id-ip-table" title="Source MEP ID IP Address TLV Type">
    <ttcol align="left">Value</ttcol>
    <ttcol align="center">Description</ttcol>
    <ttcol align="left">Reference</ttcol>
    <c>TBA1</c>
    <c>IP Address</c>
    <c>This&nbsp;document</c>
    </texttable>
        
      </section>

    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>
      </t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include='reference.RFC.5880'?>

      <?rfc include='reference.RFC.5884'?>

      <?rfc include='reference.RFC.8029'?>

      <?rfc include='reference.RFC.6790'?>

      <?rfc include='reference.RFC.5586'?>

      <?rfc include='reference.RFC.6428'?>

      <?rfc include='reference.RFC.6425'?>   

      <?rfc include='reference.RFC.7726'?>         

      <?rfc include='reference.I-D.ietf-bfd-multipoint'?>

     <?rfc include='reference.I-D.ietf-bess-mvpn-fast-failover'?>
    </references>

<!--
    <references title="Informative References">
      
    </references>
-->
  </back>
</rfc>
