<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.8 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-bier-frr-14" category="info" submissionType="IETF" tocDepth="4" tocInclude="true">
  <front>
    <title abbrev="BIER-FRR">A Framework for Fast Reroute with Bit Index Explicit Replication (BIER-FRR)</title>

    <author initials="H." surname="Chen" fullname="Huaimo Chen">
      <organization>Futurewei</organization>
      <address>
        <email>hchen.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="M." surname="McBride" fullname="Mike McBride">
      <organization>Futurewei</organization>
      <address>
        <email>michael.mcbride@futurewei.com</email>
      </address>
    </author>
    <author initials="S." surname="Lindner" fullname="Steffen Lindner">
      <organization>University of Tuebingen</organization>
      <address>
        <email>steffen.lindner@uni-tuebingen.de</email>
      </address>
    </author>
    <author initials="M." surname="Menth" fullname="Michael Menth">
      <organization>University of Tuebingen</organization>
      <address>
        <email>menth@uni-tuebingen.de</email>
      </address>
    </author>
    <author initials="T." surname="Eckert" fullname="Toerless Eckert">
      <organization>Futurewei</organization>
      <address>
        <email>tte@cs.fau.de</email>
      </address>
    </author>

    <date year="2026"/>

    
    
    

    <abstract>


<?line 92?>

<t>This document provides a framework for the development of Fast Reroute (FRR)
mechanisms for Bit Index Explicit Replication forwarding (BIER-FRR). BIER-FRR
can provide protection against link or BFR failure by invoking locally
pre-determined repair paths that can react in the same time-scales as
(unicast) FRR for MPLS or IP networks - "sub 50msec", and without the creation
of additional per-path or per-flow state coordinated across multiple routers/LSR.</t>

<t>BIER-FRR can be implemed locally within a router/LSR with minimal interoperability
requirements against other router/LSR. It can therefore easily be introduced
incrementally or selectively where needed. BIER-FRR implementing nodes only
need to understand the routing topology of the network for calculation of
repair paths and know what type of unicast encapsulation can be used to send ("tunnel")
BIER packets to remote BFR.</t>

<t>This document proposes and discusses different options for BIER forwardng (BIFT) extensions
to support BIER-FRR. These are exemplary and non-normative. This document does not
specify any standards or experiments but aims to support such efforts.</t>



    </abstract>



  </front>

  <middle>


<?line 112?>

<section anchor="terminology"><name>Terminology</name>

<t>This document uses the following definitions:</t>

<t>BIER: Bit Index Explicit Replication</t>

<t>BIER-FRR: Bit Index Explicit Replication 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>
<section anchor="overview"><name>Overview</name>

<t>BIER-FRR describes how IP FRR style sub-50 msec protection can be done for BIER.
The BIER-FRR mechanisms described in this document adhere to a
primary/backup path model, also known as 1:1 protection where traffic
is forwarded either over a primary path or over a backup path.</t>

<t>It is in contrast to a 1+1 protection model, where traffic is
duplicated across both primary and backup paths. That 1+1 principle has
been described by Multicast-only Fast Reroute (MoFRR) <xref target="RFC7431"/> and was explored for BIER in <xref target="BrAl17"/>.</t>

<t>This memo is informational because it is a technology primer explaining the
benefits of and mechanisms for Fast ReRoute (FRR) with Bit Inexed Explicit Replication (BIER)
stateless multicast forwarding. This document is not a standards track document because</t>

<t>o  Most if not all mechanisms possible can be implemented solely on single routers supporting
   BIER without the same or "interoperable" new mechanism to be supported by other
   routers supporting BIER.</t>

<t>o  At this point in time, it is unclear which of the advanced mechanisms presented are most
   feasible for implementation adoption in different type of routers supporting BIER,
   because the feasibility of implemeting them depend on the specifiec abilities of
   the routers forwarding plane.</t>

<section anchor="benefits"><name>Benefits</name>

<t>BIER is a novel method that allows to simplify and scale the deployments of
multicast services significantly over widely deployed technologies like
<xref target="PIM-SM"/> for IP networks including SRv6 networks or <xref target="mLDP"/> for MPLS or SR-MPLS networks.
The key novelty of BIER is that it is stateless whereas the prior mechanisms are stateful.</t>

<t>BIER-FRR allows to achieve fundamentally the same so-called "sub 50msec" recovery from link or
node failure that <xref target="IP-FRR"/> achieves the same networks for unicast traffic. Stateful
multicast mechanisms including <xref target="PIM-SM"/> and <xref target="mLDP"/> can not support FRR directly.
Instead, they must be combined with prior mechanisms to achieve link-protection (such as
<xref target="RSVP-TE"/> with <xref target="RFC4090"/> or explicit paths with SR). In summary, link-protection
with these pre-existing mechanisms is more complex and less efficient, and node-protection
is mostly considered infeasible  because of the involved complexity and excess traffic
it causes.</t>

<t>BIER-FRR likely allows for the most efficient and simple multicast FRR because it
fundamentally operates like unicast, except that a BIER packet does not indicate only
one destination but a list of multiple packets, allowing for each router to perform
unicast like forwarding plus whenever necessary replication of the packet to any
outgoing interface through which one or more of these destinations need to be reached.</t>

<t>The following sections detail these summaries.</t>

<section anchor="bier-versus-ip-multicast"><name>BIER versus IP multicast</name>

<t>BIER <xref target="RFC8279"/> is a novel method for so-called "stateless" forwarding and replication
of traffic, especially IP multicast, across networks such as Service Provider
network. BIER is intended to replace prior, so-called "stateful" methods of
IP multicast, such as the predominantly deployed <xref target="PIM-SM"/> in these networks.</t>

<t>In IP (unicast), variations in user traffic across such a Service Provider network
do only impact capacity utilization of the network (links and nodes), but not the
control-plane activity and forwarding plane state scalability: IGP and BGP
routing protocol operations and scalability and derived forwarding plane scalability
and change performance. Only changes in the network topology through failures, recovery
and network expansion cause the need for high-performance control-plane activity
and/or increased scale requirements. This makes IP unicast Service Provider network
designs arguably very easily scalable to arbitrary levels of throughput, a core
requirement for successful Service Provider network deployments.</t>

<t>In stateful IP multicast, this is not the case. Every individual new IP multicast
application, with new senders and/or receivers can create new control-plane
state (from e.g.: PIM-SM) hop-by-hop across such a Service Provider network. Every
failure or recovery of links or nodes in the network require control-plane and
forwarding-plane re-convergence that needs to be able to scale not with the
total size of the network (unicast routing table), but with the total number
of IP multicast applications. Denial of Service attacks in IP multicast are
equally not limited to attempts of overloading network bandwidth, but can more
easily attempt to overload this control-plane and forwarding-plane state through
the creation of new IP multicast application state. Because this does not even
need for the attackers to have significant bandwidth available, this attack
is a lot easier to achieve.</t>

<t>BIER resolves these issues by eliminating the per-IP-multicast application
state across Service Provider networks by utilizing fundamentally very much
the same packet forwarding paradigm as IP (unicast). The packet simply
contains a list of destinations in it's packet header (encoded very efficiently
as a bitstring), and on every hop the packet is replicated and forwarded to all the next-hop
routers towards one or more of those destinations. No IP-multicast group state is
required for this forwarding.</t>

</section>
<section anchor="frr-overview"><name>FRR for BIER versus IP/MPLS unicast and multicast</name>

<t>In IP-FRR, which is also applicable to FRR for SR-MPLS (and hence MPLS networks),
unicast packets are forwarded by every router/LSR (Label Switched Router) based</t>

<t>In IP (IPv4 and IPv6), packets are forwarded hop-by-hop in routers based on the
destination address of the packet. for each destination (prefix) the forwarding
entry indicates a next-hop which may be an outgoing interface or an outgoing
intercace with a particular next-hop-neighbor if the outgoing interface is a multi-access
subnet (like ethernet with multicast routers connected to it).</t>

<t>IP-FRR amends the per-packet forwarding with a check whether the outgoing interface or
the next-hop-neighbor are failed. If so, then the packet is instead forwarded
to a so-called FRR adjacency, which is primarily a different interface/next-hop-neighbor,
but can also involve an additional 'steering' header, such as from SR-MPLS or
<xref target="SRH"/>. These FRR adjacencies are pre-calculated by the routing control plane.</t>

<t>Note too, that these IP-FRR mechanisms are not limited to IP networks including SRv6
networks, but they are equally applicable to SR-MPLS networks.</t>

<t>In BIER-FRR, exactly the same principles of IP-FRR can be used, except that
when a BIER packet is processed by the forwarding plane, a forwarding decision needs
to be taken not only once (as in unicast), but once for every bit (destination)
in the bitstring. For each bit, an interface/next-hop-neighbor is determined and
a copy of the packet is sent to it. Unless such a copy was already made for a prior examined
bit in the packets bitstring, hence avoiding more than one copy of the packet to each
interface/next-hop-neighbor. Each packet will also receive a modified version of the
bitstring which indicates the subset of bits in the received packets bitstring
which are reachable across this same interface/next-hop-neighbor.</t>

<t>Beside being able to apply all the same mechanisms to BIER-FRR as available in
IP-FRR, BIER-FRR specifically maintains the benefit of the most efficient hop-by-hop
replication, even when a packet has to be put onto a BIER-FRR adjacency.</t>

<figure title="Example 1" anchor="example1"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="272" viewBox="0 0 272 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 144,64 L 144,80" fill="none" stroke="black"/>
<path d="M 144,112 L 144,128" fill="none" stroke="black"/>
<path d="M 96,32 L 120,32" fill="none" stroke="black"/>
<path d="M 168,32 L 184,32" fill="none" stroke="black"/>
<path d="M 144,64 L 184,64" fill="none" stroke="black"/>
<path d="M 224,64 L 240,64" fill="none" stroke="black"/>
<path d="M 32,96 L 48,96" fill="none" stroke="black"/>
<path d="M 88,96 L 120,96" fill="none" stroke="black"/>
<path d="M 160,96 L 184,96" fill="none" stroke="black"/>
<path d="M 224,96 L 240,96" fill="none" stroke="black"/>
<path d="M 144,128 L 184,128" fill="none" stroke="black"/>
<path d="M 224,128 L 240,128" fill="none" stroke="black"/>
<g class="text">
<text x="72" y="36">R10</text>
<text x="144" y="36">R11</text>
<text x="208" y="36">R12</text>
<text x="72" y="52">|</text>
<text x="200" y="52">|</text>
<text x="68" y="68">R9</text>
<text x="204" y="68">R3</text>
<text x="260" y="68">R6</text>
<text x="72" y="84">|</text>
<text x="200" y="84">|</text>
<text x="12" y="100">R0</text>
<text x="68" y="100">R1</text>
<text x="140" y="100">R2</text>
<text x="204" y="100">R4</text>
<text x="260" y="100">R7</text>
<text x="108" y="116">L1</text>
<text x="200" y="116">|</text>
<text x="204" y="132">R5</text>
<text x="260" y="132">R8</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
        R10 ---- R11 --- R12
         |               |
        R9        .----- R3 --- R6
         |        |      |
 R0 --- R1 ----- R2 ---- R4 --- R7
             L1   |      |
                  '----- R5 --- R8
]]></artwork></artset></figure>

<t>pre-existing unicast LFA algorithms for LFA from R1 to R6 in case of R2 failure
would for example calculate that it is sufficient to encapsulate a packet up to
R10 but towards R8, that encapsulation endpoint would need to be R11 because
R10 would send back packets to R8 to R9 because that is its shorted path
(before reconvernce).</t>

<t>Consider some multicast packets from R0 would need to be received by a subset of (R6,R7,R8).
They would be forwarded from R0 to R1, by R1 to R2, and from R2 to R3, R4, R5 to then
reach R6, R7, R8. Assume one multicast group, G1 would only need to go to R6.
R2 would then have multicast forwarding state G1 -&gt; (R3) to copy the packet only to R3.
Another group G2 would need to go to R6, R7, R8. R2 would then have G2 -&gt; (R3, R4, R5)
meaning it would replicate packets to G1 to R3, R4 and R5.</t>

<t>Assumme R2 fails. FRR in R1 would recognize this as a failure of the link to R2
and be configured to assume this indicates failure of R2 and hence pre-established
R2 node-protection FRR would kich in. Instead of sending a packet to R2, R1 it would
send the packet onto the FRR packup path. With 
existing stateful multicast, FRR in R1 would have needed to pre-calculate and install
three unicast backup path ("tunnels"). R1-...-&gt;R3, R1-...-&gt;R4 and R1-...-&gt;R5. R1 would
then have to send three copies of each multicast packet, one into each backup path.
If this was a packet for G1, then two of these copies would be in wain and be discarded
by R4 and R5.</t>

<t>If a stateful multicast FRR solution would want to avoid such unnecessary excess traffic,
it would need to install per group FRR state - a separate state for G1 and G2. In real
networks there are not just 2 groups but thousands (#G). In the picture, R1 only has one
outgoing interface to which to replicate. In a real network, it would have on average
N outgoing interfaces/next-hops and this type of traffic optimized FRR for stateful
multicast would create #G*N additional states on each hop.  In addition, new protocol
mechanisms to signal all this information would need to be developed, because today,
R1 would not know which group would need to go to which subset of R3,R4,R5. Such
protocol mechanisms where never developed and hence this type of stateful FRR for
"node protection" (in this case for the failure of R2) is just theoretical.</t>

<t>With BIER-FRR, the solution becomes extremely simple for this example. The BIER-FRR control
plane in R1 can calculate that the FRR adjacency for the case of R2 failing for all
three possible destinations R6, R7, R8 can be R11.
When R1 recognizes failure of (link to) R2, it would send the BIER packet with
exactly the same bits encapsulated towards R11 (via R9, R10) and there normal BIER forwarding proceeds.
According to the subset of bits for R6, R7, R8 set in the bitstring, R3,R4,R5 would make according
copies. Like in FRR for unicast, it does not matter to BIER that the packet did
arrive from R10 as opposed to R2, it is only revelant what destinations it has
(in its bitstring).</t>

<t>R2 could not simply send the packt to R9, because it is not aware of R2 having failed,
so its routing table would send packet packets for R6,R7,R8 towards R1 because that 
is the shortest path from R9 to R6,R7,R8. Likewise, R10 too would still send back
packets towards R8 to R1. Only for R11 are paths not across the failed R2 the
shortest path towards R6,R7,R8.</t>

<t>Note that the forwarding described for BIER-FRR here is LFA-based BIER-FRR in the
terminology introduced later in this document.</t>

</section>
</section>
<section anchor="introduction"><name>Introduction</name>

<t>The protection level offered by BIER-FRR can be either link protection
or node protection. This is like in IP FRR and both of them can co-exist.</t>

<t>Link protection is limited to safeguarding against link failures and
is simpler to implement but will not be effective if a BFR neighbor fails.</t>

<t>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>As in IP FRR, one would typically use node protection and apply link-protection
only when the next-hop node is the actual destination (BFER), so that only
link-protection makes sense.</t>

<t>The followin introductory text explains the two fundamental approaches
to BIER-FRR, one being tunnel-based BIER-FRR, and the other being
LFA-based BIER-FRR.</t>

<section anchor="tunnel-based-bier-frr"><name>Tunnel-based BIER-FRR</name>

<t>In this approach, a BIER forwarding entry to a BFR-NBR is replaced by
an (IP)-FRR protected adjacency which encapsulates the BIER packet
into a unicast packet towards that BFR-NBR. This is exactly what
classicial (non IP) FRR in MPLS was and is doing with RSVP-TE backup
tunnels. Hence the name tunnel-based.</t>

<t>For example, assuming the topology of <xref target="example1"/> and R1 as the BFR where
this form of FRR is to be installed. Usually a BIER forwarding entry
towards R2 is simply an L2 adjacency for BIER packets. Instead, that L2 adjacency
towards R2 is set to be a unicast encapsulation (IPv4, IPv6 or SR-MPLS) with
a unicast IPv4/IPv6 destination of R2. In the case of SR-MPLS, the
actual encapsulation will have an MPLS SID for the IPv4 and/or IPv6
address of R2.</t>

<t>Absent a failure of link L1, this change means simply an "unnecessary"
encapsulation of BIER packets from R1 to R2 and decapsulation there.</t>

<t>If instead, the link L1 fails, the BIER packet on R1 will get
encapsulated into the unicast packet, and once it is to be forwarded as
unicast, the unicast forwarding will determine that the link L1 has failed
and will hence forward the packet on the pre-calculated unicast FRR
adjacency towards R2. In the <xref target="example1"/> topology this means that
so-called TI-LFA (Topology Independent LFA) has to be used which can
calculate that packets towards R2 (in case of L1 link failures) need
to be encapsulated with a destination address of R11 - because 
sending the FRR packet only towards R9 or R10 would have it be
returned towards R1. In other topologies, simple (non TI) LFA may
suffice. In those cases, the FRR adjacency would simply be to
send the unicast packet to another next-hop without additional
encapsulation.</t>

<section anchor="limitations"><name>Limitations</name>

<t>Tunnel-based BIER-FRR is only applicable to link-protection but not
node-protection. This is because Tunnel-based BIER-FRR is based on
only having to replace BIER (L2) adjacencies with already existing FRR
protected unicast adjacencies. Tunnel-based BIER-FRR is not
applicable to node-protection because a failure of the next-hop
means that some other router in the network would need to replace
the replications of  BIER packet that this failed router could have
done, and there is no unicast FRR function that would do this.</t>

<t>The traffic efficiency of Tunnel-based BIER-FRR is typically lower
than that of LFA-based BIER-FRR because the traffic needs to be 
tunneled towards the BIER-NH and from there back as a regular
BIER packet. In the topology of <xref target="example1"/> a Tunnel-based BIER-FRR
packet from R1 to R6 would go R1-R9-R10-R11-R11-R12-R3-R2(decap)-R3-R6,
whereas as described in before, LFA-based would have it simply go
R1-R9-R10-R11-R11-R12-R3-R6 (not via R2).</t>

<t>Because Tunnel-based BIER-FRR requires FRR protected adjacencies to
a next-hop, unicast FRR needs to be configured to not only provide
node-protection adjacencies but also link-protection adjacencies
to all direct neighbors that are also BIER neighbors. This should
be standard unicast FRR deployment though when node-protection is
used.</t>

</section>
<section anchor="benefits-1"><name>Benefits</name>

<t>Tunnel-based BIER-FRR is least demanding to the BIER forwarding plane and
should be most easy to implement on any BFR already supporting unicast LFA.
No changes to the BIER forwarding tables (BIFT) are required other than
replacing the BFR-NBR entries.</t>

<t>For both unicast and BIER, Tunnel-based FRR is logically something
that can happen at the link-layer, not impacting the forwarding table,
and hence not requiring to scale with the size of the forwarding table.
Instead of sending a packet to a neighbor in a connected subnet, FRR
protection adds a check whether the interface to the subnet is up and/or
the neighbor is alive, and if not, then packet is instead redirected
to another interface (or neighbor on the same interface) with an
additional encapsulation.</t>

<t>The interoperability requirement for Tunnel-based is solely that the 
tailends of pre-calculated unicast FRR adjacencies are also BFR and will
accept to forward unicast FRR encapsulated BIER packets as BIER again
after decapsulation.</t>

<t>When the total amount of multicast/BIER traffic is insignificant compared
to the overall bandwidth in the network, the traffic inefficiencies of
Tunnel-based BIER-FRR may be irrelevant, but the inability to provide
node-protection may be insufficient.</t>

<t>Tunnel-based BIER-FRR does not necessarily have to be built from (IP)-LFA
based unicast adjacencies. It can equally be built from RSVP-TE tunnels
with FRR protection (or any other unicast FRR protected tunnels), which
may be attractive if those already exist in the network.</t>

</section>
</section>
<section anchor="lfa-based-bier-frr"><name>LFA-based BIER-FRR</name>

<t>In LFA-based BIER-FRR as in (unicast) IP FRR, the goal is to directly
get packets in the failure situation as directly as possible to
the ultimate destinations insted of back to the next-hop router
as in Tunnel-Mode.</t>

<t>The mechanisms are exactly the same as in unicast IP FRR, specifically
that it requires to establish for every destination in the unicast
or BIER forwarding table (BIFT) new "FRR protected" adjacencies", and
hence it requires additional forwarding resources in the order of
forwarding table entries. These can often be optimized, but it does
cost overall more forwarding plane resources than Tunnel-based BIER-FRR.</t>

<t>BIER-FRR will often be able to re-use pre-existing (unicast) IP FRR
adjcancies in the BIER forwarding table (BIFT), but there are some
optimizations and differences to observe. These are described here.</t>

<section anchor="principles-of-unicast-lfa"><name>Principles of (unicast) LFA</name>

<t>The principles of unicast LFA are to determine a path from the node
determining an adjacent link or node failure towards some desting
assuming that the intermediate hops on this alternative path still
have the routing tables in which there is no failed link or node.
The problem with this principle is that nodes along the best
alternative path would not send packets along the intended path
but back to where they come from because without a failure, that
could be the best path for them.</t>

<t>Using the example of <xref target="example2"/>, and examining the case
where R1 tries to calculate unicast link-protection FRR for the failure
of link L1. It calculates for each of the destinations of interest,
R6, R7 and R8 the shortest path. Each of these path goes along</t>

<figure title="Example 2" anchor="example2"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="296" viewBox="0 0 296 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 112,32 L 112,40" fill="none" stroke="black"/>
<path d="M 184,64 L 200,64" fill="none" stroke="black"/>
<path d="M 160,128 L 208,128" fill="none" stroke="black"/>
<path d="M 248,128 L 264,128" fill="none" stroke="black"/>
<path d="M 64,160 L 120,160" fill="none" stroke="black"/>
<path d="M 160,160 L 208,160" fill="none" stroke="black"/>
<path d="M 248,160 L 264,160" fill="none" stroke="black"/>
<path d="M 160,192 L 208,192" fill="none" stroke="black"/>
<path d="M 248,192 L 264,192" fill="none" stroke="black"/>
<path d="M 144,176 L 152,192" fill="none" stroke="black"/>
<path d="M 144,144 L 152,128" fill="none" stroke="black"/>
<g class="text">
<text x="96" y="36">(q6</text>
<text x="128" y="36">q7)</text>
<text x="188" y="36">(q8,q7,q6)</text>
<text x="56" y="52">(p)</text>
<text x="104" y="52">(p)</text>
<text x="160" y="52">(p)</text>
<text x="48" y="68">R11</text>
<text x="76" y="68">--</text>
<text x="104" y="68">R12</text>
<text x="132" y="68">--</text>
<text x="160" y="68">R13</text>
<text x="224" y="68">R14</text>
<text x="48" y="84">|</text>
<text x="224" y="84">|</text>
<text x="60" y="100">R10(p)</text>
<text x="232" y="100">R15</text>
<text x="48" y="116">|</text>
<text x="224" y="116">|</text>
<text x="56" y="132">R9(p)</text>
<text x="228" y="132">R3</text>
<text x="284" y="132">R6</text>
<text x="48" y="148">|</text>
<text x="224" y="148">|</text>
<text x="16" y="164">R0-</text>
<text x="44" y="164">R1</text>
<text x="140" y="164">R2</text>
<text x="228" y="164">R4</text>
<text x="284" y="164">R7</text>
<text x="84" y="180">L1</text>
<text x="224" y="180">|</text>
<text x="228" y="196">R5</text>
<text x="284" y="196">R8</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
              (q6,q7) (q8,q7,q6)
         (p)   (p)    (p)
        R11 -- R12 -- R13 --- R14 
         |                     |
        R10(p)                 R15 
         |                     |
        R9(p)         /------- R3 --- R6
         |           /         |
    R0- R1 -------- R2 ------- R4 --- R7
             L1      \         |
                      \------- R5 --- R8
]]></artwork></artset></figure>

