<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-mpls-p2mp-bfd-11" number="9780" consensus="true" ipr="trust200902" obsoletes="" updates="8562" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" prepTime="2025-05-31T17:43:36" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-mpls-p2mp-bfd-11" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9780" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Multipoint BFD over P2MP MPLS LSP">Bidirectional Forwarding Detection (BFD) for Multipoint Networks over Point-to-Multipoint MPLS Label Switched Paths (LSPs)</title>
    <seriesInfo name="RFC" value="9780" stream="IETF"/>
    <author fullname="Greg Mirsky" initials="G." surname="Mirsky">
      <organization showOnFrontPage="true">Ericsson</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    <author fullname="Gyan Mishra" initials="G." surname="Mishra">
      <organization showOnFrontPage="true">Verizon Inc.</organization>
      <address>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>
    <author fullname="Donald Eastlake 3rd" initials="D." surname="Eastlake 3rd">
      <organization showOnFrontPage="true">Independent</organization>
      <address>
        <postal>
          <street>2386 Panoramic Circle</street>
          <city>Apopka</city>
          <region>FL</region>
          <code>32703</code>
          <country>United States of America</country>
        </postal>
        <email>d3e3e3@gmail.com</email>
      </address>
    </author>
    <date month="05" year="2025"/>
    <area>RTG</area>
    <workgroup>mpls</workgroup>
    <keyword>BFD</keyword>
    <keyword>Multipoint LSP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
   This document describes procedures for using Bidirectional Forwarding
   Detection (BFD) for multipoint networks to detect data plane failures
   in point-to-multipoint MPLS
   Label Switched Paths (LSPs) and Segment Routing (SR) point-to-multipoint policies
   with an SR over MPLS (SR-MPLS) data plane.
      </t>
      <t indent="0" pn="section-abstract-2">
   Furthermore, this document updates RFC 8562 by
   recommending the use of an IPv6 address from the Dummy IPv6 Prefix address block 100:0:0:1::/64
   and discouraging the use of an IPv4 loopback address mapped
   to IPv6.
      </t>
      <t indent="0" pn="section-abstract-3">
   In addition, this document describes the applicability of LSP Ping (as an in-band
 solution) and the control plane (as an out-of-band solution) to bootstrap
 a BFD session.
   The document also describes the behavior of the active tail for head
   notification.
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9780" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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 Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conventions-used-in-this-do">Conventions Used in This Document</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multipoint-bfd-encapsulatio">Multipoint BFD Encapsulation</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ip-encapsulation-of-multipo">IP Encapsulation of Multipoint BFD</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-non-ip-encapsulation-of-mul">Non-IP Encapsulation of Multipoint BFD</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bootstrapping-multipoint-bf">Bootstrapping Multipoint BFD</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-lsp-ping">LSP Ping</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-control-plane">Control Plane</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operation-of-multipoint-bfd">Operation of Multipoint BFD with Active Tail over P2MP MPLS LSP</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-special-purpose-addres">IPv6 Special-Purpose Address</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mpls-generalized-associated">MPLS Generalized Associated Channel (G-ACh) Type</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro-section" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
      <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> defines a method of using Bidirectional Forwarding Detection (BFD) <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/>
      to monitor and detect failures between the sender
   (head) and one or more receivers (tails) in multipoint or multicast
   networks.
      </t>
      <t indent="0" pn="section-1-2">
   <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> added two BFD session types: MultipointHead and
   MultipointTail. Throughout this document, MultipointHead and
   MultipointTail refer to the value to which the bfd.SessionType is set on a
   BFD endpoint.
      </t>
      <t indent="0" pn="section-1-3">
      This document describes procedures for using such
   modes of the BFD protocol to detect data plane failures in point-to-multipoint (P2MP) MPLS Label Switched
   Paths (LSPs) and Segment Routing (SR) point-to-multipoint policies
   with an SR over MPLS (SR-MPLS) data plane.
      </t>
      <t indent="0" pn="section-1-4">
  The document also describes the applicability of LSP Ping (an in-band solution) and
  out-of-band solutions to bootstrap a BFD session in this environment.
      </t>
      <t indent="0" pn="section-1-5">
 Historically, an address in the IPv6-mapped IPv4 loopback address block
 ::ffff:127.0.0.1/128 was mandated, although functionally, an
 IPv6 address from that address block is not analogous to its IPv4
 counterpart.
   Furthermore,
   using the loopback address as the destination address, even for an inner IP encapsulation of a tunneled packet,
   violates <xref target="RFC4291" sectionFormat="of" section="2.5.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4291#section-2.5.3" derivedContent="RFC4291"/>. Hence, IANA has allocated
   100:0:0:1::/64 as a new Dummy IPv6 Prefix (<xref target="iana-ipv6-addr-alloc-sec" format="default" sectionFormat="of" derivedContent="Section 7.1"/>)
   for destination IPv6 addresses used for IP/UDP encapsulation of management, control, and OAM (Operations, Administration, and Maintenance) packets.
  A source-only IPv6 dummy address is used as the destination to generate an exception and a reply message to the request message received.
   This document starts the transition to using the IPv6 addresses from the Dummy IPv6 Prefix address block 100:0:0:1::/64 as the IPv6 destination address
   in the IP/UDP encapsulation of active OAM over the MPLS data plane.
   Thus, this document updates <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> by recommending the use of an IPv6 address from the
   Dummy IPv6 Prefix address block 100:0:0:1::/64 (<xref target="iana-ipv6-addr-alloc-sec" format="default" sectionFormat="of" derivedContent="Section 7.1"/>) while
   acknowledging that an address from the ::ffff:127.0.0.1/128 address block might be used by existing implementations. This document
   discourages the use of an address in the IPv6-mapped IPv4 loopback address block.
      </t>
      <t indent="0" pn="section-1-6">
   This document also describes the behavior of the active tail for head notification.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-conventions-used-in-this-do">Conventions Used in This Document</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <dl indent="3" newline="false" spacing="normal" pn="section-2.1-1">
          <dt pn="section-2.1-1.1">ACH:</dt>
          <dd pn="section-2.1-1.2">Associated Channel Header</dd>
          <dt pn="section-2.1-1.3">BFD:</dt>
          <dd pn="section-2.1-1.4">Bidirectional Forwarding Detection</dd>
          <dt pn="section-2.1-1.5">GAL:</dt>
          <dd pn="section-2.1-1.6">G-ACh Label</dd>
          <dt pn="section-2.1-1.7">G-ACh:</dt>
          <dd pn="section-2.1-1.8">Generic Associated Channel</dd>
          <dt pn="section-2.1-1.9">LSP:</dt>
          <dd pn="section-2.1-1.10">Label Switched Path</dd>
          <dt pn="section-2.1-1.11">LSR:</dt>
          <dd pn="section-2.1-1.12">Label Switching Router</dd>
          <dt pn="section-2.1-1.13">MPLS:</dt>
          <dd pn="section-2.1-1.14">Multiprotocol Label Switching</dd>
          <dt pn="section-2.1-1.15">P2MP:</dt>
          <dd pn="section-2.1-1.16">Point-to-Multipoint</dd>
          <dt pn="section-2.1-1.17">PW:</dt>
          <dd pn="section-2.1-1.18">Pseudowire (PW)</dd>
          <dt pn="section-2.1-1.19">SR:</dt>
          <dd pn="section-2.1-1.20">Segment Routing</dd>
          <dt pn="section-2.1-1.21">SR-MPLS:</dt>
          <dd pn="section-2.1-1.22">SR over MPLS</dd>
        </dl>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-2.2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
    to be interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/>
          <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals,
    as shown here.
        </t>
      </section>
    </section>
    <section anchor="encaps-section" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-multipoint-bfd-encapsulatio">Multipoint BFD Encapsulation</name>
      <t indent="0" pn="section-3-1">
      <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> uses BFD in Demand mode 
      from the very start of a point-to-multipoint (P2MP) BFD session. Because the
      head doesn't receive any BFD Control packets from a tail, the head of the P2MP BFD
      session transmits all BFD Control packets with the value of the Your Discriminator field set to zero. As a result, a tail cannot demultiplex
      BFD sessions using Your Discriminator, as defined in <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/>.
      To demultiplex BFD sessions, <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> requires that
      the tail use the source IP address, My Discriminator, and the identity of the multipoint tree
      from which the BFD Control packet was received.
      If the BFD Control packet is encapsulated in IP/UDP, then the source IP address
      <bcp14>MUST</bcp14> be used to demultiplex the received BFD Control packet as described in <xref target="RFC8562" sectionFormat="of" section="5.7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8562#section-5.7" derivedContent="RFC8562"/>.
      The non-IP encapsulation case is described in <xref target="non-ip-encaps-section" format="default" sectionFormat="of" derivedContent="Section 3.2"/>.
      </t>
      <section anchor="ip-encaps-section" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-ip-encapsulation-of-multipo">IP Encapsulation of Multipoint BFD</name>
        <t indent="0" pn="section-3.1-1">
        <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> defines IP/UDP encapsulation for multipoint BFD 
        over P2MP MPLS LSP. This document updates <xref target="RFC8562" sectionFormat="of" section="5.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8562#section-5.8" derivedContent="RFC8562"/> regarding the selection of
        the IPv6 destination address as follows:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.1-2">
          <li pn="section-3.1-2.1">The sender of an MPLS echo request <bcp14>SHOULD</bcp14> use an address from
      the Dummy IPv6 Prefix address block 100:0:0:1::/64 (see <xref target="iana-ipv6-addr-alloc-sec" format="default" sectionFormat="of" derivedContent="Section 7.1"/>).</li>
          <li pn="section-3.1-2.2">The sender of an MPLS echo request <bcp14>MAY</bcp14> select the IPv6 destination  address from the ::ffff:7f00/104 address block.</li>
        </ul>
        <t indent="0" pn="section-3.1-3"><xref target="RFC6790" sectionFormat="of" section="1.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6790#section-1.2" derivedContent="RFC6790"/>
      lists several advantages of generating the entropy value by an ingress
      Label Switching Router (LSR) compared to when a transit LSR infers
      entropy using the information in the MPLS label stack or payload.  
      This specification further clarifies the following if multiple alternative paths
      for the given P2MP LSP Forwarding Equivalence Class (FEC) exist:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.1-4">
          <li pn="section-3.1-4.1">The MultipointHead
          <bcp14>SHOULD</bcp14> use the Entropy Label <xref target="RFC6790" format="default" sectionFormat="of" derivedContent="RFC6790"/> used for LSP Ping <xref target="RFC8029" format="default" sectionFormat="of" derivedContent="RFC8029"/> to exercise those particular alternative
          paths; or</li>
          <li pn="section-3.1-4.2">The MultipointHead <bcp14>MAY</bcp14> use the UDP port
          number to possibly exercise those particular alternate paths.</li>
        </ul>
      </section>
      <section anchor="non-ip-encaps-section" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-non-ip-encapsulation-of-mul">Non-IP Encapsulation of Multipoint BFD</name>
        <t indent="0" pn="section-3.2-1">
          In some environments, the overhead of extra IP/UDP encapsulations may be
   considered burdensome, which makes the use of more compact Generic Associated Channel (G-ACh) <xref target="RFC5586" format="default" sectionFormat="of" derivedContent="RFC5586"/>
   encapsulation attractive. Also, the validation of the IP/UDP encapsulation of a BFD Control packet in a P2MP BFD session
   may fail because of a problem related to neither the MPLS label stack nor BFD. Avoiding unnecessary encapsulation
   of P2MP BFD over an MPLS LSP improves the accuracy of the correlation of the detected failure and defect in MPLS LSP.
        </t>
        <t indent="0" pn="section-3.2-2">
     Non-IP encapsulation for multipoint BFD over P2MP MPLS LSP (shown in <xref target="non-ip-p2mp-bfd-pic" format="default" sectionFormat="of" derivedContent="Figure 1"/>)
     <bcp14>MUST</bcp14> use the G-ACh Label (GAL) <xref target="RFC5586" format="default" sectionFormat="of" derivedContent="RFC5586"/> at the bottom of the label
        stack followed by an Associated Channel Header (ACH). If a BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) is to be used in ACH,
        an implementation would not be able to verify the identity of the MultipointHead and, as a result, will not properly demultiplex BFD packets. Hence,
        a new channel type value is needed. The Channel Type field in ACH <bcp14>MUST</bcp14> be set to
        Multipoint BFD Session (0x0013) (see <xref target="iana-ach-sec" format="default" sectionFormat="of" derivedContent="Section 7.2"/>). To provide the identity of the MultipointHead for the particular
        multipoint BFD session, a Source Address TLV, as defined in <xref target="RFC7212" sectionFormat="of" section="4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7212#section-4.1" derivedContent="RFC7212"/>,
        <bcp14>MUST</bcp14> immediately follow a BFD Control packet. The use of other TLVs is outside the scope of this document.
        </t>
        <figure anchor="non-ip-p2mp-bfd-pic" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-non-ip-encapsulation-for-mu">Non-IP Encapsulation for Multipoint BFD over a Multicast MPLS LSP</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.2-3.1">
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               LSP Label               |  TC |S|       TTL     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  GAL                  |  TC |1|       TTL     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 1|Version|     Flags     |      Channel Type = 0x0013    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                        BFD Control Packet                     ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type=0    |    Reserved   |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Reserved            |         Address Family        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                            Address                            ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-3.2-4">The fields in <xref target="non-ip-p2mp-bfd-pic" format="default" sectionFormat="of" derivedContent="Figure 1"/> are interpreted as follows:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-3.2-5">
          <li pn="section-3.2-5.1">The top three four-octet words are defined in <xref target="RFC5586" format="default" sectionFormat="of" derivedContent="RFC5586"/>.</li>
          <li pn="section-3.2-5.2">The BFD Control Packet field is defined in <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/>.</li>
          <li pn="section-3.2-5.3">All the remaining fields are defined in <xref target="RFC7212" sectionFormat="of" section="4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7212#section-4.1" derivedContent="RFC7212"/>.</li>
        </ul>
      </section>
    </section>
    <section anchor="bootstrapping-section" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-bootstrapping-multipoint-bf">Bootstrapping Multipoint BFD</name>
      <section anchor="lsp-section" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-lsp-ping">LSP Ping</name>
        <t indent="0" pn="section-4.1-1">
        LSP Ping is the part of the on-demand OAM toolset used to detect and localize defects in the data plane and
        verify the control plane against the data plane by ensuring that the LSP is mapped to the same FEC
        at both egress and ingress endpoints. 
        </t>
        <t indent="0" pn="section-4.1-2">
      LSP Ping, as defined in <xref target="RFC6425" format="default" sectionFormat="of" derivedContent="RFC6425"/>, <bcp14>MAY</bcp14> be used to bootstrap MultipointTail. If LSP Ping is used,
        it <bcp14>MUST</bcp14> include the Target FEC Stack TLV <xref target="RFC8029" format="default" sectionFormat="of" derivedContent="RFC8029"/> and the BFD Discriminator TLV <xref target="RFC5884" format="default" sectionFormat="of" derivedContent="RFC5884"/>. For the case of P2MP MPLS LSP, the Target FEC Stack TLV
        <bcp14>MUST</bcp14> use sub-TLVs defined in <xref target="RFC6425" sectionFormat="of" section="3.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6425#section-3.1" derivedContent="RFC6425"/>. For the case of P2MP SR policy with an SR-MPLS data plane, 
        an implementation of this specification <bcp14>MUST</bcp14> follow the procedures defined in <xref target="RFC8287" format="default" sectionFormat="of" derivedContent="RFC8287"/>. Setting the value 
        of the Reply Mode field to "Do not reply" <xref target="RFC8029" format="default" sectionFormat="of" derivedContent="RFC8029"/> for the  LSP Ping to bootstrap the MultipointTail of the P2MP BFD session is <bcp14>RECOMMENDED</bcp14>.
        Indeed, because BFD over a multipoint network uses BFD Demand mode, the MPLS echo reply from a tail has no useful information to convey to the head,
        unlike in the case of BFD over a P2P MPLS LSP <xref target="RFC5884" format="default" sectionFormat="of" derivedContent="RFC5884"/>.
        A MultipointTail that receives an LSP Ping that includes the BFD Discriminator TLV <bcp14>MUST</bcp14> do the following:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1-3">
          <li pn="section-4.1-3.1">validate the LSP Ping;
        </li>
          <li pn="section-4.1-3.2">associate the received BFD Discriminator value with the P2MP LSP;
        </li>
          <li pn="section-4.1-3.3">create a P2MP BFD session and set bfd.SessionType =
      MultipointTail as described in <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>; and
      </li>
          <li pn="section-4.1-3.4">use the source IP address of the LSP Ping, the value
      of BFD Discriminator from the BFD Discriminator TLV, and the identity of the P2MP LSP
       to properly demultiplex BFD sessions.</li>
        </ul>
        <t indent="0" pn="section-4.1-4">
        Besides bootstrapping a BFD session over a P2MP LSP, LSP Ping <bcp14>SHOULD</bcp14> be used to verify the control plane
        against the data plane periodically by checking that the P2MP LSP is mapped  to the same FEC at the
        MultipointHead and all active MultipointTails. The rate of generation of these LSP Ping echo request
   messages <bcp14>SHOULD</bcp14> be significantly less than the rate of generation of
   the BFD Control packets because LSP Ping requires more processing to validate
   the consistency between the data plane and the control plane. An implementation <bcp14>MAY</bcp14> provide configuration
   options to control the rate of generation of the periodic LSP Ping echo request messages.
        </t>
      </section>
      <section anchor="control-plane-section" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-control-plane">Control Plane</name>
        <t indent="0" pn="section-4.2-1">
           The BFD Discriminator attribute <bcp14>MAY</bcp14> be used to bootstrap a multipoint
   BFD session on a tail, following the format and procedures given in
   <xref target="RFC9026" sectionFormat="of" section="3.1.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9026#section-3.1.6" derivedContent="RFC9026"/>.
        </t>
      </section>
    </section>
    <section anchor="operation-sec" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-operation-of-multipoint-bfd">Operation of Multipoint BFD with Active Tail over P2MP MPLS LSP</name>
      <t indent="0" pn="section-5-1">
<xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> defines how BFD Demand mode can be used in multipoint networks.
When applied in MPLS, the procedures specified in <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> allow an egress LSR to detect a failure in the part of the P2MP MPLS LSP
from the ingress LSR to that egress LSR. The ingress LSR is not aware of the state of the P2MP LSP.  <xref target="RFC8563" format="default" sectionFormat="of" derivedContent="RFC8563"/>, using mechanisms defined in <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>,
defines the behavior of an active tail. An active tail might notify the head of the detected failure and respond to a poll sequence initiated by the head.
The first method, referred to as "Head Notification without Polling", is mentioned in <xref target="RFC8563" sectionFormat="of" section="5.2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8563#section-5.2.1" derivedContent="RFC8563"/>) and
is the simplest of the methods described in <xref target="RFC8563" format="default" sectionFormat="of" derivedContent="RFC8563"/>.
The use of this method in BFD over P2MP MPLS LSP is discussed in this document.
Analysis of other methods for a head to learn of the state of the P2MP MPLS LSP is outside the scope of this document.
</t>
      <t indent="0" pn="section-5-2">
As specified in <xref target="RFC8563" format="default" sectionFormat="of" derivedContent="RFC8563"/>, BFD variables <bcp14>MUST</bcp14> be as follows for the active tail mode:
</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-3">
        <li pn="section-5-3.1">
          <t indent="0" pn="section-5-3.1.1">On an ingress LSR:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-3.1.2">
            <li pn="section-5-3.1.2.1">bfd.SessionType is MultipointHead.</li>
            <li pn="section-5-3.1.2.2">bfd.RequiredMinRxInterval is nonzero, allowing egress LSRs to send BFD Control packets.</li>
          </ul>
        </li>
        <li pn="section-5-3.2">
          <t indent="0" pn="section-5-3.2.1">On an egress LSR:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-3.2.2">
            <li pn="section-5-3.2.2.1">bfd.SessionType is MultipointTail.</li>
            <li pn="section-5-3.2.2.2">bfd.SilentTail is set to zero.</li>
          </ul>
        </li>
      </ul>
      <t indent="0" pn="section-5-4">
	<xref target="RFC8563" sectionFormat="of" section="5.2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8563#section-5.2.1" derivedContent="RFC8563"/> notes that "the tail sends unsolicited BFD packets in response
