﻿<?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-11" 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-11"/>
    <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>Individual</organization>
      <address>
        <email>gregimirsky@gmail.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) <xref target="RFC8279" format="default"/> provides the forwarding 
	  of multicast data packets through a multicast domain. It does so 
	  without requiring any explicit tree-building protocol and without 
	  requiring intermediate nodes to maintain any per-flow state. </t>
      <t><xref target="RFC8562" format="default"/> defines a method of using Bidirectional Forwarding Detection 
	  (BFD) to monitor and detect failures between the sender (head) 
	  and one or more receivers (tails) in multipoint or multicast networks. <xref target="RFC8563" format="default"/> 
	  describes active tail extensions to the BFD protocol for multipoint 
	  networks.</t>
      <t>This document describes the procedures for using such mode of BFD 
	  protocol to monitor connectivity between a multipoint sender,  
	  Bit-Forwarding Ingress Router (BFIR), and a set of one or more multipoint 
	  receivers, Bit-Forwarding Egress Routers (BFERs). The BIER BFD only supports 
	  unidirectional multicast. This document defines the use of P2MP BFD as 
	  per <xref target="RFC8562" format="default"/>, and active tail as per <xref target="RFC8563" format="default"/> for BIER-specific domain.</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" format="default"/> along with the following: </t>
        <t>BFD: Bidirectional Forwarding Detection.</t>
        <t>OAM: Operations, Administration, and Maintenance.</t>
        <t>P2MP: Point to Multi-Point.</t>
      </section>
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
    "OPTIONAL" in this document are to be interpreted as described in BCP
    14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when,
    and only when, they appear in all
    capitals, as shown here.</t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>BIER BFD Encapsulation</name>
      <t>BIER BFD encapsulation uses the BIER OAM packet format defined in <xref target="I-D.ietf-bier-ping" format="default"/>. 
	  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" format="default"/>, immediately follows the 
	  BIER OAM header. The operation of Multipoint BFD with the BFD Control 
	  Packet is described in <xref target="RFC8562" format="default"/>.</t>
    </section>
    <section anchor="bfd-session-boot" numbered="true" toc="default">
      <name>BIER BFD Session Bootstrapping</name>
      <t>As defined in <xref target="RFC8562" format="default"/>, 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.</t>
	 
      <section anchor="ping-bootstrap" numbered="true" toc="default">
        <name>Bootstrapping a BIER BFD Session Using BIER Ping</name>
        <t>The BIER OAM could be used for bootstrapping 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" format="default"/>). </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 BFD Discriminator TLV.</t>
        
      <figure anchor="bfd-discriminator-tlv-fig">
        <name>BFD Discriminator 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 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 according to <xref target="RFC8563"/> 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>As defined in <xref target="RFC8562" format="default"/>, the BFIR sends BFD Control packets
      to the set of BFERs over the multipoint path via the BIER BFD session 
	  with My Discriminator is set to the value assigned by the BFIR, and the 
	  value of the Your Discriminator is set to zero. The set of BFERs MUST 
	  demultiplex BFD packets based on a combination of the source address, 
	  My Discriminator value. The source address is BFIR-id and BIER MPLS 
	  Label (MPLS network) or BFIR-id and BIFT-id (Non-MPLS network) for 
	  BIER BFD. My Discriminator value is advertised in BIER BFD bootstrapping 
	  using one of the options described in <xref target="bfd-session-boot" format="default"/>.</t>
    </section>
    <section anchor="active-tail-sec" numbered="true" toc="default">
      <name>Active Tail in BIER BFD</name>
      <t><xref target="RFC8563" format="default"/> defined an extension for Multipoint BFD, which allows the
    head to discover the state of a multicast distribution tree for any
    sub-set of tails. For BIER BFD in the active tail mode, the BFIR may
    learn the state and connectivity of the BFERs by allowing the 
    BFERs to notify the BFIR. As per <xref target="RFC8563" format="default"/> provides detailed information
    on how the BFIR can use multipoint Poll sequence message or 
    a combination of multicast and unicast Poll sequence messages 
    to determine the state of the multicast tree. Also, <xref target="RFC8563" format="default"/> describes
    that a BFER can transmit an unsolicited unicast Poll sequence message to
    the BFIR (note that a unicast message must be sent over a
    path which is disjoint from the multicast distribution tree).</t>
      <section anchor="unsolicited-sec" numbered="true" toc="default">
        <name>Unsolicited Head Notification Mode</name>
        <t>
       <xref target="RFC9780" format="default"/> 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" format="default"/> 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 is set;</li>
          <li>the Status (Sta) field is set to Down value;</li>
          <li>the Diagnostic (Diag) field is set to Control Detection Time Expired value;</li>
          <li>the value of the Your Discriminator field is set to the value the BFER has been used to demultiplex that BFD multipoint session;</li>
          <li>BFD Control packet is encapsulated in IP/UDP with the destination IP address of the BFIR
and the UDP destination port number set to 4784 per <xref target="RFC5883" format="default"/></li>
          <li>the BFD Control packets are transmitted at the rate of one per second
  until either the BFER receives 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 with
  pseudo-random intervals between packets within a one-second interval.
</t>
        <t>
A BFIR that has received the BFD Control packet, as described above,
sends the unicast IP/UDP encapsulated BFD control packet with the Final (F) bit set
to the BFER.
</t>
      </section>
    </section>
    
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>For BIER OAM packet processing security considerations, see <xref target="I-D.ietf-bier-ping" format="default"/>.</t>
      <t>For general multipoint BFD security considerations, see <xref target="RFC8562" format="default"/>.</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="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</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 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 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 Session with Active Tails</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</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>
