﻿<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-ietf-bier-frr-07" ipr="trust200902">
 <front>
  <title abbrev="BIER FRR">BIER Fast ReRoute</title>
  <author initials="H" role="editor" surname="Chen" fullname="Huaimo Chen">
   <organization>Futurewei</organization>
   <address>
    <postal>
     <street />
     <city>Boston, MA</city>
     <region />
     <code />
     <country>USA</country>
    </postal>
    <email>hchen.ietf@gmail.com</email>
   </address>
  </author>
  <author fullname="Mike McBride" initials="M" surname="McBride">
   <organization>Futurewei</organization>
   <address>
    <email>michael.mcbride@futurewei.com</email>
   </address>
  </author>
  <author fullname="Steffen Lindner" initials="S" surname="Lindner">
   <organization>University of Tuebingen</organization>
   <address>
    <email>steffen.lindner@uni-tuebingen.de</email>
   </address>
  </author>
  <author fullname="Michael Menth" initials="M" surname="Menth">
   <organization>University of Tuebingen</organization>
   <address>
    <email>menth@uni-tuebingen.de</email>
   </address>
  </author>

  <author initials="A" fullname="Aijun Wang" surname="Wang">
   <organization>China Telecom</organization>
   <address>
    <postal>
     <street>Beiqijia Town, Changping District</street>
     <city>Beijing</city>
     <region />
     <code>102209</code>
     <country>China</country>
    </postal>
    <email>wangaj3@chinatelecom.cn</email>
   </address>
  </author>

  <author fullname="Gyan S. Mishra" initials="G" surname="Mishra">
   <organization>Verizon Inc.</organization>
   <address>
    <postal>
     <street>13101 Columbia Pike</street>
     <city>Silver Spring</city>
     <code>MD 20904</code>
     <country>USA</country>
    </postal>
    <phone>301 502-1347</phone>
    <email>gyan.s.mishra@verizon.com</email>
   </address>
  </author>
<!--
  <author initials="Y" fullname="Yisong Liu" surname="Liu">
   <organization>China Mobile</organization>
   <address>
    <email>liuyisong@chinamobile.com</email>
   </address>
  </author>

  <author initials="Y" fullname="Yanhe Fan" surname="Fan">
   <organization>Casa Systems</organization>
   <address>
    <postal>
     <street />
     <city />
     <region />
     <code />
     <country>USA</country>
    </postal>
    <email>yfan@casa-systems.com</email>
   </address>
  </author>
  <author initials="L" fullname="Lei Liu" surname="Liu">
   <organization>Fujitsu</organization>
   <address>
    <postal>
     <street />
     <city />
     <region />
     <code />
     <country>USA</country>
    </postal>
    <email>liulei.kddi@gmail.com</email>
   </address>
  </author>

  <author initials="X" fullname="Xufeng Liu" 
            surname="Liu">
      <organization>IBM Corporation</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region> </region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>
-->
  <date year="2025" />


  <abstract>

  <t>This document describes a mechanism for Fast Reroute (FRR) in Bit Index Explicit Replication (BIER) networks. 
The proposed solution enhances the resiliency of BIER by providing a method to quickly reroute traffic in the event 
of a link or node failure, thereby minimizing packet loss and service disruption. The document details the procedures 
for detecting failures and selecting backup paths within the BIER domain, ensuring that multicast traffic continues 
to reach its intended destinations without requiring per-flow state or additional signaling. This FRR mechanism is 
designed to integrate seamlessly with existing BIER operations, offering a robust solution for improving network reliability.</t>
  </abstract>

  <note title="Requirements Language">
   <t>
    The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, 
&quot;SHALL&quot;, &quot;SHALL NOT&quot;,
      &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, 
&quot;MAY&quot;, and &quot;OPTIONAL&quot; in this
      document are to be interpreted as described in
    <xref target="RFC2119" />
    <xref target="RFC8174" />
    when, and only when, they appear in all capitals, as shown here.
   </t>
  </note>
 </front>
 <middle>

  <!-- Introduction -->
  <section title="Introduction">

   <t>With BIER <xref target="RFC8279"/>, 
   a Bit-Forwarding Router (BFR) forwards BIER
   packets based on a bitstring in the BIER header using the information
   in the Bit Index Forwarding Table (BIFT).  Its entries are locally
   derived from a routing underlay or set by a controller. In case of a
   persistent link or node failure, BIER traffic may not be delivered
   until the BIFT has been updated based on the reconverged routing
   underlay or by the controller.</t>

<!-- Restored
   <t><xref target="RFC8279"/> specifies 
      "Bit Index Explicit Replication" (BIER).
    A Bit-Forwarding Router (BFR) forwards a BIER packet based on 
    a bitstring in the BIER header of the packet using the information 
    in the Bit Index Forwarding Table (BIFT).
    Its entries are locally derived from a routing underlay or 
    set by a controller.

    When a link or node failure occurs, the BIER packets, to be sent
    to the failed link or node, may not be delivered until the BIFT has 
    been updated based on the reconverged BIER topology.
   </t>
-->


   <t>Typically, BIER packets are forwarded without an outer IP header. Consequently, if a link or 
   node failure occurs, the corresponding BFR Neighbor (BFR-NBR) becomes unreachable. 
   Fast Reroute (FRR) mechanisms in the routing underlay, such as IP-FRR, apply exclusively to 
   IP packets, leading to potential loss of BIER traffic. BIER traffic can only be restored after the 
   routing underlay has reconverged and the BIFT has been recalculated. Tunneling BIER packets 
   can serve as a solution to reach the BFR-NBR in the case of a link failure by leveraging the FRR 
   capabilities of the routing underlay, provided such mechanisms are available. However, this approach 
   does not address node failures, as all destinations that rely on the failed node as their BFR-NBR 
   become unreachable. Given that BIER often carries multicast traffic with real-time requirements, 
   there is a particular need to protect BIER traffic against prolonged outages following failures.</t>


     <t>This document introduces a nomenclature for Fast Reroute in BIER (BIER-FRR). Upon 
     detecting that a BFR-NBR is unreachable, BIER-FRR enables a BFR to quickly reroute affected 
     BIER packets using backup forwarding entries. To avoid the generation of redundant packets, backup 
     forwarding entries should be processed before normal forwarding entries. To achieve this, two potential 
     representations for backup forwarding entries are proposed.</t>

     <t>The protection level offered by BIER-FRR can be either link protection or node protection. Link 
     protection is limited to safeguarding against link failures and is simpler to implement but may not be 
     effective if a BFR itself fails. Node protection, while more complex, also guards against the failure of BFRs. 
     The choice of backup strategy determines the selection of backup forwarding entries.</t>

     <t>Examples of backup strategies include tunnel-based BIER-FRR and Loop-Free Alternate (LFA)-based BIER-FRR:
     <list style="symbols">
      <t>Tunnel-based BIER-FRR: This approach leverages the mechanisms of the routing underlay for FRR purposes. 
      The routing underlay typically restores connectivity faster than BIER, as the reconvergence of the routing underlay is 
      a prerequisite for the recalculation of the BIFT. When the routing underlay utilizes FRR mechanisms, its forwarding 
      capabilities are restored well before reconvergence is completed. To benefit from the rapid restoration of the routing 
      underlay, BIER traffic affected by a failure is tunneled over the routing underlay.</t>

     <t>LFA-based BIER-FRR: This approach reroutes BIER traffic to alternative neighbors in the event of a failure. 
     It applies the principles of IP-FRR, requiring that LFAs are also BFRs. Normal BIER-LFAs can be reached without 
     tunneling, remote BIER-LFAs employ a tunnel, and topology-independent BIER-LFAs use explicit paths to reach the 
     backup BFR-NBR. Unlike tunnel-based FRR, LFA-based BIER-FRR does not depend on fast reroute mechanisms in 
     the routing underlay.</t>


     </list>
     </t>

   <t>The BIER-FRR mechanism described in this document adheres to a primary/backup path model, also known as 1:1 
   protection, which contrasts with the 1+1 protection model, where traffic is duplicated across both primary and backup paths, 
   as explored for BIER in <xref target="BrAl17"/>.
   </t>

<!--
    <section title="Terminology">
      <t>
      <list style="hanging" hangIndent="6">
       <t hangText="BIER:">Bit Index Explicit Replication  
                    defined in <xref target="RFC8279"/>.</t>
       <t hangText="FRR:">Fast Re-Route.</t>
       <t hangText="BIER-FRR:">BIER Fast Re-Route.</t>
       <t hangText="LFA:">Loop-Free Alternate.</t>
       <t hangText="basic/normal LFA:">Basic or normal LFA is a LFA
                   defined in <xref target="RFC5286"/>.</t>
       <t hangText="R-LFA:">R-LFA (short for Remote LFA) is a LFA
                   defined in <xref target="RFC7490"/>.</t>
       <t hangText="TI-LFA:">TI-LFA (short for Topology Independent LFA)
                   is a LFA defined in 
                   <xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa"/>.</t>

       <t hangText="BIER-LFA:">BIER-LFA is a x-LFA computed 
                   using a BIER network domain topology, 
                   where x-LFA is a basic/normal LFA, R-LFA or TI-LFA.</t>

       <t hangText="PLR:">Point of Local Repair.</t>
       <t hangText="BFR:">Bit-Forwarding Router.</t>
       <t hangText="BFIR:">Bit-Forwarding Ingress Router.</t>
       <t hangText="BFER:">Bit-Forwarding Egress Router.</t>
       <t hangText="BFR-id:">BFR Identifier. 
          It is a number in the range [1,65535].</t>
       <t hangText="BFR-NBR:">BFR Neighbor.</t>
       <t hangText="BFR-prefix:">An IP address (either IPv4 or IPv6) of a BFR.</t>
       <t hangText="BIRT:">Bit Index Routing Table  
                    defined in <xref target="RFC8279"/>.</t>
       <t hangText="BIFT:">Bit Index Forwarding Table  
                    defined in <xref target="RFC8279"/>.</t>
       <t hangText="F-BM:">Forwarding Bit Mask 
                    defined in <xref target="RFC8279"/>.</t>
       <t hangText="IS-IS:">Intermediate System to Intermediate System.</t>
       <t hangText="OSPF:">Open Shortest Path First.</t>
       <t hangText="IGP:">Interior Gateway Protocol.</t>
       <t hangText="LSDB:">Link State Database.</t>
      </list></t>
    </section> --> <!-- Terminology -->
  </section> <!-- Introduction -->

  <section title="Terminology">
  
<t>This document uses the following definitions:</t>

<t>BIER: Bit Indexed Explicit Routing</t>
<t>BIER FRR: Bit Indexed Explicit Routing Fast ReRoute</t>
<t>BFR: Bit-Forwarding Router</t>
<t>BFR-NBR: Bit-Forwarding Neighbor</t>
<t>BFIR: Bit-Forwarding Ingress Router</t>
<t>BFER: Bit-Forwarding Egress Router</t>
<t>BIFT: Bit Index Forwarding Table</t>
<t>F-BM: Forwarding Bit Mask</t>
<t>PLR: Point of Local Repair</t>
<t>LFA: Loop Free Alternate</t>
<t>BF-BM: Backup F-BM</t>
<t>BBFR-NBR: Backup BFR-NBR</t>
<t>BFA: Backup Forwarding Action</t>
<t>BEA: Backup Entry Active</t>

</section>


  <!-- mechanisms for BIER-FRR -->
  <section title="Definition of BIER-FRR"
           anchor="ex4_bier_frr">
    <t>In this section, forwarding actions and backup forwarding entries 
       are defined. Then,  
       the BIER forwarding process with BIER-FRR and 
       the computation of the backup F-BM are explained.
    </t>

    <section title="Definition of Forwarding Actions" 
             anchor="trigger_for_frr">
      <t>
   A BFR-NBR is considered directly connected if it is a next hop at the network layer, 
   meaning it can be reached via link layer technology. Conversely, if the BFR-NBR 
   cannot be reached directly through the link layer, it is regarded as indirectly connected.
      </t>

      <t>The following forwarding actions are defined:
        <list style="symbols">
          <t>Plain: The BIER packet is sent directly to a BFR-NBR via a direct link without 
          encapsulation in a tunnel header. This indicates that the packet is not routed through the underlying network.</t>
          <t>Tunnel: The BIER packet is encapsulated with a tunnel header and forwarded to a BFR-NBR over the routing underlay.</t>
          <t>Explicit: The packet is forwarded along an explicit path to a BFR-NBR. The specific path information must be provided. If 
          segment routing is employed for this purpose, the segment IDs (SIDs) must be specified. Two forwarding actions of type 
          Explicit are considered equivalent only if they utilize the same explicit path.
           </t>
        </list>
      </t>

      <t>In the BIFT as outlined in <xref target="RFC8279"/>, the forwarding actions are implicitly determined by the connectivity 
      status of the BFR-NBR. If the BFR-NBR is directly connected, the forwarding action is Plain. If the BFR-NBR is not directly 
      connected, the forwarding action is Tunnel.
      </t>