to the detection of a multipoint path failure" but does not provide specifics about the information in the packets or the frequency of transmissions.
The procedure for an active tail with unsolicited notifications for P2MP MPLS LSP is defined below.
</t>
      <t indent="0" pn="section-5-5">Upon detecting the failure of the P2MP MPLS LSP, an egress LSR sends a BFD Control packet with the following settings:
</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-6">
        <li pn="section-5-6.1">The Poll (P) bit is set.</li>
        <li pn="section-5-6.2">The Status (Sta) field is set to the Down value.</li>
        <li pn="section-5-6.3">The Diagnostic (Diag) field is set to the Control Detection Time Expired value.</li>
        <li pn="section-5-6.4">The value of the Your Discriminator field is set to the value the egress LSR has been using to demultiplex that BFD multipoint session.</li>
      </ul>
      <t indent="0" pn="section-5-7">
The BFD Control packet <bcp14>MAY</bcp14> be encapsulated in IP/UDP with the destination IP address of the ingress LSR
and the UDP destination port number set to 4784 per <xref target="RFC5883" format="default" sectionFormat="of" derivedContent="RFC5883"/>. If non-IP encapsulation is 
used, then a BFD Control packet is encapsulated using PW-ACH encapsulation (without IP/UDP Headers)
with Channel Type 0x0007 <xref target="RFC5885" format="default" sectionFormat="of" derivedContent="RFC5885"/>.
      </t>
      <t indent="0" pn="section-5-8">
