﻿<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-bier-bfd-12" ipr="trust200902"
obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.5 -->
  <!-- ***** FRONT MATTER ***** -->
  <front>
    <title abbrev="BIER BFD">BIER BFD</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-bier-bfd-12"/>
    <author fullname="Quan Xiong" initials="Q" surname="Xiong">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>xiong.quan@zte.com.cn</email>
      </address>
    </author>
    
    <author fullname="Greg Mirsky" initials="G" surname="Mirsky">
      <organization>Ciena Corporation</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
		<email>gmirsky@ciena.com</email>
      </address>
    </author>
    
    <author fullname="Fangwei Hu" initials="F" surname="Hu">
      <organization>Individual</organization>
      <address>
        <email>hufwei@163.com</email>
      </address>
    </author>
    
    <author fullname="Chang Liu" initials="C" surname="Liu">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <street>No.9 Shouti Nanlu</street>
          <city>Beijing </city>
          <region/>
          <code>100048</code>
          <country>China</country>
        </postal>
        <phone>+86-010-68799999-7294</phone>
        <email> liuc131@chinaunicom.cn</email>
      </address>
    </author>
    
        <author fullname="Gyan Mishra" initials="G. " surname="Mishra">
      <organization>Individual</organization>
      <address>
        <email>hayabusagsm@gmail.com</email>
      </address>
    </author>
    
    <area>Route</area>
    <workgroup>BIER WG</workgroup>
    <keyword>BIER, BFD</keyword>
    <abstract>
	<t>
   Point-to-multipoint (P2MP) BFD is designed to verify multipoint
   connectivity.  This document specifies the application of P2MP BFD in
   BIER network.
   </t>
    </abstract>
  </front>
  <!-- ***** MIDDLE MATTER ***** -->

  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>

	  <t>
	  Bit Index Explicit Replication (BIER) provides efficient multicast forwarding without requiring per‑flow state in the network.
	  A BIER Forwarding Router (BFR) delivers packets to a set of receivers identified by the bitstring in the BIER header,
	  enabling scalable multicast distribution across a domain. As BIER deployments grow, operators require mechanisms to verify continuity,
	  detect failures, and assess reachability of multiple receivers in a BIER sub‑domain.
	  </t>
	  <t>
	  Bidirectional Forwarding Detection (BFD) is widely used to provide rapid failure detection for unicast paths.
	  Point‑to‑multipoint (P2MP) BFD, specified in <xref target="RFC8562"/>, extends BFD to multipoint trees and allows a single head
	  to monitor the liveness of multiple tails. In <xref target="RFC8562"/>, the head transmits BFD Control packets to all tails,
	  and each tail monitors the continuity of the path from the head. <xref target="RFC8562"/> does not define any mechanism
	  for the head to learn about failures affecting individual tails; it only enables tails to detect loss of continuity from the head.
	  </t>
	  <t>
	  <xref target="RFC8563"/> builds on <xref target="RFC8562"/> by defining several mechanisms that allow a tail to notify the head about failures
	  affecting the path between the head and that specific tail. These mechanisms include unsolicited tail‑to‑head notifications
	  and procedures for "active tails", enabling the head to correlate failures with individual receivers.
	  Together, <xref target="RFC8562"/> and <xref target="RFC8563"/> provide a complete framework for multipoint continuity checking and failure reporting.
	  </t>
	  <t>
	  This document specifies the procedures for transmitting P2MP BFD over BIER.
	  It defines how a BIER head encapsulates BFD Control packets, how tails demultiplex and process them,
	  and how unsolicited notifications defined in <xref target="RFC8563"/> may be sent from tails to the head.
	  The document also describes bootstrapping mechanisms that allow tails to discover the BFD session parameters
	  associated with a given BIER sub‑domain and bitstring.
	  </t>
	  <t>
	  The goal of this specification is to provide a lightweight and scalable continuity‑checking mechanism for BIER paths,
	  enabling operators to detect failures affecting any subset of receivers without introducing per‑flow state in the network.
	  The procedures defined here apply to any BIER deployment and do not require modifications to the BIER forwarding architecture.
	  </t>

    </section>
    <section numbered="true" toc="default">
      <name>Conventions used in this document</name>
      <section numbered="true" toc="default">
        <name>Terminology</name>
        <t>This document uses the acronyms defined in <xref target="RFC8279"  /> along with the following: </t>
        <t>BFD: Bidirectional Forwarding Detection.</t>
        <t>OAM: Operations, Administration, and Maintenance.</t>
        <t>P2MP: Point-to-Multipoint.</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"  /> <xref target="RFC8174"  /> when,
    and only when, they appear in all
    capitals, as shown here.</t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>BIER BFD Encapsulation</name>

	  <t>
	  <xref target="bier-encap-bfd-fig"/> shows the encapsulation of a P2MP BFD Control packet in a BIER packet.
	  </t>
	 <figure anchor="bier-encap-bfd-fig">
        <name>BIER BFD Encapsulation</name>
        <artset>

        <artwork name="" type="ascii-art" align="left" alt=""><![CDATA[ 
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---
   |              BIFT-id                  | TC  |S|     TTL       | B
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I
   |Nibble |  Ver  |  BSL  |              Entropy                  | E
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ R
   |OAM|Rsv|    DSCP   |   Proto   |            BFIR-id            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ H
   |                BitString  (first 32 bits)                     ~ e
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ a
   ~                                                               ~ d
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ e
   ~                BitString  (last 32 bits)                      | r
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---
   |  Ver  |MessageType|   Proto   |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---
   |Vers |  Diag   |Sta|P|F|C|A|D|M|  Detect Mult  |    Length     | B
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ F
   |                       My Discriminator                        | D
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Your Discriminator                       | C
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ o
   |                    Desired Min TX Interval                    | n
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ t
   |                   Required Min RX Interval                    | r
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ o
   |                 Required Min Echo RX Interval                 | l
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---

    ]]>
    </artwork>
    <artwork type="svg">

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="552" viewBox="0 0 552 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,176" fill="none" stroke="black"/>
<path d="M 8,240 L 8,464" fill="none" stroke="black"/>
<path d="M 40,112 L 40,144" fill="none" stroke="black"/>
<path d="M 56,272 L 56,304" fill="none" stroke="black"/>
<path d="M 72,80 L 72,144" fill="none" stroke="black"/>
<path d="M 72,240 L 72,272" fill="none" stroke="black"/>
<path d="M 136,80 L 136,112" fill="none" stroke="black"/>
<path d="M 136,272 L 136,304" fill="none" stroke="black"/>
<path d="M 168,112 L 168,144" fill="none" stroke="black"/>
<path d="M 168,240 L 168,304" fill="none" stroke="black"/>
<path d="M 184,272 L 184,304" fill="none" stroke="black"/>
<path d="M 200,80 L 200,112" fill="none" stroke="black"/>
<path d="M 200,272 L 200,304" fill="none" stroke="black"/>
<path d="M 216,272 L 216,304" fill="none" stroke="black"/>
<path d="M 232,272 L 232,304" fill="none" stroke="black"/>
<path d="M 248,272 L 248,304" fill="none" stroke="black"/>
<path d="M 264,112 L 264,144" fill="none" stroke="black"/>
<path d="M 264,240 L 264,304" fill="none" stroke="black"/>
<path d="M 328,48 L 328,80" fill="none" stroke="black"/>
<path d="M 376,48 L 376,80" fill="none" stroke="black"/>
<path d="M 392,48 L 392,80" fill="none" stroke="black"/>
<path d="M 392,272 L 392,304" fill="none" stroke="black"/>
<path d="M 520,48 L 520,144" fill="none" stroke="black"/>
<path d="M 520,208 L 520,464" fill="none" stroke="black"/>
<path d="M 8,48 L 544,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 520,208" fill="none" stroke="black"/>
<path d="M 8,240 L 544,240" fill="none" stroke="black"/>
<path d="M 8,272 L 544,272" fill="none" stroke="black"/>
<path d="M 8,304 L 520,304" fill="none" stroke="black"/>
<path d="M 8,336 L 520,336" fill="none" stroke="black"/>
<path d="M 8,368 L 520,368" fill="none" stroke="black"/>
<path d="M 8,400 L 520,400" fill="none" stroke="black"/>
<path d="M 8,432 L 520,432" fill="none" stroke="black"/>
<path d="M 8,464 L 544,464" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="152" y="68">BIFT-id</text>
<text x="348" y="68">TC</text>
<text x="384" y="68">S</text>
<text x="448" y="68">TTL</text>
<text x="536" y="68">B</text>
<text x="536" y="84">I</text>
<text x="36" y="100">Nibble</text>
<text x="104" y="100">Ver</text>
<text x="168" y="100">BSL</text>
<text x="344" y="100">Entropy</text>
<text x="536" y="100">E</text>
<text x="536" y="116">R</text>
<text x="24" y="132">OAM</text>
<text x="56" y="132">Rsv</text>
<text x="124" y="132">DSCP</text>
<text x="216" y="132">Proto</text>
<text x="392" y="132">BFIR-id</text>
<text x="536" y="148">H</text>
<text x="176" y="164">BitString</text>
<text x="288" y="164">(first 32 bits)</text>
<text x="528" y="164">~ e</text>
<text x="536" y="180">a</text>
<text x="8" y="196">~</text>
<text x="528" y="196">~ d</text>
<text x="536" y="212">e</text>
<text x="8" y="228">~</text>
<text x="176" y="228">BitString</text>
<text x="284" y="228">(last 32 bits)</text>
<text x="536" y="228">r</text>
<text x="40" y="260">Ver</text>
<text x="120" y="260">MessageType</text>
<text x="216" y="260">Proto</text>
<text x="388" y="260">Reserved</text>
<text x="28" y="292">Vers</text>
<text x="92" y="292">Diag</text>
<text x="152" y="292">Sta</text>
<text x="176" y="292">P</text>
<text x="192" y="292">F</text>
<text x="208" y="292">C</text>
<text x="224" y="292">A</text>
<text x="240" y="292">D</text>
<text x="256" y="292">M</text>
<text x="328" y="292">Detect Mult</text>
<text x="452" y="292">Length</text>
<text x="536" y="292">B</text>
<text x="536" y="308">F</text>
<text x="260" y="324">My Discriminator</text>
<text x="536" y="324">D</text>
<text x="260" y="356">Your Discriminator</text>
<text x="536" y="356">C</text>
<text x="536" y="372">o</text>
<text x="264" y="388">Desired Min TX Interval</text>
<text x="536" y="388">n</text>
<text x="536" y="404">t</text>
<text x="260" y="420">Required Min RX Interval</text>
<text x="536" y="420">r</text>
<text x="536" y="436">o</text>
<text x="264" y="452">Required Min Echo RX Interval</text>
<text x="536" y="452">l</text>
</g>
</svg>