<t>LFA characterizes routers along an FRR path by whether they
are part of the so-called P-space and/or Q-space <xref target="RFC7490"/>.</t>

<t>The p)re-converge space are all routers that can be reached
from the router of interest (R1) in the pre-convergence routing
table without going through the failed link (or node). For
example from R1 under failure of L1 or R2, the routers
R9, R10, R11, R12 and R13 are in p-space. R14 is not in p-space
anymore because assuming all links have equal cost, the
path from R9 to R14 is ECMP through either R1 and the
failed link/node or R10. And R1 can not know which route
R9 is using. So packets from R1 to R14 via R9 might be
returned by R9. And R15 is most easily not in p-space anymore,
because R9 would be guaranteed to send packets from R1 towards
R15 back to R1.</t>

<t>q-space is the reverse p-space (as q is typographically a reverse p),
indicating whether a router can reach the ultimate destination
without going through the failed link/node in the pre-converged
routing tables.</t>

<t>R13 is in the q-space for R8, whereas
R12 is not. It has ECMP paths via R13 and R11, and the
path via R11 would go via the failed link/node (L1/R2).
However, R12 is in q-space for R6 and R7 though.</t>

<t>The FRR logic is now simply that if packets can not be sent
directly to an alternative next-hop without encapsulation,
then they need to be encapsulated and sent to a router that
is both in p-space and q-space for the final destination.
Because R9 is not in q-space for any of the destinations of
interest in BIER, directly sending packets to R9 does not
work - whether link failure of L1 is assumed, or node failure of R2.</t>

<t>Instead, R1 would create for R6 an FRR adjacency encapsulating
the packet with an appropriate unicast encapsulation destined
to R12 or R13 and make R9 the next-hop for this encapsulated packet.
Likewise for R7. For R8, it would need to use R13 as the encapsulation
destination.  Most likely R1 would pick R12 for R6 and R7 because the
path with encapsulation is typically choosen to be as short
as possible but with most often insignificant differences.</t>

</section>
<section anchor="optimization"><name>Adjustments for BIER-FRR</name>

<t>If the same logic as for unicast is choosen for BIER-FRR, it does make a significant
difference whether R12 or R13 are picked as FRR for R6,R7 or if
R13 is picked. For BIER, the same FRR adjacency "encapsualte towards R13"
would mean that a BIER packet destined to R6 and R8 could be sent once
across that FRR adjcency. If instead R6,R7 had the "encapsulate towards R12"
FRR adjacency, and R8 "encapsulate towards R13", then BIER would need
to send two copies of that BIER packet to R6,R8: once encapsulated for
R6 towards R12 and once encapsulated for R8 towards R13. In this case,
if L1 or R2 are failling, R1 would need to send two copies of the
same packet instead of one if R13 was choosen as the pq-router for
R6, R7 and R8.</t>

<t>So, while the principle of unicast FRR holds true, BIER makes it
more beneficial to choose longer encapsulated paths to minimize
unnecessary replications. On the other hand (not shown by example
topology), longer encapsulation paths may also result in longer
paths from the point of decapsulation, and there may be a more
complex weighting of multiple copies across the same encapsulated
path versus such longer paths after the decapsulation.</t>

</section>
<section anchor="topology-independent-frr"><name>Topology Independent FRR</name>

<t>A simple encapsulation towards a router in pq-space
may not suffice. This is the same for BIER-FRR as it is for unicast FRR.</t>

<figure title="Example 3" anchor="example3"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="264" viewBox="0 0 264 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 64,64 L 64,96" fill="none" stroke="black"/>
<path d="M 152,80 L 176,80" fill="none" stroke="black"/>
<path d="M 216,80 L 232,80" fill="none" stroke="black"/>
<path d="M 80,112 L 112,112" fill="none" stroke="black"/>
<path d="M 152,112 L 176,112" fill="none" stroke="black"/>
<path d="M 216,112 L 232,112" fill="none" stroke="black"/>
<path d="M 152,144 L 176,144" fill="none" stroke="black"/>
<path d="M 216,144 L 232,144" fill="none" stroke="black"/>
<path d="M 16,192 L 32,192" fill="none" stroke="black"/>
<path d="M 136,128 L 144,144" fill="none" stroke="black"/>
<path d="M 136,96 L 144,80" fill="none" stroke="black"/>
<circle cx="16" cy="176" r="6" class="closeddot" fill="black"/>
<circle cx="24" cy="176" r="6" class="closeddot" fill="black"/>
<circle cx="32" cy="176" r="6" class="closeddot" fill="black"/>
<circle cx="104" cy="48" r="6" class="closeddot" fill="black"/>
<circle cx="128" cy="48" r="6" class="closeddot" fill="black"/>
<circle cx="136" cy="48" r="6" class="closeddot" fill="black"/>
<circle cx="144" cy="48" r="6" class="closeddot" fill="black"/>
<circle cx="152" cy="48" r="6" class="closeddot" fill="black"/>
<circle cx="160" cy="48" r="6" class="closeddot" fill="black"/>
<circle cx="168" cy="48" r="6" class="closeddot" fill="black"/>
<circle cx="176" cy="48" r="6" class="closeddot" fill="black"/>
<g class="text">
<text x="92" y="36">(p6,p7,p8)</text>
<text x="212" y="36">(q6,q7,q8)</text>
<text x="64" y="52">R10</text>
<text x="92" y="52">**</text>
<text x="116" y="52">**</text>
<text x="200" y="52">R13</text>
<text x="116" y="68">L2</text>
<text x="192" y="68">|</text>
<text x="196" y="84">R3</text>
<text x="252" y="84">R6</text>
<text x="192" y="100">|</text>
<text x="12" y="116">R0</text>
<text x="36" y="116">--</text>
<text x="60" y="116">R1</text>
<text x="132" y="116">R2</text>
<text x="196" y="116">R4</text>
<text x="252" y="116">R7</text>
<text x="100" y="132">L1</text>
<text x="192" y="132">|</text>
<text x="196" y="148">R5</text>
<text x="252" y="148">R8</text>
<text x="48" y="180">-</text>
<text x="76" y="180">high</text>
<text x="116" y="180">link</text>
<text x="156" y="180">cost</text>
<text x="192" y="180">100</text>
<text x="48" y="196">-</text>
<text x="72" y="196">low</text>
<text x="116" y="196">link</text>
<text x="156" y="196">cost</text>
<text x="184" y="196">1</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
        (p6,p7,p8)     (q6,q7,q8)
        R10 ************ R13
         |     L2        |
         |         /---- R3 --- R6
         |        /      |
  R0 -- R1 ----- R2 ---- R4 --- R7
             L1   \      |
                   \---- R5 --- R8

   *** - high link cost 100
   --- - low  link cost 1
]]></artwork></artset></figure>

<t>Consider in <xref target="example3"/> that a link between R10 and R13 has a
significantly higher cost than the other links in the topology.
In result, R10 is in p-space, R13 in q-space and hence there is
no single router in pq-space that R1 could encapsulate packets to to
reach R6, R6, R8 under failure of L1 or R2. If R1 would want to
send packets to ANY node in the topology across R10 under failure
of L1 or R2, R10 would simply send them back because of the
high cost of L2.</t>

<t>To get packets across L2, a steering encapsulation is required that
does ignore the actual IGP routing table. For example with
SR-MPLS or SRv6 this could be a two-hop SID list, once to R10
and then to an adjacency-SID for R13. An adjacency SIP would only
be possible to interpret by R10 and indicate to R10 to forward
the packet to the interface of R13 connecting to R10. This type
of FRR solutions are documented in <xref target="RFC9855"/>. There are
no additional considerations for BIER-FRR.</t>

</section>
<section anchor="partitioned"><name>Partitioned q-space</name>

<t>Even though the big advantage of BIER-FRR with node protection
is that it allows most often and as shown in the prior example <xref target="example2"/>
to send out just one copy of a packet to an FRR adjacency instead
of to the primary adjacency, there are also cases that more
than one copy need to be sent. This is always true in BIER-FRR
node protection, when a BIER packet though the primary adjacency
would have to reach multiple destinations (BFER) and the q-spaces
for those destinations are non-overlapping (partitioned).</t>

<t>In <xref target="example4"/>, R1 is the PLR and R2 is the node assumed to fail.
R1 would have a BIFT in which R5, R6, R7, R8 are reachable via R2,
but in case of a node failure of R2, there is no single node which
is in q-space for all of R5, R6, R7, R8 (shown as p5, p6, p7, p8).
R12 for example is only in p-space for R1 but not in q-space for
any destination because it would go via R1 to reach any of R5, R6, R7, R8.</t>

<figure title="Example 4" anchor="example4"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="496" viewBox="0 0 496 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,224 L 8,288" fill="none" stroke="black"/>
<path d="M 56,224 L 56,288" fill="none" stroke="black"/>
<path d="M 80,224 L 80,288" fill="none" stroke="black"/>
<path d="M 104,112 L 104,224" fill="none" stroke="black"/>
<path d="M 104,288 L 104,400" fill="none" stroke="black"/>
<path d="M 128,224 L 128,288" fill="none" stroke="black"/>
<path d="M 152,80 L 152,128" fill="none" stroke="black"/>
<path d="M 152,224 L 152,288" fill="none" stroke="black"/>
<path d="M 152,384 L 152,432" fill="none" stroke="black"/>
<path d="M 184,48 L 184,56" fill="none" stroke="black"/>
<path d="M 200,80 L 200,128" fill="none" stroke="black"/>
<path d="M 200,224 L 200,288" fill="none" stroke="black"/>
<path d="M 200,384 L 200,432" fill="none" stroke="black"/>
<path d="M 224,80 L 224,128" fill="none" stroke="black"/>
<path d="M 224,224 L 224,288" fill="none" stroke="black"/>
<path d="M 224,384 L 224,432" fill="none" stroke="black"/>
<path d="M 256,48 L 256,56" fill="none" stroke="black"/>
<path d="M 272,80 L 272,128" fill="none" stroke="black"/>
<path d="M 272,224 L 272,288" fill="none" stroke="black"/>
<path d="M 272,384 L 272,432" fill="none" stroke="black"/>
<path d="M 296,80 L 296,128" fill="none" stroke="black"/>
<path d="M 296,384 L 296,432" fill="none" stroke="black"/>
<path d="M 328,48 L 328,56" fill="none" stroke="black"/>
<path d="M 344,80 L 344,128" fill="none" stroke="black"/>
<path d="M 344,384 L 344,432" fill="none" stroke="black"/>
<path d="M 368,80 L 368,128" fill="none" stroke="black"/>
<path d="M 368,384 L 368,432" fill="none" stroke="black"/>
<path d="M 384,128 L 384,240" fill="none" stroke="black"/>
<path d="M 384,272 L 384,384" fill="none" stroke="black"/>
<path d="M 400,128 L 400,176" fill="none" stroke="black"/>
<path d="M 400,336 L 400,384" fill="none" stroke="black"/>
<path d="M 416,80 L 416,128" fill="none" stroke="black"/>
<path d="M 416,384 L 416,432" fill="none" stroke="black"/>
<path d="M 440,80 L 440,128" fill="none" stroke="black"/>
<path d="M 440,160 L 440,208" fill="none" stroke="black"/>
<path d="M 440,304 L 440,352" fill="none" stroke="black"/>
<path d="M 440,384 L 440,432" fill="none" stroke="black"/>
<path d="M 488,80 L 488,128" fill="none" stroke="black"/>
<path d="M 488,160 L 488,208" fill="none" stroke="black"/>
<path d="M 488,304 L 488,352" fill="none" stroke="black"/>
<path d="M 488,384 L 488,432" fill="none" stroke="black"/>
<path d="M 152,80 L 200,80" fill="none" stroke="black"/>
<path d="M 224,80 L 272,80" fill="none" stroke="black"/>
<path d="M 296,80 L 344,80" fill="none" stroke="black"/>
<path d="M 368,80 L 416,80" fill="none" stroke="black"/>
<path d="M 440,80 L 488,80" fill="none" stroke="black"/>
<path d="M 200,96 L 224,96" fill="none" stroke="black"/>
<path d="M 272,96 L 296,96" fill="none" stroke="black"/>
<path d="M 344,96 L 368,96" fill="none" stroke="black"/>
<path d="M 416,96 L 440,96" fill="none" stroke="black"/>
<path d="M 104,112 L 152,112" fill="none" stroke="black"/>
<path d="M 152,128 L 200,128" fill="none" stroke="black"/>
<path d="M 224,128 L 272,128" fill="none" stroke="black"/>
<path d="M 296,128 L 344,128" fill="none" stroke="black"/>
<path d="M 368,128 L 416,128" fill="none" stroke="black"/>
<path d="M 440,128 L 488,128" fill="none" stroke="black"/>
<path d="M 440,160 L 488,160" fill="none" stroke="black"/>
<path d="M 400,176 L 440,176" fill="none" stroke="black"/>
<path d="M 440,208 L 488,208" fill="none" stroke="black"/>
<path d="M 8,224 L 56,224" fill="none" stroke="black"/>
<path d="M 80,224 L 128,224" fill="none" stroke="black"/>
<path d="M 152,224 L 200,224" fill="none" stroke="black"/>
<path d="M 224,224 L 272,224" fill="none" stroke="black"/>
<path d="M 272,240 L 384,240" fill="none" stroke="black"/>
<path d="M 56,256 L 80,256" fill="none" stroke="black"/>
<path d="M 128,256 L 152,256" fill="none" stroke="black"/>
<path d="M 200,256 L 224,256" fill="none" stroke="black"/>
<path d="M 272,272 L 384,272" fill="none" stroke="black"/>
<path d="M 8,288 L 56,288" fill="none" stroke="black"/>
<path d="M 80,288 L 128,288" fill="none" stroke="black"/>
<path d="M 152,288 L 200,288" fill="none" stroke="black"/>
<path d="M 224,288 L 272,288" fill="none" stroke="black"/>
<path d="M 440,304 L 488,304" fill="none" stroke="black"/>
<path d="M 400,336 L 440,336" fill="none" stroke="black"/>
<path d="M 440,352 L 488,352" fill="none" stroke="black"/>
<path d="M 152,384 L 200,384" fill="none" stroke="black"/>
<path d="M 224,384 L 272,384" fill="none" stroke="black"/>
<path d="M 296,384 L 344,384" fill="none" stroke="black"/>
<path d="M 368,384 L 416,384" fill="none" stroke="black"/>
<path d="M 440,384 L 488,384" fill="none" stroke="black"/>
<path d="M 104,400 L 152,400" fill="none" stroke="black"/>
<path d="M 200,400 L 224,400" fill="none" stroke="black"/>
<path d="M 272,400 L 296,400" fill="none" stroke="black"/>
<path d="M 344,400 L 368,400" fill="none" stroke="black"/>
<path d="M 416,400 L 440,400" fill="none" stroke="black"/>
<path d="M 152,432 L 200,432" fill="none" stroke="black"/>
<path d="M 224,432 L 272,432" fill="none" stroke="black"/>
<path d="M 296,432 L 344,432" fill="none" stroke="black"/>
<path d="M 368,432 L 416,432" fill="none" stroke="black"/>
<path d="M 440,432 L 488,432" fill="none" stroke="black"/>
<g class="text">
<text x="168" y="52">(q5</text>
<text x="200" y="52">q8)</text>
<text x="240" y="52">(q5</text>
<text x="272" y="52">q6)</text>
<text x="312" y="52">(q5</text>
<text x="344" y="52">q6)</text>
<text x="172" y="68">(p1)</text>
<text x="244" y="68">(p1)</text>
<text x="316" y="68">(p1)</text>
<text x="176" y="100">R11</text>
<text x="248" y="100">R10</text>
<text x="320" y="100">R14</text>
<text x="388" y="100">R3</text>
<text x="464" y="100">BFER:</text>
<text x="460" y="116">R5</text>
<text x="464" y="180">BFER:</text>
<text x="460" y="196">R6</text>
<text x="28" y="260">R0</text>
<text x="104" y="260">R12</text>
<text x="172" y="260">FRR:</text>
<text x="244" y="260">R2</text>
<text x="172" y="276">R1</text>
<text x="212" y="276">L1</text>
<text x="464" y="324">BFER:</text>
<text x="460" y="340">R7</text>
<text x="176" y="404">R13</text>
<text x="244" y="404">R9</text>
<text x="316" y="404">R4</text>
<text x="392" y="404">R15</text>
<text x="464" y="404">BFER:</text>
<text x="460" y="420">R8</text>
<text x="176" y="468">(q5,q8)</text>
<text x="248" y="468">(q5,q6)</text>
<text x="320" y="468">(q5,q6)</text>
<text x="172" y="484">(p1)</text>
<text x="244" y="484">(p1)</text>
<text x="316" y="484">(p1)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
                      
                   (q5,q8)  (q5,q6)  (q5,q6)
                   (p1)     (p1)     (p1)
                  +-----+  +-----+  +-----+  +-----+  +-----+
                  | R11 +--+ R10 +--+ R14 +--+ R3  +--+BFER:|
            +-----+     |  |     |  |     |  |     |  | R5  |
            |     +-----+  +-----+  +-----+  +-+-+-+  +-----+
            |                                  | |
            |                                  | |    +-----+
            |                                  | +----+BFER:|
            |                                  |      | R6  |
            |                                  |      +-----+