<!--
      <t>Action Plain, Tunnel and Explicit are associated with
         basic LFA in <xref target="RFC5286"/>,  
         remote LFA in <xref target="RFC7490"/> and TI-LFA
         in <xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa"/> 
         respectively. 

         These actions are represented as follows for clear explanation 
         in a BIFT for LFA-based BIER-FRR: 
          <list style="symbols">
            <t>LFA/Plain (or LFA) for basic LFA with Plain,</t>
            <t>R-LFA/Encap for remote LFA with Tunnel/Encapsulation, and</t>
            <t>TI-LFA/Exp for TI-LFA with Explicit.</t>
          </list>
      </t>
-->
     </section>

     <section title="Definition of Backup Forwarding Entries" 
              anchor="backup_forwarding_entries">
       <t> 
   The BIFT as proposed in <xref target="RFC8279"/> includes a Forwarding Bit Mask (F-BM) 
   and a BFR-NBR for a specific BFER. These elements constitute a primary forwarding entry. 
   The BIER-FRR (Fast Reroute) mechanism extends the conventional BIFT by introducing additional 
   columns that contain backup forwarding entries. A backup forwarding entry comprises the following components:
 
         <list style="symbols">
           <t>Backup Forwarding Bit Mask (BF-BM)</t>
           <t>Backup BFR Neighbor (BBFR-NBR)</t>
           <t>Backup Forwarding Action (BFA)</t>
           <t>Backup Entry Active (BEA) Flag</t>
         </list>
      </t>

      <t>The BF-BM and BBFR-NBR share the same structure as their primary counterparts. The BFA is 
      defined as a forwarding action according to <xref target="trigger_for_frr" />.
   The BEA flag indicates whether the backup forwarding entry is currently active. When active, the BF-BM, 
   BBFR-NBR, and BFA are utilized for forwarding BIER packets in place of the primary forwarding entry. 
   The structure of the extended BIFT is illustrated in <xref target="bift" />.
      </t>
      <figure anchor="bift" 
       title="Structure of an extended BIFT with backup forwarding entries.">
          <artwork align="center"><![CDATA[
+--------+------+---------+--------+----------+--------+----+
| BFR-id | F-BM | BFR-NBR | BF-BM  | BBFR-NBR |  BFA   | BEA|
+========+======+=========+========+==========+========+====+
|  ...   |  ... |   ...   |   ...  |   ...    |  ...   |    |
+--------+------+---------+--------+----------+--------+----+]]>
          </artwork>
      </figure>

<!--
*** The backup action can also be derived from the BFR-NBR
      in the same way as the primary action.
-->
      <t>The primary action is not explicitly stated in the BIFT, as it is derived from the BFR-NBR. 
      In contrast, the backup forwarding action is explicitly defined in the extended BIFT. 
      Additionally, in the case of an Explicit forwarding action, the explicit path must be indicated. 
      However, since explicit paths are implementation-specific, this information is not detailed in the table. 
      The values for the backup BFR-NBR and the backup action depend on the desired level of protection 
      and the chosen backup strategy. Examples of these are provided in  <xref target="Tunnel_Based"/>  
      and <xref target="LFA_Based"/>. 
 
   The Backup Forwarding Bit Mask (BF-BM) is determined based on the backup BFR-NBR, and its 
   computation is described in <xref target="f_bm_computation"/>. 
      </t>

    </section>

    <section title="Activating and Deactivating Backup Forwarding Entries" 
             anchor="a_backup_entry">
      <t>  
   When a primary BFR-NBR is not reachable 
   over the implicit primary action, a failure is observed. Then, 
   the BEA flag of the corresponding backup forwarding entry is set.</t>

     <t>
   If the primary BFR-NBR is directly connected, the information about the
   failed interface is sufficient to detect its unreachability.

   If the primary BFR-NBR is indirectly connected, a BFD session between 
   the BFR as PLR and the BFR-NBR may be used to monitor its reachability.
     </t>

     <t>
   If the primary BFR-NBR is reachable again, the BEA flag is deactivated. 
This may be caused by the disappearance of the failure or by a change of
the primary BFR-NBR due to a reconfiguration of the BIFT.
     </t>

    </section>



    <section title="Computation of the Backup F-BM" 
             anchor="f_bm_computation">

      <t>The primary F-BM of a specific BFER identifies all BFERs that share the same primary 
      Bit-Forwarding Router Neighbor (BFR-NBR). The backup F-BM for a specific BFER is computed to indicate:
         <list style="symbols">
           <t>All BFERs that share both the primary and backup BFR-NBRs of the specific BFER, and</t>
           <t>All BFERs for which the backup BFR-NBR of the specific BFER serves as the primary BFR-NBR.</t>
         </list>
       </t>

<!--
       <t>In one implementation, 
          the backup F-BM of a specific BFER B can be computed 
          as follows. Assume that the primary BFR-NBR of B is P.
         <list style="symbols">
            <t>For each BFER with primary BFR-NBR P,  
               change P to a backup BFR-NBR in a BIRT 
               copied from a regular BIRT, and</t>

            <t>the backup F-BM of B indicates
               all BFERs in the BIRT that have the same BFR-NBR 
               as the backup BFR-NBR for B.</t>
         </list>
       </t>
-->
<!--
       <t>The backup F-BM (BF-BM) in a backup forwarding sub-entry is 
          computed in two steps.
          In the first step, the BFR builds a temporary BIRT (T-BIRT) 
          through copying its regular BIRT to the T-BIRT 
          and then changing the next hop BFR-NBR (NH) in each of the entries 
          with a same next hop BFR-NBR (e.g., B6) in the T-BIRT
          to a backup next hop (BNH). This protects against the
          failure of the next hop (e.g., B6) and the link to the next hop
          for node protection 
          or the link to the next hop for link protection.</t>

       <t>In the second step, the BFR gets the BF-BM through ORing
          the Bit for each of the BFERs with the same backup next hop (BNH)
          and next hop BFR-NBR (NH) in the T-BIRT.</t>

       <t>In <xref target="lfa-1bift-link-protect"/>,
          the procedures for building the enhanced BIFT for BIER-FRR 
          link protection  
          illustrate these two steps in details.
          In <xref target="lfa-1bift-node-protect"/>,
          the procedures for building the enhanced BIFT for BIER-FRR 
          node protection 
          show these two steps in details.
           </t>
-->
    </section>
    </section> <!-- mechanisms for BIER FRR  -->

  <!-- Representations for BIER-FRR Forwarding Data -->
  <section anchor="Representation" 
           title="Representations for BIER-FRR Forwarding Data">
    <t>To minimize the occurrence of redundant packets, it is essential that backup 
    entries are prioritized for use within the single extended BIFT. However, implementing this priority may be 
    challenging or infeasible on certain hardware platforms. Consequently, two alternative representations of 
    forwarding entries are proposed. The first representation involves a primary BIFT and a Single Backup 
    BIFT (SBB). The second representation comprises a primary BIFT along with multiple Failure-Specific Backup BIFTs (FBB).
<!--
       In the first representation, when a failure happens, 
       the corresponding entries in the backup BIFT
       are used first and then the entries in the primary BIFT 
       to reduce redundant packets.
       In the second representation, when a failure happens,
       the FRR-BIFT for the failure is used. The redundant packets
       are reduced. 
-->
    </t>

    <section title="Potential Emergence of Redundant Packets" 
             anchor="redundant_packets">

      <t>
<!--
         For a BIER packet, 
         when a BFR forwards extra unnecessary copies of the packet 
         to its BFR-NBRs, these extra unnecessary copies are called
         redundant packets.
-->
 The BIER forwarding procedure in failure-free scenarios is designed to avoid the generation 
 of redundant packets, ensuring that at most a single copy is transmitted per link for each BIER 
 packet. However, this property may be compromised when BIER-FRR, as described in  <xref target="ex4_bier_frr"/> 
 is employed to provide protection against a failure.</t>

      <t><xref target="networking_scenario" /> presents an example of a BIER network. In this example, 
      BFRs are identified by the prefix "B" followed by their BFR-ids. For simplicity, each BFR also serves 
      as a BFER, and its bit position in the bitstring corresponds to its BFR-id. The number assigned to 
      each link represents its cost, which the routing underlay uses to compute the shortest paths.

       <figure anchor="networking_scenario" 
               title="BIER network example.">
        <artwork align="center"><![CDATA[
        1              1
  B1 --------- B6 ------------ B5       BFR Bi is BFER
  |            |               |       (i = 1,2,3,4,5,6,7;
  |            |               |        i is BFR-id of Bi)
2 |            | 1             |
  |      1     |               | 1     cost of link B1-B2 is 2
  B2 --------- B7              |       cost of link B3-B4 is 4
  |                            |       cost of other links is 1
1 |                            |
  |                  4         |
 B3 ------------------------- B4]]>
        </artwork>
      </figure>
</t>
      <!-- Attention: We cite networking example. Can't use xref 
           in title though ... -->

    <t>The extended BIFT with backup forwarding entries for LFA-based BIER-FRR 
    with link protection, as constructed by BFR B1, is illustrated in  <xref target="extended_bift_plr_redeundant"/>.

      <figure anchor="extended_bift_plr_redeundant" 
       title="B1's extended BIFT for LFA-based FRR with link protection.">
          <artwork align="center"><![CDATA[
+------+----------+-------+----------+--------+----------+---+
|BFR-id|   F-BM   |BFR-NBR|  BF-BM   |BBFR-NBR|   BFA    |BEA|
+======+==========+=======+==========+========+==========+===+
|   2  | 0000110  |  B2   | 1111110  |   B6   |  Plain   |   |
+------+----------+-------+----------+--------+----------+---+
|   3  | 0000110  |  B2   | 1111110  |   B6   |  Plain   |   |
+------+----------+-------+----------+--------+----------+---+
|   4  | 1111000  |  B6   | 1111110  |   B2   |  Plain   |   |
+------+----------+-------+----------+--------+----------+---+
|   5  | 1111000  |  B6   | 1111110  |   B2   |  Plain   |   |
+------+----------+-------+----------+--------+----------+---+
|   6  | 1111000  |  B6   | 1111110  |   B2   |  Plain   |   |
+------+----------+-------+----------+--------+----------+---+
|   7  | 1111000  |  B6   | 1111110  |   B2   |  Plain   |   |
+------+----------+-------+----------+--------+----------+---+]]>
          </artwork>
      </figure>
</t>

      <t>The emergence of redundant packets during a failure scenario is demonstrated 
      as follows. Consider the extended BIFT for BFR B1 depicted in
   <xref target="extended_bift_plr_redeundant"/>. 
  This BIFT includes backup forwarding entries for LFA-based FRR with link protection. 
  In a failure-free scenario, when forwarding a BIER packet destined for B2 and B6 (bitstring 0100010), 
  BFR B1 sends a single copy of the packet on the link B1-B2 and another on the link B1-B6.</t>

      <t>In the event of a failure on link B1-B6, BFR B1, acting as the PLR, detects the failure. 
      Consequently, B1 sets the BEA flag for all destinations that have B6 as their BFR-NBR. If 
      B1 is to send a BIER packet to B2 and B6 under these conditions, it first sends a copy with 
      bitstring 0000010 to B2 using the corresponding primary forwarding entry in the extended BIFT shown in
         <xref target="extended_bift_plr_redeundant" />. </t>

      <t>Subsequently, B1 sends another copy of the packet with bitstring 0100000 to B2 for B6, 
      using the backup forwarding entry, since the BEA flag is activated.</t>
         
      <t>This results in a second (redundant) copy being sent over the same link B1-B2. This redundancy can be 
      avoided if the backup forwarding entry is prioritized. By using the backup forwarding entry first, B1 would 
      send only a single copy of the packet with bitstring 0100010 to B2, and no additional copy would be sent to 
      B2, as the bitstring in the packet would be cleared by the BF-BM 1111110. Therefore, prioritizing the processing 
      of BFERs with unreachable BFR-NBRs helps to reduce the generation of redundant packet copies.
       </t>
    </section>

    <section anchor="primary_bift_single_backup_bift" 
             title="Primary BIFT and Single Backup BIFT">
      <t>The extended BIFT can be divided into two distinct BIFTs: one serving as the primary BIFT, 
      and the other as a single backup BIFT. The primary BIFT functions in the same manner as the regular BIFT. 
      The backup BIFT, however, contains the backup forwarding entries, including the BBF-BM, BBFR-NBR, 
      BFA, and BEA flag from the extended BIFT. When a BFR, acting as the PLR, detects that a BFR-NBR has 
      become unreachable, it activates the BEA flag for all BFERs in the backup BIFT that have the affected BFR-NBR 
      as their primary BFR-NBR. When forwarding a BIER packet, the BFR processes the packet using the backup BIFT 
      first, followed by the primary BIFT. This prioritization helps to reduce the number of redundant packet copies.
       </t>

       <t>B1's extended BIFT from <xref target="extended_bift_plr_redeundant"/>
is divided into the primary BIFT shown in <xref target="primary_bift_failure_free"/>
and the single backup BIFT shown in <xref target="backup_bift_failure_specific"/>.

       <figure anchor="primary_bift_failure_free" 
               title="B1's primary BIFT for the BIER network example.">
           <artwork align="center"><![CDATA[
 +--------+---------+---------+
 | BFR-id |   F-BM  | BFR-NBR |
 +========+=========+=========+
 |   2    | 0000110 |    B2   |
 +--------+---------+---------+
 |   3    | 0000110 |    B2   |
 +--------+---------+---------+
 |   4    | 1111000 |    B6   |
 +--------+---------+---------+
 |   5    | 1111000 |    B6   |
 +--------+---------+---------+
 |   6    | 1111000 |    B6   |
 +--------+---------+---------+
 |   7    | 1111000 |    B6   |
 +--------+---------+---------+]]>
           </artwork>
       </figure>