</artwork>
</artset>
    </figure>
	  <t>
	  BIER BFD encapsulation uses the BIER OAM packet format defined in <xref target="I-D.ietf-bier-ping"  />. 
	  The BitString identifies the set of tails that are expected to receive and process the BFD Control packet.
<!--
The BitString MUST identify the tails that are part of the P2MP BFD session.
Tails that are not represented in the BitString MUST NOT expect to receive BFD Control packets for that session.
-->
	  The value of the Message Type field MUST be set to BIER BFD (TBD1 will be assigned by IANA <xref target="IANA-subsec1"/>). 
	  The BFD Control packet, defined in Section 4 <xref target="RFC5880"  />, immediately follows the 
	  BIER OAM header. The operation of Multipoint BFD with the BFD Control 
	  packet is described in <xref target="RFC8562"  />.
	  </t>
	  <!--
	  <t>
	  A BIER head MUST ensure that the encapsulated BFD Control packets are forwarded only within the intended BIER sub‑domain
	  and towards the set of tails participating in the P2MP BFD session.
	  Tails MUST discard any BFD packets that cannot be associated with a valid P2MP BFD session,
	  as described in the demultiplexing procedures in this document.
	  </t>
	-->
    </section>
    <section anchor="bfd-session-boot" numbered="true" toc="default">
      <name>BIER BFD Session Bootstrapping</name>
      <t>As defined in <xref target="RFC8562"  />, a BIER BFD session MAY be established to monitor 
	 the state of the multipoint path. The BIER BFD session could be 
	 created for each multipoint path and the set of BFERs over which 
	 the BFIR is requested to run BIER BFD. The BFIR, according to Section 5.7 of <xref target="RFC8562"/>, MAY bootstrap the BFD session
	 using a BIER OAM message (<xref target="ping-bootstrap"/>) or the control plane (<xref target="bgp-bootstrap"/>).
	 Either method MUST refer to the root of the multipoint path and the value of My Discriminator associated with the path to
	 the set of BFERs. The BIER BFD bootstrapping MUST be repeated when the value of  My Discriminator is changed.
	 Also, a P2MP BFD session can be statically configured.</t>
	 
      <section anchor="ping-bootstrap" numbered="true" toc="default">
        <name>Bootstrapping a BIER BFD Session Using BIER Ping</name>
        <t>The BIER OAM can be used to bootstrap the BIER BFD session. 
	  The BFIR sends the BIER OAM Echo request message carrying a BFD 
	  discriminator TLV which immediately follows the Target SI-Bitstring 
	  TLV (Section 3.3.2 of <xref target="I-D.ietf-bier-ping"  />). </t>
        <t>The Target SI-Bitstring TLV MUST be used to carry the set of BFER
	  information (including Sub-domain-id, Set ID, BS Len, Bitstring) 
	  for the purpose of the session establishment. </t>
        <t><xref target="bfd-discriminator-tlv-fig"/> displays the format of
		the BFD Discriminator for a P2MP BFD Session with Active Tails Using Unsolicited Notifications TLV.</t>
        
      <figure anchor="bfd-discriminator-tlv-fig">
        <name>BFD Discriminator for a P2MP BFD Session with Active Tails Using Unsolicited Notifications TLV</name>
        <artset>

        <artwork name="" type="ascii-art" align="left" alt=""><![CDATA[ 
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         Type = TBD2           |             Length            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        My Discriminator                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    ]]>
    </artwork>
    <artwork type="svg">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="528" viewBox="0 0 528 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,112" fill="none" stroke="black"/>