+-----+  +--+--+  +-----+  +-----+             |
|     |  |     |  |     |  |     +-------------+
| R0  +--+ R12 +--+FRR: +--+ R2  |
|     |  |     |  | R1  |L1|     +-------------+
+-----+  +--+--+  +-----+  +-----+             |
            |                                  |      +-----+
            |                                  |      |BFER:|
            |                                  | +----+ R7  |
            |                                  | |    +-----+
            |                                  | |
            |     +-----+  +-----+  +-----+  +-+-+-+  +-----+
            +-----+ R13 +--+ R9  +--+ R4  +--+ R15 +--+BFER:|
                  |     |  |     |  |     |  |     |  | R8  |
                  +-----+  +-----+  +-----+  +-----+  +-----+

                  (q5,q8)  (q5,q6)  (q5,q6)
                   (p1)     (p1)     (p1)
]]></artwork></artset></figure>


<t>In result, R1 does need to create an FRR adjacencies for R5 and R6
towards R11 and one for R7 and R8 towards R13. If then a packet comes
towards all of R5, R6, R7, R8, R1 will create one copy towards
R11 for R5 and R6, and another copy towards R13 for R7 and R8.
This creates double the amount of originally received traffic from
R12 back towards R12, but from there on, it again has only
one copy on each link as opposed to any non-BIER FRR mechanism
which would still carry two copies for example one for R5 and another
for R6.</t>

<t>See <xref target="bier-in-bier"/> for discussions of non-working enhancements.</t>

</section>
</section>
</section>
</section>
<section anchor="bift-forwarding-for-frr"><name>BIFT forwarding for FRR</name>

<t>This chapter describes how BIER-FRR forwarding can be modelled for the BIER
forwarding plane. It starts by refreshing the BIER forwarding table behavor
to then introduce three models for how FRR can be added, and finishes with
the complex example for how to handle partitioned q-space in them.</t>

<section anchor="reference-example-with-bier-forwarding-table-bift"><name>Reference Example with BIER forwarding table (BIFT)</name>

<t><xref target="RFC8279"/>, Figure 3, specifies the BIER forwarding conceptually through the
structure of the Bit Index Forwarding Table (BIFT). It is summarized here
for convenience and to describe the FRR options in the following sections.</t>

<t><xref target="example5"/> shows a simple topology used to re-summarize BIER forwarding
as well as the FRR options. We look at the forwarding table on R2 and the possible
failures of its downstream BFR-NBR R3,R4,R5. R6,R7,R8,R9,R10,R11 are BFER and
thus have bits in the bitstring of BIER packets.</t>

<figure title="Example 5 toplogy" anchor="example5"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="432" width="416" viewBox="0 0 416 432" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,208 L 8,240" fill="none" stroke="black"/>
<path d="M 56,208 L 56,240" fill="none" stroke="black"/>
<path d="M 80,208 L 80,240" fill="none" stroke="black"/>
<path d="M 104,80 L 104,208" fill="none" stroke="black"/>
<path d="M 104,240 L 104,368" fill="none" stroke="black"/>
<path d="M 128,208 L 128,240" fill="none" stroke="black"/>
<path d="M 176,64 L 176,96" fill="none" stroke="black"/>
<path d="M 176,208 L 176,240" fill="none" stroke="black"/>
<path d="M 176,352 L 176,384" fill="none" stroke="black"/>
<path d="M 224,64 L 224,96" fill="none" stroke="black"/>
<path d="M 224,208 L 224,240" fill="none" stroke="black"/>
<path d="M 224,352 L 224,384" fill="none" stroke="black"/>
<path d="M 264,64 L 264,96" fill="none" stroke="black"/>
<path d="M 264,208 L 264,240" fill="none" stroke="black"/>
<path d="M 264,352 L 264,384" fill="none" stroke="black"/>
<path d="M 280,96 L 280,208" fill="none" stroke="black"/>
<path d="M 280,240 L 280,352" fill="none" stroke="black"/>
<path d="M 296,48 L 296,64" fill="none" stroke="black"/>
<path d="M 296,96 L 296,112" fill="none" stroke="black"/>
<path d="M 296,192 L 296,208" fill="none" stroke="black"/>
<path d="M 296,240 L 296,256" fill="none" stroke="black"/>
<path d="M 296,336 L 296,352" fill="none" stroke="black"/>
<path d="M 296,384 L 296,400" fill="none" stroke="black"/>
<path d="M 312,64 L 312,96" fill="none" stroke="black"/>
<path d="M 312,208 L 312,240" fill="none" stroke="black"/>
<path d="M 312,352 L 312,384" fill="none" stroke="black"/>
<path d="M 360,32 L 360,64" fill="none" stroke="black"/>
<path d="M 360,96 L 360,128" fill="none" stroke="black"/>
<path d="M 360,176 L 360,208" fill="none" stroke="black"/>
<path d="M 360,240 L 360,272" fill="none" stroke="black"/>
<path d="M 360,320 L 360,352" fill="none" stroke="black"/>
<path d="M 360,384 L 360,416" fill="none" stroke="black"/>
<path d="M 408,32 L 408,64" fill="none" stroke="black"/>
<path d="M 408,96 L 408,128" fill="none" stroke="black"/>
<path d="M 408,176 L 408,208" fill="none" stroke="black"/>
<path d="M 408,240 L 408,272" fill="none" stroke="black"/>
<path d="M 408,320 L 408,352" fill="none" stroke="black"/>
<path d="M 408,384 L 408,416" fill="none" stroke="black"/>
<path d="M 360,32 L 408,32" fill="none" stroke="black"/>
<path d="M 296,48 L 360,48" fill="none" stroke="black"/>
<path d="M 176,64 L 224,64" fill="none" stroke="black"/>
<path d="M 264,64 L 312,64" fill="none" stroke="black"/>
<path d="M 360,64 L 408,64" fill="none" stroke="black"/>
<path d="M 104,80 L 176,80" fill="none" stroke="black"/>
<path d="M 224,80 L 264,80" fill="none" stroke="black"/>
<path d="M 176,96 L 224,96" fill="none" stroke="black"/>
<path d="M 264,96 L 312,96" fill="none" stroke="black"/>
<path d="M 360,96 L 408,96" fill="none" stroke="black"/>
<path d="M 296,112 L 360,112" fill="none" stroke="black"/>
<path d="M 360,128 L 408,128" fill="none" stroke="black"/>
<path d="M 360,176 L 408,176" fill="none" stroke="black"/>
<path d="M 296,192 L 360,192" fill="none" stroke="black"/>
<path d="M 8,208 L 56,208" fill="none" stroke="black"/>
<path d="M 80,208 L 128,208" fill="none" stroke="black"/>
<path d="M 176,208 L 224,208" fill="none" stroke="black"/>
<path d="M 264,208 L 312,208" fill="none" stroke="black"/>
<path d="M 360,208 L 408,208" fill="none" stroke="black"/>
<path d="M 56,224 L 80,224" fill="none" stroke="black"/>
<path d="M 128,224 L 176,224" fill="none" stroke="black"/>
<path d="M 224,224 L 264,224" fill="none" stroke="black"/>
<path d="M 8,240 L 56,240" fill="none" stroke="black"/>
<path d="M 80,240 L 128,240" fill="none" stroke="black"/>
<path d="M 176,240 L 224,240" fill="none" stroke="black"/>
<path d="M 264,240 L 312,240" fill="none" stroke="black"/>
<path d="M 360,240 L 408,240" fill="none" stroke="black"/>
<path d="M 296,256 L 360,256" fill="none" stroke="black"/>
<path d="M 360,272 L 408,272" fill="none" stroke="black"/>
<path d="M 360,320 L 408,320" fill="none" stroke="black"/>
<path d="M 296,336 L 360,336" fill="none" stroke="black"/>
<path d="M 176,352 L 224,352" fill="none" stroke="black"/>
<path d="M 264,352 L 312,352" fill="none" stroke="black"/>
<path d="M 360,352 L 408,352" fill="none" stroke="black"/>
<path d="M 104,368 L 176,368" fill="none" stroke="black"/>
<path d="M 224,368 L 264,368" fill="none" stroke="black"/>
<path d="M 176,384 L 224,384" fill="none" stroke="black"/>
<path d="M 264,384 L 312,384" fill="none" stroke="black"/>
<path d="M 360,384 L 408,384" fill="none" stroke="black"/>
<path d="M 296,400 L 360,400" fill="none" stroke="black"/>
<path d="M 360,416 L 408,416" fill="none" stroke="black"/>
<g class="text">
<text x="388" y="52">R6</text>
<text x="204" y="84">R3</text>
<text x="288" y="84">R12</text>
<text x="388" y="116">R7</text>
<text x="388" y="196">R8</text>
<text x="36" y="228">R1</text>
<text x="108" y="228">R2</text>
<text x="204" y="228">R4</text>
<text x="288" y="228">R13</text>
<text x="388" y="260">R9</text>
<text x="384" y="340">R10</text>
<text x="204" y="372">R5</text>
<text x="288" y="372">R14</text>
<text x="384" y="404">R11</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
                                            +-----+
                                    +-------+  R6 |
                     +-----+    +---+-+     +-----+
            +--------+  R3 +----+ R12 |
            |        +-----+    +-+-+-+     +-----+
            |                     | +-------+  R7 |
            |                     |         +-----+
            |                     |
            |                     |
            |                     |         +-----+
            |                     | +-------+  R8 |
+-----+  +--+--+     +-----+    +-+-+-+     +-----+
|  R1 +--+  R2 +-----+  R4 +----+ R13 |
+-----+  +--+--+     +-----+    +-+-+-+     +-----+
            |                     | +-------+  R9 |
            |                     |         +-----+
            |                     |
            |                     |
            |                     |         +-----+
            |                     | +-------+ R10 |
            |        +-----+    +-+-+-+     +-----+
            +--------+  R5 +----+ R14 |
                     +-----+    +---+-+     +-----+
                                    +-------+ R11 |
                                            +-----+
]]></artwork></artset></figure>

<t>Assuming the BIFT on R2 was created with the help of a normal shortest path routing protocol,
 it would look as shown in <xref target="e5-bier"/>.</t>

<texttable title="Example 5 R2 BIFT (without FRR)" anchor="e5-bier">
      <ttcol align='left'>BFR-id</ttcol>
      <ttcol align='left'>F-BM</ttcol>
      <ttcol align='left'>BFR-NBR</ttcol>
      <c>R6</c>
      <c>R6,R7</c>
      <c>R3</c>
      <c>R7</c>
      <c>R6,R7</c>
      <c>R3</c>
      <c>R8</c>
      <c>R8,R9</c>
      <c>R4</c>
      <c>R9</c>
      <c>R8,R9</c>
      <c>R4</c>
      <c>R10</c>
      <c>R10,R11</c>
      <c>R5</c>
      <c>R11</c>
      <c>R10,R11</c>
      <c>R5</c>
</texttable>

<t>Each line of the BIFT is an entry for one BFER identified in this represenation
by it's BFR-id in the first colum. F-BM is a bitstring represented by the BFR-id
included in it. The F-BM exists to suppress multiple copies to the same downstream
BFR-NBR. The BFR-NBR is the third colum.</t>

<t>In result, a BIER packet whose bitstring indicates R6,R7,R8,R9,R10,R11 would
be replicated by R2 into one BIER packet to R3 with a bitstring indicating R6,R7,
one BIER packet to R4 indicating R8,R9 and one BIER packet to R5 indicating R10,R11.
This happens according to <xref target="RFC8279"/> through the standard BIER forwarding code as shown in
<xref target="bier-fwd"/>, copied from <xref target="RFC8279"/>, Figure 4. The bitstring
of each of the copies only contains a subset of BFER each because of the
"&amp;" operation of the pseudocode driven by the BIFT entries F-BM field.</t>

<figure title="BIER forwarding pseudocode" anchor="bier-fwd"><artwork align="center"><![CDATA[
void ForwardBitMaskPacket (Packet)
   {
       SI=GetPacketSI(Packet);
       Offset=SI*BitStringLength;
       for (Index = GetFirstBitPosition(Packet->BitString); Index ;
            Index = GetNextBitPosition(Packet->BitString, Index)) {
           F-BM = BIFT[Index+Offset]->F-BM;
           if (!F-BM) continue;
           BFR-NBR = BIFT[Index+Offset]->BFR-NBR;
           PacketCopy = Copy(Packet);
           PacketCopy->BitString &= F-BM;
           PacketSend(PacketCopy, BFR-NBR);
           Packet->BitString &= ~F-BM;
       }
   }
]]></artwork></figure>

<t>The following three sections introduce three different
Forwarding Models for BIER with FRR and their associated modified or
extended BIFTs. These three models result not only in different complexities
of implementation, but also in three different outcomes (packets replicated)
in the case of failures of one of the three neighbors from R2: R3, R4 or
R5.</t>

<t>Because of differences in outcome, operators need to be aware which model
is actually employed by a BFR so that they can validate whether the observed
behavior matches the expected behavior (routing, BFR are not malfunctioning), and to
be able to do capacity planning, especially under FRR failures - they need
to be able to simulate which links/path will have how much additional, FRR
re-routed BIER traffic under failures.</t>

<t>These models do give good indication how easy or complex implementations are,
but they are far from being explicit implementation suggestions.</t>

<t>These three models are likely not all possible models how FRR for BIER
can be supported through modified or extended BIFT, but not only do they
show likely three significantly interesting option, instead, the way they
are specified here are also meant to be examples of the type of documentation
necessary when implementing yet another model. It simply follows and extends
the approach used by <xref target="RFC8279"/>.</t>

</section>
<section anchor="aFRR"><name>BIFT with adjacency FRR (BIER-aFRR)</name>

<t>In the BIER-aFRR model, FRR is modelled with no changes
to the BIER forwarding/replication algorithm shown in <xref target="bier-fwd"/>.
Instead, it leverages the same approach as unicast FRR, enhancing only the
neighbor information to which a packet is to be sent, as shown in
<xref target="e5-bier-afrr"/>.</t>

<texttable title="Example 5 R2 BIFT with unicast FRR (aFRR)" anchor="e5-bier-afrr">
      <ttcol align='left'>BFR-id</ttcol>
      <ttcol align='left'>F-BM</ttcol>
      <ttcol align='left'>BFR-NBR</ttcol>
      <c>R6</c>
      <c>R6,R7</c>
      <c>LFA(R3,R4)</c>
      <c>R7</c>
      <c>R6,R7</c>
      <c>LFA(R3,R4)</c>
      <c>R8</c>
      <c>R8,R9</c>
      <c>LFA(R4,R3)</c>
      <c>R9</c>
      <c>R8,R9</c>
      <c>LFA(R4,R3)</c>
      <c>R10</c>
      <c>R10,R11</c>
      <c>LFA(R5,R4)</c>
      <c>R11</c>
      <c>R10,R11</c>
      <c>LFA(R5,R4)</c>
</texttable>

<t>To emphasize that BIER forwarding stays unchanged, the FRR behavior
is solely modelled inside the PacketSend procedure as shown in <xref target="afrr-pseudocode"/>.</t>