The BFD Control packets are transmitted at the rate of one per
    second until either 1) the egress LSA receives a control packet from the ingress LSR
    that is valid for this BFD session and has the Final (F) bit set or 2) the
    defect condition clears.
  However, to improve the likelihood of notifying the ingress LSR of the failure of the P2MP MPLS LSP,
  the egress LSR <bcp14>SHOULD</bcp14> initially transmit three BFD Control packets (as defined above) in short succession.
  The actual transmission of the periodic BFD Control packet <bcp14>MUST</bcp14> be jittered by up to 25% within one-second intervals.
  Thus, the interval <bcp14>MUST</bcp14> be reduced by a random value of 0 to 25%, to reduce the possibility of congestion on the ingress LSR's
  data and control planes.
      </t>
      <t indent="0" pn="section-5-9">
As described above, an ingress LSR that has received the BFD Control packet
sends the unicast IP/UDP encapsulated BFD Control packet with the Final (F) bit set
to the egress LSR. In some scenarios (e.g., when a P2MP LSP is broken close to its root and the number of egress LSRs is significantly large),
the root might receive a large number of notifications. The notifications from leaves to the root will not use resources
allocated for the monitored multicast flow and, as a result,
will not congest that particular flow, although they may negatively affect other flows.
However, the control plane of the ingress LSR might be congested by the BFD Control packets transmitted by egress LSRs and the process of generating
unicast BFD Control packets, as noted above. To mitigate that, a BFD implementation that supports this specification is <bcp14>RECOMMENDED</bcp14> to use a rate limiter
of received BFD Control packets passed to the ingress LSR's control plane for processing.
</t>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-6-1">
      This document does not introduce new security considerations but inherits all security considerations
      from <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/>, <xref target="RFC5884" format="default" sectionFormat="of" derivedContent="RFC5884"/>, <xref target="RFC7726" format="default" sectionFormat="of" derivedContent="RFC7726"/>,
      <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>, <xref target="RFC8029" format="default" sectionFormat="of" derivedContent="RFC8029"/>, and <xref target="RFC6425" format="default" sectionFormat="of" derivedContent="RFC6425"/>.
      </t>
      <t indent="0" pn="section-6-2">
      Also, BFD for P2MP MPLS LSPs <bcp14>MUST</bcp14> follow the requirements listed in <xref target="RFC4687" sectionFormat="of" section="4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4687#section-4.1" derivedContent="RFC4687"/> to avoid congestion
      in the control plane or the data plane caused by the rate of generating BFD Control packets. An operator <bcp14>SHOULD</bcp14>
      consider the amount of extra traffic generated by P2MP BFD when selecting the interval at which the
      MultipointHead will transmit BFD Control packets. The operator <bcp14>MAY</bcp14> consider the size of the packet the MultipointHead transmits
      periodically as using IP/UDP encapsulation, which adds up to 28 octets (more than 50% 
      of the BFD Control packet length) compared to G-ACh encapsulation.
      </t>
    </section>
    <section anchor="iana-sec" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="iana-ipv6-addr-alloc-sec" numbered="true" toc="include" removeInRFC="false" pn="section-7.1">
        <name slugifiedName="name-ipv6-special-purpose-addres">IPv6 Special-Purpose Address</name>
        <t indent="0" pn="section-7.1-1">
      IANA has allocated the following in the "IANA
   IPv6 Special-Purpose Address Registry" <xref target="IANA-IPv6-REG" format="default" sectionFormat="of" derivedContent="IANA-IPv6-REG"/>:
        </t>
        <dl spacing="compact" indent="3" newline="false" pn="section-7.1-2">
          <dt pn="section-7.1-2.1">Address Block:</dt>
          <dd pn="section-7.1-2.2">100:0:0:1::/64</dd>
          <dt pn="section-7.1-2.3">Name:</dt>
          <dd pn="section-7.1-2.4">Dummy IPv6 Prefix</dd>
          <dt pn="section-7.1-2.5">RFC:</dt>
          <dd pn="section-7.1-2.6">RFC 9780</dd>
          <dt pn="section-7.1-2.7">Allocation Date:</dt>
          <dd pn="section-7.1-2.8">2025-04</dd>
          <dt pn="section-7.1-2.9">Termination Date:</dt>
          <dd pn="section-7.1-2.10">N/A</dd>
          <dt pn="section-7.1-2.11">Source:</dt>
          <dd pn="section-7.1-2.12">True</dd>
          <dt pn="section-7.1-2.13">Destination:</dt>
          <dd pn="section-7.1-2.14">False</dd>
          <dt pn="section-7.1-2.15">Forwardable:</dt>
          <dd pn="section-7.1-2.16">False</dd>
          <dt pn="section-7.1-2.17">Globally Reachable:</dt>
          <dd pn="section-7.1-2.18">False</dd>
          <dt pn="section-7.1-2.19">Reserved-by-Protocol:</dt>
          <dd pn="section-7.1-2.20">False</dd>
        </dl>
      </section>
      <section anchor="iana-ach-sec" numbered="true" toc="include" removeInRFC="false" pn="section-7.2">
        <name slugifiedName="name-mpls-generalized-associated">MPLS Generalized Associated Channel (G-ACh) Type</name>
        <t indent="0" pn="section-7.2-1">
    IANA has allocated the following value in the "MPLS Generalized Associated Channel (G-ACh) Types" registry <xref target="IANA-G-ACh-TYPES" format="default" sectionFormat="of" derivedContent="IANA-G-ACh-TYPES"/>.
        </t>
        <table anchor="p2mp-ach-table" align="center" pn="table-1">
          <name slugifiedName="name-multipoint-bfd-session-g-ac">Multipoint BFD Session G-ACh Type</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="center" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x0013</td>
              <td align="center" colspan="1" rowspan="1">Multipoint BFD Session</td>
              <td align="left" colspan="1" rowspan="1">RFC 9780</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references pn="section-8.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC5586" target="https://www.rfc-editor.org/info/rfc5586" quoteTitle="true" derivedAnchor="RFC5586">
          <front>
            <title>MPLS Generic Associated Channel</title>
            <author fullname="M. Bocci" initials="M." role="editor" surname="Bocci"/>
            <author fullname="M. Vigoureux" initials="M." role="editor" surname="Vigoureux"/>
            <author fullname="S. Bryant" initials="S." role="editor" surname="Bryant"/>
            <date month="June" year="2009"/>
            <abstract>
              <t indent="0">This document generalizes the applicability of the pseudowire (PW) Associated Channel Header (ACH), enabling the realization of a control channel associated to MPLS Label Switched Paths (LSPs) and MPLS Sections in addition to MPLS pseudowires. In order to identify the presence of this Associated Channel Header in the label stack, this document also assigns one of the reserved MPLS label values to the Generic Associated Channel Label (GAL), to be used as a label based exception mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5586"/>
          <seriesInfo name="DOI" value="10.17487/RFC5586"/>
        </reference>
        <reference anchor="RFC5880" target="https://www.rfc-editor.org/info/rfc5880" quoteTitle="true" derivedAnchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <date month="June" year="2010"/>
            <abstract>
              <t indent="0">This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC5883" target="https://www.rfc-editor.org/info/rfc5883" quoteTitle="true" derivedAnchor="RFC5883">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) for Multihop Paths</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <date month="June" year="2010"/>
            <abstract>
              <t indent="0">This document describes the use of the Bidirectional Forwarding Detection (BFD) protocol over multihop paths, including unidirectional links. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5883"/>
          <seriesInfo name="DOI" value="10.17487/RFC5883"/>
        </reference>
        <reference anchor="RFC5884" target="https://www.rfc-editor.org/info/rfc5884" quoteTitle="true" derivedAnchor="RFC5884">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) for MPLS Label Switched Paths (LSPs)</title>
            <author fullname="R. Aggarwal" initials="R." surname="Aggarwal"/>
            <author fullname="K. Kompella" initials="K." surname="Kompella"/>
            <author fullname="T. Nadeau" initials="T." surname="Nadeau"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <date month="June" year="2010"/>
            <abstract>
              <t indent="0">One desirable application of Bidirectional Forwarding Detection (BFD) is to detect a Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) data plane failure. LSP Ping is an existing mechanism for detecting MPLS data plane failures and for verifying the MPLS LSP data plane against the control plane. BFD can be used for the former, but not for the latter. However, the control plane processing required for BFD Control packets is relatively smaller than the processing required for LSP Ping messages. A combination of LSP Ping and BFD can be used to provide faster data plane failure detection and/or make it possible to provide such detection on a greater number of LSPs. This document describes the applicability of BFD in relation to LSP Ping for this application. It also describes procedures for using BFD in this environment. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5884"/>
          <seriesInfo name="DOI" value="10.17487/RFC5884"/>
        </reference>
        <reference anchor="RFC5885" target="https://www.rfc-editor.org/info/rfc5885" quoteTitle="true" derivedAnchor="RFC5885">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) for the Pseudowire Virtual Circuit Connectivity Verification (VCCV)</title>
            <author fullname="T. Nadeau" initials="T." role="editor" surname="Nadeau"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <date month="June" year="2010"/>
            <abstract>
              <t indent="0">This document describes Connectivity Verification (CV) Types using Bidirectional Forwarding Detection (BFD) with Virtual Circuit Connectivity Verification (VCCV). VCCV provides a control channel that is associated with a pseudowire (PW), as well as the corresponding operations and management functions such as connectivity verification to be used over that control channel. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5885"/>
          <seriesInfo name="DOI" value="10.17487/RFC5885"/>
        </reference>
        <reference anchor="RFC6425" target="https://www.rfc-editor.org/info/rfc6425" quoteTitle="true" derivedAnchor="RFC6425">
          <front>
            <title>Detecting Data-Plane Failures in Point-to-Multipoint MPLS - Extensions to LSP Ping</title>
            <author fullname="S. Saxena" initials="S." role="editor" surname="Saxena"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <author fullname="Z. Ali" initials="Z." surname="Ali"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="S. Yasukawa" initials="S." surname="Yasukawa"/>
            <author fullname="T. Nadeau" initials="T." surname="Nadeau"/>
            <date month="November" year="2011"/>
            <abstract>
              <t indent="0">Recent proposals have extended the scope of Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) to encompass point-to-multipoint (P2MP) LSPs.</t>
              <t indent="0">The requirement for a simple and efficient mechanism that can be used to detect data-plane failures in point-to-point (P2P) MPLS LSPs has been recognized and has led to the development of techniques for fault detection and isolation commonly referred to as "LSP ping".</t>
              <t indent="0">The scope of this document is fault detection and isolation for P2MP MPLS LSPs. This documents does not replace any of the mechanisms of LSP ping, but clarifies their applicability to MPLS P2MP LSPs, and extends the techniques and mechanisms of LSP ping to the MPLS P2MP environment.</t>
              <t indent="0">This document updates RFC 4379. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6425"/>
          <seriesInfo name="DOI" value="10.17487/RFC6425"/>
        </reference>
        <reference anchor="RFC6790" target="https://www.rfc-editor.org/info/rfc6790" quoteTitle="true" derivedAnchor="RFC6790">
          <front>
            <title>The Use of Entropy Labels in MPLS Forwarding</title>
            <author fullname="K. Kompella" initials="K." surname="Kompella"/>
            <author fullname="J. Drake" initials="J." surname="Drake"/>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
            <author fullname="L. Yong" initials="L." surname="Yong"/>
            <date month="November" year="2012"/>
            <abstract>
              <t indent="0">Load balancing is a powerful tool for engineering traffic across a network. This memo suggests ways of improving load balancing across MPLS networks using the concept of "entropy labels". It defines the concept, describes why entropy labels are useful, enumerates properties of entropy labels that allow maximal benefit, and shows how they can be signaled and used for various applications. This document updates RFCs 3031, 3107, 3209, and 5036. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6790"/>
          <seriesInfo name="DOI" value="10.17487/RFC6790"/>
        </reference>
        <reference anchor="RFC7212" target="https://www.rfc-editor.org/info/rfc7212" quoteTitle="true" derivedAnchor="RFC7212">
          <front>
            <title>MPLS Generic Associated Channel (G-ACh) Advertisement Protocol</title>
            <author fullname="D. Frost" initials="D." surname="Frost"/>
            <author fullname="S. Bryant" initials="S." surname="Bryant"/>
            <author fullname="M. Bocci" initials="M." surname="Bocci"/>
            <date month="June" year="2014"/>
            <abstract>
              <t indent="0">The MPLS Generic Associated Channel (G-ACh) provides an auxiliary logical data channel associated with a Label Switched Path (LSP), a pseudowire, or a section (link) over which a variety of protocols may flow. These protocols are commonly used to provide Operations, Administration, and Maintenance (OAM) mechanisms associated with the primary data channel. This document specifies simple procedures by which an endpoint of an LSP, pseudowire, or section may inform the other endpoints of its capabilities and configuration parameters, or other application-specific information. This information may then be used by the receiver to validate or adjust its local configuration, and by the network operator for diagnostic purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7212"/>
          <seriesInfo name="DOI" value="10.17487/RFC7212"/>
        </reference>
        <reference anchor="RFC7726" target="https://www.rfc-editor.org/info/rfc7726" quoteTitle="true" derivedAnchor="RFC7726">
          <front>
            <title>Clarifying Procedures for Establishing BFD Sessions for MPLS Label Switched Paths (LSPs)</title>
            <author fullname="V. Govindan" initials="V." surname="Govindan"/>
            <author fullname="K. Rajaraman" initials="K." surname="Rajaraman"/>
            <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
            <author fullname="N. Akiya" initials="N." surname="Akiya"/>
            <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
            <date month="January" year="2016"/>
            <abstract>
              <t indent="0">This document clarifies the procedures for establishing, maintaining, and removing multiple, concurrent BFD (Bidirectional Forwarding Detection) sessions for a given as described in RFC 5884.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7726"/>
          <seriesInfo name="DOI" value="10.17487/RFC7726"/>
        </reference>
        <reference anchor="RFC8029" target="https://www.rfc-editor.org/info/rfc8029" quoteTitle="true" derivedAnchor="RFC8029">
          <front>
            <title>Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures</title>
            <author fullname="K. Kompella" initials="K." surname="Kompella"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <author fullname="N. Kumar" initials="N." surname="Kumar"/>
            <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <date month="March" year="2017"/>
            <abstract>
              <t indent="0">This document describes a simple and efficient mechanism to detect data-plane failures in Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs). It defines a probe message called an "MPLS echo request" and a response message called an "MPLS echo reply" for returning the result of the probe. The MPLS echo request is intended to contain sufficient information to check correct operation of the data plane and to verify the data plane against the control plane, thereby localizing faults.</t>
              <t indent="0">This document obsoletes RFCs 4379, 6424, 6829, and 7537, and updates RFC 1122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8029"/>
          <seriesInfo name="DOI" value="10.17487/RFC8029"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8287" target="https://www.rfc-editor.org/info/rfc8287" quoteTitle="true" derivedAnchor="RFC8287">
          <front>
            <title>Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data Planes</title>
            <author fullname="N. Kumar" initials="N." role="editor" surname="Kumar"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <author fullname="N. Akiya" initials="N." surname="Akiya"/>
            <author fullname="S. Kini" initials="S." surname="Kini"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <date month="December" year="2017"/>
            <abstract>
              <t indent="0">A Segment Routing (SR) architecture leverages source routing and tunneling paradigms and can be directly applied to the use of a Multiprotocol Label Switching (MPLS) data plane. A node steers a packet through a controlled set of instructions called "segments" by prepending the packet with an SR header.</t>
              <t indent="0">The segment assignment and forwarding semantic nature of SR raises additional considerations for connectivity verification and fault isolation for a Label Switched Path (LSP) within an SR architecture. This document illustrates the problem and defines extensions to perform LSP Ping and Traceroute for Segment Routing IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with an MPLS data plane.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8287"/>
          <seriesInfo name="DOI" value="10.17487/RFC8287"/>
        </reference>
        <reference anchor="RFC8562" target="https://www.rfc-editor.org/info/rfc8562" quoteTitle="true" derivedAnchor="RFC8562">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) for Multipoint Networks</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <author fullname="S. Pallagatti" initials="S." role="editor" surname="Pallagatti"/>
            <author fullname="G. Mirsky" initials="G." role="editor" surname="Mirsky"/>
            <date month="April" year="2019"/>
            <abstract>
              <t indent="0">This document describes extensions to the Bidirectional Forwarding Detection (BFD) protocol for its use in multipoint and multicast networks.</t>
              <t indent="0">This document updates RFC 5880.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8562"/>
          <seriesInfo name="DOI" value="10.17487/RFC8562"/>
        </reference>
        <reference anchor="RFC8563" target="https://www.rfc-editor.org/info/rfc8563" quoteTitle="true" derivedAnchor="RFC8563">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) Multipoint Active Tails</title>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <author fullname="S. Pallagatti" initials="S." role="editor" surname="Pallagatti"/>
            <author fullname="G. Mirsky" initials="G." role="editor" surname="Mirsky"/>
            <date month="April" year="2019"/>
            <abstract>
              <t indent="0">This document describes active tail extensions to the Bidirectional Forwarding Detection (BFD) protocol for multipoint networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8563"/>
          <seriesInfo name="DOI" value="10.17487/RFC8563"/>
        </reference>
        <reference anchor="RFC9026" target="https://www.rfc-editor.org/info/rfc9026" quoteTitle="true" derivedAnchor="RFC9026">
          <front>
            <title>Multicast VPN Fast Upstream Failover</title>
            <author fullname="T. Morin" initials="T." role="editor" surname="Morin"/>
            <author fullname="R. Kebler" initials="R." role="editor" surname="Kebler"/>
            <author fullname="G. Mirsky" initials="G." role="editor" surname="Mirsky"/>
            <date month="April" year="2021"/>
            <abstract>
              <t indent="0">This document defines Multicast Virtual Private Network (VPN) extensions and procedures that allow fast failover for upstream failures by allowing downstream Provider Edges (PEs) to consider the status of Provider-Tunnels (P-tunnels) when selecting the Upstream PE for a VPN multicast flow. The fast failover is enabled by using "Bidirectional Forwarding Detection (BFD) for Multipoint Networks" (RFC 8562) and the new BGP Attribute, BFD Discriminator. Also, this document introduces a new BGP Community, Standby PE, extending BGP Multicast VPN (MVPN) routing so that a C-multicast route can be advertised toward a Standby Upstream PE.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9026"/>
          <seriesInfo name="DOI" value="10.17487/RFC9026"/>
        </reference>
      </references>
      <references pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="IANA-G-ACh-TYPES" target="https://www.iana.org/assignments/g-ach-parameters" quoteTitle="true" derivedAnchor="IANA-G-ACh-TYPES">
          <front>
            <title>MPLS Generalized Associated Channel (G-ACh) Types</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-IPv6-REG" target="https://www.iana.org/assignments/iana-ipv6-special-registry" quoteTitle="true" derivedAnchor="IANA-IPv6-REG">
          <front>
            <title>IANA IPv6 Special-Purpose Address Registry</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC4291" target="https://www.rfc-editor.org/info/rfc4291" quoteTitle="true" derivedAnchor="RFC4291">
          <front>
            <title>IP Version 6 Addressing Architecture</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="February" year="2006"/>
            <abstract>
              <t indent="0">This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol. The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
              <t indent="0">This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture". [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4291"/>
          <seriesInfo name="DOI" value="10.17487/RFC4291"/>
        </reference>
        <reference anchor="RFC4687" target="https://www.rfc-editor.org/info/rfc4687" quoteTitle="true" derivedAnchor="RFC4687">
          <front>
            <title>Operations and Management (OAM) Requirements for Point-to-Multipoint MPLS Networks</title>
            <author fullname="S. Yasukawa" initials="S." surname="Yasukawa"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="D. King" initials="D." surname="King"/>
            <author fullname="T. Nadeau" initials="T." surname="Nadeau"/>
            <date month="September" year="2006"/>
            <abstract>
              <t indent="0">Multi-Protocol Label Switching (MPLS) has been extended to encompass point-to-multipoint (P2MP) Label Switched Paths (LSPs). As with point-to-point MPLS LSPs, the requirement to detect, handle, and diagnose control and data plane defects is critical.</t>
              <t indent="0">For operators deploying services based on P2MP MPLS LSPs, the detection and specification of how to handle those defects are important because such defects not only may affect the fundamentals of an MPLS network, but also may impact service level specification commitments for customers of their network.</t>
              <t indent="0">This document describes requirements for data plane operations and management for P2MP MPLS LSPs. These requirements apply to all forms of P2MP MPLS LSPs, and include P2MP Traffic Engineered (TE) LSPs and multicast LSPs. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4687"/>
          <seriesInfo name="DOI" value="10.17487/RFC4687"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The authors sincerely appreciate the comments received from <contact fullname="Andrew Malis"/>, <contact fullname="Italo Busi"/>, and
      <contact fullname="Shraddha Hegde"/>. The authors also appreciate the
      thought-stimulating questions from <contact fullname="Carlos       Pignataro"/>.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Greg Mirsky" initials="G." surname="Mirsky">
        <organization showOnFrontPage="true">Ericsson</organization>
        <address>
          <email>gregimirsky@gmail.com</email>
        </address>
      </author>
      <author fullname="Gyan Mishra" initials="G." surname="Mishra">
        <organization showOnFrontPage="true">Verizon Inc.</organization>
        <address>
          <email>gyan.s.mishra@verizon.com</email>
        </address>
      </author>
      <author fullname="Donald Eastlake 3rd" initials="D." surname="Eastlake 3rd">
        <organization showOnFrontPage="true">Independent</organization>
        <address>
          <postal>
            <street>2386 Panoramic Circle</street>
            <city>Apopka</city>
            <region>FL</region>
            <code>32703</code>
            <country>United States of America</country>
          </postal>
          <email>d3e3e3@gmail.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