<path d="M 264,48 L 264,80" fill="none" stroke="black"/>
<path d="M 520,48 L 520,112" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="128" y="68">Type = TBD2</text>
<text x="396" y="68">Length</text>
<text x="268" y="100">My Discriminator</text>
</g>
</svg>

</artwork>
</artset>
    </figure>
    
        <t keepWithPrevious="true"/>
          <t> 
	where:
      </t>
      <ul spacing="normal">
        <li>Type indicates BFD Discriminator for a P2MP BFD Session with Active Tails Using Unsolicited Notifications TLV.
		The value (TBD2) is to be allocated by IANA (<xref target="IANA-subsec2"/>).</li>
        <li>Length MUST be set to 4.</li>
        <li>My Discriminator - four-octet long field. The value  is the local discriminator generated by BFIR for this session.
        This discriminator	MUST be used as the My Discriminator field in the BIER BFD Control packets sent by the BFIR.</li>
      </ul>
      </section>

     <section anchor="bgp-bootstrap" numbered="true" toc="default">
      <name>BGP Bootstrapping</name>
      <t>
      <xref target="RFC9026"/> describes the applicability of <xref target="RFC8562"/> in the detection of
      a Multicast Virtual Private Network. The new BGP Attribute, BFD Discriminator,
      can be used to bootstrap a P2MP BFD session according to <xref target="RFC8562"/>. To bootstrap
      a P2MP BFD session with active tails using unsolicited notifications according to <xref target="RFC9780"/>, IANA is requested to allocate
      a new value (TBD3) for the BFD Mode (<xref target="IANA-subsec5"/>).
      </t>
      </section>
      
    </section>

         
    <section anchor="demul-sec" numbered="true" toc="default">
      <name>Discriminators and Packet Demultiplexing</name>

	  <t>
	  P2MP BFD modifies the demultiplexing rules defined in <xref target="RFC5880"/>.
	  In <xref target="RFC5880"/>, a received BFD packet is demultiplexed using the Your Discriminator field,
	  which uniquely identifies the session at the receiver. In P2MP BFD (<xref target="RFC8562"/>),
	  tails do not allocate discriminators and therefore cannot rely on Your Discriminator for demultiplexing.
	  Instead, <xref target="RFC8562"/> defines that tails demultiplex packets using the My Discriminator field,
	  which is assigned by the MultipointHead.
	  </t>
	  <t>
	  Because the MultipointHead assigns the My Discriminator, it is not globally unique across all tails.
	  Therefore, the discriminator alone is insufficient to identify a P2MP BFD session at a tail uniquely.
	  <xref target="RFC8562"/> requires that tails select the correct session using the discriminator in combination with other context,
	  and explicitly leaves the exact method of selection to the application:
	  </t>
	  <blockquote>
	  “the session MUST be selected based on some combination of other fields,
	  possibly including source addressing information, the My Discriminator field,
	  and the interface over which the packet was received. The exact method of selection
	  is application specific and is thus outside the scope of this specification.”
	  </blockquote>
	  <t>
	In BIER, the value of the BFIR-id field (<xref target="bier-encap-bfd-fig"/>) in the BIER header provides
	the additional context required by RFC 8562 for demultiplexing P2MP BFD sessions at the tail.
	Because the MultipointHead assigns the My Discriminator and uniqueness is guaranteed only per head,
	the discriminator alone does not uniquely identify a session across all tails.
	The BFIR-id uniquely identifies the originating head within the BIER domain.
	Therefore, the tuple (BFIR-id, My Discriminator) uniquely identifies the P2MP BFD session at every tail.
	Tails MUST use this tuple as the demultiplexing key, consistent with the requirement in <xref target="RFC8562"/>
	that session selection use a combination of fields beyond the My Discriminator alone. 
	  </t>
    </section>
    <section anchor="active-tail-sec" numbered="true" toc="default">
      <name>Active Tail Behavior in BIER BFD</name>
	  <t>
	  Active Tail behavior for P2MP BFD over BIER, as specified in this document,
	  is based on the unsolicited notification mechanisms defined in <xref target="RFC9780"/>, 
	  not on the solicited notification methods defined in <xref target="RFC8563"/>.
	  </t>
	  <t>
	  In <xref target="RFC8563"/>, the MultipointHead learns the state of the multicast distribution tree
	  by explicitly querying tails; the tails respond to these queries, and the resulting messages
	  are therefore solicited notifications. <xref target="RFC9780"/>, in contrast,
	  defines mechanisms by which an Active tail can independently detect failures and send unsolicited notifications to the head,
	  without being queried. This document specifies the applicability of the <xref target="RFC9780"/> Active Tail mechanisms
	  to P2MP BFD sessions transported over BIER.
	  </t>
	  <t>
	  When P2MP BFD is transported over BIER, an Active tail:
	</t>
	<ul>
	<li>Monitors continuity from the head using <xref target="RFC8562"/> procedures.</li>
	<li>Identifies the session using the tuple (BFIR-id, My Discriminator).</li>
	<li>Upon detecting a failure, sends an unsolicited notification toward the head using
	the mechanisms defined in <xref target="RFC9780"/>. Note that a unicast message must be sent
	over a path which is disjoint from the multicast distribution tree</li>
	</ul>

      <section anchor="unsolicited-sec" numbered="true" toc="default">
        <name>Unsolicited Head Notification Mode</name>
        <t>
       <xref target="RFC9780"  /> provides detailed information on using
    the unsolicited notification method for P2MP MPLS LSP, which is also applicable to BIER.
        </t>
        <t>