<figure title="aFRR pseudocode" anchor="afrr-pseudocode"><artwork align="center"><![CDATA[
void PacketSend(PacketCopy, bfrnbr)
    {
        if(bfrnbr == LFA(primary, backup)) {
            if(IsUp(primary) {
                PacketSend(PacketCopy, primary) 
            } else {
                PacketSend(PacketCopy, backup)
            }
        } else {
           ... pre-existing non-aFRR forwarding...
        }
    }
]]></artwork></figure>

<t>This simple pseudocode shows only support for an aFRR adjacency that
is equivalent to unicast LFA, because this is the only option required
in Example 5. When the primary BFR-NBR is down, the BIER packet is 
simply sent to the backup BFR neighbor which is another directly connected BFR neighbor.
When remote LFA or TI-LFA adjacencies are required due to topology as explained
above, the code and BIFT entry options accordingly need to be enhanced with
options expressing such LFA adjacencies with additional encapsulations.</t>

<t>It should be possible to share pre-existing unicast LFA code (including
such remote LFA and TI-LFA code) for this option, so BFER-uFRR should
be the option with the least amount of new development and most sharing
with unicast FRR.</t>

<t>When using aFRR with the example BIFT, the aforementioned BIER
packet to  R6,R7,R8,R9,R10,R11 would always send two packet copies to one of the
two remaining neighbors out of R3,R4,R5, if one of the three
neighbors is down.</t>

<t>If R3 is down, R1 would first send a copy for R6,R7 towards R4 in
result of "LFA(R3,R4)" in the R6 BIFT entry - and R3 being down.
It then sends the second copy for R8,R9 towards R4 in result of 
"LFA(R4,R3)" in the R8 BIFT entry - and R4 being up. Finally
it sends a copy for R10,R11 towards R5 in result of "LFA(R5,R4)"
and R5 being up.</t>

<t>Note that BIER-aFRR can not support FRR for all topologies without a
workaround that introduces multiple copies across the same neighbors
even in the non-FRR case. See <xref target="bift-partitioned-q"/>.</t>

</section>
<section anchor="bift-with-backup-fbm-bier-bfrr"><name>BIFT with backup FBM (BIER-bFRR)</name>

<t>In the BIER-bFRR model, FRR is modelled to overcome some of
the duplicate packets sent to neighbors when another neighbor
fails as shown above as well as the aforementioned issue discussed
in <xref target="bift-partitioned-q"/>. These improvements come at the expense of added complexity
in the actual BIER forwarding/replication procedure for FRR.</t>

<texttable title="Example 5 R2 BIFT with bFRR" anchor="e5-bier-bfrr">
      <ttcol align='left'>BFR-id</ttcol>
      <ttcol align='left'>F-BM</ttcol>
      <ttcol align='left'>BFR-NBR</ttcol>
      <ttcol align='left'>BF-BM</ttcol>
      <ttcol align='left'>BBFR-NBR</ttcol>
      <c>R6</c>
      <c>R6,R7</c>
      <c>R3</c>
      <c>R6,R7,R8,R9</c>
      <c>R4</c>
      <c>R7</c>
      <c>R6,R7</c>
      <c>R3</c>
      <c>R6,R7,R8,R9</c>
      <c>R4</c>
      <c>R8</c>
      <c>R8,R9</c>
      <c>R4</c>
      <c>R6,R7,R8,R9</c>
      <c>R3</c>
      <c>R9</c>
      <c>R8,R9</c>
      <c>R4</c>
      <c>R6,R7,R8,R9</c>
      <c>R3</c>
      <c>R10</c>
      <c>R10,R11</c>
      <c>R5</c>
      <c>R8,R9,R10,R11</c>
      <c>R4</c>
      <c>R11</c>
      <c>R10,R11</c>
      <c>R5</c>
      <c>R8,R9,R10,R11</c>
      <c>R4</c>
</texttable>

<t>The BIER-bFRR extended BIFT for Example 5 is shown in <xref target="e5-bier-bfrr"/>,
the forwarding code for BIER with bFRR is shown in <xref target="bier-fwd-bfrr"/>,
the four additional lines of code compared to <xref target="bier-fwd"/> are shown
with the comment "bFRR".</t>

<t>Functionally, bFRR simply differs from aFRR in that it allows for
a different F-BM to be used when the BFR-NBR is not Up, so that
the packet instead has to be sent to the backup BFR-NBR. Because
the applying of a BFM to a bitstring is not something applicable
to a unicast packet, the bFRR code is hence shown as part of the
BIER forwarding loop in the pseudocode.</t>

<t>The Backup BFR-NBR is called BBFR-NBR, and the Backup F-BM is called BF-BM
in the bFRR enhanced BIFT.</t>

<figure title="BIER forwarding pseudocode with bFRR" anchor="bier-fwd-bfrr"><artwork align="center"><![CDATA[
void ForwardBitMaskPacket (Packet)
   {
       SI=GetPacketSI(Packet);
       Offset=SI*BitStringLength;
       for (Index = GetFirstBitPosition(Packet->BitString); Index ;
            Index = GetNextBitPosition(Packet->BitString, Index)) {
           F-BM = BIFT[Index+Offset]->F-BM;
           if (!F-BM) continue;
           BFR-NBR = BIFT[Index+Offset]->BFR-NBR;
           if(!IsUp(BFR-NBR) {                          ! bFRR
               F-BM = BIFT[Index+Offset]->BF-BM;        ! bFRR
               BFR-NBR = BIFT[Index+Offset]->BBFR-NBR;  ! bFRR
           }                                            ! bFRR
           PacketCopy = Copy(Packet);
           PacketCopy->BitString &= F-BM;
           PacketSend(PacketCopy, BFR-NBR);
           Packet->BitString &= ~F-BM;
       }
   }
]]></artwork></figure>

<t>Assuming again as in before for BIER-aFRR a BIER packet to R6,R7,R8,R9,R10,R11.</t>

<t>Whereas in BIER-aFRR in Example 5, when R3 was not Up, two packet copies
would be sent to R4, one for R6,R7 that should have gone to R3, and another
packet copy for R8,R9, which is independent of whether or not R3 is Up or
not, in BIER-bFRR this can be optimized because of BB-FM. If R3 is down,
the packet copy created because of the BIFT entry for R6 and sent to R4
will include all bits from BB-FM for R6, which includes R6,R7,R8,R9. When
then the BIFT entry for R8 and R9 are examined, then their bits have
already been reset in the "Packet-&gt;BitString". Hence no duplicate packet
copies are sent towards R4.</t>

<t>However, this BB-FM optimization does not help to avoid duplicate packets
to R4 in the case of R5 not being Up. Even though BB-FM makes it look as
if the same benefit as for a failure of R3 could happen, this BB-FM is
insubstantial because of the sequential processing of the BIFT entries by
ForwardBitMaskPacket. The BIFT entry for R8 will have already caused
one Packet copy for R8, R9 to be sent to R4, so when the BIFT entry for
R10/R11 are examined, a second packet copy for R10,R11 needs to be made towards
R4.</t>

<t>As a rule of thumb, BIER-bFRR allows for the BB-FM to send to the same BFER
as indicated by the B-FM, but also to include the additional bits from the
B-FM of BIFT entries where the BBFR-NBR is the BFR-NBR, but but that
optimization only reduces duplicate packet copies when the failed BFR-NBR
BIFT entry is earlier in the BIFT than the BIFT entries where the BBFR-NBR is
the actual BFR-NBR. In cases like Example 5 where two or more BFR-NBR like
R3 and R4 mutually protect each other (are BBFR-NBR for one another),
it is never possible to avoid packet duplication due to the way the BIFT
operates sequentially.</t>

<t>Note again, that elimination of packet duplication is not the only reason
for BIER-bFRR, see <xref target="bift-partitioned-q"/>.</t>

</section>
<section anchor="bift-with-sorted-backup-fbm-bier-sbfrr"><name>BIFT with sorted backup FBM (BIER-sbFRR)</name>

<t>To overcome the problem of BIER-bFRR that it can not avoid unnecessary duplicate
packets to one BFR-NBR when another BFR-NBR is down (in all cases), as described above, the simple
logical model option is to loop across the bit indices of the BIFT not in their
numerical order, but first consider only those bits in the BitString for which the
BFR-NBR is known to be down - and only then consider all the bits for whom the
BFR-NBR is not down.</t>

<figure title="BIER forwarding pseudocode extensions for sorted bFRR (sbFRR)" anchor="bier-fwd-sbfrr"><artwork align="center"><![CDATA[
static DownBfrNbrIndices;
static DoFRRIndices;
GetFirstBitPosition(BitString)
   { 
       DoFRRIndices = 1;
       return GetNextBitPosition(BitString, 0)
   }

GetNextBitPosition(BitString, Index)
   {
      if( DoFRRIndices &&
          Index = _GetNextBitPosition
            (Packet->BitString & DownBfrNbrIndices, Index)) {
          return Index;
      }
      DoFRRIndices = 0;
      return _GetNextBitPosition
            (Packet->BitString & ~DownBfrNbrIndices, Index);
   }

]]></artwork></figure>

<t><xref target="bier-fwd-sbfrr"/> shows how this behavior can be modelled by modifying
the functions enumerating the BitIndices. DownBfrNbrIndices is a bitstring variable
changed by fast executing control plane code, whenever an interface connecting to
a BFR-NBR goes up or down. It includes all BitIndices of BIFT entries whose BFR-NBR
is down.</t>

<t>GetNetBitPosition now first returns all Indices in the Packet-&gt;BitString with
such down BFR-NBR, and afterwards those Indices whose BFR-NBR are not down.</t>

<t>In result of this change, in Example 5, when R5 is down, the BIFT entry for R10
is examined first, resulting in a packet copy with R8,R9,R10,R11 towards R4, because
R5 is down, and later no additional packet copy needs to be made because the Bits
for R8,R9 where already cleared by that first copy.</t>

<t>[ RFC-editor: remove the following paragraph, it is only here for convenience of reviers to relate to a prior version of the document ]</t>

<t>Note: Earlier versions of this document, such as revision 10, had called BIER-bFRR
single-BIFT (with FRR) and BIER-sbFRR multiple BIFT because it was modelled
as one BIFT just with primary F-BM/BFR-NBR and another one only with BF-BM/BBFR-NBR
for the failure of one specific interface. Likewise,  section 3.8
claimed that it would be necessary to perform two passes through this type
of BIFT: this text it is not necessary to perform two passes as written there:
"A first one matches the bitstring combined with BEA=1.  If no further
match is possible, then another pass with the remaining bitstring
combined with BEA=0 is performed.".  The rewrite presented above with bFRR
and sbFRR replaces this with the simpler model of a single BIFT extended with
BF-BM/BBFR-NBR and just uses two different ways to sequentially process the
bits in the packets BitString.</t>

</section>
<section anchor="bift-partitioned-q"><name>BIFT for partitioned q-space</name>

<t>This section discusses how the different BIFT models presented can
deal with partitioned q-space as defined in <xref target="partitioned"/>. The difference
in behavior is between BIER-aFRR and BIER-bFRR/sbFRR. There is no difference
in between bFRR and sbFRR.</t>

<texttable title="BIFT Example 4 for R1 with bFRR for R2 failure" anchor="bift-e4-bfrr">
      <ttcol align='left'>BFR-id</ttcol>
      <ttcol align='left'>F-BM</ttcol>
      <ttcol align='left'>BFR-NBR</ttcol>
      <ttcol align='left'>BF-BM</ttcol>
      <ttcol align='left'>BBFR-NBR</ttcol>
      <c>R5</c>
      <c>R5,R6,R7,R8</c>
      <c>R2</c>
      <c>R5,R6</c>
      <c>tunnel(nh:R12,dest:R11)</c>
      <c>R6</c>
      <c>R5,R6,R7,R8</c>
      <c>R2</c>
      <c>R5,R6</c>
      <c>tunnel(nh:R12,dest:R11)</c>
      <c>R7</c>
      <c>R5,R6,R7,R8</c>
      <c>R2</c>
      <c>R7,R8</c>
      <c>tunnel(nh:R12,dest:R13)</c>
      <c>R8</c>
      <c>R5,R6,R7,R8</c>
      <c>R2</c>
      <c>R7,R8</c>
      <c>tunnel(nh:R12,dest:R13)</c>
      <c>R11</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>R12</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>R13</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
      <c>&#160;</c>
      <c>&#160;</c>
</texttable>

<t><xref target="bift-e4-bfrr"/> shows the relevant excerpt of the R1 BIFT using the BIER-bFRR/sbFRR
BIFT model. As explained in <xref target="partitioned"/>, when R2 fails, R1 can only delivery BIER
packets for R5 and R6 through a unicast encapsulation (tunnel) destined to R11 and
send to R12. Likewise, to reach R7 and R8, the BIER packet needs to be encapsulated to
R13 and that unicast packet sent to R12. Because both tunneled packets have different
unicast destinations, these four BFER (R5,R6,R7,R8) can not be served with a single
BIER packet copy.</t>

<t>In unicast LFA terminoloy such unicast encapsulated FRR packets are called remote
LFA (<xref target="RFC7490"/>) and the syntax shown for BBFR-NBR in <xref target="bift-e4-bfrr"/> expresses 
the required tunnelling accordingly.</t>

<texttable title="BIFT Example 4 R1 with aFRR BROKEN" anchor="bift-e4-bfrr-broken">
      <ttcol align='left'>BFR-id</ttcol>
      <ttcol align='left'>F-BM</ttcol>
      <ttcol align='left'>BFR-NBR</ttcol>
      <c>R5</c>
      <c>R5,R6,R7,R8</c>
      <c>RLFA(R2, tunnel(nh:R12,dest:R11))</c>
      <c>R6</c>
      <c>R5,R6,R7,R8</c>
      <c>RLFA(R2, tunnel(nh:R12,dest:R11)</c>
      <c>R7</c>
      <c>R5,R6,R7,R8</c>
      <c>RLFA(R2, tunnel(nh:R12,dest:R13))</c>
      <c>R8</c>
      <c>R5,R6,R7,R8</c>
      <c>RLFA(R2, tunnel(nh:R12,dest:R13))</c>
      <c>R11</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
      <c>R12</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
      <c>R13</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
</texttable>

<t><xref target="bift-e4-bfrr-broken"/> shows a first attempt to express the same situation with
the BIER-aFRR BIFT model in which there are no new BIFT fields BB-FM or BBFR-NBR.
Instead, and as explained in <xref target="aFRR"/>, the RLFA 'adjacency becomes the value
of the BFR-NBR. It indicates the directly connected BFR-NBR R2, and if the
interface to that neighbor is down, then instead the packed has to be tunnel
encapsulated to destination R11 or R13 and send towards BFR-NBR R12.</t>

<t>However, this BIFT does not work as expected because it can not represent
the BB-FM of a bFRR BIFT. And the goal of the aFRR model is explicitly to
only use non-BIER specific FRR options for the BFR-NBR field, so that
hopefully even unchangeable (hardcoded) BIER forwarding code could be extended
to support aFRR - because it should be possible to implement aFRR solely through
pre-existing unicast FRR adjacency forwarding.</t>

<t>The reason why this BIFT will not work is that a packet to R5,R6,R7,R8 will
not be processed as desired under failure of R2: As long as R2 is up, the BIFT
delivers the expected result, sending one BIER packet copy to R2 with all
the four bits for R5,R6,R7,R8 set. But when R2 goes down, then only one
packet copy will be sent too, and that is the one derived from the BIFT entry
for R5 which already includes all four bits in the bitstring because of its
F-BM. Only when a packet would not have R5 or R6 set, but only R7,R8 would
their BIFT entries kick in and a packet copy tunneled to R13 be sent!</t>

<texttable title="BIFT Example 4 R1 with aFRR FIXED" anchor="bift-e4-afrr">
      <ttcol align='left'>BFR-id</ttcol>
      <ttcol align='left'>F-BM</ttcol>
      <ttcol align='left'>BFR-NBR</ttcol>
      <c>R5</c>
      <c>R5,R6</c>
      <c>RLFA(R2, tunnel(nh:R12,dest:R11))</c>
      <c>R6</c>
      <c>R5,R6</c>
      <c>RLFA(R2, tunnel(nh:R12,dest:R11)</c>
      <c>R7</c>
      <c>R7,R8</c>
      <c>RLFA(R2, tunnel(nh:R12,dest:R13))</c>
      <c>R8</c>
      <c>R7,R8</c>
      <c>RLFA(R2, tunnel(nh:R12,dest:R13))</c>
      <c>R11</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
      <c>R12</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
      <c>R13</c>
      <c>R11,R12,R13</c>
      <c>R12</c>
</texttable>

<t><xref target="bift-e4-afrr"/> shows the fixed aFRR BIFT. The F-BM between R5,R6 and R7,R8 are now
split, so that a packet to R5,R6,R7,R8 under failure of R2 will receive one
tunneled packet copy destined towards R11 with destinations R5,R6 and triggered by the BIFT entry for R5,
and a second packet copy destined towards R13 with destinations R7,R8 and triggered by the BIFT entry for R7.</t>

<t>The downside of this approach is obviously that when R2 is up and running, then a
BIER packet for R5,R6,R7,R8 will not be sent as a single packet copy towards R2,
but instead as two packet copies to R2. One with the bits for R5,R6, triggered by
the BIFT entry for R5, and one with the bits for R7,R8, triggered by the BIFT entry
for R7.</t>

<t>The ability to use an unchanged BIFT and BIER forwarding algorithm and just use
"unicast" FRR adjacencies therefore comes at the price of having to carry unnecessary
packet copies when there is no FRR failure - just because there is only a single
F-BM in a non-bFRR enhanced BIFT and hence the F-BM space needs to be segmented
by the segmented q-spaces of the BFER. In the example topology, this duplicated
amount of traffic only exists over link L1 from R1 to R2. As soon as those
two packets hit R2, the one with bits for R5,R6 will be sent towards R3, and
the one with the bits for R7,R8 will be sent towards R13. This mechanism never
creates packet duplication on actual receivers, but it only creates less BIER
packet de-duplication on transit links!</t>

<t>For fast core networks, this lower de-duplication efficiency of BIER to support
FRR without e.g.: new forwarding hardware (which may be required for bFRR) may
well be worth it, especially if the aggregate of BIER traffic multiplied by the
number of q-space particions (e.g: 2 in this example) is a well acceptable percentage.
Assume for example link L1 between R1 and R2 is 100Gbps and the total amount of multicast (BIER)
traffic is 5 Gbps at most. Then this solution would waste (just) 5% (5Gps) of the bandwidth
from R1 to R2 - compared to BIER-bFRR.</t>

</section>
</section>
<section anchor="old-text-follows"><name>Old text follows</name>

<section anchor="summary-of-options"><name>Summary of options</name>

<t>In "Tunnel-based BIER FRR"The most simple option to perfor</t>

</section>
</section>
<section anchor="ex4_bier_frr"><name>Definition of BIER-FRR</name>

<t>BIER-FRR proposes a backup BIFT that comprises backup forwarding
entries.  They are executed before the primary forwarding entries in the normal
BIFT which is also denoted primary BIFT in this context.
In this subsection, forwarding actions are defined and the structure of
the backup BIFT is introduced.
Then activation and deactivation of backup forwarding entries as well
as the derivation of the backup F-BM (BF-BM) are explained.</t>

<section anchor="trigger_for_frr"><name>Definition of Forwarding Actions</name>

<t>A BFR-NBR is considered directly connected if it is a link-layer
next-hop.
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:</t>

<t><list style="symbols">
  <t>Plain: The BIER packet is sent directly to a BFR-NBR via a direct
link without encapsulation in a tunnel.
This indicates that the packet is not forwarded 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>

</section>
<section anchor="backup_forwarding_entries"><name>Backup BIFT</name>

<t>The structure of the backup BIFT is given in <xref target="bift"/>.</t>

<figure title="Structure of the backup BIFT." anchor="bift"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="368" viewBox="0 0 368 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 152,32 L 152,96" fill="none" stroke="black"/>
<path d="M 240,32 L 240,96" fill="none" stroke="black"/>
<path d="M 312,32 L 312,96" fill="none" stroke="black"/>
<path d="M 360,32 L 360,96" fill="none" stroke="black"/>
<path d="M 8,32 L 360,32" fill="none" stroke="black"/>
<path d="M 8,62 L 360,62" fill="none" stroke="black"/><path d="M 8,66 L 360,66" fill="none" stroke="black"/>
<path d="M 8,96 L 360,96" fill="none" stroke="black"/>
<g class="text">
<text x="44" y="52">BFR-id</text>
<text x="112" y="52">BF-BM</text>
<text x="196" y="52">BBFR-NBR</text>
<text x="272" y="52">BFA</text>
<text x="336" y="52">BEA</text>
<text x="40" y="84">...</text>
<text x="112" y="84">...</text>
<text x="192" y="84">...</text>
<text x="272" y="84">...</text>
<text x="336" y="84">...</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+--------+----------+--------+-----+
| BFR-id | BF-BM  | BBFR-NBR |  BFA   | BEA |
+========+========+==========+========+=====+
|  ...   |  ...   |   ...    |  ...   | ... |
+--------+--------+----------+--------+-----+
]]></artwork></artset></figure>

<t>The columns refer to:</t>

<t><list style="symbols">
  <t>BFR-id: the bit position of a BFER for which this row in the backup
BIFT applies.</t>
  <t>BF-BM: the Backup F-BM used for forwarding, used like the primary
F-BM.</t>
  <t>BBFR-NBR: the Backup BFR-NBR used for forwarding, used like the
primary BFR-NBR.</t>
  <t>BFA: the Backup Forwarding Action takes values as introduced in
Section 3.1 and indicates how the packet is forwarded to the
BBFR-NBR.</t>
  <t>BEA: the Backup Entry Active flag indicates if the backup forwarding
entry of this row is active.</t>
</list></t>

<t>The structure and semantics of the first three fields are identical to
the entries of the primary BIFT, as defined in Figure 3 of <xref target="RFC8279"/>,
and they are used in a very similar way.
The BEA indicates if the backup forwarding entry is executed.
In that case, the BFA indicates the forwarding action for the packet.</t>

</section>
<section anchor="a_backup_entry"><name>Activating and Deactivating Backup Forwarding Entries</name>

<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 Bidirectional
Forwarding Detection (BFD) <xref target="RFC5880"/> 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 anchor="usage-of-the-backup-bift"><name>Usage of the Backup BIFT</name>

<t>An incoming packet is first matched against the backup BIFT.
A row in the backup BIFT matches a packet if the BEA flag in the
backup BIFT is set and if the BFR-id is set in the packet's bitstring.
Then, the BF-BM of the matching backup forwarding entry is applied to
the packet's bitstring.
That means, the packet is copied and in its bitstring the bits other
than those set in BF-BM are cleared before the packet is forwarded to
the BBFR-NBR with the indicated BFA.
Finally, the bits of the BF-BM are cleared in the bitstring of the
remaining packet.
In the absence of a match of the remaining packet, the normal
forwarding procedure continues, i.e., forwarding based on the primary
BIFT as described in <xref target="RFC8279"/>.</t>

<t>Note: If a BFR-id matches in the primary or backup BIFT, and the
transmission is not successful, the F-BM or BF-BM is still applied to
the bitstring of the remaining packet.</t>

</section>
<section anchor="f_bm_computation"><name>Computation of the Backup F-BM</name>

<t>The primary F-BM of a specific BFER identifies all BFERs that share
the same primary BFR-NBR.
The backup F-BM for a specific BFER is computed to indicate:</t>

<t><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>

</section>
<section anchor="alternative-representations-of-backup-forwarding-entries"><name>Alternative Representations of Backup Forwarding Entries</name>

<t>Alternative representations of backup forwarding entries are possible
as long as the same behavior is ensured.
Two other variants are introduced in the following sections.</t>

</section>
<section anchor="single-extended-bift"><name>Single Extended BIFT</name>

<t>The information of the primary BIFT and the backup BIFT may be
combined in a single extended BIFT.
Its structure is illustrated in <xref target="single_extended_bift"/>.</t>

<figure title="Structure of a single extended BIFT including backup forwarding entries." anchor="single_extended_bift"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="496" viewBox="0 0 496 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,96" fill="none" stroke="black"/>
<path d="M 80,32 L 80,96" fill="none" stroke="black"/>
<path d="M 136,32 L 136,96" fill="none" stroke="black"/>
<path d="M 216,32 L 216,96" fill="none" stroke="black"/>
<path d="M 288,32 L 288,96" fill="none" stroke="black"/>
<path d="M 376,32 L 376,96" fill="none" stroke="black"/>
<path d="M 448,32 L 448,96" fill="none" stroke="black"/>
<path d="M 488,32 L 488,96" fill="none" stroke="black"/>
<path d="M 8,32 L 488,32" fill="none" stroke="black"/>
<path d="M 8,62 L 488,62" fill="none" stroke="black"/><path d="M 8,66 L 488,66" fill="none" stroke="black"/>
<path d="M 8,96 L 488,96" fill="none" stroke="black"/>
<g class="text">
<text x="44" y="52">BFR-id</text>
<text x="108" y="52">F-BM</text>
<text x="176" y="52">BFR-NBR</text>
<text x="248" y="52">BF-BM</text>
<text x="332" y="52">BBFR-NBR</text>
<text x="408" y="52">BFA</text>
<text x="472" y="52">BEA</text>
<text x="40" y="84">...</text>
<text x="112" y="84">...</text>
<text x="176" y="84">...</text>
<text x="256" y="84">...</text>
<text x="328" y="84">...</text>
<text x="408" y="84">...</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
+--------+------+---------+--------+----------+--------+----+
| BFR-id | F-BM | BFR-NBR | BF-BM  | BBFR-NBR |  BFA   | BEA|
+========+======+=========+========+==========+========+====+
|  ...   |  ... |   ...   |   ...  |   ...    |  ...   |    |
+--------+------+---------+--------+----------+--------+----+
]]></artwork></artset></figure>