</t>

<t>  
       <figure anchor="backup_bift_failure_specific" 
               title="B1's backup BIFT for the BIER network example.">
           <artwork align="center"><![CDATA[
  +------+----------+--------+-----------+---+-----------------+
  |BFR-id|  BF-BM   |BBFR-NBR|   BFA     |BEA|Comment: protects|
  |      |          |        |           |   |  failure of     |
  +======+==========+========+===========+===+=================+
  |   2  | 1111110  |   B6   |  Plain    |   |  Link B1->B2    |
  +------+----------+--------+-----------+---+-----------------+
  |   3  | 1111110  |   B6   |  Plain    |   |  Link B1->B2    |
  +------+----------+--------+-----------+---+-----------------+
  |   4  | 1111110  |   B2   |  Plain    |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   5  | 1111110  |   B2   |  Plain    |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   6  | 1111110  |   B2   |  Plain    |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   7  | 1111110  |   B2   |  Plain    |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+]]>
           </artwork>
       </figure>

Each forwarding entry in the backup BIFT includes the BF-BM, BBFR-NBR, BFA, and BEA. 
When a BFR-NBR fails, the BEA flag is activated for all BFERs in the backup BIFT that have 
the affected BFR-NBR as their primary BFR-NBR. For instance, BFERs B4, B5, B6, and B7 
have BFR-NBR B6 as their primary BFR-NBR. If BFR-NBR B6 fails, the BEA flag for BFERs 
B4, B5, B6, and B7 is activated, setting the BEA in the last four entries in the backup BIFT to one.
<!-- 
The entries are the same as
for LFA-based BIER-FRR with link protection (see Section 5.2.5).
-->
</t>
    </section>

    <section anchor="primary_bift_failure_backup_bift" 
             title="Primary BIFT and Failure-Specific Backup BIFTs">
     <t>As an alternative to the single extended BIFT, the information can be represented using a 
     primary BIFT along with several failure-specific backup BIFTs. A failure-specific backup BIFT is 
     associated with the unreachability of a particular BFR-NBR. A backup BIFT for the failure of 
     BFR-NBR N is simply referred to as a backup BIFT for N. This backup BIFT mirrors the structure 
     of the regular BIFT but includes entries for backup forwarding actions. Therefore, a BFR maintains 
     a primary BIFT, identical to the regular BIFT, and a separate backup BIFT for each of its BFR-NBRs.
</t>

     <t>Under normal, failure-free conditions, the BFR utilizes the primary BIFT to forward BIER packets. 
     Upon detecting that BFR-NBR N has become unreachable, the BFR, acting as the PLR, switches to 
     the backup BIFT for N to forward all BIER packets. Once the routing underlay has re-converged to 
     reflect the updated network topology, the primary BIFT is re-computed. The newly computed primary 
     BIFT is then reinstated for forwarding all BIER packets.
        </t>
<!--
     <t>
        Given a BIER network, the BFR builds the FRR-BIFT for X 
        in the same way as it builds a regular BIFT on the network
        without X (i.e., assuming X failed) except for 
        using the backup BFR-NBR of a BFER without X as a (primary) BFR-NBR
        and having forwarding actions for backup BFR-NBRs.
        It builds a BIRT containing the entries for all BFERs 
        (except for the BFR itself as BFER) in the network. 
        Each entry includes a BFER and the BFR-NBR of the BFER.
        If its neighbor N on the shortest path to a BFER does 
        not go through X, then N is the BFR-NBR of the BFER; 
        otherwise (i.e., the path to the BFER goes through X), 
        a backup BFR-NBR of the BFER without X is computed and
        used as the BFR-NBR of the BFER.
        The FRR-BIFT for X is derived from the BIRT in the way
        defined in <xref target="RFC8279"/>.</t>
-->
     <t>This concept can be illustrated using the example of the extended BIFT in
        <xref target="extended_bift_plr_redeundant"/>.
        <xref target="primary_bift_failure_free"/> 
        depicts B1's primary BIFT in this context. BFR B1 in  <xref target="networking_scenario"/> has 
        two neighbors: B6 and B2. Consequently, B1 maintains two backup BIFTs with link protection: one for 
        B6 and another for B2. Additionally, B1 also maintains two backup BIFTs with node protection.
        <xref target="b1s-frr-bift4-link2-b6"/> represents B1's backup BIFT for B6, which is utilized in response 
        to the unreachability of B6, functioning similarly to the extended BIFT shown in 
<xref target="extended_bift_plr_redeundant"/>.  


      <figure anchor="b1s-frr-bift4-link2-b6" 
 title="B1's backup BIFT for B6 for LFA-based BIER FRR with link protection.">
          <artwork align="center"><![CDATA[
+--------+---------+---------+-----------------+-----------------+
| BFR-id |  F-BM   | BFR-NBR |Forwarding Action|Comment: protects|
|        |         |         |                 |  failure of     |
+========+=========+=========+=================+=================+
|    2   | 1111110 |    B2   |   Plain         |                 |
+--------+---------+---------+-----------------+-----------------+
|    3   | 1111110 |    B2   |   Plain         |                 |
+--------+---------+---------+-----------------+-----------------+
|    4   | 1111110 |    B2   |   Plain         |  Link B1->B6    |
+--------+---------+---------+-----------------+-----------------+
|    5   | 1111110 |    B2   |   Plain         |  Link B1->B6    |
+--------+---------+---------+-----------------+-----------------+
|    6   | 1111110 |    B2   |   Plain         |  Link B1->B6    |
+--------+---------+---------+-----------------+-----------------+
|    7   | 1111110 |    B2   |   Plain         |  Link B1->B6    |
+--------+---------+---------+-----------------+-----------------+]]>
          </artwork>
      </figure>

Once B1, as the PLR, detects that B6 has become unreachable via the link to B6, it 
switches to the backup BIFT for B6 to forward all BIER packets. Since this representation 
aligns with the concept of a single primary and single backup BIFT, the occurrence of redundant 
packets for the same forwarding action is avoided.
     </t>