In Section 5.2.1 <xref target="RFC8563"  /> it is noted that "the tail sends unsolicited BFD packets in response
to the detection of a multipoint path failure" but without the specifics on the information in the packet and frequency  of transmissions.
This document defines the procedure of the active tail with unsolicited notifications for BIER as specified below.
</t>
        <t>Upon detecting the failure, a BFER sends a BFD Control packet with the following settings:</t>
        <ul spacing="normal">
          <li>the Poll (P) bit MUST be set;</li>
          <li>the Status (Sta) field MUST be set to the Down value;</li>
          <li>the Diagnostic (Diag) field MUST be set to Control Detection Time Expired value;</li>
          <li>the value of the Your Discriminator field MUST be set to the My Discriminator value associated with the failed P2MP BFD session;</li>
          <li>BFD Control packet MUST use IP/UDP encapsulation with the destination IP address of the BFIR
and the UDP destination port number set to 4784 per <xref target="RFC5883"  /></li>
          <li>the BFD Control packets MUST be transmitted at the rate of one per second
  until either the BFER receives a valid for this BFD session control
  packet with the Final (F) bit is set from the BFIR or the defect
  condition clears.</li>
        </ul>
        <t>
  To improve the likelihood of notifying the BFIR of the failure,
  the BFER SHOULD transmit three BFD Control packets defined above in
  pseudo-random intervals between packets within a one-second interval.