<t>To ensure the same behavior, the BEA flag must be set like in the
backup BIFT.
Furthermore, two matching passes through the extended BIFT are needed.
A first one matches the bitstring combined with BEA=1.
If no further match is possible, then another pass with the remaining
bitstring combined with BEA=0 is performed.</t>

</section>
<section anchor="primary-bift-and-failure-specific-backup-bifts"><name>Primary BIFT and Failure-Specific Backup BIFTs</name>

<t>To avoid two distinct passes through a BIFT, the information of the
primary BIFT and backup BIFT may be combined into a primary BIFT and
multiple failure-specific BIFTs.
Each failure-specific BIFT corresponds to a specific failure scenario.
Failure-specific backup BIFTs are structured like normal backup BIFTs,
but do not have a BEA flag as they are enabled or disabled as a whole.</t>

<t>In the absence of a failure, packets are processed using the primary
BIFT.
In case of a failure, packets are processed using a failure-specific
BIFT that matches the occurred failure.
That means, there should be failure-specific BIFTs for at least any
adjacent link to protect against all single-link failures.
To support multiple failures, even more failure-specific BIFTs are
needed.
If failure-specific BIFTs are provided for only single-link failures,
the BIFT should be taken that covers the most relevant single failure.</t>

</section>
</section>
<section anchor="Representation"><name>Illustration and the Need for Prioritized Backup Forwarding Entries</name>

<t>In this section, BIER-FRR is illustrated using a small example.
It is pointed out that unnecessary redundant packets may occur if
primary forwarding entries are erroneously applied before backup
forwarding entries.
Therefore, it is important that the backup BIFT is applied before the
primary BIFT.</t>

<section anchor="redundant_packets"><name>Example</name>

<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.</t>

<figure title="BIER network example." anchor="networking_scenario"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="512" viewBox="0 0 512 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 24,64 L 24,112" fill="none" stroke="black"/>
<path d="M 24,144 L 24,176" fill="none" stroke="black"/>
<path d="M 128,64 L 128,112" fill="none" stroke="black"/>
<path d="M 256,64 L 256,176" fill="none" stroke="black"/>
<path d="M 48,48 L 112,48" fill="none" stroke="black"/>
<path d="M 152,48 L 240,48" fill="none" stroke="black"/>
<path d="M 48,128 L 112,128" fill="none" stroke="black"/>
<path d="M 40,192 L 232,192" fill="none" stroke="black"/>
<g class="text">
<text x="72" y="36">1</text>
<text x="192" y="36">1</text>
<text x="28" y="52">B1</text>
<text x="132" y="52">B6</text>
<text x="260" y="52">B5</text>
<text x="336" y="52">BFR</text>
<text x="364" y="52">Bi</text>
<text x="388" y="52">is</text>
<text x="420" y="52">BFER</text>
<text x="324" y="68">(i</text>
<text x="344" y="68">=</text>
<text x="412" y="68">1,2,3,4,5,6,7;</text>
<text x="328" y="84">i</text>
<text x="348" y="84">is</text>
<text x="388" y="84">BFR-id</text>
<text x="428" y="84">of</text>
<text x="456" y="84">Bi)</text>
<text x="8" y="100">2</text>
<text x="144" y="100">1</text>
<text x="80" y="116">1</text>
<text x="272" y="116">1</text>
<text x="332" y="116">cost</text>
<text x="364" y="116">of</text>
<text x="396" y="116">link</text>
<text x="444" y="116">B1-&gt;B2</text>
<text x="484" y="116">is</text>
<text x="504" y="116">2</text>
<text x="28" y="132">B2</text>
<text x="132" y="132">B7</text>
<text x="332" y="132">cost</text>
<text x="364" y="132">of</text>
<text x="396" y="132">link</text>
<text x="444" y="132">B3-&gt;B4</text>
<text x="484" y="132">is</text>
<text x="504" y="132">4</text>
<text x="332" y="148">cost</text>
<text x="364" y="148">of</text>
<text x="400" y="148">other</text>
<text x="448" y="148">links</text>
<text x="484" y="148">is</text>
<text x="504" y="148">1</text>
<text x="8" y="164">1</text>
<text x="176" y="180">4</text>
<text x="20" y="196">B3</text>
<text x="252" y="196">B4</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" 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></artset></figure>

<t>In the absence of a failure, traffic for BFR-id 2 and 3 is forwarded
via BFR-NBR B2 and traffic to BFR-id 4, 5, 6, and 7 is forwarded to
BFR-NBR B6.
If a packet with bitstring 0001100 (destinations B3 and B4) is
forwarded, the row for BFR-id B3 matches first.
A packet with bitstring 0000100 is sent to B2 and the bitstring of the
remaining packet is also processed with F-BM 0001100, i.e., the
remaining bitstring is
0001000.
Then the remaining bitstring is matched again so that BFR-id B4 yields
a match.
A packet copy with bitstring 0001000 is sent to B6 and the application
of the F-BM 1111000 to the bitstring of the remaining packet results
in 0000000, which terminates the forwarding process.
This BIER forwarding process avoids redundant packet copies.</t>

<figure title="B1's primary BIFT." anchor="extended_bift_plr_redundant"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="224" viewBox="0 0 224 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,256" fill="none" stroke="black"/>
<path d="M 64,32 L 64,256" fill="none" stroke="black"/>
<path d="M 152,32 L 152,256" fill="none" stroke="black"/>
<path d="M 216,32 L 216,256" fill="none" stroke="black"/>
<path d="M 8,32 L 216,32" fill="none" stroke="black"/>
<path d="M 8,62 L 216,62" fill="none" stroke="black"/><path d="M 8,66 L 216,66" fill="none" stroke="black"/>
<path d="M 8,96 L 216,96" fill="none" stroke="black"/>
<path d="M 8,128 L 216,128" fill="none" stroke="black"/>
<path d="M 8,160 L 216,160" fill="none" stroke="black"/>
<path d="M 8,192 L 216,192" fill="none" stroke="black"/>
<path d="M 8,224 L 216,224" fill="none" stroke="black"/>
<path d="M 8,256 L 216,256" fill="none" stroke="black"/>
<g class="text">
<text x="36" y="52">BFR-id</text>
<text x="108" y="52">F-BM</text>
<text x="184" y="52">BFR-NBR</text>
<text x="40" y="84">2</text>
<text x="104" y="84">0000110</text>
<text x="180" y="84">B2</text>
<text x="40" y="116">3</text>
<text x="104" y="116">0000110</text>
<text x="180" y="116">B2</text>
<text x="40" y="148">4</text>
<text x="104" y="148">1111000</text>
<text x="180" y="148">B6</text>
<text x="40" y="180">5</text>
<text x="104" y="180">1111000</text>
<text x="180" y="180">B6</text>
<text x="40" y="212">6</text>
<text x="104" y="212">1111000</text>
<text x="180" y="212">B6</text>
<text x="40" y="244">7</text>
<text x="104" y="244">1111000</text>
<text x="180" y="244">B6</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" 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></artset></figure>

<t>A backup BIFT for B1 in the example of Figure 2 is given in
<xref target="extended_bift_plr_redundant"/>.
It implements LFA-based FRR as a protection strategy and link
protection.</t>

<t>If B1 cannot reach B2 or B6, BEA will be set to 1 in the rows for the
backup BIFT for which B2 or B6 is the BFR-NBR in the primary BIFT.
Thus, if B1 cannot reach B2, traffic for BFR-id 2 and 3 will be
forwarded over B6 and 1111110 is applied as BF-BM.
This mask also includes all the BFR-ids that have B6 as their primary
BFR-NBR.
Likewise, if B1 cannot reach B6, traffic for BFR-id 4, 5, 6, and 7
will be forwarded over B2 and again 1111110 is applied as BF-BM for
the same reason.</t>

</section>
<section anchor="lfa-based_FRR"><name>B1's backup BIFT for LFA-based FRR with link protection</name>

<figure title="B1's backup BIFT for LFA-based FRR with link protection." anchor="LFA-based"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="224" viewBox="0 0 224 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,256" fill="none" stroke="black"/>
<path d="M 64,32 L 64,256" fill="none" stroke="black"/>
<path d="M 152,32 L 152,256" fill="none" stroke="black"/>
<path d="M 216,32 L 216,256" fill="none" stroke="black"/>
<path d="M 8,32 L 216,32" fill="none" stroke="black"/>
<path d="M 8,62 L 216,62" fill="none" stroke="black"/><path d="M 8,66 L 216,66" fill="none" stroke="black"/>
<path d="M 8,96 L 216,96" fill="none" stroke="black"/>
<path d="M 8,128 L 216,128" fill="none" stroke="black"/>
<path d="M 8,160 L 216,160" fill="none" stroke="black"/>
<path d="M 8,192 L 216,192" fill="none" stroke="black"/>
<path d="M 8,224 L 216,224" fill="none" stroke="black"/>
<path d="M 8,256 L 216,256" fill="none" stroke="black"/>
<g class="text">
<text x="36" y="52">BFR-id</text>
<text x="108" y="52">F-BM</text>
<text x="184" y="52">BFR-NBR</text>
<text x="40" y="84">2</text>
<text x="104" y="84">0000110</text>
<text x="180" y="84">B2</text>
<text x="40" y="116">3</text>
<text x="104" y="116">0000110</text>
<text x="180" y="116">B2</text>
<text x="40" y="148">4</text>
<text x="104" y="148">1111000</text>
<text x="180" y="148">B6</text>
<text x="40" y="180">5</text>
<text x="104" y="180">1111000</text>
<text x="180" y="180">B6</text>
<text x="40" y="212">6</text>
<text x="104" y="212">1111000</text>
<text x="180" y="212">B6</text>
<text x="40" y="244">7</text>
<text x="104" y="244">1111000</text>
<text x="180" y="244">B6</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" 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></artset></figure>

<t>We now consider that the link B1-&gt;B2 failed and that B1 needs to
forward a packet with bitstring 0001100.
Therefore, the BEA is set for BFR-id 2 and 3 in the backup BIFT.
If B1 needs to forward a packet with bitstring 0001100 (destinations
B3 and B4), the row for BFR-id B3 in the backup BIFT matches first.
Therefore, a packet with bitstring 0001100 is sent to B6 and the
bitstring of the remaining packet is also processed with BF-BM 1111110
so that the remaining bitstring is 0000000, which terminates the
forwarding process.
That is, only a single packet copy is sent to B6.</t>

</section>
</section>
<section anchor="primary_bift_single_backup_bift"><name>Prioritization of Backup Forwarding Entries over Primary Forwarding Entries</name>

<t>BIER-FRR defines that the backup BIFT is applied before the primary
BIFT.
The reason for that is twofold.
First, applying the primary BIFT first may erase the forwarding
information for BFERs whos primary BFR-NBR is unreachable.
Second, if that can be fixed, redundant packets can occur if the
primary BIFT is applied before the backup BIFT.
These issues are demonstrated in the above example when the link
B1-&gt;B2 has failed and B1 applies the primary BIFT before the backup
BIFT when forwarding a packet with bitstring 0011000 (B3 and B4 as
destinations).</t>

<t>We first assume that B1 just ignores the failed interface when
forwarding the packet with the primary BIFT but processes the
bitstring of remaining packet like if the transmission was successful.
That means, when BFR-id 3 matches first in the primary BIFT, no packet
is sent to B2, but the bits in the bitstring are still cleared,
leading to a remaining bitstring of 0001000.
Another pass through the primary BIFT forwards a packet copy to B6 and
clears the remaining bitstring to 0000000, which terminates the
forwarding process.
However, no packet will reach B3 as the bitstring information was lost
during the unsuccessful transmission.</t>

<t>We now assume a feature that saves the bitstring information when the
transmission to a specific BFR-id was not successful.
This can be done by AND-ing the remaining bitstring and the F-BM and
OR-ing the result with a remaining backup bitstring which was
initially zero.
Only then the bits of the F-BM are cleared from the remaining
bitstring.
When B1 is to forward a packet with bitstring 0001100, the first match
in the primary BIFT is for BFR-id 3.
As the transmission is not successful, 00000100 is saved in the
remaining backup bitstring and the remaining bitstring is 0001000.
Therefore, a second match in the primary BIFT is for BFR-id 4, which
sends a packet copy with bitstring 0001000 to B6.
Then, the remaining backup bitstring is processed with the backup
BIFT.
As there is a match for BFR-id 3, another packet is sent to B6, now
with bitstring 0000100.
This can be considered redundant.</t>

<t>Below the line, it is important to first process backup forwarding
entries before backup forwarding entries.
This avoids additions to the forwarding process with the primary BIFT
and avoids redundant packets.</t>

</section>
<section anchor="Protection_Levels"><name>Protection Levels</name>

<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"><name>Link Protection</name>

<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 with link protection cannot protect
against the failure of the primary BFR-NBR.</t>

</section>
<section anchor="node_protection"><name>Node Protection</name>

<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 with link protection also protects
against the failure of the primary BFR-NBR.
If a BFER and its primary BFR-NBR are the same, only link protection
is feasible for that BFER.</t>

</section>
<section anchor="protection_example"><name>Example</name>