<!--
      <t>The BFR builds the FRR-BIFT for its BFR-NBR N from its normal BIRT 
         with consideration of N failure. It changes the next hop 
         with value BFR-NBR N to a backup next hop (BNH) to protect 
         against the failure, and then derives the 
         FRR-BIFT for N from the BIRT.
         The BNH is a x-LFA (or a tunnel to N's next hop). 
         The x-LFA can be the Loop-Free 
         Alternate (LFA) defined in <xref target="RFC5286"/>,  
         Remote LFA defined in <xref target="RFC7490"/> or TI-LFA
         in <xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa"/>.</t>

      <t>If the IGP topology is the same as the BIER network 
         domain topology, the x-LFA in the IP routing information base
         (RIB) computed for IP FRR is re-used as a BNH 
         in the FRR-BIRT; 
         otherwise (i.e., the IGP topology is different from 
         the BIER domain topology), the BFR computes
         a x-LFA as a BNH.</t>

      <t>To protect a transit node failure, BFR B1
         in <xref target="networking_scenario"/> has two FRR-BIFTs. 
         One is for its BFR-NBR B2, and the other is for B6.
         The FRR-BIFT for B2 is illustrated in
         <xref target="backup_bift_failure_specific_B2"/>.

       <figure anchor="backup_bift_failure_specific_B2" 
               title="B1's FRR-BIFT for B2">
           <artwork align="center"><![CDATA[
+===========+==========+============+==============+
|  BFR-id   |   F-BM   |  BFR-NBR   |   Action     |
|           |  /BF-BM  |  (NH/BNH)  |   (Notes)    |
+===========+==========+============+==============+
|    2      |  0000010 |     NULL   |              |
+===========+==========+============+==============+
|    3      |  0000100 |     B4     | TI-LFA/Exp   |
+===========+==========+============+==============+
|    4      |  1111000 |     B6     |              |
+===========+==========+============+==============+
|    5      |  1111000 |     B6     |              |
+===========+==========+============+==============+
|    6      |  1111000 |     B6     |              |
+===========+==========+============+==============+
|    7      |  1111000 |     B6     |              |
+===========+==========+============+==============+]]>
           </artwork>
       </figure>

   The 1st forwarding entry in the FRR-BIFT indicates that 
   there is no BFR-NBR (NH/BNH) or
   path to BFER B2 with BFR-id 2 when BFR B2 fails. 
</t>

<t>The 2nd forwarding entry in the FRR-BIFT indicates that 
   the BFR-NBR (BNH) on
   the path to BFER B3 with BFR-id 3 is BFR B4. 
   B4 is the TI-LFA  
   to protect against the failure of B2 and link from B1 to B2.</t>

<t>The 3rd forwarding entry in the FRR-BIFT indicates that 
   the BFR-NBR (NH) on
   the path to BFER B4 with BFR-id 4 is BFR B6.</t>

<t>The i-th (i = 4, 5, 6) forwarding entry in the FRR-BIFT indicates that 
   the BFR-NBR (NH) on
   the path to BFER Bj (j = i+1) with BFR-id j is BFR B6.</t>
-->
<!--
B1 copies its BIRT to the FRR-BIRT for B2.
+===========+==========+============+==============+
|  BFR-id   |   F-BM   |  BFR-NBR   |   Action     |
|           |  /BF-BM  |  (NH/BNH)  |   (Notes)    |
+===========+==========+============+==============+
|    2      |          |     B2     |              |
+===========+==========+============+==============+
|    3      |          |     B2     |              |
+===========+==========+============+==============+
|    4      |          |     B6     |              |
+===========+==========+============+==============+
|    5      |          |     B6     |              |
+===========+==========+============+==============+
|    6      |          |     B6     |              |
+===========+==========+============+==============+
|    7      |          |     B6     |              |
+===========+==========+============+==============+
B1 computes or gets x-LFA for BNH of BFR-NBR B2.
For BFR-id 2, x-LFA is NULL since B2 fails, no way to B2.
For BFR-id 3, x-LFA is TI-LFA B4.
B1 changes BFR-NBR B2 for BFR-id 2 and 3 to NULL and TI-LFA B4
respectively.
+===========+==========+============+==============+
|  BFR-id   |   F-BM   |  BFR-NBR   |   Action     |
|           |  /BF-BM  |  (NH/BNH)  |   (Notes)    |
+===========+==========+============+==============+
|    2      |          |     NULL   |              |
+===========+==========+============+==============+
|    3      |          |     B4     | TI-LFA/Exp   |
+===========+==========+============+==============+
|    4      |          |     B6     |              |
+===========+==========+============+==============+
|    5      |          |     B6     |              |
+===========+==========+============+==============+
|    6      |          |     B6     |              |
+===========+==========+============+==============+
|    7      |          |     B6     |              |
+===========+==========+============+==============+

B1 derives the FRR-BIFT for B2 from the FRR-BIRT.
-->

  </section> <!-- Primary and Failure-Specific Backup BIFTs -->
  </section> <!-- Representation of fw data -->



  <!-- Protection Levels -->
  <section anchor="Protection_Levels" 
           title="Protection Levels">
    <t>
   Both link protection and node protection may be supported. Link protection is designed to 
   safeguard against the failure of an adjacent link, whereas node protection addresses the 
   failure of a neighboring node and the associated path leading to that node. The relevance of 
   link or node protection depends on the specific service being supported. Additionally, both 
   protection levels can be combined with any of the backup strategies outlined in <xref target="Strategies"/>.
    </t>

    <section anchor="link_protection" 
             title="Link Protection">
      <t>
   In link protection, the backup path is designed to circumvent the failed link 
   (i.e., the failed primary path from the PLR to the primary BFR-NBR), while 
   still potentially including the primary BFR-NBR itself. Consequently, the backup 
   path remains operational even if the primary path fails. The primary limitation of link 
   protection is its inability to provide protection if the primary BFR-NBR itself becomes 
   inoperative. However, link protection also offers certain advantages. It typically results 
   in shorter backup paths compared to node protection. In the case of tunnel-based 
   BIER-FRR, link protection generates at most one redundant packet, whereas node 
   protection may result in multiple redundant packets. Additionally, for LFA-based 
   BIER-FRR, link protection is more effective in safeguarding a greater number of 
   BFERs using normal BIER-LFAs than node protection.
      </t>
    </section>

    <section anchor="node_protection" 
             title="Node Protection">

      <t> 
   In node protection, the backup path is designed to avoid both the failed node and the link 
   to that node (i.e., the failed primary path from the PLR to the primary BFR-NBR, including 
   the primary BFR-NBR). Consequently, the backup path must exclude both the primary path 
   and the primary BFR-NBR to remain operational in the event of their failure. If a BFER and 
   its primary BFR-NBR are the same, only link protection is feasible for that BFER. The primary 
   advantage of node protection is its enhanced protection quality compared to link protection. 
   However, node protection also has certain drawbacks. It typically results in longer backup 
   paths than link protection. In the context of tunnel-based BIER-FRR, node protection may 
   lead to the transmission of a greater number of redundant packets over a link than with link 
   protection. Furthermore, for LFA-based BIER-FRR, fewer BFERs may be protected using 
   normal BIER-LFAs, necessitating the use of more remote or topology-independent BIER-LFAs, 
   which are inherently more complex.
 
      </t>
    </section>

    <section anchor="protection_example" title="Example">
      <t>In the network depicted in  <xref target="networking_scenario" />, the primary path 
      from BFR B1 to BFER B5 is B1-B6-B5. Protecting BFER B5 from a BFR-NBR B6 node failure can only be provided 
      through the backup path B1-B2-B3-B4-B5. Link protection for BFER B5 is achieved via the 
      backup path B1-B2-B7-B6, and additionally through the backup path B1-B2-B3-B4-B5-B6. 
      The specific backup entries are determined by the selected protection level and backup strategy. 
      Example BIFTs illustrating link and node protection are provided in 
         <xref target="Strategies"/>. 

      </t>
    </section>
  </section>

  <!-- Strategies -->
  <section anchor="Strategies" 
           title="Backup Strategies">
    <t>Backup strategies determine the selection of backup forwarding entries, influencing both the 
    choice of the backup BFR-NBR and the backup action, and consequently, the backup path. The 
    following sections present tunnel-based BIER-FRR and LFA-based BIER-FRR as potential strategies.
    </t>

    <section anchor="Tunnel_Based" title="Tunnel-Based BIER-FRR">
      <t>The routing underlay may possess the capability to forward packets to their destinations even 
      in the presence of a failure, potentially due to FRR mechanisms within the routing underlay. In 
      such scenarios, while the primary BFR-NBR may no longer be reachable via the primary action (Plain), 
      it could still be accessible through a backup action (Tunnel).
          </t>

      <t>Tunnel-based BIER-FRR encapsulates BIER packets impacted by a failure within the routing 
      underlay, thereby leveraging the routing underlay's fast restoration capabilities. As soon as 
      connectivity in the routing underlay is reestablished, the affected BIER packets can be forwarded 
      to their intended destinations. The appropriate backup forwarding entries in a BIFT for BIER-FRR 
      are determined by the desired protection level.
      </t>

      <section title="Tunnel-Based BIER-FRR with Link Protection">
        <t>In the context of link protection, the backup BFR-NBRs are identical to the primary BFR-NBRs. If 
        a primary BFR-NBR is directly connected to the BFR acting as the Point of Local Repair (PLR), the 
        corresponding backup forwarding action is Tunnel. Consequently, BIER packets affected by a failure 
        are tunneled through the routing underlay to their BFR-NBR, rather than being directly sent as plain 
        BIER packets. If the primary BFR-NBR is not directly connected to the BFR as a PLR (i.e., the implicit 
        primary action is Tunnel), the corresponding backup action is also Tunnel. The backup F-BMs are 
        identical to the primary F-BMs, consistent with the computation of backup F-BMs described 
        in <xref target="f_bm_computation"/>.         

         <figure anchor="backup_bift_tunnel_based_link_protection" 
          title="B1's backup BIFT for tunnel-based BIER-FRR with link protection.">
             <artwork align="center"><![CDATA[
  +------+----------+--------+-----------+---+-----------------+
  |BFR-id|  BF-BM   |BBFR-NBR|   BFA     |BEA|Comment: protects|
  |      |          |        |           |   |  failure of     |
  +======+==========+========+===========+===+=================+
  |   2  | 0000110  |  B2    |  Tunnel   |   |  Link B1->B2    |
  +------+----------+--------+-----------+---+-----------------+
  |   3  | 0000110  |  B2    |  Tunnel   |   |  Link B1->B2    |
  +------+----------+--------+-----------+---+-----------------+
  |   4  | 1111000  |  B6    |  Tunnel   |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   5  | 1111000  |  B6    |  Tunnel   |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   6  | 1111000  |  B6    |  Tunnel   |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   7  | 1111000  |  B6    |  Tunnel   |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+]]>
             </artwork>
         </figure>
</t>

    <t><xref target="backup_bift_tunnel_based_link_protection"/> illustrates B1's backup 
    BIFT for tunnel-based BIER-FRR with link protection in the BIER network example depicted in 
       <xref target="networking_scenario"/>. The backup BFR-NBRs and backup F-BMs in this backup BIFT correspond to the primary 
       BFR-NBRs and primary F-BMs in the primary BIFT shown in  <xref target="primary_bift_failure_free"/>. However, the backup 
       actions in this backup BIFT are Tunnel, while the primary actions in the primary BIFT are Plain (which are not explicitly shown but implied).</t>

        <t>
           When B1, acting as the PLR, detects a failure of its link to B6, a BIER packet with the bitstring 0100000 
           destined for B6 is tunneled by B1 through the routing underlay towards B6. The specific path of the backup 
           tunnel depends on the routing underlay and could be B1-B2-B7-B6 or B1-B2-B3-B4-B5-B6.
        </t>

        <t>If a BIER packet is destined for {B2, B5, B7}, an encapsulated packet copy is first forwarded via link B1-B2 
        to backup BFR-NBR B6 using the backup action Tunnel to deliver packet copies to BFERs B5 and B7. 
        Subsequently, a non-encapsulated packet copy is forwarded via link B1-B2 to BFR-NBR B2 using the primary 
        action Plain to deliver a packet copy to BFER B2. Therefore, with tunnel-based BIER-FRR, a single redundant 
        packet copy may occur in the event of a failure because an encapsulated and a non-encapsulated packet copy 
        are forwarded over the same link. This redundancy occurs even though BIER packets affected by failures are 
        forwarded before those unaffected by failures.</t>

        <t>A BIER packet with the bitstring 1000000 destined for B7 is forwarded along the backup path B1-B2-B7-B6-B7, 
        as it is first delivered to the backup BFR-NBR B6. Consequently, the backup path may be unnecessarily long. This 
        phenomenon is similar to the facility backup method described in <xref target="RFC4090" /> which employs paths 
        analogous to those in tunnel-based BIER-FRR..
        </t>
      </section>

      <section title="Tunnel-Based BIER-FRR with Node Protection">

        <t>
   To determine the backup forwarding entries for node protection, a case-by-case 
   analysis of the BFER to be protected is required. If the BFER is the same as its 
   primary BFR-NBR, node protection is not feasible for that BFER. In such cases, link 
   protection is applied, meaning the backup BFR-NBR is set to the primary BFR-NBR. 
   If this level of protection is deemed insufficient, egress protection as described 
   in  <xref target="I-D.chen-bier-egress-protect"/> may be applied.If the BFER is different 
   from its primary BFR-NBR, the backup BFR-NBR is set to the primary BFR-NBR's primary 
   BFR-NBR for that BFER, making the backup BFR-NBR a next-next-hop BFR. In all scenarios, 
   the backup action is Tunnel. In the first case, the backup F-BM is set to all zeros with the bit for 
   the BFER to be protected enabled. In the second case, the backup F-BM is computed as 
   described in  <xref target="f_bm_computation"/>.       

        <figure anchor="backup_bift_tunnel_based_node_protection" 
         title=
    "B1's backup BIFT for tunnel-based BIER-FRR with node protection.">
            <artwork align="center"><![CDATA[
  +------+----------+--------+----------+---+-----------------+
  |BFR-id|  BF-BM   |BBFR-NBR|   BFA    |BEA|Comment: protects|
  |      |          |        |          |   |  failure of     |
  +======+==========+========+==========+===+=================+
  |   2  | 0000010  |   B2   |  Tunnel  |   |  Link B1->B2    |
  +------+----------+--------+----------+---+-----------------+
  |   3  | 0000100  |   B3   |  Tunnel  |   |  BFR-NBR B2     |
  +------+----------+--------+----------+---+-----------------+
  |   4  | 0011000  |   B5   |  Tunnel  |   |  BFR-NBR B6     |
  +------+----------+--------+----------+---+-----------------+
  |   5  | 0011000  |   B5   |  Tunnel  |   |  BFR-NBR B6     |
  +------+----------+--------+----------+---+-----------------+
  |   6  | 0100000  |   B6   |  Tunnel  |   |  Link B1->B6    |
  +------+----------+--------+----------+---+-----------------+
  |   7  | 1000000  |   B7   |  Tunnel  |   |  BFR-NBR B6     |
  +------+----------+--------+----------+---+-----------------+]]>
            </artwork>
        </figure>
</t>

     <t><xref target="backup_bift_tunnel_based_node_protection"/> illustrates B1's 
     backup BIFT for tunnel-based BIER-FRR with node protection in the BIER network example provided in 
        <xref target="networking_scenario"/>.

BFERs B2 and B6 are direct neighbors of B1. To protect them, only link protection is 
applied, as B1's primary BFR-NBR for these nodes is the nodes themselves. As described 
above, only the bit for B2 is set in the backup F-BM of B2, and similarly for B6. For BFER B5, 
the backup BFR-NBR is B5, as it is B1's next-next-hop BFR towards B5. Similarly, for BFER B7, 
the backup BFR-NBR is B7. When B1, acting as the PLR, detects the failure of its BFR-NBR B6, 
a BIER packet with bitstring 1010010 destined for {B2, B5, B7} is processed as follows: an 
encapsulated copy of the packet is sent via tunnel B1-B2-B3-B4-B5, another encapsulated 
copy is sent via tunnel B1-B2-B7, and a non-encapsulated copy is sent via link B1-B2. In this 
example, two redundant packets are sent over link B1-B2. Therefore, node protection may 
result in more redundant packet copies than link protection..</t>

     <t>Caveat: If the routing underlay does not support node protection, tunnel-based 
     BIER-FRR will similarly be unable to provide node protection. This limitation is illustrated 
     in the following example. In the network depicted in 
   <xref target="networking_scenario"/>, the underlay offers only link protection. If BFR-NBR 
   B6 fails and B1 must forward a packet to B5, according to the backup BIFT in 
   <xref target="backup_bift_tunnel_based_node_protection"/> the packet is tunneled towards B5. 
   The underlay may route the packet along the path B1-B2-B7-B6-B5 due to FRR with link protection. 
   However, since B6 is also unreachable from B7, the packet is returned to B2, resulting in a loop 
   between B2 and B7.
        </t>
      </section>

     <!-- <section title="Implementation Experience">
        <t>Tunnel-based BIER-FRR has been implemented in P4 for the 
           software-switch bmv2 <xref target="MeLi20b"/> and the 
           hardware switching ASIC Tofino <xref target="MeLi21"/>.
           Performance results have been provided.
        </t>
      </section>
      -->
    </section>







    <section anchor="LFA_Based" title="LFA-based BIER-FRR">
      <t>LFA-based BIER-FRR leverages alternate BFRs to deliver BIER packets to 
      BFERs for which the primary BFR-NBR is unreachable. This approach does not 
      rely on any fast restoration or protection mechanisms in the underlying routing infrastructure. 
      First, the prerequisites for LFA-based BIER-FRR are clarified, followed by the definition of 
      BIER-LFAs. Subsequently, link and node protection for LFA-based BIER-FRR are discussed 
      using a single backup BIFT.
</t>

      <section title="Relation of BIER-LFAs to IP-LFAs and Prerequisites">
        <t>A LFA for a specific destination is an alternate node to which a packet is sent if the primary next 
        hop for that destination is unreachable. This alternate node should be capable of forwarding the packet 
        without creating a forwarding loop. LFAs have been defined for IP networks in  <xref target="RFC5286"/>,
           <xref target="RFC7490"/> and 
           <xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa"/>, and such LFAs are referred to as IP-LFAs. 
           BIER-LFAs are similar to IP-LFAs, but a BIER-LFA node must be a BFR. If only a subset of the 
           nodes in the routing underlay are BFRs, some IP-LFAs in the routing underlay may not be usable 
           as BIER-LFAs. To compute BIER-LFAs, network topology and link cost information from the routing 
           underlay are required. This differs from tunnel-based BIER-FRR, where knowledge of the primary 
           BIFTs of a PLR and its BFR-NBRs is sufficient.
        </t>

        <t>LFA-based BIER-FRR may reuse IP-LFAs as BIER-LFAs under the following conditions: if an 
        IP-LFA node for the destination of a specific BFER is a BFR, it may be reused as the backup BFR-NBR 
        for that BFER, along with the backup action applied for that IP-LFA at the IP layer. A normal IP-LFA 
        corresponds to the backup action Plain, a remote IP-LFA to Tunnel, and a TI-IP-LFA to Explicit.
        </t>
<!--
       <t>If the IP-LFA for a BFER in the RIB of a BFR has the same type as 
          expected for the LFA-based BIER-FRR and 
             it is computed using the IGP topology 
             that is the same as the BIER network domain topology, 
          then it is used as the backup BFR-NBR for the BFER in 
          the LFA-based BIER-FRR;
          otherwise,  
          the BFR computes a x-LFA as a backup BFR-NBR 
          using the BIER network 
          domain topology.

          In other words, the BFR computes the x-LFA for the BFER 
          in any of the following cases:
          <list style="symbols">
            <t>the IGP topology for computing IP-LFAs is different from
               the BIER domain topology,</t>
            <t>no IP-LFA exists in its RIB, or</t>
            <t>the IP-LFA in its RIB is not the type of LFA as expected 
              (e.g., the IP-LFA in the RIB is a remote LFA,  
               but a TI-LFA is expected).</t> 
           </list>
         </t>
-->
      </section> <!-- Relation of BIER-LFAs to IP-LFAs and Prerequisites -->


      <section title="Definition of BIER-LFAs">

        <t>As with IP-LFAs, there are several types of BIER-LFAs:
          <list style="symbols">
            <t>A BFR is considered a normal BIER-LFA for a specific BFER if it is directly connected to the PLR and:
              <list style="numbers">
                <t>the BFER can be reached from it through the BIER domain.
<!--
                   and it meets Loop-Free Criterion in 
                   <xref target="RFC5286"/>
-->
                </t>

                <t>both the path from the PLR to the BFR and the path from the BFR to the 
                BFER are disjoint from the primary path from the PLR to the primary BFR-NBR. These paths:
                  <list style="symbols">
                    <t>may include the primary BFR-NBR for link protection.</t>
                    <t>must not include the primary BFR-NBR for node protection.</t>
                  </list>
                </t>
              </list>
            </t>
            <t>A BFR is considered a remote BIER-LFA for a specific BFER if it is not directly 
            connected to the PLR, can be reached via a tunnel from the PLR, and satisfies the 
            aforementioned conditions 1 and 2.
            </t>
            <t>A BFR is considered a TI-BIER-LFA for a specific BFER if it is not directly connected 
            to the PLR, cannot be reached via a tunnel from the PLR, but is reachable from the PLR 
            via an explicit path (e.g., with the assistance of a Segment Routing (SR) header), and 
            satisfies the aforementioned conditions 1 and 2.</t>

          </list>
        </t>

        <t> For some BFERs, one or more normal BIER-LFAs may be available at a specific PLR. 
        For other BFERs, only remote or TI-BIER-LFAs may be available. There may also be BFERs 
        for which only TI-BIER-LFAs are available.
        </t>

        <t>The backup actions for rerouting BIER packets depending on the type of BIER-LFA are:

          <list style="symbols">
            <t>For normal BIER-LFA: Plain</t>
            <t>For remote BIER-LFA: Tunnel</t>
            <t>For TI-BIER-LFA: Explicit</t>
          </list>
        </t>

<!--
        <t>Based on the backup BFR-NBRs, the backup F-BMs 
           are derived according to <xref target="f_bm_computation" />. </t>
-->
      </section>

      <section title="Protection Coverage of BIER-LFA Types" 
               anchor="bier_lfa_protection_coverage">

        <t>Protection coverage refers to the set of BFERs that can be protected with a desired 
        level of protection by a particular type of BIER-LFA. The BIER-LFA types exhibit the following characteristics:
          <list style="symbols">
            <t>Normal BIER-LFAs
              <list style="symbols">
                <t>The protection coverage is the least, as some or many BFERs may not be protected at the desired level or at all.</t>
                <t>Redundant packet copies are avoided.</t>
                <t>There is no encapsulation overhead.</t>
              </list>
            </t>
            <t>Remote BIER-LFAs
              <list style="symbols">
                <t>They enhance the protection coverage of normal BIER-LFAs.</t>
                <t>Redundant packet copies may occur on a link, similar to tunnel-based BIER-FRR.</t>
                <t>The encapsulation overhead is similar to that of tunnel-based BIER-FRR.</t>
              </list>
            </t>
            <t>TI-BIER-LFAs
              <list style="symbols">
                <t>They complement the protection coverage of normal and remote BIER-LFAs to achieve 100% coverage.</t>
                <t>Redundant packets may occur on a link, similar to tunnel-based BIER-FRR.</t>
                <t>The encapsulation overhead is similar or equivalent to that of tunnel-based BIER-FRR, depending on the 
                FRR mechanism employed in the routing underlay.</t>
              </list>
            </t>
          </list>
        </t>
      </section>

      <section title="Sets of Supported BIER-LFAs">
        <t>Normal BIER-LFAs are the simplest option, as they do not require tunneling or 
        explicit paths. Remote BIER-LFAs offer greater capabilities but introduce additional 
        header overhead and require more functionality from the PLR. TI-BIER-LFAs are the 
        most complex, necessitating the use of explicit paths. When implementing LFA-based 
        BIER-FRR, it is essential to specify the set of supported BIER-LFAs. The available 
        options are as follows:

           <list style="symbols">
             <t>Option 1: Only normal BIER-LFAs are supported.</t>
             <t>Option 2: Both normal and remote BIER-LFAs are supported.</t>
             <t>Option 3: All types of BIER-LFAs are supported.</t>
           </list>
         </t>
      </section> <!-- Sets of Supported BIER-LFAs -->


  
<!--
    <section title="LFA-based BIER-FRR using Single Backup BIFT"> 
      <t>The LFA-based BIER-FRR using single backup BIFT 
         has a single backup BIFT and primary BIFT in every BFR. 
         The primary BIFT is a regular BIFT. 
         The backup BIFT contains a backup forwarding entry for each BFER, 
         including BF-BM, BBFR-NBR, BFA and BEA. </t>
-->
      <section  anchor="lfa-based-1backup-bift-link-protect" 
                title="Link Protection">
       <t>
   In link protection, normal BIER-LFAs are prioritized over remote LFAs, and remote 
   BIER-LFAs are preferred over TI-BIER-LFAs. Depending on the set of supported 
   BIER-LFAs, it may not be possible to protect all BFERs.
       </t>

       <t><xref target="backup_bift_failure_specific"/>
   illustrates B1's backup BIFT for LFA-based BIER-FRR with link protection, using the network example provided in 
   <xref target="networking_scenario"/>.
       </t>

       <t>
   If the link between B1 and B6 fails, B1 cannot reach the BFERs B4, B5, B6, and B7 via their primary BFR-NBR. 
   Consequently, B1 forwards their traffic via the backup BFR-NBR B2, along with the traffic for B2 and B3, as B2 is 
   their primary BFR-NBR. In this scenario, the backup F-BM is set to 1111110. Similarly, if the link between B1 and 
   B2 fails, B1 routes all traffic to B6, with the backup F-BM also set to 1111110.
       </t>

       <t>
   B1 requires only normal BIER-LFAs to protect all BFERs. However, this situation can vary significantly for other BFRs. 
   <xref target="b7-backup_bift_lfa-based-link-protect"/> and 
   <xref target="b5-backup_bift_link-protect"/> present the backup BIFTs for B7 and B5, respectively. BFR B7 requires 
   one normal BIER-LFA, three remote BIER-LFAs, and two TI-BIER-LFAs to protect all BFERs. BFR B5 requires one 
   normal BIER-LFA, one remote BIER-LFA, and four TI-BIER-LFAs as backup BFR-NBRs. Thus, depending on the set 
   of supported BIER-LFAs, it may not be possible to protect all BFERs using BIER-FRR.
       </t>

       <t>
   Consider a scenario where B7 holds a BIER packet with destinations {B1, B4, B5, B6}. If the link between B7 and B6 fails, 
   the packet copy for B1 is sent to B2 using the forwarding action Plain, the packet copy for B4 is tunneled via B2 to B3, and 
   the packet copies for B5 and B6 are sent via explicit paths to B4 and B1, respectively. Since these packet copies have 
   different headers, all of them must be transmitted, resulting in three redundant copies.

       <figure anchor="b7-backup_bift_lfa-based-link-protect" 
               title="B7's backup BIFT with link protection.">
           <artwork align="center"><![CDATA[
  +------+----------+--------+-----------+---+-----------------+
  |BFR-id|  BF-BM   |BBFR-NBR|   BFA     |BEA|Comment: protects|
  |      |          |        |           |   |  failure of     |
  +======+==========+========+===========+===+=================+
  |   1  | 0000111  |   B2   |  Plain    |   |  Link B7->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   2  | 0000110  |   B1   |  Tunnel   |   |  Link B1->B2    |
  +------+----------+--------+-----------+---+-----------------+
  |   3  | 0000110  |   B1   |  Tunnel   |   |  Link B1->B2    |
  +------+----------+--------+-----------+---+-----------------+
  |   4  | 0001000  |   B3   |  Tunnel   |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   5  | 0010000  |   B4   |  Explicit |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   6  | 0100000  |   B1   |  Explicit |   |  Link B1->B6    |
  +------+----------+--------+-----------+---+-----------------+]]>
           </artwork>
       </figure>
       </t>

       <t>

       <figure anchor="b5-backup_bift_link-protect" 
               title="B5's backup BIFT with link protection.">
           <artwork align="center"><![CDATA[
  +------+----------+--------+-----------+---+-----------------+
  |BFR-id|  BF-BM   |BBFR-NBR|   BFA     |BEA|Comment: protects|
  |      |          |        |           |   |  failure of     |
  +======+==========+========+===========+===+=================+
  |   1  | 1100011  |   B3   |  Explicit |   |  Link B5->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   2  | 1100011  |   B3   |  Explicit |   |  Link B5->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   3  | 0000100  |   B4   |  Plain    |   |  Link B5->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   4  | 0001000  |   B3   |  Tunnel   |   |  Link B5->B4    |
  +------+----------+--------+-----------+---+-----------------+
  |   6  | 1100011  |   B3   |  Explicit |   |  Link B5->B6    |
  +------+----------+--------+-----------+---+-----------------+
  |   7  | 1100011  |   B3   |  Explicit |   |  Link B5->B6    |
  +------+----------+--------+-----------+---+-----------------+]]>
           </artwork>
       </figure>
       </t>
      </section> <!-- Link Protection -->

      <section title="Node Protection">
       <t>
   To determine the backup forwarding entries for node protection, it is necessary to conduct a case-by-case 
   analysis of the BFER to be protected. If the BFER is the same as its primary BFR-NBR, node protection is 
   not feasible for that BFER, and link protection must be applied instead. In all other cases, the BFER should 
   be protected by a node-protecting BIER-LFA. In this context, normal BIER-LFAs are prioritized over remote 
   BIER-LFAs, and remote BIER-LFAs are preferred over TI-BIER-LFAs. Depending on the set of supported 
   BIER-LFAs, it may not be possible to protect certain BFERs.
       </t>

       <t>
   <xref target="b1-backup_bift_node-protect"/>
   illustrates B1's backup BIFT for LFA-based BIER-FRR with node protection, using the network example provided in 
   <xref target="networking_scenario"/>.

       <figure anchor="b1-backup_bift_node-protect" 
               title="B1's backup BIFT with node protection.">
           <artwork align="center"><![CDATA[
  +------+----------+--------+-----------+---+-----------------+
  |BFR-id|  BF-BM   |BBFR-NBR|   BFA     |BEA|Comment: protects|
  |      |          |        |           |   |  failure of     |
  +======+==========+========+===========+===+=================+
  |   2  | 1111010  |   B6   |  Plain    |   |  BFR-NBR B2     |
  +------+----------+--------+-----------+---+-----------------+
  |   3  | 0000100  |   B4   |  Tunnel   |   |  BFR-NBR B2     |
  +------+----------+--------+-----------+---+-----------------+
  |   4  | 0001000  |   B3   |  Tunnel   |   |  BFR-NBR B6     |
  +------+----------+--------+-----------+---+-----------------+
  |   5  | 0010000  |   B4   |  Explicit |   |  BFR-NBR B6     |
  +------+----------+--------+-----------+---+-----------------+
  |   6  | 1100100  |   B2   |  Plain    |   |  BFR-NBR B6     |
  +------+----------+--------+-----------+---+-----------------+
  |   7  | 1100100  |   B2   |  Plain    |   |  BFR-NBR B6     |
  +------+----------+--------+-----------+---+-----------------+]]>
           </artwork>
       </figure>

   As B6 serves as the primary BFR-NBR for BFER B6, only link protection can be applied. 
   Consequently, B2 is utilized as a normal, link-protecting BIER-LFA to safeguard B6. 
   Similarly, as B2 is the primary BFR-NBR for BFER B2, B2 is protected with B6 as its 
   normal, link-protecting BIER-LFA. BFER B7 is protected against the failure of node B6 
   by using B2 as its normal, node-protecting BIER-LFA, as B2 has a shortest path to B7 that 
   does not traverse B6. The backup F-BMs for BFERs B6 and B7 are set to {B2, B6, B7}, as 
   traffic for these BFERs is routed via link B1-B2 with the forwarding action Plain when B6 is unreachable.
       </t>

       <t>
   BFER B4 cannot be reached via a normal LFA when BFR B6 fails. However, B3 serves as a remote, 
   node-protecting BIER-LFA for BFER B4, as B3 has a shortest path to B4, is reachable from B1 via a 
   shortest path, and the resulting backup path from B1 to B4 does not traverse B6. Similarly, B4 serves as 
   a remote LFA for BFER B3 if BFR B2 fails.
       </t>

       <t>
   BFER B5 is neither reachable through a normal BIER-LFA nor through a remote BIER-LFA when BFR B6 fails. 
   However, B4 acts as a node-protecting TI-LFA for BFER B5, as B4 has a shortest path to B5 that does not 
   traverse B6. Additionally, B4 is reachable through the explicit path B1-B2-B3-B4.
       </t>
      </section> <!-- Node Protection -->

      <section title="Optimization Potential to Reduce Redundant BIER Packets in Failure Cases"> 
        <t>Redundant packets can occur with LFA-based BIER-FRR when BIER packets are transmitted 
        over a specific link in different forms, including:

           <list style="symbols">
             <t>Plain BIER packets (either primary transmission or reroute to a normal BIER-LFA).</t>
             <t>BIER packets encapsulated for transmission to a specific BFR-NBR (either tunneled primary transmission 
             or reroute to a remote BIER-LFA).</t>
             <t>BIER packets routed with an encoded explicit path (reroute to a TI-LFA).</t>
           </list>

           When different remote LFAs are utilized, multiple redundant packets may be generated through remote LFAs. 
           A similar situation can arise with TI-LFAs. However, some redundant packets can be mitigated if remote LFAs 
           or TI-LFAs are selected such that they can protect multiple BFERs, thereby reducing the need for additional 
           remote LFAs or TI-LFAs. This approach, while potentially leading to longer backup paths, introduces a new 
           optimization objective for the selection of remote or TI-BIER-LFAs, which does not exist in IP-FRR. The relevance 
           of this optimization may vary depending on the specific use case.
        </t>

        <t>To illustrate this optimization potential, consider LFA-based BIER-FRR with link protection for B7, as described in its backup BIFT in
           <xref target="b7-backup_bift_lfa-based-link-protect"/>.
           As noted in <xref target="lfa-based-1backup-bift-link-protect"/>, 
           B7 needs to transmit four copies to forward a packet to {B1, B4, B5, B6}. If the more complex TI-BIER-LFA B4 is chosen to protect 
           BFER B4 instead of the remote BIER-LFA B3, only two redundant copies need to be transmitted.
        </t>
      </section> <!-- Optimization Potential to Reduce Redundant Packets -->

    <!-- </section> --> <!-- LFA-based BIER-FRR using Single Backup BIFT -->

<!--
    <section title="LFA-based BIER-FRR using Single BIFT"> 
      <t>In the LFA-based BIER-FRR using single BIFT,
         every BFR has a single BIFT for a level of protection.
         Its structure is the same as the one in 
         <xref target="bift"/>.

         For each BFER in the BIFT, the backup entry for it
         contains a BF-BM, BBFR-NBR, BFA and BEA. 
         The BBFR-NBR for the BFER is a BIER-LFA for the BFER
         to provide the level of protection. 
      </t>
-->

<!--
      <t>This section specifies mechanisms to the normal BIFT and 
         forwarding procedure for providing fast protection 
         for BIER packets against a transit node or link failure.
         After the extensions, 
         examples for node protection and link protection are given.</t>

      <section title="Extensions to BIFT and Forwarding Procedure"> 

      <t>The normal single BIFT is extended  
         based on LFA to provide fast protection against a transit node
         or link failure. 
         The BIER forwarding procedure defined in <xref target="RFC8279"/>
         needs to be enhanced accordingly.</t>

      <t>Every BFR has an extended BIFT. 
         The forwarding entry with transit node (say N) as its BFR-NBR 
         in the BIFT comprises a primary forwarding entry (or say sub-entry) 
         and a backup forwarding entry (or say sub-entry,
         or backup entry for short) and a flag BEA.
         The backup entry contains a BF-BM,
         BBFR-NBR, 
         BFA and BEA. 
         The BBFR-NBR is a BIER-LFA.        
       </t>

       <t>The backup F-BM (BF-BM) in a backup forwarding sub-entry is 
          computed in two steps as described in 
          <xref target="f_bm_computation"/>.</t>

       <t>In normal operations, all the BIER packets are forwarded 
          using the primary forwarding entries.
          When a BFR as a PLR detects the failure of its BFR-NBR N 
          or its link to the BFR-NBR N using 
          a failure detection mechanism such as BFD, it sets the flag
          in the forwarding entry with BFR-NBR N to 1.
          The BIER packets to be sent via N are forwarded using
          the backup forwarding entry for N.
          The BIER packets to be sent via the other BFR neighbors
          are forwarded using the primary forwarding entries for the
          neighbors.</t>

       <t>In a BFR, the BIER forwarding procedure is enhanced to check whether 
          the flag BEA in an entry of its BIFT is set to 1
          and forward a BIER packet using the primary or backup 
          forwarding sub-entry accordingly. 
-->
<!--
          When the BFR as a PLR sets the flag BA
          in the forwarding entry with BFR-NBR N to 1, the following 
          loop should be executed to avoid some redundant packets.
<figure>
  <artwork> <![CDATA[
    For each primary forwarding entry with BFR-NBR X in BIFT
        IF X == N {F-BM for X = BF-BM for N}.
]]></artwork>
</figure>
-->


<!--
       <t>The updated procedure is described in 
<xref target="proc4-updated-bift"/>. 
For simplicity, using the SI, sub-domain, and
BitStringLength in packets, as the "index" into the BIFT is 
not included in the procedure.

<figure anchor="proc4-updated-bift" 
        title="Updated Forwarding Procedure using Single BIFT">
  <artwork> <![CDATA[
  Packet = the packet received by BFR;
  FOR each BFER k (from the rightmost in Packet's BitString) {
      IF BFER k is the BFR itself {
          copies Packet, sends the copy to the multicast 
          flow overlay and clears bit k in Packet's BitString
      } else {
          finds the forwarding entry using BFER k
          IF (FPA == 1) { //FRR for BFR-NBR/transit N is Active
              Copies Packet, updates the copy's BitString by ANDing
              it with BF-BM, sends updated copy to BNH
              Update Packet's BitString by ANDing it with ~BF-BM
          } ELSE {
              Copies Packet, updates the copy's BitString by ANDing
              it with F-BM, sends updated copy to N
              Update Packet's BitString by ANDing it with ~F-BM
          }
      }
  }]]></artwork>
</figure>
          </t>
-->

      <!-- Extensions to BIFT and Forwarding Procedure --> 

<!--
      <section title="Link Protection"
               anchor="lfa-1bift-link-protect"> 
       <t>A BFR has a single BIFT for link protection.
          The BBFR-NBR for each BFER in the BIFT
          is a BIER-LFA for the BFER for link protection. 
          After having the BIER-LFA as BBFR-NBR for each BFER,
          the BF-BM for each BFER can be computed in the way
          described in <xref target="f_bm_computation"/>.
       </t>

       <t>The following presents the details in BFR B1 in 
          <xref target="networking_scenario"/>
          for building the BIFT for BIER-FRR link protection.</t>

       <t>At first, BFR B1 obtains 
          a BIER-LFA as BBFR-NBR for each BFER.
          B6 is normal BIER-LFA as BBFR-NBR for BFER B2 and B3.
          B2 is normal BIER-LFA as BBFR-NBR for BFER B4, B5, B6 and B7.
          
          <xref target="frr-bift0-b1-link"/> illustrates B1's  
          intermediate BIFT for link protection filled with 
          values for BBFR-NBRs and BFAs.

<figure anchor="frr-bift0-b1-link" 
        title="B1's intermediate BIFT for link protection.">
  <artwork align="center"> <![CDATA[
+======+=========+=======+==========+========+==========+===+
|BFR-id|   F-BM  |BFR-NBR|  BF-BM   |BBFR-NBR|   BFA    |BEA|
+======+=========+=======+==========+========+==========+===+
|   2  | 0000110 |  B2   |          |   B6   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   3  | 0000110 |  B2   |          |   B6   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   4  | 1111000 |  B6   |          |   B2   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   5  | 1111000 |  B6   |          |   B2   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   6  | 1111000 |  B6   |          |   B2   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   7  | 1111000 |  B6   |          |   B2   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
]]></artwork>
</figure>
       </t>

       <t>From the intermediate BIFT, 
          BFERs B2 and B3 have the same BFR-NBR B2 and BBFR-NBR B6,
          BFERs B4 to B7 have the same BFR-NBR B6 as the BBFR-NBR B6 
          for BFER B2. 

          According to <xref target="f_bm_computation"/>,
          the BF-BM for BFER B2 has the bits for B2 and B3 as well as
          the bits for B4 to B7, which is 1111110.

          Similarly, the BF-BM for each of BFERs B3 to B7 is computed,
          which is 1111110.
       </t>

       <t>With the BF-BMs, BFR B1 has the BIFT for link protection,
          which is illustrated in
          <xref target="frr-bift1-b1-link"/>.

<figure anchor="frr-bift1-b1-link" 
        title="B1's BIFT for BIER-FRR link protection.">
  <artwork align="center"> <![CDATA[
+======+=========+=======+==========+========+==========+===+
|BFR-id|   F-BM  |BFR-NBR|  BF-BM   |BBFR-NBR|   BFA    |BEA|
+======+=========+=======+==========+========+==========+===+
|   2  | 0000110 |  B2   | 1111110  |   B6   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   3  | 0000110 |  B2   | 1111110  |   B6   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   4  | 1111000 |  B6   | 1111110  |   B2   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   5  | 1111000 |  B6   | 1111110  |   B2   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   6  | 1111000 |  B6   | 1111110  |   B2   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
|   7  | 1111000 |  B6   | 1111110  |   B2   | Plain/LFA|   |
+======+=========+=======+==========+========+==========+===+
]]></artwork>
</figure>

   The 1st forwarding entry in the BIFT indicates that 
   the BF-BM is 1111110 and the BBFR-NBR on
   the path to BFER B2 with BFR-id 2 is BFR B6. 
   B6 is the normal BIER-LFA to protect against the
   failure of the link to B2.
</t>

<t>The 2nd forwarding entry in the BIFT indicates that 
   the BF-BM is 1111110 and the BBFR-NBR on
   the path to BFER B3 with BFR-id 3 is BFR B6. 
   B6 is the normal BIER-LFA to protect against the
   failure of the link to B2.
   </t>

<t>The 3rd forwarding entry in the BIFT indicates that 
   the BF-BM is 1111110 and the BBFR-NBR on 
   the path to BFER B4 with BFR-id 4 is BFR B2. 
   B2 is the normal BIER-LFA to protect against the
   failure of the link to B6.</t>

<t>The i-th (i = 4, 5, 6) forwarding entry in the BIFT indicates that 
   the BF-BM is 1111110 and the BBFR-NBR on 
   the path to BFER Bj (j = i+1) with BFR-id j is BFR B2. 
   B2 is the normal BIER-LFA to protect against the
   failure of the link to B6.</t>
-->

<!--
<t>The 6-th forwarding entry in the BIFT contains 
   the backup forwarding sub-entry, indicating that 
   the backup F-BM (BF-BM) is 1111110 and the BFR-NBR (BNH) on 
   the path to BFER B7 with BFR-id 7 is BFR B2. 
   B2 is the LFA to protect against the
   failure of the link to B6.</t>
-->
<!--
<t>When BFR B1 as a PLR detects the failure of its link to B2, 
   it sets the flag BEA in each of the forwarding entries with BFR-NBR 
   (NH) B2 to 1. The flag BEA in each of the first two forwarding entries 
   is set to 1. 
   BFR B1 forwards the BIER packets with BitString for BFERs 2 or 3 
   using the backup forwarding sub-entry in the forwarding entry
   for BFER 2 or 3.
   For the BIER packets with BitString for BFERs 4, 5, 6, or 7,
   B1 forwards them using the primary forwarding sub-entry 
   in the forwarding entry for BFER 4, 5, 6, or 7.</t>

<t>When BFR B1 as a PLR detects the failure of its link to B6, 
   it sets the flag BA in each of the forwarding entries with BFR-NBR 
   (NH) B6 to 1. The flag BA in each of the last four forwarding entries 
   is set to 1. 
   BFR B1 forwards the BIER packets with BitString for BFERs 4, 5, 6, or 7 
   using the backup forwarding sub-entry in the forwarding entry
   for BFER 4, 5, 6, or 7.
   For the BIER packets with BitString for BFERs 2 or 3,
   B1 forwards them using the primary forwarding sub-entry 
   in the forwarding entry for BFER 2 or 3.</t>
-->
      <!--  </section> --> <!-- Link Protection -->

 <!-- 
      <section title="Node Protection" 
               anchor="lfa-1bift-node-protect"> 
       <t>A BFR has a single BIFT for node protection.
          The BBFR-NBR for each BFER in the BIFT
          is a BIER-LFA for the BFER for node protection. 
          After having the BIER-LFA as BBFR-NBR for each BFER,
          the BF-BM for each BFER can be computed in the way
          described in <xref target="f_bm_computation"/>.
       </t>

       <t>The following presents the details in BFR B1 in 
          <xref target="networking_scenario"/>
          for building the BIFT for BIER-FRR node protection.</t>

       <t>At first, BFR B1 obtains 
          a BIER-LFA as BBFR-NBR for each BFER.
          B6 is normal BIER-LFA as BBFR-NBR for BFER B2 
          (note: link protection is used for B2).
          B4 is TI-BIER-LFA as BBFR-NBR for BFER B3.
          B3 is remote BIER-LFA as BBFR-NBR for BFER B4.
          B4 is TI-BIER-LFA as BBFR-NBR for BFER B5.
          B2 is normal BIER-LFA as BBFR-NBR for BFERs B6 and B7.
         
          <xref target="frr-bift0"/> illustrates B1's  
          intermediate BIFT for node protection filled with 
          values for BBFR-NBRs and BFAs.
<figure anchor="frr-bift0" 
        title="B1's intermediate BIFT for node protection">
  <artwork align="center"> <![CDATA[
+======+=========+=======+=========+========+================+===+
|BFR-id|  F-BM   |BFR-NBR|  BF-BM  |BBFR-NBR|      BFA       |BEA|
+======+=========+=======+=========+========+================+===+
|   2  | 0000110 |  B2   |         |   B6   | Plain/LFA      |   |
+======+=========+=======+=========+========+================+===+
|   3  | 0000110 |  B2   |         |   B4   | Explicit/TI-LFA|   |
+======+=========+=======+=========+========+================+===+
|   4  | 1111000 |  B6   |         |   B3   | Tunnel/R-LFA   |   |
+======+=========+=======+=========+========+================+===+
|   5  | 1111000 |  B6   |         |   B4   | Explicit/TI-LFA|   |
+======+=========+=======+=========+========+================+===+
|   6  | 1111000 |  B6   |         |   B2   | Plain/LFA      |   |
+======+=========+=======+=========+========+================+===+
|   7  | 1111000 |  B6   |         |   B2   | Plain/LFA      |   |
+======+=========+=======+=========+========+================+===+
]]></artwork>
</figure>
      </t>

       <t>From the intermediate BIFT, 
          BFER B2 shares its BBFR-NBR B6 with BFR-NBR B6 for BFERs B4 to B7. 

          According to <xref target="f_bm_computation"/>,
          the BF-BM for BFER B2 has the bit for B2 as well as
          the bits for B4 to B7, which is 1111010.

          BFER B3 does not share its BBFR-NBR B4 with any BFR-NBR.
          the BF-BM for BFER B3 is the bit for B3 itself, which is 
          0000100.
          Similarly, the BF-BM for BFER B4 is 0001000;
          the BF-BM for BFER B5 is 0010000.

          BFER B6 shares its BBFR-NBR B2 with BFR-NBR B2 for BFERs B2 and B3.
          It also shares both its BFR-NBR B6 and BBFR-NBR B2 with those of BFER B7.
          The BF-BM for BFER B6 has the bits for B2 and B3 as well as
          the bits for B6 and B7, which is 1100110.
          Similarly, the BF-BM for BFER B7 is 1100110.

       </t>


       <t>With the BF-BMs, BFR B1 has the BIFT for node protection,
          which is illustrated in
          <xref target="frr-bift1-b1"/>.

<figure anchor="frr-bift1-b1" 
        title="B1's BIFT for BIER-FRR Node Protection">
  <artwork align="center"> <![CDATA[
+======+=========+=======+=========+========+================+===+
|BFR-id|  F-BM   |BFR-NBR|  BF-BM  |BBFR-NBR|      BFA       |BEA|
+======+=========+=======+=========+========+================+===+
|   2  | 0000110 |  B2   | 1111010 |   B6   | Plain/LFA      |   |
+======+=========+=======+=========+========+================+===+
|   3  | 0000110 |  B2   | 0000100 |   B4   | Explicit/TI-LFA|   |
+======+=========+=======+=========+========+================+===+
|   4  | 1111000 |  B6   | 0001000 |   B3   | Tunnel/R-LFA   |   |
+======+=========+=======+=========+========+================+===+
|   5  | 1111000 |  B6   | 0010000 |   B4   | Explicit/TI-LFA|   |
+======+=========+=======+=========+========+================+===+
|   6  | 1111000 |  B6   | 1100110 |   B2   | Plain/LFA      |   |
+======+=========+=======+=========+========+================+===+
|   7  | 1111000 |  B6   | 1100110 |   B2   | Plain/LFA      |   |
+======+=========+=======+=========+========+================+===+
]]></artwork>
</figure>
</t>
-->

<!--
<t>
   The 1st forwarding entry in the BIFT indicates that 
   the BF-BM is 1111010 and the BBFR-NBR is BFR B6.
   B6 is a normal BIER-LFA to protect against the failure of link to B2.
   (note: link protection is used for BFER B2). 
</t>

<t>The 2nd forwarding entry in the BIFT indicates that 
   the BF-BM is 0000100 and 
   the BBFR-NBR on
   the path to BFER B3 with BFR-id 3 is BFR B4. 
   B4 is a TI-BIER-LFA  
   to protect against the failure of B2.</t>

<t>The 3rd forwarding entry in the BIFT indicates that 
   the  BF-BM is 0001000 and  
   the BBFR-NBR on
   the path to BFER B4 with BFR-id 4 is BFR B3. 
   B3 is a remote BIER-LFA  
   to protect against the failure of B6.</t>

<t>The 4-th forwarding entry in the BIFT indicates that 
   the BF-BM is 0010000 and  
   the BBFR-NBR on
   the path to BFER B5 with BFR-id 5 is BFR B4. 
   B4 is a TI-BIER-LFA to protect against the
   failure of B6.</t>

<t>The 5-th forwarding entry in the BIFT indicates that 
   the BF-BM is 1100110 and the BBFR-NBR 
   B6 is a normal BIER-LFA to protect against the failure of link to B6.
   (note: link protection is used for BFER B6). 
</t>

<t>The 6-th forwarding entry in the BIFT indicates that 
   the BF-BM is 1100110 and 
   the BBFR-NBR on
   the path to BFER B7 with BFR-id 7 is BFR B2. 
   B2 is the normal BIER-LFA to protect against the
   failure of B6.
</t>
-->
<!--
<t>When BFR B1 as a PLR detects the failure of BFR B2, 
   it sets the flag BA in each of the forwarding entries with BFR-NBR 
   (NH) B2 to 1. The flag BA in each of the first two forwarding entries 
   is set to 1. 
   BFR B1 forwards the BIER packets with BitString for BFERs 2 or 3 
   using the backup forwarding sub-entry in the forwarding entry
   for BFER 2 or 3.
   For the BIER packets with BitString for BFERs 4, 5, 6, or 7,
   B1 forwards them using the primary forwarding sub-entry 
   in the forwarding entry for BFER 4, 5, 6, or 7.</t>

<t>When BFR B1 as a PLR detects the failure of BFR B6, 
   it sets the flag BA in each of the forwarding entries with BFR-NBR 
   (NH) B6 to 1. The flag BA in each of the last four forwarding entries 
   is set to 1. 
   BFR B1 forwards the BIER packets with BitString for BFERs 4, 5, 6, or 7 
   using the backup forwarding sub-entry in the forwarding entry
   for BFER 4, 5, 6, or 7.
   For the BIER packets with BitString for BFERs 2 or 3,
   B1 forwards them using the primary forwarding sub-entry 
   in the forwarding entry for BFER 2 or 3.</t>
-->
     <!-- </section> --> <!-- Node Protection -->

    <!-- </section> --> <!-- LFA-based BIER-FRR using Single BIFT -->

    </section>

  </section>

<!-- Comparison -->
  <section anchor="Comparison" title="Comparison">
    <t>This section first addresses the differences between IP-LFAs for IP-FRR and BIER-LFAs for 
    BIER-FRR. It then examines the advantages and disadvantages of tunnel-based and LFA-based BIER-FRR.
    </t>

    <section title="Comparison of LFA-Based Protection for IP-FRR and BIER-FRR">
      <t>LFAs were initially proposed for IP networks. They are straightforward in that they do not require any tunneling 
      overhead. However, certain destinations cannot be protected against specific link failures, and even more 
      destinations may be unprotected against certain node failures. To improve coverage, remote LFAs (R-LFAs) 
      were introduced, which tunnel affected traffic to another node from which the traffic can reach the destination 
      through normal forwarding. Despite this, there may still be destinations that remain unprotected against link or 
      node failures. To address this, topology-independent LFAs (TI-LFAs) were developed, wherein affected traffic is 
      tunneled via an explicit path (preferably using segment routing headers) to another node from which the traffic can 
      reach its destination through standard IP forwarding. With TI-LFAs, all destinations can be protected against any 
      failures as long as connectivity exists.
      </t>

      <t>LFA-based BIER-FRR adopts the principles of LFAs but differs from IP-FRR in that the LFA target node, i.e., 
      the node to which traffic is diverted, must be a BFR. If an IP-LFA target is a BFR, it can be utilized as a BIER-LFA; 
      otherwise, it cannot serve as a BIER-LFA. Consequently, if only a subset of nodes in the underlay are BFRs, the 
      BIER-LFAs will differ substantially from IP-LFAs. Furthermore, this makes it more challenging to identify normal 
      LFAs that do not require tunneling. As a result, LFA-based BIER-FRR is likely to require more remote LFAs and 
      TI-LFAs than IP-FRR under such conditions.
      </t>
    </section>

    <section title="Advantages and Disadvantages of Tunnel-Based BIER-FRR">
      <section title="Advantages">
        <t>
          <list style="symbols">
            <t>The computation of backup forwarding entries is straightforward, requiring only the primary BIFTs of a PLR 
            and its BFR-NBRs. No routing information from the routing underlay is necessary.
            </t>
            <t>The forwarding action "Explicit" is not required. However, depending on the underlay, explicit forwarding may 
            still be utilized to achieve FRR in the underlay.</t>

          </list>
        </t>
      </section>

      <section title="Disadvantages">
        <t>
          <list style="symbols">
            <t>It relies on the presence of a FRR mechanism in the underlay.</t>
            <t>It is constrained by the protection level provided by the underlay. For instance, if the underlay 
            supports only link protection, tunnel-based BIER-FRR cannot offer node protection.</t>
            <t>Redundant packet copies may occur in tunnel-based BIER-FRR.
            </t>
            <t>In the case of node protection, backup paths may be unnecessarily extended.</t>
            <t>A tunneling header is required for any rerouting, resulting in additional header overhead.</t>
          </list>
        </t>
      </section>
    </section>

    <section title="Advantages and Disadvantages of LFA-Based BIER-FRR">
      <section title="Advantages">
        <t>
          <list style="symbols">
            <t>It does not depend on any fast protection mechanisms in the underlay.</t>

            <t>It can provide superior protection at the BIER layer compared to the IP layer, 
            particularly if LFA-based BIER-FRR utilizes BIER-LFAs with a higher protection 
            level than those used in LFA-based IP-FRR. For example, the underlay may only 
            offer FRR with link protection, while BIER-FRR can provide node protection for BIER traffic.
               </t>
            <t>It avoids header overhead for normal BIER-LFAs.</t>
<!--
            <t>LFA-based BIER-FRR may have  
               less redundant packet copies without 
               any prioritization of backup forwarding entries than 
               tunnel-based BIER-FRR.</t>
-->
          </list>
        </t>
      </section>

      <section title="Disadvantages">
        <t>
          <list style="symbols">
            <t>The computation of backup forwarding entries requires routing information from the underlay.</t>

            <t>The computation of backup forwarding entries is more complex when some nodes in the underlay are not BFRs.</t>

            <t>The "Tunnel" forwarding action is required to protect certain BFERs, which adds header overhead.</t>

            <t>The "Explicit" forwarding action is necessary to achieve full protection coverage in some topologies; without it, only 
            partial protection coverage is possible. This requires support for explicit paths, such as segment routing.</t>

            <t>More remote and TI-LFAs are needed compared to IP-FRR if some nodes in the routing underlay are not BFRs.</t>
            <t>Redundant packet copies may occur in LFA-based BIER-FRR, though this is less frequent than with tunnel-based BIER-FRR.</t>
          </list>
        </t>
      </section>
    </section>
  </section>

  <section anchor="Security" title="Security Considerations">
     <t>
         This specification does not introduce additional security concerns beyond those already discussed in 
         the BIER architecture <xref target="RFC8279"/> along with the IP FRR <xref target="RFC5286"/> and 
         LFA <xref target="RFC7490"/> specifications.</t>
  </section>
  <section anchor="IANA" title="IANA Considerations">
   <t>No requirements for IANA.</t>
  </section>




 </middle>
 <back>
  <references title="Normative References">
   <?rfc include="reference.RFC.2119"?>
   <?rfc include="reference.RFC.5286"?>

   <?rfc include="reference.RFC.8174"?>
   <?rfc include="reference.RFC.8279"?>
   <?rfc include="reference.RFC.7490"?>

  </references>
  <references title="Informative References">
   <?rfc include="reference.RFC.4090"?>
   <?rfc include="reference.I-D.chen-bier-egress-protect"?>

   <?rfc include="reference.I-D.ietf-rtgwg-segment-routing-ti-lfa"?>
   <reference anchor="BrAl17">
      <front>
      <title>Performance Comparison of Resilience Mechanisms for Stateless Multicast Using BIER</title>
      <author initials="W." surname="Braun" fullname="W. Braun"></author>
      <author initials="M." surname="Albert" fullname="M. Albert"></author>
      <author initials="T." surname="Eckert" fullname="T. Eckert"></author>
      <author initials="M." surname="Menth" fullname="M. Menth"></author>
      <date year="2017" month="May"/>
      </front>
    </reference>
<!--
    <reference anchor="MeLi20a">
       <front>
       <title>Comparison of Fast-Reroute Mechanisms for BIER-Based IP Multicast</title>
       <author initials="D." surname="Merling" fullname="D. Merling"></author>
       <author initials="S." surname="Lindner" fullname="S. Lindner"></author>
       <author initials="M." surname="Menth" fullname="M. Menth"></author>
       <date year="2020" month="June"/>
       </front>
     </reference>
-->
     <!--
     <reference anchor="MeLi20b">
        <front>
        <title>P4-Based Implementation of BIER and BIER-FRR for Scalable and Resilient Multicast</title>
        <author initials="D." surname="Merling" fullname="D. Merling"></author>
        <author initials="S." surname="Lindner" fullname="S. Lindner"></author>
        <author initials="M." surname="Menth" fullname="M. Menth"></author>
        <date year="2020" month="November"/>
        </front>
      </reference>
      <reference anchor="MeLi21">
         <front>
         <title>Hardware-based Evaluation of Scalable and Resilient Multicast with BIER in P4</title>
         <author initials="D." surname="Merling" fullname="D. Merling"></author>
         <author initials="S." surname="Lindner" fullname="S. Lindner"></author>
         <author initials="M." surname="Menth" fullname="M. Menth"></author>
         <date year="2020" month="March"/>
         </front>
       </reference>
       -->
  </references>

<!-- Appendix -->
    <section title="Specific Backup Strategy Examples">
      <t>This appendix demonstrates the computations of some 
         specific backup strategy options in details.</t>

    <section title="LFA-based BIER-FRR using Single BIFT"> 
      <t>In the LFA-based BIER-FRR using single BIFT,
         every BFR has a single BIFT for a level of protection.
         Its structure is the same as the one in 
         <xref target="bift"/>.
      </t>

       <t>The following presents the details in BFR B1 in 
          <xref target="networking_scenario"/>
          for building the BIFT for BIER-FRR link protection.</t>

       <t>At first, BFR B1 obtains 
          a BIER-LFA as BBFR-NBR for each BFER.
          B6 is normal BIER-LFA as BBFR-NBR for BFER B2 and B3.
          B2 is normal BIER-LFA as BBFR-NBR for BFER B4, B5, B6 and B7.
          
          <xref target="frr-bift0-b1-link"/> illustrates B1's  
          intermediate BIFT for link protection filled with 
          values for BBFR-NBRs and BFAs.

<figure anchor="frr-bift0-b1-link" 
        title="B1's intermediate BIFT for link protection.">
  <artwork align="center"> <![CDATA[
+------+---------+-------+----------+--------+----------+---+
|BFR-id|   F-BM  |BFR-NBR|  BF-BM   |BBFR-NBR|   BFA    |BEA|
+======+=========+=======+==========+========+==========+===+
|   2  | 0000110 |  B2   |          |   B6   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   3  | 0000110 |  B2   |          |   B6   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   4  | 1111000 |  B6   |          |   B2   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   5  | 1111000 |  B6   |          |   B2   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   6  | 1111000 |  B6   |          |   B2   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   7  | 1111000 |  B6   |          |   B2   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+]]></artwork>
</figure>
       </t>

       <t>From the intermediate BIFT, 
          BFERs B2 and B3 have the same BFR-NBR B2 and BBFR-NBR B6,
          BFERs B4 to B7 have the same BFR-NBR B6 as the BBFR-NBR B6 
          for BFER B2. 

          According to <xref target="f_bm_computation"/>,
          the BF-BM for BFER B2 has the bits for B2 and B3 as well as
          the bits for B4 to B7, which is 1111110. 
          The BF-BM for BFER B3 is also 1111110.

          Similarly, the BF-BM for each of BFERs B3 to B7 is computed,
          which is 1111110.
       </t>

       <t>With the BF-BMs, BFR B1 has the BIFT for link protection,
          which is illustrated in
          <xref target="frr-bift1-b1-link"/>.

<figure anchor="frr-bift1-b1-link" 
        title="B1's BIFT for BIER-FRR link protection.">
  <artwork align="center"> <![CDATA[
+------+---------+-------+----------+--------+----------+---+
|BFR-id|   F-BM  |BFR-NBR|  BF-BM   |BBFR-NBR|   BFA    |BEA|
+======+=========+=======+==========+========+==========+===+
|   2  | 0000110 |  B2   | 1111110  |   B6   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   3  | 0000110 |  B2   | 1111110  |   B6   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   4  | 1111000 |  B6   | 1111110  |   B2   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   5  | 1111000 |  B6   | 1111110  |   B2   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   6  | 1111000 |  B6   | 1111110  |   B2   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+
|   7  | 1111000 |  B6   | 1111110  |   B2   | Plain    |   |
+------+---------+-------+----------+--------+----------+---+]]></artwork>
</figure>
</t>

   </section>  <!-- LFA-based BIER-FRR using Single BIFT --> 


    <section title="LFA-based BIER-FRR using Multiple Backup BIFTs"> 

      <t>For the LFA-based BIER-FRR using multiple backup BIFTs,
         in addition to a primary BIFT, a BFR has a backup BIFT 
         for each of its BFR-NBRs with a level of protection.

         The backup BIFT for BFR-NBR N with link protection 
         (or simply called the backup BIFT for link to N)
         assumes that the link to N failed. 
         The BFR uses it to protect against the failure of its link to N.
         The backup BIFT for N with node protection 
         (or simply called the backup BIFT for N)
         assumes that node N failed. 
         The BFR uses it to protect against the failure of N.

         Once the BFR as a PLR detects the failure of its link to N, 
         it uses the backup BIFT for link to N to forward 
         all BIER packets.

         When the BFR as a PLR detects the failure of its BFR-NBR N,
         it uses the backup BIFT for N to forward 
         all BIER packets.
      </t>

      <t>Even though a BFR has multiple backup BIFTs, 
         the LFA-based BIER-FRR using multiple backup BIFTs is scalable. 
         Both the size of a backup BIFT and 
         the number of backup BIFTs on the BFR are small. 
         Assume a BIER network has 1000 BFRs and 100 BFERs, and
         each BFR has 10 BFR-NBRs on average. 
         The size of a backup BIFT is 100 forwarding entries.
         The number of backup BIFTs on the BFR is 20 on average.
         The total size of all backup BIFTs is 100*20 = 2000 
         forwarding entries.</t>
<!--
      <t>For each BFR-NBR N of a BFR, 
         the BFR has a FRR-BIFT for link to N.
         
         The BFR builds the FRR-BIFT for link to N from its normal BIRT 
         with consideration of the failure of the link. 
         It changes the BFR-NBR N for a BFER in the BIRT 
         to a backup BFR-NBR for the BFER to protect 
         against the failure of the link to N, 
         where the backup BFR-NBR for the BFER is a BIER-LFA for the BFER.
         And then it derives the 
         FRR-BIFT for link to N from the BIRT in the same way as
         it derives its regular BIFT from 
         its BIRT defined in <xref target="RFC8279"/>.
         </t>
-->
        <t>The following presents the details in BFR B1 
           in <xref target="networking_scenario"/> for
           building the backup BIFT for link to B2 to support 
           BIER-FRR link protection.</t>

      <t>To support link protection, 
         BFR B1 in <xref target="networking_scenario"/>
         has two backup BIFTs: 
         one for link to B2 and 
         the other for link to B6.
         The backup BIFT for link to B2 is illustrated in
         <xref target="frr-bift4-link2b2"/>.

<figure anchor="frr-bift4-link2b2" 
        title="B1's backup BIFT for link to B2.">
  <artwork align="center"> <![CDATA[
+--------+---------+---------+-----------------+-----------------+
| BFR-id |   F-BM  | BFR-NBR |Forwarding Action|Comment: protects|
|        |         |         |                 |  failure of     |
+========+=========+=========+=================+=================+
|   2    | 1111110 |    B6   |   Plain         |  Link B1->B2    |
+--------+---------+---------+-----------------+-----------------+
|   3    | 1111110 |    B6   |   Plain         |  Link B1->B2    |
+--------+---------+---------+-----------------+-----------------+
|   4    | 1111110 |    B6   |   Plain         |                 |
+--------+---------+---------+-----------------+-----------------+
|   5    | 1111110 |    B6   |   Plain         |                 |
+--------+---------+---------+-----------------+-----------------+
|   6    | 1111110 |    B6   |   Plain         |                 |
+--------+---------+---------+-----------------+-----------------+
|   7    | 1111110 |    B6   |   Plain         |                 |
+--------+---------+---------+-----------------+-----------------+
]]></artwork>
</figure>
</t>
<!--
<t>
   The 1st forwarding entry in the FRR-BIFT indicates that 
   the BFR-NBR on
   the path to BFER B2 with BFR-id 2 is BFR B6. 
   B6 is the BIER-LFA for BFER B2 

   to protect against the failure of the link to B2.
</t>

<t>The 2nd forwarding entry in the FRR-BIFT indicates that 
   the BFR-NBR on
   the path to BFER B3 with BFR-id 3 is BFR B6.
   B6 is the BIER-LFA for BFER B3
   to protect against the failure of the link to B2.
</t>

<t>The 3rd forwarding entry in the FRR-BIFT indicates that 
   the BFR-NBR on
   the path to BFER B4 with BFR-id 4 is BFR B6. 
</t>

<t>The i-th (i = 4, 5, 6) forwarding entry in the FRR-BIFT indicates that 
   the BFR-NBR on
   the path to BFER Bj (j = i+1) with BFR-id j is BFR B6. 
</t>
-->

<t>BFR B1 builds the backup BIFT for link to B2 in two steps. 
   In the first step, it builds the backup BIRT for link to B2 
   through copying its regular BIRT
   to the backup BIRT and then changing   
   BFR-NBR B2
   in the backup BIRT to a backup BFR-NBR to protect against the
   failure of the link to B2.
   The backup BIRT for link to B2 built by B1 is illustrated in 
         <xref target="frr-birt4-link2-b2"/>.

<figure anchor="frr-birt4-link2-b2" 
        title="B1's backup BIRT for link to B2.">
  <artwork align="center"> <![CDATA[
+------+-------------+---------+-----------------+-----------------+
|BFR-id|BFER's Prefix| BFR-NBR |Forwarding Action|Comment: protects|
|      |             |         |                 |  failure of     |
+======+=============+=========+=================+=================+
|  2   |     B2      |    B6   |   Plain         |  Link B1->B2    |
+------+-------------+---------+-----------------+-----------------+
|  3   |     B3      |    B6   |   Plain         |  Link B1->B2    |
+------+-------------+---------+-----------------+-----------------+
|  4   |     B4      |    B6   |   Plain         |                 |
+------+-------------+---------+-----------------+-----------------+
|  5   |     B5      |    B6   |   Plain         |                 |
+------+-------------+---------+-----------------+-----------------+
|  6   |     B6      |    B6   |   Plain         |                 |
+------+-------------+---------+-----------------+-----------------+
|  7   |     B7      |    B6   |   Plain         |                 |
+------+-------------+---------+-----------------+-----------------+]]></artwork>
</figure>

    The BFR-NBR in each of the first two routing entries 
    with BFR-NBR B2 originally from the BIRT is changed to 
    its corresponding backup BFR-NBR.
    The BFR-NBR B2 in the first entry is changed
    to backup BFR-NBR BIER-LFA B6.

    The BFR-NBR B2 in the second entry is changed
    to backup BFR-NBR BIER-LFA B6.</t>

<t>In the second step, BFR B1 derives the backup BIFT for link to B2 from 
   the backup BIRT for link to B2 in the same way 
   as it derives its regular BIFT from 
   its BIRT defined in <xref target="RFC8279"/>.
   The result of the backup BIFT for link to B2 is the one 
   shown in <xref target="frr-bift4-link2b2"/>.</t>

<t>When BFR B1 as a PLR detects the failure of its link to B2, 
   it forwards all the BIER packets using the FRR-BIFT for link to B2.
   There is no redundant packet.

   For example, for a BIER packet with destinations B2 and B6 
   (i.e., bitstring 0100010), BFR B1 sends a single packet copy 
   on the link to B6 using the backup BIFT for link to B2 after 
   detecting the failure of its link to B2. 
   It will not send any copy of the
   packet to B6 again since the bitstring in the packet will be all
   cleaned by the F-BM 1111110 after sending the packet to B6 via 
   its link to B6. 

   Similarly, 
   for a BIER packet with destinations B2, B5 and B7 (i.e., bitstring
   1010010), BFR B1 sends a single packet copy on its link to B6 using
   the backup BIFT for link to B2 after detecting the failure of its link
   to B2. 
</t>
    </section> <!-- LFA-based BIER-FRR using Multiple Backup BIFTs -->

    </section>

    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
       <t>The authors would like to thank Daniel Merling, Jeffrey Zhang,
          Tony Przygienda and Shaofu Peng
          for their comments to this work. A special thank you to Gunter van de Velde for his extensive
          editing to help bring this document to publication.</t>
    </section>

    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors</name>

      <t><figure align="left">
          <artwork><![CDATA[Yisong Liu
China Mobile
Email: liuyisong@chinamobile.com

Yanhe Fan
Casa Systems
United States of America
Email: yfan@casa-systems.com

Lei Liu
Fujitsu
United States of America
Email: liulei.kddi@gmail.com

Xufeng Liu
Alef Edge
United States of America
Email: xufeng.liu.ietf@gmail.com
     
Xuesong Geng  
China
Email: gengxuesong@huawei.com]]>
</artwork> 
</figure>
</t>
    </section>


 </back>
</rfc>