</t>
        <t>
A BFIR that has received the BFD Control packet demultiplexes BFD sessions as defined in <xref target="RFC5880"/>,
i.e., based on the value in Your Discriminator field. After the BFIR matches the received BFD Control Packet to the BFD session,
it sends the unicast IP/UDP encapsulated BFD Control packet with the Final (F) bit set
to the BFER.
</t>
      </section>
    </section>
     <section anchor="ops-sec" numbered="true" toc="default">
      <name>Operational Considerations</name>
	  <t>
	  Operational considerations formulated in Section 6 of <xref target="RFC8562"/>, Section 8 of <xref target="RFC8563"/>,
	  and in <xref target="I-D.ietf-bier-ping"/> apply to BIER BFD.
	  </t>
     </section>
	 
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
	  <t>
	  This document inherits all security considerations from <xref target="RFC5880"/>, <xref target="RFC8562"/>,
	  <xref target="RFC8563"/>, and <xref target="I-D.ietf-bier-ping"/>.
	  </t>
      <t>
	  A single failure could affect a significant number of BFERs, thus causing a spike
      in the number of BFD Control packets with notifications, as defined in <xref target="unsolicited-sec"/>.
      To mitigate the overloading of the control plane, an implementation
      MUST control the number of BFD Control packets passed to the control plane for processing.
	  </t>
    </section>
    
    <section anchor="Acknowledgments" numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the comments and suggestions 
	from Sandy Zhang, Jeffrey (Zhaohui) Zhang, Donald Eastlake 3rd, Reshad Rahman, and Les Ginsberg.</t>
    </section>
    
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="IANA-subsec1" numbered="true" toc="default">
        <name>BIER OAM Message Type</name>
        <t>IANA is requested to assign a new type from the BIER OAM Message Type registry in
   the BIER OAM registry group as follows:</t>
        <table anchor="table1" align="center">
          <thead>
            <tr>
              <th align="center"> Value </th>
              <th align="left"> Description </th>
              <th align="center"> Reference </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">TBD1</td>
              <td align="left">BIER BFD </td>
              <td align="center">[this document] </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANA-subsec2" numbered="true" toc="default">
        <name>BFD Discriminator for a P2MP BFD Session with Active Tails Using Unsolicited Notification TLV</name>
        <t>IANA is requested to assign a new type from the TLVs registry in the BIER OAM registry group as follows:</t>
        <table anchor="table2" align="center">
          <thead>
            <tr>
              <th align="center"> Value </th>
              <th align="left"> Description </th>
              <th align="center"> Reference </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">TBD2</td>
              <td align="left">BFD Discriminator for a P2MP BFD Session with Active Tails Using Unsolicited Notification TLV</td>
              <td align="center">[this document] </td>
            </tr>
          </tbody>
        </table>
      </section>
 
            <section anchor="IANA-subsec5" numbered="true" toc="default">
        <name>BGP's BFD Discriminator Attribute Mode of P2MP BFD Session with Active Tails Using Unsolicited Notifications</name>
        <t>IANA is requested to assign a new value from "BFD Mode" subregistry (defined in <xref target="RFC9026"/>)
        in the Border Gateway Protocol (BGP) Parameters registry according to <xref target="table5"/>:
</t>
        <table anchor="table5" align="center">
          <thead>
            <tr>
              <th align="center"> Value </th>
              <th align="left"> Description </th>
              <th align="center"> Reference </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">TBD3</td>
              <td align="left">P2MP BFD Session with Active Tails Using Unsolicited Notifications</td>
              <td align="center">[this document] </td>
            </tr>
          </tbody>
        </table>
        </section>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

  <back>
    <references>
      <name>References</name>
      <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.5880.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.8279.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"/>
        <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.9026.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-bier-ping.xml"/>
  	    <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9780.xml"/>
      </references>
      
      <!--
      <references>
        <name>Informative References</name>
        
	   <reference anchor="ISO9577">
	    <front>	
		  <title>International Organization for Standardization "Information
             technology - Telecommunications and Information exchange
             between systems - Protocol identification in the network
             layer" </title>
		  <author>
            <organization>ISO/IEC TR 9577:1999,</organization>
          </author>	  
          <date year="1999"/>
	    </front>
	  </reference>

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