<t>In the network depicted in <xref target="networking_scenario"/>, the primary path
from BFR B1 to BFER B5 is B1-&gt;B6-&gt;B5.
Protecting BFER B5 from a BFR-NBR B6 node failure can only be provided
through the backup path B1-&gt;B2-&gt;B3-&gt;B4-&gt;B5.
Link protection for BFER B5 is achieved via the backup path
B1-&gt;B2-&gt;B7-&gt;B6, and additionally through the backup path
B1-&gt;B2-&gt;B3-&gt;B4-&gt;B5-&gt;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>
<section anchor="Strategies"><name>Backup Strategies</name>

<t>Backup strategies determine the selection of backup forwarding
entries, influencing both the choice of the backup BFR-NBR and the
backup forwarding action, and consequently, the backup path.
The following sections present tunnel-based BIER-FRR and LFA-based
BIER-FRR as potential strategies.
Both can be implemented with BIER-FRR presented in Section 3.</t>

<section anchor="Tunnel_Based"><name>Tunnel-Based BIER-FRR</name>

<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 (Direct), 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 anchor="tunnel-based-bier-frr-with-link-protection"><name>Tunnel-Based BIER-FRR with Link Protection</name>

<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 pure 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, which is
consistent with the computation of backup F-BMs described in
<xref target="f_bm_computation"/>.</t>

<figure title="B1's backup BIFT for tunnel-based BIER-FRR with link protection." anchor="backup_bift_tunnel_based_link_protection"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="504" viewBox="0 0 504 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,272" fill="none" stroke="black"/>
<path d="M 64,32 L 64,272" fill="none" stroke="black"/>
<path d="M 152,32 L 152,272" fill="none" stroke="black"/>
<path d="M 224,32 L 224,272" fill="none" stroke="black"/>
<path d="M 320,32 L 320,272" fill="none" stroke="black"/>
<path d="M 352,32 L 352,272" fill="none" stroke="black"/>
<path d="M 496,32 L 496,272" fill="none" stroke="black"/>
<path d="M 8,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,78 L 496,78" fill="none" stroke="black"/><path d="M 8,82 L 496,82" fill="none" stroke="black"/>
<path d="M 8,112 L 496,112" fill="none" stroke="black"/>
<path d="M 8,144 L 496,144" fill="none" stroke="black"/>
<path d="M 8,176 L 496,176" fill="none" stroke="black"/>
<path d="M 8,208 L 496,208" fill="none" stroke="black"/>
<path d="M 8,240 L 496,240" fill="none" stroke="black"/>
<path d="M 8,272 L 496,272" fill="none" stroke="black"/>
<g class="text">
<text x="36" y="52">BFR-id</text>
<text x="104" y="52">BF-BM</text>
<text x="188" y="52">BBFR-NBR</text>
<text x="264" y="52">BFA</text>
<text x="336" y="52">BEA</text>
<text x="388" y="52">Comment:</text>
<text x="460" y="52">protects</text>
<text x="400" y="68">failure</text>
<text x="444" y="68">of</text>
<text x="40" y="100">2</text>
<text x="104" y="100">0000110</text>
<text x="180" y="100">B2</text>
<text x="268" y="100">Tunnel</text>
<text x="388" y="100">Link</text>
<text x="436" y="100">B1-&gt;B2</text>
<text x="40" y="132">3</text>
<text x="104" y="132">0000110</text>
<text x="180" y="132">B2</text>
<text x="268" y="132">Tunnel</text>
<text x="388" y="132">Link</text>
<text x="436" y="132">B1-&gt;B2</text>
<text x="40" y="164">4</text>
<text x="104" y="164">1111000</text>
<text x="180" y="164">B6</text>
<text x="268" y="164">Tunnel</text>
<text x="388" y="164">Link</text>
<text x="436" y="164">B1-&gt;B6</text>
<text x="40" y="196">5</text>
<text x="104" y="196">1111000</text>
<text x="180" y="196">B6</text>
<text x="268" y="196">Tunnel</text>
<text x="388" y="196">Link</text>
<text x="436" y="196">B1-&gt;B6</text>
<text x="40" y="228">6</text>
<text x="104" y="228">1111000</text>
<text x="180" y="228">B6</text>
<text x="268" y="228">Tunnel</text>
<text x="388" y="228">Link</text>
<text x="436" y="228">B1-&gt;B6</text>
<text x="40" y="260">7</text>
<text x="104" y="260">1111000</text>
<text x="180" y="260">B6</text>
<text x="268" y="260">Tunnel</text>
<text x="388" y="260">Link</text>
<text x="436" y="260">B1-&gt;B6</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" 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></artset></figure>

<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.
However, the backup actions in this backup BIFT are Tunnel, while the
primary forwarding actions in the primary BIFT are Direct (which are
not explicitly shown but are implicit).</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-&gt;B2-&gt;B7-&gt;B6 or B1-&gt;B2-&gt;B3-&gt;B4-&gt;B5-&gt;B6.</t>

<t>If a BIER packet is destined for {B2, B5, B7}, an encapsulated packet
copy is first forwarded via link B1-&gt;B2 to backup BFR-NBR B6 using the
backup forwarding action Tunnel to deliver packet copies to BFERs B5
and B7.
Subsequently, a non-encapsulated packet copy is forwarded via link
B1-&gt;B2 to BFR-NBR B2 using the primary forwarding action Direct to
deliver a packet copy to BFER B2.
Therefore, with tunnel-based BIER-FRR, and link protection, 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.
The redundant packet is rather caused by the fact that two packet
copies are sent over the link with different next-hops on the BIER
layer, namely B2 and B6.</t>

<t>A BIER packet with the bitstring 1000000 destined for B7 is forwarded
along the backup path B1-&gt;B2-&gt;B7-&gt;B6-&gt;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 anchor="tunnel-based-bier-frr-with-node-protection"><name>Tunnel-Based BIER-FRR with Node Protection</name>

<t>To determine the backup forwarding entries for node protection, two
cases need to be distinguished.
If the BFER is the same as its primary BFR-NBR, node protection is not
feasible for that BFER.
Therefore, link protection is applied, meaning the backup BFR-NBR is
set to the primary BFR-NBR.
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 both cases, the backup forwarding 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"/>.</t>

<figure title="B1's backup BIFT for tunnel-based BIER-FRR with node protection." anchor="backup_bift_tunnel_based_node_protection"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="496" viewBox="0 0 496 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,272" fill="none" stroke="black"/>
<path d="M 64,32 L 64,272" fill="none" stroke="black"/>
<path d="M 152,32 L 152,272" fill="none" stroke="black"/>
<path d="M 224,32 L 224,272" fill="none" stroke="black"/>
<path d="M 312,32 L 312,272" fill="none" stroke="black"/>
<path d="M 344,32 L 344,272" fill="none" stroke="black"/>
<path d="M 488,32 L 488,272" fill="none" stroke="black"/>
<path d="M 8,32 L 488,32" fill="none" stroke="black"/>
<path d="M 8,78 L 488,78" fill="none" stroke="black"/><path d="M 8,82 L 488,82" fill="none" stroke="black"/>
<path d="M 8,112 L 488,112" fill="none" stroke="black"/>
<path d="M 8,144 L 488,144" fill="none" stroke="black"/>
<path d="M 8,176 L 488,176" fill="none" stroke="black"/>
<path d="M 8,208 L 488,208" fill="none" stroke="black"/>
<path d="M 8,240 L 488,240" fill="none" stroke="black"/>
<path d="M 8,272 L 488,272" fill="none" stroke="black"/>
<g class="text">
<text x="36" y="52">BFR-id</text>
<text x="104" y="52">BF-BM</text>
<text x="188" y="52">BBFR-NBR</text>
<text x="264" y="52">BFA</text>
<text x="328" y="52">BEA</text>
<text x="380" y="52">Comment:</text>
<text x="452" y="52">protects</text>
<text x="392" y="68">failure</text>
<text x="436" y="68">of</text>
<text x="40" y="100">2</text>
<text x="104" y="100">0000010</text>
<text x="188" y="100">B2</text>
<text x="268" y="100">Tunnel</text>
<text x="380" y="100">Link</text>
<text x="428" y="100">B1-&gt;B2</text>
<text x="40" y="132">3</text>
<text x="104" y="132">0000100</text>
<text x="188" y="132">B3</text>
<text x="268" y="132">Tunnel</text>
<text x="392" y="132">BFR-NBR</text>
<text x="436" y="132">B2</text>
<text x="40" y="164">4</text>
<text x="104" y="164">0011000</text>
<text x="188" y="164">B5</text>
<text x="268" y="164">Tunnel</text>
<text x="392" y="164">BFR-NBR</text>
<text x="436" y="164">B6</text>
<text x="40" y="196">5</text>
<text x="104" y="196">0011000</text>
<text x="188" y="196">B5</text>
<text x="268" y="196">Tunnel</text>
<text x="392" y="196">BFR-NBR</text>
<text x="436" y="196">B6</text>
<text x="40" y="228">6</text>
<text x="104" y="228">0100000</text>
<text x="188" y="228">B6</text>
<text x="268" y="228">Tunnel</text>
<text x="380" y="228">Link</text>
<text x="428" y="228">B1-&gt;B6</text>
<text x="40" y="260">7</text>
<text x="104" y="260">1000000</text>
<text x="188" y="260">B7</text>
<text x="268" y="260">Tunnel</text>
<text x="392" y="260">BFR-NBR</text>
<text x="436" y="260">B6</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" 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></artset></figure>

<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-NBRs for these nodes are 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-&gt;B2-&gt;B3-&gt;B4-&gt;B5, another encapsulated copy is sent via
tunnel B1-B2-B7, and a non-encapsulated copy is sent via link B1-&gt;B2.
In this example, two redundant packets are sent over link B1-&gt;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-&gt;B2-&gt;B7-&gt;B6-&gt;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>
<section anchor="LFA_Based"><name>LFA-based BIER-FRR</name>

<t>LFA-based BIER-FRR leverages alternate BFRs to deliver BIER packets to
BFERs if their 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 anchor="relation-of-bier-lfas-to-ip-lfas-and-prerequisites"><name>Relation of BIER-LFAs to IP-LFAs and Prerequisites</name>

<t>An 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 forwarding action Direct, a
remote IP-LFA to Tunnel, and a TI-IP-LFA to Explicit.</t>

</section>
<section anchor="definition-of-bier-lfas"><name>Definition of BIER-LFAs</name>

<t>As with IP-LFAs, there are several types of BIER-LFAs:</t>

<t><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.</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 the protection of some BFERs, one or more normal BIER-LFAs may be
available at a specific PLR.
For the protection of other BFERs, only remote or TI-BIER-LFAs may be
available.
There may also be BFERs which can be protected only through
TI-BIER-LFAs.</t>

<t>The backup forwarding actions for rerouting BIER packets depending on
the type of BIER-LFA are:</t>

<t><list style="symbols">
  <t>For normal BIER-LFA: Direct</t>
  <t>For remote BIER-LFA: Tunnel</t>
  <t>For TI-BIER-LFA: Explicit</t>
</list></t>

</section>
<section anchor="bier_lfa_protection_coverage"><name>Protection Coverage of BIER-LFA Types</name>

<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:</t>

<t><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 protection 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>
      <t>There is increased complexity as segment routing, or some other
forms of explicit tunnels, needs to be supported by the routing
underlay.</t>
    </list></t>
</list></t>

</section>
<section anchor="sets-of-supported-bier-lfas"><name>Sets of Supported BIER-LFAs</name>

<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 BIER-LFAs, 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:</t>

<t><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>

<t>Options 1 and 2 may not be able to protect the reachability of all
BFERs against all single link failures and all single node failures.</t>

</section>
<section anchor="lfa-based-1backup-bift-link-protect"><name>Link Protection</name>

<t>In the following, LFA-based BIER-FRR with link protection is
illustrated.
Thereby, normal BIER-LFAs are prioritized over remote LFAs, and remote
BIER-LFAs are preferred over TI-BIER-LFAs.
Depending on the specific PLR, simple BIER-LFAs are sufficient, remote
BIER-LFAs are needed, or even TI-BIER-LFAs to protect the reachability
of all BFERs against single link failures.</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 backup forwarding action Direct, 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 next-hops on the BIER layer,
all of them must be transmitted, resulting in three redundant copies.</t>

<figure title="B7's backup BIFT with link protection." anchor="b7-backup_bift_lfa-based-link-protect"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="504" viewBox="0 0 504 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,272" fill="none" stroke="black"/>
<path d="M 64,32 L 64,272" fill="none" stroke="black"/>
<path d="M 152,32 L 152,272" fill="none" stroke="black"/>
<path d="M 224,32 L 224,272" fill="none" stroke="black"/>
<path d="M 320,32 L 320,272" fill="none" stroke="black"/>
<path d="M 352,32 L 352,272" fill="none" stroke="black"/>
<path d="M 496,32 L 496,272" fill="none" stroke="black"/>
<path d="M 8,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,78 L 496,78" fill="none" stroke="black"/><path d="M 8,82 L 496,82" fill="none" stroke="black"/>
<path d="M 8,112 L 496,112" fill="none" stroke="black"/>
<path d="M 8,144 L 496,144" fill="none" stroke="black"/>
<path d="M 8,176 L 496,176" fill="none" stroke="black"/>
<path d="M 8,208 L 496,208" fill="none" stroke="black"/>
<path d="M 8,240 L 496,240" fill="none" stroke="black"/>
<path d="M 8,272 L 496,272" fill="none" stroke="black"/>
<g class="text">
<text x="36" y="52">BFR-id</text>
<text x="104" y="52">BF-BM</text>
<text x="188" y="52">BBFR-NBR</text>
<text x="264" y="52">BFA</text>
<text x="336" y="52">BEA</text>
<text x="388" y="52">Comment:</text>
<text x="460" y="52">protects</text>
<text x="400" y="68">failure</text>
<text x="444" y="68">of</text>
<text x="40" y="100">1</text>
<text x="104" y="100">0000111</text>
<text x="188" y="100">B2</text>
<text x="268" y="100">Direct</text>
<text x="388" y="100">Link</text>
<text x="436" y="100">B7-&gt;B6</text>
<text x="40" y="132">2</text>
<text x="104" y="132">0000110</text>
<text x="188" y="132">B1</text>
<text x="268" y="132">Tunnel</text>
<text x="388" y="132">Link</text>
<text x="436" y="132">B1-&gt;B2</text>
<text x="40" y="164">3</text>
<text x="104" y="164">0000110</text>
<text x="188" y="164">B1</text>
<text x="268" y="164">Tunnel</text>
<text x="388" y="164">Link</text>
<text x="436" y="164">B1-&gt;B2</text>
<text x="40" y="196">4</text>
<text x="104" y="196">0001000</text>
<text x="188" y="196">B3</text>
<text x="268" y="196">Tunnel</text>
<text x="388" y="196">Link</text>
<text x="436" y="196">B1-&gt;B6</text>
<text x="40" y="228">5</text>
<text x="104" y="228">0010000</text>
<text x="188" y="228">B4</text>
<text x="276" y="228">Explicit</text>
<text x="388" y="228">Link</text>
<text x="436" y="228">B1-&gt;B6</text>
<text x="40" y="260">6</text>
<text x="104" y="260">0100000</text>
<text x="188" y="260">B1</text>
<text x="276" y="260">Explicit</text>
<text x="388" y="260">Link</text>
<text x="436" y="260">B1-&gt;B6</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
  +------+----------+--------+-----------+---+-----------------+
  |BFR-id|  BF-BM   |BBFR-NBR|   BFA     |BEA|Comment: protects|
  |      |          |        |           |   |  failure of     |
  +======+==========+========+===========+===+=================+
  |   1  | 0000111  |   B2   |  Direct   |   |  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></artset></figure>

<figure title="B5's backup BIFT with link protection." anchor="b5-backup_bift_link-protect"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="504" viewBox="0 0 504 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,272" fill="none" stroke="black"/>
<path d="M 64,32 L 64,272" fill="none" stroke="black"/>
<path d="M 152,32 L 152,272" fill="none" stroke="black"/>
<path d="M 224,32 L 224,272" fill="none" stroke="black"/>
<path d="M 320,32 L 320,272" fill="none" stroke="black"/>
<path d="M 352,32 L 352,272" fill="none" stroke="black"/>
<path d="M 496,32 L 496,272" fill="none" stroke="black"/>
<path d="M 8,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,78 L 496,78" fill="none" stroke="black"/><path d="M 8,82 L 496,82" fill="none" stroke="black"/>
<path d="M 8,112 L 496,112" fill="none" stroke="black"/>
<path d="M 8,144 L 496,144" fill="none" stroke="black"/>
<path d="M 8,176 L 496,176" fill="none" stroke="black"/>
<path d="M 8,208 L 496,208" fill="none" stroke="black"/>
<path d="M 8,240 L 496,240" fill="none" stroke="black"/>
<path d="M 8,272 L 496,272" fill="none" stroke="black"/>
<g class="text">
<text x="36" y="52">BFR-id</text>
<text x="104" y="52">BF-BM</text>
<text x="188" y="52">BBFR-NBR</text>
<text x="264" y="52">BFA</text>
<text x="336" y="52">BEA</text>
<text x="388" y="52">Comment:</text>
<text x="460" y="52">protects</text>
<text x="400" y="68">failure</text>
<text x="444" y="68">of</text>
<text x="40" y="100">1</text>
<text x="104" y="100">1100011</text>
<text x="188" y="100">B3</text>
<text x="276" y="100">Explicit</text>
<text x="388" y="100">Link</text>
<text x="436" y="100">B5-&gt;B6</text>
<text x="40" y="132">2</text>
<text x="104" y="132">1100011</text>
<text x="188" y="132">B3</text>
<text x="276" y="132">Explicit</text>
<text x="388" y="132">Link</text>
<text x="436" y="132">B5-&gt;B6</text>
<text x="40" y="164">3</text>
<text x="104" y="164">0000100</text>
<text x="188" y="164">B4</text>
<text x="268" y="164">Direct</text>
<text x="388" y="164">Link</text>
<text x="436" y="164">B5-&gt;B6</text>
<text x="40" y="196">4</text>
<text x="104" y="196">0001000</text>
<text x="188" y="196">B3</text>
<text x="268" y="196">Tunnel</text>
<text x="388" y="196">Link</text>
<text x="436" y="196">B5-&gt;B4</text>
<text x="40" y="228">6</text>
<text x="104" y="228">1100011</text>
<text x="188" y="228">B3</text>
<text x="276" y="228">Explicit</text>
<text x="388" y="228">Link</text>
<text x="436" y="228">B5-&gt;B6</text>
<text x="40" y="260">7</text>
<text x="104" y="260">1100011</text>
<text x="188" y="260">B3</text>
<text x="276" y="260">Explicit</text>
<text x="388" y="260">Link</text>
<text x="436" y="260">B5-&gt;B6</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" 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   |  Direct   |   |  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></artset></figure>

</section>
<section anchor="node-protection"><name>Node Protection</name>

<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"/>.</t>

<figure title="B1's backup BIFT with node protection." anchor="b1-backup_bift_node-protect"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="504" viewBox="0 0 504 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,272" fill="none" stroke="black"/>
<path d="M 64,32 L 64,272" fill="none" stroke="black"/>
<path d="M 152,32 L 152,272" fill="none" stroke="black"/>
<path d="M 224,32 L 224,272" fill="none" stroke="black"/>
<path d="M 320,32 L 320,272" fill="none" stroke="black"/>
<path d="M 352,32 L 352,272" fill="none" stroke="black"/>
<path d="M 496,32 L 496,272" fill="none" stroke="black"/>
<path d="M 8,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,78 L 496,78" fill="none" stroke="black"/><path d="M 8,82 L 496,82" fill="none" stroke="black"/>
<path d="M 8,112 L 496,112" fill="none" stroke="black"/>
<path d="M 8,144 L 496,144" fill="none" stroke="black"/>
<path d="M 8,176 L 496,176" fill="none" stroke="black"/>
<path d="M 8,208 L 496,208" fill="none" stroke="black"/>
<path d="M 8,240 L 496,240" fill="none" stroke="black"/>
<path d="M 8,272 L 496,272" fill="none" stroke="black"/>
<g class="text">
<text x="36" y="52">BFR-id</text>
<text x="104" y="52">BF-BM</text>
<text x="188" y="52">BBFR-NBR</text>
<text x="264" y="52">BFA</text>
<text x="336" y="52">BEA</text>
<text x="388" y="52">Comment:</text>
<text x="460" y="52">protects</text>
<text x="400" y="68">failure</text>
<text x="444" y="68">of</text>
<text x="40" y="100">2</text>
<text x="104" y="100">1111010</text>
<text x="188" y="100">B6</text>
<text x="268" y="100">Direct</text>
<text x="400" y="100">BFR-NBR</text>
<text x="444" y="100">B2</text>
<text x="40" y="132">3</text>
<text x="104" y="132">0000100</text>
<text x="188" y="132">B4</text>
<text x="268" y="132">Tunnel</text>
<text x="400" y="132">BFR-NBR</text>
<text x="444" y="132">B2</text>
<text x="40" y="164">4</text>
<text x="104" y="164">0001000</text>
<text x="188" y="164">B3</text>
<text x="268" y="164">Tunnel</text>
<text x="400" y="164">BFR-NBR</text>
<text x="444" y="164">B6</text>
<text x="40" y="196">5</text>
<text x="104" y="196">0010000</text>
<text x="188" y="196">B4</text>
<text x="276" y="196">Explicit</text>
<text x="400" y="196">BFR-NBR</text>
<text x="444" y="196">B6</text>
<text x="40" y="228">6</text>
<text x="104" y="228">1100100</text>
<text x="188" y="228">B2</text>
<text x="268" y="228">Direct</text>
<text x="400" y="228">BFR-NBR</text>
<text x="444" y="228">B6</text>
<text x="40" y="260">7</text>
<text x="104" y="260">1100100</text>
<text x="188" y="260">B2</text>
<text x="268" y="260">Direct</text>
<text x="400" y="260">BFR-NBR</text>
<text x="444" y="260">B6</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
  +------+----------+--------+-----------+---+-----------------+
  |BFR-id|  BF-BM   |BBFR-NBR|   BFA     |BEA|Comment: protects|
  |      |          |        |           |   |  failure of     |
  +======+==========+========+===========+===+=================+
  |   2  | 1111010  |   B6   |  Direct   |   |  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   |  Direct   |   |  BFR-NBR B6     |
  +------+----------+--------+-----------+---+-----------------+
  |   7  | 1100100  |   B2   |  Direct   |   |  BFR-NBR B6     |
  +------+----------+--------+-----------+---+-----------------+
]]></artwork></artset></figure>

<t>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-&gt;B2 with the backup
forwarding action Direct 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-BIER-LFA for BFER B5 as B4 is
reachable through the explicit path B1-&gt;B2-&gt;B3-&gt;B4 and has a shortest
path to B5 that does not traverse B6.</t>

<t>Consider a scenario where B1 holds a BIER packet with destinations
{B4, B5, B6}.
If the link between B1 and B2 fails, the packet copy for B1 is sent to
B2 using the backup forwarding action Direct, a packet copy for B4 is
tunneled via B2, and a packet copy for B5 is sent via an explicit path
to B4.
Since these packet copies have different next-hops on the BIER layer,
all of them must be transmitted, resulting in two redundant copies.</t>

</section>
<section anchor="optimization-potential-to-reduce-redundant-bier-packets-in-failure-cases"><name>Optimization Potential to Reduce Redundant BIER Packets in Failure Cases</name>

<t>Redundant packets can occur with LFA-based BIER-FRR when BIER packets
are transmitted over a specific link in different forms, including:</t>

<t><list style="symbols">
  <t>Directly sent 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></t>

<t>When different remote BIER-LFAs are utilized, multiple redundant
packets may be generated.
A similar situation can arise with TI-BIER-LFAs.
However, some redundant packets can be mitigated if remote BIER-LFAs
or TI-BIER-LFAs are selected such that they can protect multiple
BFERs, thereby reducing the need for additional remote BIER-LFAs or
TI-BIER-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>
</section>
</section>
<section anchor="Comparison"><name>Comparison</name>

<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 anchor="comparison-of-lfa-based-protection-for-ip-frr-and-bier-frr"><name>Comparison of LFA-Based Protection for IP-FRR and BIER-FRR</name>

<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 unprotectable 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 next-hop on the BIER
layer 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 find normal BIER-LFAs
which do not require tunneling.
As a result, LFA-based BIER-FRR is likely to require more remote
BIER-LFAs and TI-BIER-LFAs than IP-FRR under such conditions.</t>

</section>
<section anchor="advantages-and-disadvantages-of-tunnel-based-bier-frr"><name>Advantages and Disadvantages of Tunnel-Based BIER-FRR</name>

<section anchor="advantages"><name>Advantages</name>

<t><list style="symbols">
  <t>The computation of backup forwarding entries for tunnel-based
BIER-FRR is straightforward, requiring only the primary BIFTs of a
PLR and its BFR-NBRs.
No routing information from the routing underlay is needed.</t>
  <t>The forwarding action "Explicit" is not required for tunnel-based
BIER-FRR.
However, depending on the underlay, explicit forwarding may still be
utilized to achieve FRR in the underlay.</t>
</list></t>

</section>
<section anchor="disadvantages"><name>Disadvantages</name>

<t><list style="symbols">
  <t>Tunnel-based BIER-FRR relies on the presence of a FRR mechanism in
the underlay.</t>
  <t>Its protection level 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>Backup paths may be longer than with LFA-based BIER-FRR.</t>
  <t>A tunneling header is required for any rerouting, resulting in
additional header overhead.</t>
</list></t>

</section>
</section>
<section anchor="advantages-and-disadvantages-of-lfa-based-bier-frr"><name>Advantages and Disadvantages of LFA-Based BIER-FRR</name>

<section anchor="advantages-1"><name>Advantages</name>

<t><list style="symbols">
  <t>LFA-based BIER-FRR does not depend on any fast protection mechanisms
in the underlay.</t>
  <t>Therefore, 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>LFA-based BIER-FRR avoids header overhead for normal BIER-LFAs.</t>
</list></t>

</section>
<section anchor="disadvantages-1"><name>Disadvantages</name>

<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 because then BIER-LFAs
differ from IP-LFAs.</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 BIER-LFAs and TI-BIER-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 as simple BIER-LFAs
do not require a tunnel.</t>
</list></t>

</section>
</section>
</section>
<section anchor="Security"><name>Security Considerations</name>

<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"><name>IANA Considerations</name>

<t>No requirements for IANA.</t>

</section>
<section numbered="false" anchor="acknowledgments"><name>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>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC5286">
  <front>
    <title>Basic Specification for IP Fast Reroute: Loop-Free Alternates</title>
    <author fullname="A. Atlas" initials="A." role="editor" surname="Atlas"/>
    <author fullname="A. Zinin" initials="A." role="editor" surname="Zinin"/>
    <date month="September" year="2008"/>
    <abstract>
      <t>This document describes the use of loop-free alternates to provide local protection for unicast traffic in pure IP and MPLS/LDP networks in the event of a single failure, whether link, node, or shared risk link group (SRLG). The goal of this technology is to reduce the packet loss that happens while routers converge after a topology change due to a failure. Rapid failure repair is achieved through use of precalculated backup next-hops that are loop-free and safe to use until the distributed network convergence process completes. This simple approach does not require any support from other routers. The extent to which this goal can be met by this specification is dependent on the topology of the network. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5286"/>
  <seriesInfo name="DOI" value="10.17487/RFC5286"/>
</reference>

<reference anchor="RFC7431">
  <front>
    <title>Multicast-Only Fast Reroute</title>
    <author fullname="A. Karan" initials="A." surname="Karan"/>
    <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
    <author fullname="IJ. Wijnands" initials="IJ." role="editor" surname="Wijnands"/>
    <author fullname="B. Decraene" initials="B." surname="Decraene"/>
    <date month="August" year="2015"/>
    <abstract>
      <t>As IPTV deployments grow in number and size, service providers are looking for solutions that minimize the service disruption due to faults in the IP network carrying the packets for these services. This document describes a mechanism for minimizing packet loss in a network when node or link failures occur. Multicast-only Fast Reroute (MoFRR) works by making simple enhancements to multicast routing protocols such as Protocol Independent Multicast (PIM) and Multipoint LDP (mLDP).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7431"/>
  <seriesInfo name="DOI" value="10.17487/RFC7431"/>
</reference>

<reference anchor="RFC8279">
  <front>
    <title>Multicast Using Bit Index Explicit Replication (BIER)</title>
    <author fullname="IJ. Wijnands" initials="IJ." role="editor" surname="Wijnands"/>
    <author fullname="E. Rosen" initials="E." role="editor" surname="Rosen"/>
    <author fullname="A. Dolganow" initials="A." surname="Dolganow"/>
    <author fullname="T. Przygienda" initials="T." surname="Przygienda"/>
    <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
    <date month="November" year="2017"/>
    <abstract>
      <t>This document specifies a new architecture for the forwarding of multicast data packets. It provides optimal forwarding of multicast packets through a "multicast domain". However, it does not require a protocol for explicitly building multicast distribution trees, nor does it require intermediate nodes to maintain any per-flow state. This architecture is known as "Bit Index Explicit Replication" (BIER). When a multicast data packet enters the domain, the ingress router determines the set of egress routers to which the packet needs to be sent. The ingress router then encapsulates the packet in a BIER header. The BIER header contains a bit string in which each bit represents exactly one egress router in the domain; to forward the packet to a given set of egress routers, the bits corresponding to those routers are set in the BIER header. The procedures for forwarding a packet based on its BIER header are specified in this document. Elimination of the per-flow state and the explicit tree-building protocols results in a considerable simplification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8279"/>
  <seriesInfo name="DOI" value="10.17487/RFC8279"/>
</reference>

<reference anchor="RFC7490">
  <front>
    <title>Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)</title>
    <author fullname="S. Bryant" initials="S." surname="Bryant"/>
    <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
    <author fullname="S. Previdi" initials="S." surname="Previdi"/>
    <author fullname="M. Shand" initials="M." surname="Shand"/>
    <author fullname="N. So" initials="N." surname="So"/>
    <date month="April" year="2015"/>
    <abstract>
      <t>This document describes an extension to the basic IP fast reroute mechanism, described in RFC 5286, that provides additional backup connectivity for point-to-point link failures when none can be provided by the basic mechanisms.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7490"/>
  <seriesInfo name="DOI" value="10.17487/RFC7490"/>
</reference>

<reference anchor="RFC5880">
  <front>
    <title>Bidirectional Forwarding Detection (BFD)</title>
    <author fullname="D. Katz" initials="D." surname="Katz"/>
    <author fullname="D. Ward" initials="D." surname="Ward"/>
    <date month="June" year="2010"/>
    <abstract>
      <t>This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency. It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5880"/>
  <seriesInfo name="DOI" value="10.17487/RFC5880"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RSVP-TE">
  <front>
    <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
    <author fullname="D. Awduche" initials="D." surname="Awduche"/>
    <author fullname="L. Berger" initials="L." surname="Berger"/>
    <author fullname="D. Gan" initials="D." surname="Gan"/>
    <author fullname="T. Li" initials="T." surname="Li"/>
    <author fullname="V. Srinivasan" initials="V." surname="Srinivasan"/>
    <author fullname="G. Swallow" initials="G." surname="Swallow"/>
    <date month="December" year="2001"/>
    <abstract>
      <t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels. A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3209"/>
  <seriesInfo name="DOI" value="10.17487/RFC3209"/>
</reference>

<reference anchor="RFC4090">
  <front>
    <title>Fast Reroute Extensions to RSVP-TE for LSP Tunnels</title>
    <author fullname="P. Pan" initials="P." role="editor" surname="Pan"/>
    <author fullname="G. Swallow" initials="G." role="editor" surname="Swallow"/>
    <author fullname="A. Atlas" initials="A." role="editor" surname="Atlas"/>
    <date month="May" year="2005"/>
    <abstract>
      <t>This document defines RSVP-TE extensions to establish backup label-switched path (LSP) tunnels for local repair of LSP tunnels. These mechanisms enable the re-direction of traffic onto backup LSP tunnels in 10s of milliseconds, in the event of a failure.</t>
      <t>Two methods are defined here. The one-to-one backup method creates detour LSPs for each protected LSP at each potential point of local repair. The facility backup method creates a bypass tunnel to protect a potential failure point; by taking advantage of MPLS label stacking, this bypass tunnel can protect a set of LSPs that have similar backup constraints. Both methods can be used to protect links and nodes during network failure. The described behavior and extensions to RSVP allow nodes to implement either method or both and to interoperate in a mixed network. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4090"/>
  <seriesInfo name="DOI" value="10.17487/RFC4090"/>
</reference>

<reference anchor="IP-FRR">
  <front>
    <title>IP Fast Reroute Framework</title>
    <author fullname="M. Shand" initials="M." surname="Shand"/>
    <author fullname="S. Bryant" initials="S." surname="Bryant"/>
    <date month="January" year="2010"/>
    <abstract>
      <t>This document provides a framework for the development of IP fast- reroute mechanisms that provide protection against link or router failure by invoking locally determined repair paths. Unlike MPLS fast-reroute, the mechanisms are applicable to a network employing conventional IP routing and forwarding. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5714"/>
  <seriesInfo name="DOI" value="10.17487/RFC5714"/>
</reference>

<reference anchor="mLDP">
  <front>
    <title>Label Distribution Protocol Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths</title>
    <author fullname="IJ. Wijnands" initials="IJ." role="editor" surname="Wijnands"/>
    <author fullname="I. Minei" initials="I." role="editor" surname="Minei"/>
    <author fullname="K. Kompella" initials="K." surname="Kompella"/>
    <author fullname="B. Thomas" initials="B." surname="Thomas"/>
    <date month="November" year="2011"/>
    <abstract>
      <t>This document describes extensions to the Label Distribution Protocol (LDP) for the setup of point-to-multipoint (P2MP) and multipoint-to-multipoint (MP2MP) Label Switched Paths (LSPs) in MPLS networks. These extensions are also referred to as multipoint LDP. Multipoint LDP constructs the P2MP or MP2MP LSPs without interacting with or relying upon any other multicast tree construction protocol. Protocol elements and procedures for this solution are described for building such LSPs in a receiver-initiated manner. There can be various applications for multipoint LSPs, for example IP multicast or support for multicast in BGP/MPLS Layer 3 Virtual Private Networks (L3VPNs). Specification of how such applications can use an LDP signaled multipoint LSP is outside the scope of this document. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6388"/>
  <seriesInfo name="DOI" value="10.17487/RFC6388"/>
</reference>

<reference anchor="PIM-SM">
  <front>
    <title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)</title>
    <author fullname="B. Fenner" initials="B." surname="Fenner"/>
    <author fullname="M. Handley" initials="M." surname="Handley"/>
    <author fullname="H. Holbrook" initials="H." surname="Holbrook"/>
    <author fullname="I. Kouvelas" initials="I." surname="Kouvelas"/>
    <author fullname="R. Parekh" initials="R." surname="Parekh"/>
    <author fullname="Z. Zhang" initials="Z." surname="Zhang"/>
    <author fullname="L. Zheng" initials="L." surname="Zheng"/>
    <date month="March" year="2016"/>
    <abstract>
      <t>This document specifies Protocol Independent Multicast - Sparse Mode (PIM-SM). PIM-SM is a multicast routing protocol that can use the underlying unicast routing information base or a separate multicast-capable routing information base. It builds unidirectional shared trees rooted at a Rendezvous Point (RP) per group, and it optionally creates shortest-path trees per source.</t>
      <t>This document obsoletes RFC 4601 by replacing it, addresses the errata filed against it, removes the optional (*,*,RP), PIM Multicast Border Router features and authentication using IPsec that lack sufficient deployment experience (see Appendix A), and moves the PIM specification to Internet Standard.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="83"/>
  <seriesInfo name="RFC" value="7761"/>
  <seriesInfo name="DOI" value="10.17487/RFC7761"/>
</reference>

<reference anchor="SRH">
  <front>
    <title>IPv6 Segment Routing Header (SRH)</title>
    <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
    <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
    <author fullname="S. Previdi" initials="S." surname="Previdi"/>
    <author fullname="J. Leddy" initials="J." surname="Leddy"/>
    <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <date month="March" year="2020"/>
    <abstract>
      <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8754"/>
  <seriesInfo name="DOI" value="10.17487/RFC8754"/>
</reference>

<reference anchor="RFC9855">
  <front>
    <title>Topology Independent Fast Reroute Using Segment Routing</title>
    <author fullname="A. Bashandy" initials="A." surname="Bashandy"/>
    <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
    <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
    <author fullname="P. Francois" initials="P." surname="Francois"/>
    <author fullname="B. Decraene" initials="B." surname="Decraene"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <date month="October" year="2025"/>
    <abstract>
      <t>This document presents Topology Independent Loop-Free Alternate (TI-LFA) Fast Reroute (FRR), which is aimed at providing protection of node and Adjacency segments within the Segment Routing (SR) framework. This FRR behavior builds on proven IP FRR concepts being LFAs, Remote LFAs (RLFAs), and Directed Loop-Free Alternates (DLFAs). It extends these concepts to provide guaranteed coverage in any two-connected networks using a link-state IGP. An important aspect of TI-LFA is the FRR path selection approach establishing protection over the expected post-convergence paths from the Point of Local Repair (PLR), reducing the operational need to control the tie-breaks among various FRR options.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9855"/>
  <seriesInfo name="DOI" value="10.17487/RFC9855"/>
</reference>


<reference anchor="I-D.chen-bier-egress-protect">
   <front>
      <title>BIER Egress Protection</title>
      <author fullname="Huaimo Chen" initials="H." surname="Chen">
         <organization>Futurewei</organization>
      </author>
      <author fullname="Mike McBride" initials="M." surname="McBride">
         <organization>Futurewei</organization>
      </author>
      <author fullname="Aijun Wang" initials="A." surname="Wang">
         <organization>China Telecom</organization>
      </author>
      <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
         <organization>Verizon Inc.</organization>
      </author>
      <author fullname="Yisong Liu" initials="Y." surname="Liu">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Michael Menth" initials="M." surname="Menth">
         <organization>University of Tuebingen</organization>
      </author>
      <author fullname="Boris Khasanov" initials="B." surname="Khasanov">
         <organization>Yandex LLC</organization>
      </author>
      <author fullname="Xuesong Geng" initials="X." surname="Geng">
         <organization>Huawei</organization>
      </author>
      <author fullname="Yanhe Fan" initials="Y." surname="Fan">
         <organization>Casa Systems</organization>
      </author>
      <author fullname="Lei Liu" initials="L." surname="Liu">
         <organization>Fujitsu</organization>
      </author>
      <author fullname="Xufeng Liu" initials="X." surname="Liu">
         <organization>Alef Edge</organization>
      </author>
      <date day="28" month="March" year="2024"/>
      <abstract>
	 <t>   This document describes a mechanism for fast protection against the
   failure of an egress node of a &quot;Bit Index Explicit Replication&quot;
   (BIER) domain.  It is called BIER egress protection.  It does not
   require any per-flow state in the core of the domain.  With BIER
   egress protection the failure of a primary BFER (Bit Forwarding
   Egress Router) is protected with a backup BFER such that traffic
   destined to the primary BFER in the BIER domain is fast rerouted by a
   neighbor BFR to the backup BFER on the BIER layer.  The mechanism is
   applicable if all BIER traffic sent to the primary BFER can reach its
   destination also via the backup BFER.  It is complementary to BIER-
   FRR which cannot protect against the failure of a BFER.


	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-chen-bier-egress-protect-07"/>
   
</reference>


<reference anchor="I-D.ietf-rtgwg-segment-routing-ti-lfa">
   <front>
      <title>Topology Independent Fast Reroute using Segment Routing</title>
      <author fullname="Ahmed Bashandy" initials="A." surname="Bashandy">
         <organization>Individual</organization>
      </author>
      <author fullname="Stephane Litkowski" initials="S." surname="Litkowski">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Pierre Francois" initials="P." surname="Francois">
         <organization>INSA Lyon</organization>
      </author>
      <author fullname="Bruno Decraene" initials="B." surname="Decraene">
         <organization>Orange</organization>
      </author>
      <author fullname="Daniel Voyer" initials="D." surname="Voyer">
         <organization>Bell Canada</organization>
      </author>
      <date day="12" month="February" year="2025"/>
      <abstract>
	 <t>   This document presents Topology Independent Loop-free Alternate Fast
   Reroute (TI-LFA), aimed at providing protection of node and adjacency
   segments within the Segment Routing (SR) framework.  This Fast
   Reroute (FRR) behavior builds on proven IP Fast Reroute concepts
   being LFAs, remote LFAs (RLFA), and remote LFAs with directed
   forwarding (DLFA).  It extends these concepts to provide guaranteed
   coverage in any two-connected networks using a link-state IGP.  An
   important aspect of TI-LFA is the FRR path selection approach
   establishing protection over the expected post-convergence paths from
   the point of local repair, reducing the operational need to control
   the tie-breaks among various FRR options.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-rtgwg-segment-routing-ti-lfa-21"/>
   
</reference>


<reference anchor="BrAl17" >
  <front>
    <title>Performance Comparison of Resilience Mechanisms for Stateless Multicast Using BIER</title>
    <author initials="W." surname="Braun" fullname="W. Braun">
      <organization></organization>
    </author>
    <author initials="M." surname="Albert" fullname="M. Albert">
      <organization></organization>
    </author>
    <author initials="T." surname="Eckert" fullname="T. Eckert">
      <organization></organization>
    </author>
    <author initials="M." surname="Menth" fullname="M. Menth">
      <organization></organization>
    </author>
    <date year="2017" month="May"/>
  </front>
</reference>


    </references>


<?line 2194?>

<section anchor="non-working-frr-options"><name>Non-working FRR options</name>

<section anchor="bier-in-bier"><name>BIER-in-BIER encapsulation</name>

<t><xref target="example41"/> is again the example shown in <xref target="example4"/>. One
option not discussed in before - because it can reasonably not
be made to work - is to attempt using BIER-in-BIER encapsulation
to improve over the solution described.</t>

<figure title="Example 4" anchor="example41"><artset><artwork  type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="336" viewBox="0 0 336 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 120,32 L 120,40" fill="none" stroke="black"/>
<path d="M 248,32 L 248,40" fill="none" stroke="black"/>
<path d="M 200,96 L 256,96" fill="none" stroke="black"/>
<path d="M 288,96 L 304,96" fill="none" stroke="black"/>
<path d="M 32,112 L 56,112" fill="none" stroke="black"/>
<path d="M 200,128 L 256,128" fill="none" stroke="black"/>
<path d="M 288,128 L 304,128" fill="none" stroke="black"/>
<path d="M 288,160 L 304,160" fill="none" stroke="black"/>
<g class="text">
<text x="104" y="36">(q5</text>
<text x="136" y="36">q8)</text>
<text x="184" y="36">(q5,q6)</text>
<text x="232" y="36">(q5</text>
<text x="264" y="36">q6)</text>
<text x="132" y="52">(p1)</text>
<text x="188" y="52">(p1)</text>
<text x="236" y="52">(p1)</text>
<text x="100" y="68">--</text>
<text x="128" y="68">R11</text>
<text x="156" y="68">--</text>
<text x="184" y="68">R10</text>
<text x="208" y="68">-</text>
<text x="232" y="68">R12</text>
<text x="256" y="68">-</text>
<text x="276" y="68">R3</text>
<text x="300" y="68">--</text>
<text x="324" y="68">R5</text>
<text x="88" y="84">/</text>
<text x="264" y="84">/</text>
<text x="280" y="84">\</text>
<text x="80" y="100">|</text>
<text x="192" y="100">/</text>
<text x="324" y="100">R6</text>
<text x="12" y="116">R0</text>
<text x="80" y="116">R12</text>
<text x="108" y="116">--</text>
<text x="132" y="116">R1</text>
<text x="156" y="116">--</text>
<text x="180" y="116">R2</text>
<text x="64" y="132">(p1)|</text>
<text x="156" y="132">L1</text>
<text x="192" y="132">\</text>
<text x="324" y="132">R7</text>
<text x="88" y="148">\</text>
<text x="264" y="148">\</text>
<text x="280" y="148">/</text>
<text x="100" y="164">--</text>
<text x="128" y="164">R13</text>
<text x="156" y="164">--</text>
<text x="180" y="164">R9</text>
<text x="204" y="164">--</text>
<text x="228" y="164">R4</text>
<text x="248" y="164">-</text>
<text x="268" y="164">R7</text>
<text x="324" y="164">R8</text>
<text x="132" y="180">(p1)</text>
<text x="180" y="180">(p1)</text>
<text x="228" y="180">(p1)</text>
<text x="120" y="196">(q7,q8)</text>
<text x="184" y="196">(q7,q8)</text>
<text x="248" y="196">(q7,q8)</text>
</g>
</svg>
</artwork><artwork  type="ascii-art" align="center"><![CDATA[
                (q5,q8) (q5,q6) (q5,q6)
                   (p1)   (p1)  (p1)
                -- R11 -- R10 - R12 - R3 -- R5
               /                     / \
              |             /--------   --- R6
     R0 ---- R12 -- R1 -- R2
          (p1)|        L1   \--------   --- R7
               \                     \ /
                -- R13 -- R9 -- R4 - R7 --- R8
                   (p1)  (p1)  (p1)
                (q7,q8) (q7,q8) (q7,q8)
                      
]]></artwork></artset></figure>

<t>One way how one could attempt to avoid having to send out
two copies from R1 under the failure of R2, one towards R11 to then
reach R5, R6 and one towards R13 to then reach R7, R8 is to
consider encapsulating the packet into a new BIER header which
for example has as destinations (BFER) R11 and R13. When 
R11 and R13 respectively receive this packet, they decapsulate it,
encounter the original BIER packet (that was FRR redirected by R1),
and continue to forward it to it's ultimate destinations.</t>

<t>Unfortunately, this topology also shows how this would fail.
When R11 would process the original BIER packet and encounter
the bits for either R7 and.or R8, then it would send a copy
back to R12 to reach R7, R8. That copy would again reach R1,
and in result in another FRR'ed copy of the same packet. This
duplication would only stop due to TTL expiry.</t>

<t>Arguably, if the BIER encapsulation was choosen not to send
copies towards R11, R13, but instead R12, R4, then this
looping would not happen because the copy for R7, R8 from R12
would instead be sent towards R3, which would send it towards
R2 which assumably has failed and hence the packet copy from
R3 would be dropped.</t>

<t>However, in reality FRR would not only be set up on R1 towards R2,
but equally on R3 and R7, so both of them would equally create
FRR packets when they recognize R2 to be down.</t>

</section>
</section>
<section anchor="changelog"><name>Changelog</name>

<t>[RFC-Editor: Please remove this section].</t>

<section anchor="rev-13-"><name>rev 13 -</name>

<t>Improved images with claude.ai. Manually changed tables to real tables.</t>

</section>
<section anchor="rev-13-1"><name>rev 13 -</name>

<t>Wrote new chapter 3 BIFT/forwarding to specify a simplified set of forwarding/BIFT options for FRR.
They are explained on one simple topology example that shows how they do create different
outputs of packets in the FRR case. These differences are what justifies the need to
specify or in future standardize the models - operators need to be able to verify behavior of
router (with BIER/FRR) against specified behavior to see if it works correctly, and they need
to be able to plan capacity based on the expectation of how much BIER traffic will flow with FRR.</t>

<t>Beyond section 3 is still old text, need to negotiate with other authors how much of that is
still useful.</t>

<t>TBD: algorithms to calculate FRR in control plane.</t>

</section>
<section anchor="rev-12-"><name>rev 12 -</name>

<t>Intermediate version. Added primarily the Overview Chapter to better
introduce the concepts and benefits of BIER-FRR to readers (customers et all) only aware of unicast FRR,
and to better explain unicast FRR concepts (p, q space) to readers primarily aware of BIER.</t>

<t>Changes / optimizations in further parts of the document yet.</t>

</section>
<section anchor="rev-11-sent-back-from-iesg-to-wg"><name>rev 11 - sent back from IESG to WG</name>

<t>Triage of IESG review feedback. Fixed the following core / simple feedback. See TBD section below for the missing IESG and directorate review feedback that will need to be folded into the next rev's.</t>

<t>Brought document into kramdown format for easier editing.</t>

<t>Rewrote abstract to answer Roman Danyliw / Éric Vyncke / Brian Haberman
questions about scope (framework) and intended status (informational) of
document.</t>

<t>Changed set of authors to meeth 5-authors max requirements. Changed
authors to contributors.</t>

<t>Removed RFC2119 boilerplate because as a framework, this document does
not use RFC2119 language (Mike Bishop).</t>

<t>Resolved Eric Vyncke Abstract text convern (removed). But see TBD for more work on refining text required.</t>

<t>Resolved expanding LFA on first use.</t>

<t>Ketan: Please remove extra "." I saw a few other similar instances in the document.</t>

<t>Ketan: minor: perhaps s/reconvergence/control plane reconvergence .</t>

<t>Ketan: fixed "persistent failure" text.</t>

<t>Ketan: In the following ? ... perhaps "In this subsection," ?</t>

</section>
<section anchor="resolved-iesg-discuss-comments-before-rev-11"><name>Resolved IESG discuss / comments before rev 11.</name>

<t>Added text for BFD referring to RFC5880 (prior no use of RFC5880 reference).</t>

<t>EVyncke: s/without encapsulation in a tunnel header/without encapsulation in a tunnel/</t>

<t>EVyncke: s/link layer technology/link-layer technology/</t>

</section>
<section anchor="tbd"><name>TBD</name>

<t>Consider adding text about optimizations introducing forwarding plane behavior
(e.g.: when processing multiple bits per BIFT entry. Need to find example showing this).</t>

<t>Fold in RTGDIR feedback (eckert).</t>

<t>Fold in unanswered questions from INTDIR review (Haberman):
 https://datatracker.ietf.org/doc/review-ietf-bier-frr-08-intdir-telechat-haberman-2025-06-03/)</t>

<t>Section 6.1: Add text about PMTU when using tunnels (Evyncke DISCUSS). Although: RFC7490 which explicitly require stunnels also does not address tunnels MTU issues. Maybe attempt to declare MTU problem out of scope given how we're "just" doing something similar for BIER that several unicast RFCs are doing - without addressing MTU.</t>

<t>Check/remove unused references. Add text explaining benefits of reading reference 
"Performance Comparison of Resilience Mechanisms for Stateless Multicast Using BIER" (aka: which pieces relevant to this draft does this research paper cover).</t>

<t>Add text about egress protection (Aka: node protection against BFER failure),
reference I-D.chen-bier-egress-protect (Roman Danilyv).</t>

<t>EVyncke: I fail to see the logical link between <spanx style="verb">Typically, BIER packets are forwarded without an outer IP header.</spanx> and the consequence <spanx style="verb">if a link or node failure occurs, the corresponding BFR Neighbor (BFR-NBR) becomes unreachable</spanx>. Strongly suggest adding some explanations. Answer: linkage is that BIER can not automatically use IP FRR but has to deal with unreachability events itself. But even if BIER was using per-hop IP/MPLS encap to rely on IP/MPLS FRR, then the result would not be as good as "direct" BIER-FRR. Text rewrite requires some restructuring.</t>

<t>EVyncke: Should a reference be provide for SR in <spanx style="verb">If segment routing is employed</spanx> ?</t>

<t>Evyncke: The last paragraph does not mention the 'explicit' forwarding action, is it on purpose ? If so, the read will welcome an explanation.</t>

<t>Ketan: major: Please provide a reference or explanation of "normal BIER-LFAs". Did
you mean RFC5286? Same goes for the other types - please provide references. TBD because text needs more structured rewrite of aligning the BIER behavior with the pre-defined unicast FRR terminology / cases.</t>

<t>Ketan: Is that IP-TI-LFA ? Same Q for TI-BIER-LFA. Need more structured rewrite of text...</t>

<t>Ketan: Isn't that 100% theoretical? Practically, there are limits of platform
and implementations. Also, all routers should be BFRs. Answer: No, should be as practically applicable as unicast TI-LFA is. There may be othrer platform limitations for BIER-FRR though.</t>

<t>DebCooley: The word 'tunnel' is used many times in this draft.  There is no definition of what is meant by tunnel(s), I have to assume that they are not for security purposes.  If they are specific types of tunnels, e.g. MPLS or other security tunnel options (IPsec), then it would be nice to have that defined. Yes: Need to define "tunnel" for the purpose of this ocument as an encapsulation of BIER packets into some unicast header that allows forwarding of the packet to a remote BFR. On the other hand, RFC like RFC7490 (RLFA in unicast) uses "tunnel" without explaininf/defining it.</t>

<t>Ketan:  References to respective RFCs related to different types of LFA/FRR
unicast mechanisms would be helpful in this section as well. Yes!</t>

<t>All of Mohammeds IESG review (sorry, ran out of time).</t>

</section>
</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="A." surname="Wang" fullname="Aijun Wang">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>
          <city>Beijing</city>
          <code>102209</code>
          <country>China</country>
        </postal>
        <email>wangaj3@chinatelecom.cn</email>
      </address>
    </contact>
    <contact initials="G." surname="Mishra" fullname="Gyan S. 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>
    </contact>
    <contact initials="Y." surname="Liu" fullname="Yisong Liu">
      <organization>China Mobile</organization>
      <address>
        <email>liuyisong@chinamobile.com</email>
      </address>
    </contact>
    <contact initials="Y." surname="Fan" fullname="Yanhe Fan">
      <organization>Casa Systems</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>yfan@casa-systems.com</email>
      </address>
    </contact>
    <contact initials="L." surname="Liu" fullname="Lei Liu">
      <organization>Fujitsu</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>liulei.kddi@gmail.com</email>
      </address>
    </contact>
    <contact initials="X." surname="Liu" fullname="Xufeng Liu">
      <organization>Alef Edge</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </contact>
    <contact initials="X." surname="Geng" fullname="Xuesong Geng">
      <organization></organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>gengxuesong@huawei.com</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIANnHX2oAA+y9a3fbRpYo+r1+BUZeZyJ1SFrU01ZuZrUU22md4yS+knt6
zp2e5QWRoIQ2CTAAKFnteH773c+qXQBIyU66e52zWjMdSyRQj1279vsxHA7d
7Umy76blpEgX2UkyrdJZM8yzZja8yrNqOKuq4fjATdLmJMmLWenqpsrSxUly
/vLtK9fkzRxeOk1eVfD2XVm9T2ZllbxK6ya5yKpy1WTJXd7cJGd5k5wX0+xD
8vLDcp5Pcvwef0mbvCyS7bPzlxfDVxcXOy69uqoyWJN+4qZpA1Ps7e4duWV+
4pKkKScnydZ9Vm/xH9Ns2dzAJwdbzqWr5qasTtww4e38YZXmizL57iYr4OGy
uj5JXq2aVZXdZTl8kC3SfH6S3Ezg+xFu+vfX+MloUi78ED/k77Pkh8lZlU+z
DWMs8slNms1Hi8kVPvn7mT4SDXbZZLNZViSv82JaZJWO98civ82qOm/uk3KW
vF1lV3lxTUuW0Wt+bzTn936/KvJho4+NYGFhtbSM5IesaG4ePfwCn14/6Nsy
q+ZZXScvJ++zqtkAhabJfj+pR7N0he+7SVk0VX61auyZnOZ/WRXJn9LiWgf6
7iYv0uRtNs8QVkmCOJYBwp1l+c/5X3L4qrwrBvAYvLOE1SUvcngkn+BKAJXu
6cm/5DTgpJzCHF+Nd/f2dp9/RR+sYBH3MktY6h0Mlv5l//cT/LjhuUeTApaZ
F/VJ8v0IYFnfVPgGr/v7+7RILs3HtPZ/z6r8r4DC58VkZJY+3h/vjpPvyvlq
cQUbeANI5Bd7mc/hOJLLZWWX/MMLQPLnuwd2yX+8PIU/lzdlAQ/sw4CHu3vD
8f7BcdjGNaxqVI8WtKjf3/JqIpz733ldAsxe56sY3j+UV/k8CyPN89U9Pcog
WdDX8UhpcZPB7fZ36bu0TpPLe8DORR2tu8ibbArYDoCtEedOF7CwiYH+/Swt
fj+B14c1vx5N9DrL7Xpfrf6SN/Xq82aA7czh9r2fTvOeW/0fK7hOEVBO59ks
eTm9zj5vmg80EFzM1ToC8h+rjA7g+0xOux8f4c5df+BHf3+zSpVyuKKsFkAl
bzOkfRevvjvce3Ykvx4f7I/l12d7x8/9p8939dlnz+BXpNt2jMt/fzN8+/IE
H9gHlONHD3b5rfM3SHXpy8PjMWLj4vWLN/T30f6zZ/D3m/Mfhpc/0CfHx0dj
+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
DuDyD/iAxDD1pAEA

-->

</rfc>

