<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std"
     docName="draft-chen-bier-te-lan-04"
     ipr="trust200902">
  <front>
    <title abbrev="BIER-TE for LAN">BIER-TE for Broadcast Link</title>

     <author initials="H" surname="Chen" fullname="Huaimo Chen">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <street></street>
          <city>Boston, MA</city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>Huaimo.chen@futurewei.com</email>
      </address>
    </author>

    <author fullname="Mike McBride" initials="M" surname="McBride">
      <organization>Futurewei</organization>
      <address>
        <email>michael.mcbride@futurewei.com</email>
      </address>
    </author>

     <author initials="A" fullname="Aijun Wang" 
            surname="Wang">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>
          <city>Beijing</city>
          <region> </region>
          <code>102209</code>
          <country>China</country>
        </postal>
        <email>wangaj3@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Gyan S. Mishra" initials="G" surname="Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <postal>
          <street>13101 Columbia Pike</street>
          <city>Silver Spring</city>
          <code>MD 20904</code>
          <country>USA</country>
        </postal>
        <phone> 301 502-1347</phone>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>
<!--
     <author initials="B" fullname="Boris Khasanov" 
            surname="Khasanov">
      <organization>Yandex LLC</organization>
      <address>
        <postal>
          <street></street>
          <city>Moscow</city>
          <region></region>
          <code></code>
          <country></country>
        </postal>
        
        <email>bhassanov@yahoo.com</email>
      </address>
    </author>
-->

   <author initials="L" fullname="Lei Liu" 
            surname="Liu">
      <organization>Fujitsu</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>liulei.kddi@gmail.com</email>
      </address>
    </author>

   <author initials="X" fullname="Xufeng Liu" 
            surname="Liu">
      <organization>Volta Networks</organization>
      <address>
        <postal>
          <street> </street>
          <city>McLean</city>
          <region>VA</region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2022"/>

    <abstract>
      <t>This document describes extensions to 
         "Bit Index Explicit Replication Traffic Engineering" (BIER-TE) 
         for supporting LANs (i.e., broadcast links). 
         For a multicast packet with an explicit point-to-multipoint 
         (P2MP) path traversing LANs, 
         the packet is replicated and forwarded statelessly 
         along the path.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in 
      <xref target="RFC2119"/> <xref target="RFC8174"/> 
      when, and only when, they appear in all capitals, as shown here.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
     <t><xref target="RFC9262"/> introduces Bit Index 
        Explicit Replication (BIER) Traffic/Tree Engineering (BIER-TE).
        It is an architecture for per-packet stateless explicit  
        point to multipoint (P2MP) multicast path/tree.

        A Bit-Forwarding Router (BFR) in a BIER-TE domain has 
        a BIER-TE Bit Index Forwarding Table (BIFT).
        A BIER-TE BIFT on a BFR comprises a forwarding entry for 
        a BitPosition (BP) assigned to each of the adjacencies of the BFR. 
        If the BP represents a forward connected adjacency, 
        the forwarding entry for the BP forwards the multicast packet 
        with the BP to the directly connected BFR neighbor of the adjacency.
        If the BP represents a BFER (i.e., egress node) 
        or say a local decap adjacency,
        the forwarding entry for the BP decapsulates the multicast packet
        with the BP and passes a copy of the payload of the packet
        to the packet's NextProto within the BFR. </t>

     <t>In <xref target="RFC9262"/>, 
        for a LAN, the adjacency to each neighboring BFR on the LAN is 
        given a unique BitPosition. The adjacency of this BitPosition is a
        forward connected adjacency towards the BFR and this BitPosition is
        populated into the BIFT of all the other BFRs on that LAN. 
        This solution for a LAN does not work in some cases.</t>

     <t>For a packet with an explicit point-to-multipoint (P2MP) path,
        if the path traverses some BFRs/nodes on a LAN,
        each of these BFRs/nodes on the LAN may receive
        duplicated packets. 
        Thus some of the egress nodes will receive 
        duplicated packets.</t>

     <t>This document proposes a solution for LANs to resolve 
        this issue. 
        For a packet with an explicit P2MP 
        path traversing LANs (i.e., broadcast links), 
        the packet is replicated and forwarded statelessly 
        along the path. 
        Each of the egress nodes of the path will not
        receive any duplicated packet.</t>

    <section title="Terminology">
      <t>
      <list style="hanging" hangIndent="6">
       <t hangText="BIER:">Bit Index Explicit Replication.</t>
       <t hangText="BIER-TE:">BIER Traffic Engineering.</t>
       <t hangText="BFR:">Bit-Forwarding Router.</t>
       <t hangText="BFIR:">Bit-Forwarding Ingress Router.</t>
       <t hangText="BFER:">Bit-Forwarding Egress Router.</t>
       <t hangText="BFR-id:">BFR Identifier. 
          It is a number in the range [1,65535].</t>
       <t hangText="BFR-NBR:">BFR Neighbor.</t>

       <t hangText="BFR-prefix:">An IP address (either IPv4 or IPv6) of a BFR.</t>
       <t hangText="BIRT:">Bit Index Routing Table. 
          It is a table that maps from the BFR-id (in a particular sub-domain)
          of a BFER to the BFR-prefix of that BFER, and to the BFR-NBR 
          on the path to that BFER.</t>
       <t hangText="BIFT:">Bit Index Forwarding Table.</t>

       <t hangText="IGP:">Interior Gateway Protocol.</t>
       <t hangText="LSDB:">Link State DataBase.</t>
       <t hangText="OSPF:">Open Shortest Path First.</t>
       <t hangText="IS-IS:">Intermediate System to Intermediate System.</t>

      </list></t>
    </section> <!-- Terminology -->

    </section> <!-- Introduction -->


   <section title="Example Application of Current BIER-TE with LAN">
      <t>This section illustrates an example application of 
         the current BIER-TE defined in <xref target="RFC9262"/>
         to the BIER-TE topology with LAN
         in <xref target="bier-top-lan1"/>.</t>

   <section title="Example BIER-TE Topology with LAN">
     <t>An example BIER-TE topology with a LAN for a BIER-TE domain is shown
        in <xref target="bier-top-lan1"/>.
         
        It has 9 nodes/BFRs A, B, C, D, E, F, G, H and K.
        Nodes/BFRs D, F, E, H, A and K are BFERs and have 
        local decap adjacency BitPositions (BPs for short)
        1, 2, 3, 4, 5 and 6 respectively.
        For simplicity, these BPs are represented by (SI:BitString),
        where SI = 0 and BitString is of 8 bits. 
        BPs 1, 2, 3, 4, 5 and 6 are represented by
        1 (0:00000001), 2 (0:00000010), 3 (0:00000100), 4 (0:00001000), 
        5 (0:00010000) and 6 (0:00100000) respectively.

           <figure anchor="bier-top-lan1" 
           title="Example BIER-TE Topology with BP to BFR on LAN">
  <artwork> <![CDATA[
                                           6
                                         ( K )
                                          /14'
                                         /
                                   4'   /13'       |         4 
                          /-----------( G )--------+       ( H )
                         /                  16'    |________/
                        /                          |       17'
                       /3'                _________|
    5   1'       2'   /            6'    /15'      |     18'   
  ( A )------------( B )--------------( C )        +--------( D )
    \10'           7'\    5'            \11'       |          1 
     \                \                  \        LAN
      \                \                  \
       \           9'   \8'                \12'
        \--------------( E )              ( F )
                         3                  2   ]]></artwork>
</figure>

         The BitPositions for the forward connected adjacencies 
         are represented by i', where i is from 1 to 18. 
         In one option, they are encoded as (n+i), 
         where n is a power of 2 such as 32768.
         For simplicity, these BitPositions are represented 
         by (SI:BitString),
         where SI = (6 + (i-1)/8) and BitString is of 8 bits. 
         BitPositions i' (i from 1 to 18) are represented by
         1'(6:00000001), 2'(6:00000010), 3'(6:00000100), 4'(6:00001000), 
         5'(6:00010000), 6'(6:00100000), 7'(6:01000000), 8'(6:10000000),
         9'(7:00000001), 10'(7:00000010), . . . , 16'(7:10000000),
         17'(8:00000001), 18'(8:00000010).</t>

     <t>For a link between two nodes X and Y, 
        there are two BitPositions for two forward connected adjacencies.
        These two forward connected adjacency BitPositions are assigned 
        on nodes X and Y respectively. 
        The BitPosition assigned on X is the forward connected 
        adjacency of Y.
        The BitPosition assigned on Y is the forward connected 
        adjacency of X.</t>

     <t>For example, for the link between nodes B and C in the figure,
        two forward connected adjacency BitPositions 5' and 6' are assigned
        to two ends of the link.
        BitPosition 5' is assigned on node B to B's end of the link. 
        It is the forward connected adjacency of node C.
        BitPosition 6' is assigned on node C to C's end of the link. 
        It is the forward connected adjacency of node B.</t>

     <t>For a LAN (i.e., broadcast link) connecting nodes X1, X2, ..., Xm,
        there are m BitPositions for m forward connected adjacencies.
        These m forward connected adjacency BitPositions are assigned 
        on nodes X1, X2, ..., Xm respectively.</t>

     <t>For the LAN connecting 4 nodes C, G, H and D in the figure,
        4 forward connected adjacency BitPositions 15', 16', 17' and 18' 
        are assigned to C, G, H and D respectively.</t>
   </section> <!-- Example BIER-TE Topology with LAN -->


   <section title="BIER-TE BIFT on BFR">
      <t>Every BFR in a BIER-TE domain/topology has a BIER-TE BIFT.
         This section shows the BIER-TE BIFT on every BFR/node
         of the BIER-TE topology with LAN
         in <xref target="bier-top-lan1"/>. </t>

      <t>For the BIER-TE topology in <xref target="bier-top-lan1"/>,
         each of 9 nodes/BFRs A, B, C, D, E, F, G, H and K
         has its BIER-TE BIFT for the topology.
         The BIFT on a BFR comprises a forwarding entry for 
         each of the adjacencies of the BFR.</t>

<t>
The BIER-TE BIFT on BFR A (i.e., node A) is shown in 
<xref target="bier-te-bift-bfr-a"/>.
There are three adjacencies of A. 
The 1st one is the forward connected adjacency from A to B 
(represented by BP 2');
the 2nd is the forward connected adjacency from A to E 
(represented by BP 9');
the 3rd is the local decap adjacency (represented by BP 5) 
for BFER (i.e., egress) A.
The BIFT on A has three forwarding entries.

<figure anchor="bier-te-bift-bfr-a" 
        title="BIER-TE BIFT on BFR A">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           | 2'(6:00000010)  | fw-connected |     B      |
           +-----------------+--------------+------------+
           | 9'(7:00000001)  | fw-connected |     E      |
           +-----------------+--------------+------------+
           | 5 (0:00010000)  | local-decap  |            |
           +-----------------+--------------+------------+]]></artwork>
</figure> 

   The 1st forwarding entry in the BIFT is for BitPosition 2', which is
   the forward connected adjacency from A to B.  For a multicast packet
   with BitPosition 2', which indicates that the P2MP path in the packet
   traverses the adjacency from A to B, the forwarding entry forwards
   the packet to B along the link from A to B. </t>

   <t>The 2nd forwarding entry in the BIFT is for BitPosition 9', which is
   the forward connected adjacency from A to E.  For a multicast packet
   with BitPosition 9', which indicates that the P2MP path in the packet
   traverses the adjacency from A to E, the forwarding entry forwards
   the packet to E along the link from A to E. </t>

   <t>
   The 3rd forwarding entry in the BIFT locally decapsulates a multicast
   packet with BitPosition 5 and passes a copy of the payload of the
   packet to the packet's NextProto.  It is for BitPosition 5, which is
   the local decap adjacency for BFER (i.e., egress) A.  For a multicast
   packet with BitPosition 5, which indicates that the P2MP path in the
   packet has node A as one of its destinations (i.e., egress nodes),
   the forwarding entry decapsulates the packet and passes a copy of the
   payload of the packet to the packet's NextProto within node A.</t>

<t>
The BIER-TE BIFT on BFR B (i.e., node B) is shown in 
<xref target="bier-te-bift-bfr-b"/>.
There are four forward connected adjacencies of B. 
They are the forward connected adjacencies from 
B to A (represented by BP 1'), B to G (represented by BP 4'), 
B to C (represented by BP 6')
and B to E (represented by BP 8') respectively.
The BIFT on B has four forwarding entries for these adjacencies.
 
<figure anchor="bier-te-bift-bfr-b" 
        title="BIER-TE BIFT on BFR B">
  <artwork> <![CDATA[
           +----------------+--------------+------------+
           |  Adjacency BP  |    Action    |  BFR-NBR   |
           | (SI:BitString) |              | (Next Hop) |
           +================+==============+============+
           | 1'(6:00000001) | fw-connected |     A      |
           +----------------+--------------+------------+
           | 4'(6:00001000) | fw-connected |     G      |
           +----------------+--------------+------------+
           | 6'(6:00100000) | fw-connected |     C      |
           +----------------+--------------+------------+
           | 8'(6:10000000) | fw-connected |     E      |
           +----------------+--------------+------------+ ]]></artwork>
</figure> 
   The 1st forwarding entry in the BIFT is for BitPosition 1', which is
   the forward connected adjacency from B to A.  For a multicast packet
   with BitPosition 1', which indicates that the P2MP path in the packet
   traverses the adjacency from B to A, the forwarding entry forwards
   the packet to A along the link from B to A.
       </t>

   <t>The 2nd forwarding entry in the BIFT is for BitPosition 4', which is
   the forward connected adjacency from B to G.  For a multicast packet
   with BitPosition 4', which indicates that the P2MP path in the packet
   traverses the adjacency from B to G, the forwarding entry forwards
   the packet to G along the link from B to G.
   </t>

   <t>The 3rd forwarding entry in the BIFT is for BitPosition 6', which is
   the forward connected adjacency from B to C.  For a multicast packet
   with BitPosition 6', which indicates that the P2MP path in the packet
   traverses the adjacency from B to C, the forwarding entry forwards
   the packet to C along the link from B to C.</t>

   <t>The 4-th forwarding entry in the BIFT is for BitPosition 8', which is
   the forward connected adjacency from B to E.  For a multicast packet
   with BitPosition 8', which indicates that the P2MP path in the packet
   traverses the adjacency from B to E, the forwarding entry forwards
   the packet to E along the link from B to E.</t>

<t>
The BIER-TE BIFT on BFR C (i.e., node C) is shown in 
<xref target="bier-te-bift-bfr-c"/>.
There are five forward connected adjacencies of C. 
They are the forward connected adjacencies from 
C to B (represented by BP 5'), C to F (represented by BP 12'), 
C to G (represented by BP 14'), 
C to H (represented by BP 15') and C to D (represented by BP 16') 
respectively.
The BIFT on C has five forwarding entries for these adjacencies.
 
<figure anchor="bier-te-bift-bfr-c" 
        title="BIER-TE BIFT on BFR C">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           |  5'(6:00010000) | fw-connected |     B      |
           +-----------------+--------------+------------+
           | 12'(7:00001000) | fw-connected |     F      |
           +-----------------+--------------+------------+
           | 16'(7:10000000) | fw-connected |     G      |
           +-----------------+--------------+------------+
           | 17'(8:00000001) | fw-connected |     H      |
           +-----------------+--------------+------------+
           | 18'(8:00000010) | fw-connected |     D      |
           +-----------------+--------------+------------+ ]]></artwork>
</figure> 
       </t>


<t>
The BIER-TE BIFT on BFR D (i.e., node D) is shown in 
<xref target="bier-te-bift-bfr-d"/>.
There are four adjacencies of D. 
Three of them are the forward connected adjacencies from 
D to C (represented by BP 13'),
D to G (represented by BP 14') and D to H (represented by BP 15') respectively;
the other is the local decap adjacency (represented by BP 1) 
for BFER (i.e., egress) D.
The BIFT on D has four forwarding entries for these adjacencies.
 
<figure anchor="bier-te-bift-bfr-d" 
        title="BIER-TE BIFT on BFR D">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           | 15'(7:01000000) | fw-connected |     C      |
           +-----------------+--------------+------------+
           | 16'(7:10000000) | fw-connected |     G      |
           +-----------------+--------------+------------+
           | 17'(8:00000001) | fw-connected |     H      |
           +-----------------+--------------+------------+
           |  1 (0:00000001) | local-decap  |            |
           +-----------------+--------------+------------+]]></artwork>
</figure>
         </t>

<t>
The BIER-TE BIFT on BFR E (i.e., node E) is shown in 
<xref target="bier-te-bift-bfr-e"/>.
There are three adjacencies of E. 
Two of them are the forward connected adjacencies from 
E to B (represented by BP 7') 
and E to A (represented by BP 10') respectively;
the other is the local decap adjacency (represented by BP 3) 
for BFER (i.e., egress) E.
The BIFT on E has three forwarding entries for these adjacencies.
 
<figure anchor="bier-te-bift-bfr-e" 
        title="BIER-TE BIFT on BFR E">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           |  7'(6:01000000) | fw-connected |     B      |
           +-----------------+--------------+------------+
           | 10'(7:00000010) | fw-connected |     A      |
           +-----------------+--------------+------------+
           |  3 (0:00000100) | local-decap  |            |
           +-----------------+--------------+------------+]]></artwork>
</figure>
         </t>

<t>
The BIER-TE BIFT on BFR F (i.e., node F) is shown in 
<xref target="bier-te-bift-bfr-f"/>.
There are two adjacencies of F. 
The 1st one is the forward connected adjacencies from 
F to C (represented by BP 11');
the 2nd is the local decap adjacency (represented by BP 2) 
for BFER (i.e., egress) F.
The BIFT on F has two forwarding entries for these adjacencies.
 
<figure anchor="bier-te-bift-bfr-f" 
        title="BIER-TE BIFT on BFR F">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           | 11'(7:00000100) | fw-connected |     C      |
           +-----------------+--------------+------------+
           |  2 (0:00000010) | local-decap  |            |
           +-----------------+--------------+------------+]]></artwork>
</figure>
         </t>

<t>
The BIER-TE BIFT on BFR G (i.e., node G) is shown in 
<xref target="bier-te-bift-bfr-g"/>.
There are four forward connected adjacencies of G. 
They are the adjacencies from 
G to B (represented by BP 3'), G to C (represented by BP 13'), 
G to H (represented by BP 15')
and G to D (represented by BP 16') respectively.
The BIFT on G has four forwarding entries for these adjacencies.
 
<figure anchor="bier-te-bift-bfr-g" 
        title="BIER-TE BIFT on BFR G">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           |  3'(6:00000100) | fw-connected |     B      |
           +-----------------+--------------+------------+
           | 14'(7:00100000) | fw-connected |     K      |
           +-----------------+--------------+------------+
           | 15'(7:01000000) | fw-connected |     C      |
           +-----------------+--------------+------------+
           | 17'(8:00000001) | fw-connected |     H      |
           +-----------------+--------------+------------+
           | 18'(8:00000010) | fw-connected |     D      |
           +-----------------+--------------+------------+ ]]></artwork>
</figure> 
       </t>


<t>
The BIER-TE BIFT on BFR H (i.e., node H) is shown in 
<xref target="bier-te-bift-bfr-h"/>.
There are four adjacencies of H. 
Three of them are the forward connected adjacencies from 
H to C (represented by BP 13'),
H to G (represented by BP 14')
and H to D (represented by BP 16') respectively;
the other is the local decap adjacency (represented by BP 4) 
for BFER (i.e., egress) H.
The BIFT on H has four forwarding entries for these adjacencies.
 
<figure anchor="bier-te-bift-bfr-h" 
        title="BIER-TE BIFT on BFR H">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           | 15'(7:01000000) | fw-connected |     C      |
           +-----------------+--------------+------------+
           | 16'(7:10000000) | fw-connected |     G      |
           +-----------------+--------------+------------+
           | 18'(8:00000010) | fw-connected |     D      |
           +-----------------+--------------+------------+
           |  4 (0:00001000) | local-decap  |            |
           +-----------------+--------------+------------+]]></artwork>
</figure>
         </t>
   </section> <!-- BIER-TE BIFT on BFR -->



   <section title="Example P2MP Path with LAN">
     <t>This section presents the issue about receiving duplicated 
        packets at BFER H for any explicit P2MP path/tree 
        from BFIR A to BFERs K, H and F
        in <xref target="bier-top-lan1"/> 
        with minimum height of the tree, which is 3 (hops). 
        Any path will go through the LAN in order to reach BFER H.</t>

     <t>There are only following explicit P2MP paths 
        from A to K, H and D.</t>
<t>
           <figure anchor="path-2"
            title="All explicit paths with height 3 from A to K,H and F">
  <artwork> <![CDATA[
               K                                   K
              /14'         H                      /14'
             /        |___/17'                   /               H
            G---------|                         G          |____/17'  
           /4'       LAN                       /4'        _|
      2'  /      6'                       2'  /      6'  / |
A--------B----------C               A--------B----------C  LAN
                     \                                   \ 
                      \12'                                \12'
                       F                                   F

Path 1 from A to K, H and F         Path 2 from A to K, H and F
]]></artwork>
</figure>
</t>
     <t>Path 1 and path 2 are represented by 
       {2', 4', 6', 12', 14', 17', 2, 4, 6}.
        Path 1 traverses 
        the link/adjacency from A to B (indicated by BP 2'),
        the link/adjacency from B to G (indicated by BP 4'), 
        the link/adjacency from B to C (indicated by BP 6'), 
        the link/adjacency from G to K (indicated by BP 14'), 
        the link/adjacency from G to H (indicated by BP 17') 
        [the link/adjacency from C to H (also indicated by BP 17') 
         for Path 2], 
        and the link/adjacency from C to F (indicated by BP 12').
        Path 1 is represented by {2', 4', 6', 12', 14', 17', 2, 4, 6}.
        Path 2 has the same representation.
        The packet at A has this representation.</t>

     <t>For the packet with the P2MP path,
        A forwards the packet to B according to the forwarding
        entry for BP 2' in its BIFT.</t>

     <t>After receiving the packet from A,
        B forwards the packet to G and C according to the forwarding 
        entries for BPs 4' and 6' in B's BIFT respectively.
        The packet received by G has path {12', 14', 17', 2, 4, 6}.
        The packet received by C has path {12', 14', 17', 2, 4, 6}. </t> 

     <t>After receiving the packet from B, G sends a copy of 
        the packet to K according to the forwarding 
        entry for BP 14' in G's BIFT, and another copy of
        the packet to H according to the forwarding 
        entry for BP 17' in G's BIFT.</t> 

     <t>After receiving the packet from B, C copies and sends the
        packet to H and F according to the forwarding 
        entries for BPs 17' and 12' in C's BIFT respectively.</t> 

     <t>Egress node H of the P2MP path receives
        the duplicated packets. 
        One packet is from G, and the same copy is from C.</t>

     <t>The solution proposed for LANs in this document resolve 
        this issue. 
        For a packet with an explicit P2MP path traversing LANs 
        (i.e., broadcast links), 
        the packet is replicated and forwarded statelessly 
        along the path. 
        Each of the egress nodes of the path will not
        receive any duplicated packet.</t>
    </section> <!-- Example P2MP Path with LAN -->
    </section> <!-- Example Application of Current BIER-TE with LAN -->



    <section title="Improved BIER-TE with LAN"> 
      <section title="New BP Assignments for LAN"> 
       <t>For all the nodes/BFRs attached to a LAN 
          (i.e., broadcast link), 
          it is assumed that they are connected a pseudo node.
          In one implementation, the pseudo node is
          the Designated Router (DR) of the LAN in OSPF or
          the Designated Intermediate System (DIS) of the LAN in IS-IS.</t>

       <t>For the connection between the pseudo node and 
          each of the nodes/BFRs attached to a LAN,
          two BPs are assigned to it. 
          One is for the adjacency from the BFR to the pseudo node,
          the other is for the adjacency from the pseudo node to the BFR.</t>

       <t>The adjacency from a BFR to the pseudo node is called 
          a LAN adjacency. 
          The adjacency from the pseudo node to a BFR is 
          a forward connected adjacency.</t>

       <t>For example, suppose that the pseudo node for the LAN
          in <xref target="bier-top-lan1"/> is Px. 
          The BP assignments for the LAN 
          (i.e., connections between Px and BFRs C, G, H and D)
          are illustrated in <xref target="bier-top-lan1-bp"/>.
 
           <figure anchor="bier-top-lan1-bp" 
           title="Example BIER-TE Topology with BPs for LAN">
  <artwork> <![CDATA[
                                           6
                                         ( K )
                                          /14'
                                         /
                                   4'   /13'        |           4 
                          /-----------( G )---------+         ( H )
                         /                 17'      |  ________/
                        /                        18'| /20'    19'
                       /3'                _________ Px
    5  1'        2'   /            6'    /15'   16' |22'   21'   
  ( A )------------( B )--------------( C )         +---------( D )
    \10'           7'\    5'            \11'                    1 
     \                \                  \          
      \                \                  \
       \           9'   \8'                \12'
        \--------------( E )              ( F )
                         3                  2   ]]></artwork>
</figure>

    The connection/adjacency from Px to C is assigned BP 15',
    and the connection/adjacency from C to Px is assigned BP 16'.</t>

    <t>The connection/adjacency from Px to G is assigned BP 17',
    and the connection/adjacency from G to Px is assigned BP 18'.</t> 

    <t>The connection/adjacency from Px to H is assigned BP 19',
    and the connection/adjacency from H to Px is assigned BP 20'.</t>

    <t>The connection/adjacency from Px to D is assigned BP 21',
    and the connection/adjacency from D to Px is assigned BP 22'.
</t>

       <t>In an alternative, all the nodes/BFRs attached to a LAN
          are assumed fully connected each other (i.e., they are 
          fully meshed).
          For a connection between any two BFRs on the LAN,
          two forward connected adjacencies are assigned to
          the two ends of the connection.</t>

       <t>For example, there are four BFRs C, G, H and D attached 
          to the LAN in <xref target="bier-top-lan1"/>. 
          There are six connections among these four BFRs.
          They are connections between C and G, C and H, C and D,
          G and H, G and D, H and D. 
          Twelve BPs are needed for these six connections.</t>

       <t>In general, for n BFRs attached to a LAN,
          there are n*(n-1)/2 connections among these n BFRs and
          n*(n-1) BPs are needed for these connections.
          This may not be scalable. 
          But for this alternative, the BIER-TE BIFT on a BFR 
          needs not to be changed except for considering
          the full mesh connections among the BFRs attached to a LAN.</t>

      </section> <!-- New BP Assignments  for LAN -->

      <section anchor="improved-bifts" 
               title="Improved BIER-TE BIFT on BFR">    
       <t>Each BFR in a BIER-TE domain has
          a BIER-TE BIFT. 
          For a BFR not attached to any LAN, 
          the BIER-TE BIFT on the BFR is the same as before.
          For a BFR attached to a LAN, its BIER-TE BIFT 
          is changed for considering the LAN.</t> 

       <t>For example, BFRs C, G, H and D are attached to a LAN
          in <xref target="bier-top-lan1"/>. 
          The BIER-TE BIFT on each of these four BFRs is changed
          for the new BP assignments for the LAN 
          in  <xref target="bier-top-lan1-bp"/>.</t>

       <t>For a BFR attached to a LAN, suppose that the pseudo node
          for the LAN is Px. 
          The improved BIER-TE BIFT on the BFR comprises 
          a forwarding entry for the LAN adjacency from the BFR to Px 
          and a secondary BIFT for Px.
          The secondary BIFT for Px on the BFR contains 
          a forwarding entry for each of the forward connected
          adjacencies from Px to the BFRs attached to the LAN 
          except for the adjacency from Px to the BFR.</t>

       <t>For example, the improved BIER-TE BIFT on BFR C is
          illustrated in <xref target="te-bift-lan-bfr-c"/>.
          It comprises the forwarding entry for the LAN adjacency 
          from C to Px (indicated by BP 16') and 
          the secondary BIFT for Px on BFR C.
          The secondary BIFT contains three forwarding entries
          for three forward connected adjacencies 
          from Px to G (indicated by 17'), 
          Px to H (indicated by 19') and 
          Px to D (indicated by 21') respectively.

<figure anchor="te-bift-lan-bfr-c" 
        title="Improved BIER-TE BIFT on BFR C">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           | 17'(8:00000001) | fw-connected |     G      |
           +-----------------+--------------+------------+
           | 19'(8:00000100) | fw-connected |     H      |
           +-----------------+--------------+------------+
           | 21'(8:00010000) | fw-connected |     D      |
           +-----------------+--------------+------------+
                     Secondary BIFT for Px on BFR C

           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           |  5'(6:00010000) | fw-connected |     B      |
           +-----------------+--------------+------------+
           | 12'(7:00001000) | fw-connected |     F      |
           +-----------------+--------------+------------+
           | 16'(7:10000000) |lan-connected |     Px     |
           +-----------------+--------------+------------+]]></artwork>
</figure>
</t>

      <t>The improved BIER-TE BIFT on BFR G is
          illustrated in <xref target="te-bift-lan-bfr-g"/>.
          It comprises the forwarding entry for the LAN adjacency 
          from G to Px (indicated by BP 18') and 
          the secondary BIFT for Px on BFR G.
          The secondary BIFT contains three forwarding entries
          for three forward connected adjacencies 
          from Px to C (indicated by 15'), 
          Px to H (indicated by 19') and 
          Px to D (indicated by 21') respectively.

<figure anchor="te-bift-lan-bfr-g" 
        title="Improved BIER-TE BIFT on BFR G">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           | 15'(7:01000000) | fw-connected |     C      |
           +-----------------+--------------+------------+
           | 19'(8:00000100) | fw-connected |     H      |
           +-----------------+--------------+------------+
           | 21'(8:00010000) | fw-connected |     D      |
           +-----------------+--------------+------------+
                     Secondary BIFT for Px on BFR G

           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           |  3'(6:00000100) | fw-connected |     B      |
           +-----------------+--------------+------------+
           | 14'(7:00100000) | fw-connected |     K      |
           +-----------------+--------------+------------+
           | 18'(8:00000010) |lan-connected |     Px     |
           +-----------------+--------------+------------+]]></artwork>
</figure>
</t>

      <t>The improved BIER-TE BIFT on BFR H is
          illustrated in <xref target="te-bift-lan-bfr-h"/>.
          It comprises the forwarding entry for the LAN adjacency 
          from H to Px (indicated by BP 20') and 
          the secondary BIFT for Px on BFR H.
          The secondary BIFT contains three forwarding entries
          for three forward connected adjacencies 
          from Px to C (indicated by 15'), 
          Px to G (indicated by 17') and 
          Px to D (indicated by 21') respectively.

<figure anchor="te-bift-lan-bfr-h" 
        title="Improved BIER-TE BIFT on BFR H">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           | 15'(7:01000000) | fw-connected |     C      |
           +-----------------+--------------+------------+
           | 17'(8:00000001) | fw-connected |     G      |
           +-----------------+--------------+------------+
           | 21'(8:00010000) | fw-connected |     D      |
           +-----------------+--------------+------------+
                     Secondary BIFT for Px on BFR H

           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           |  4 (0:00001000) | local-decap  |            |
           +-----------------+--------------+------------+
           | 20'(8:00001000) |lan-connected |     Px     |
           +-----------------+--------------+------------+]]></artwork>
</figure>
</t>
      <t>The improved BIER-TE BIFT on BFR D is
          illustrated in <xref target="te-bift-lan-bfr-d"/>.
          It comprises the forwarding entry for the LAN adjacency 
          from D to Px (indicated by BP 22') and 
          the secondary BIFT for Px on BFR D.
          The secondary BIFT contains three forwarding entries
          for three forward connected adjacencies 
          from Px to C (indicated by 15'), 
          Px to G (indicated by 17') and 
          Px to H (indicated by 19') respectively.

<figure anchor="te-bift-lan-bfr-d" 
        title="Improved BIER-TE BIFT on BFR D">
  <artwork> <![CDATA[
           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           | 15'(7:01000000) | fw-connected |     C      |
           +-----------------+--------------+------------+
           | 17'(8:00000001) | fw-connected |     G      |
           +-----------------+--------------+------------+
           | 19'(8:00000100) | fw-connected |     H      |
           +-----------------+--------------+------------+
                     Secondary BIFT for Px on BFR D

           +-----------------+--------------+------------+
           |  Adjacency BP   |    Action    |  BFR-NBR   |
           | (SI:BitString)  |              | (Next Hop) |
           +=================+==============+============+
           |  1 (0:00000001) | local-decap  |            |
           +-----------------+--------------+------------+
           | 22'(8:00000100) |lan-connected |     Px     |
           +-----------------+--------------+------------+]]></artwork>
</figure>
         </t>

      </section> <!-- Improved BIER-TE BIFT on BFR -->


      <section title="Updated Forwarding Procedure">  
       <t>The forwarding procedure defined in 
          <xref target="RFC9262"/>
          is updated/enhanced for using an improved BIER-TE BIFT 
          to support BIER-TE with LAN.</t>

       <t>The updated procedure is described in 
          <xref target="proc4-improved-bift"/>.
          For a multicast packet containing the BitString
          encoding an explicit P2MP path,
          if the BP in the BitString 
          is for a LAN adjacency to pseudo node Px for the LAN, 
          the updated forwarding procedure on a BFR 
          sends the packet towards Px's next hop nodes
          on the P2MP path encoded in the packet.</t>

       <t>The procedure on a BFR "sends" (i.e., works as sending) 
          the packet with the BP for 
          the LAN adjacency to Px according to 
          the forwarding entry for the BP in the improved BIER-TE 
          BIFT on the BFR. And then
          it acts on Px to "send" (i.e., works as sending) the packet 
          to each of the Px's next hop nodes that are on the P2MP path
          using the secondary BIFT for Px.</t>

       <t>It obtains the secondary BIFT for Px on the BFR,
          clears all the BPs for the adjacencies of the BFR
          including the adjacency from the BFR to Px, 
          copies and sends the packet to each of the Px's
          next hop nodes on the P2MP path using the 
          secondary BIFT for Px.</t>
 
       <t>For each Px's next hop node on the P2MP path,
          which is represented by BP j in the packet's BitString,
          it gets the forwarding entry for BP j from the 
          secondary BIFT for Px, 
          copies the packet, updates the copy's BitString by 
          clearing all the BPs for Px's adjacencies, 
          and sends the updated copy to the next hop node 
          according to the forwarding entry.
 
<figure anchor="proc4-improved-bift" 
        title="Updated Forwarding Procedure">
  <artwork> <![CDATA[
  Packet = the packet received by BFR;
  FOR each BP k (from the rightmost in Packet's BitString) {
     IF BP k is local decap adjacency (or say BP of BFER) {
        Copies Packet, sends the copy to the multicast 
        flow overlay and clears bit k in Packet's BitString
     } ELSE IF BP k is forward connected adjacency of the BFR {
        Finds the forwarding entry in the BIER-TE BIFT using BP k,
        Copies Packet, updates the copy's BitString by 
        clearing all the BPs for the adjacencies of the BFR, 
        and sends the updated copy to BFR-NBR
     } ELSE IF BP k is LAN adjacency to Px {
        Obtains the secondary BIFT for Px, 
        Clears all the BPs for the adjacencies of the BFR,
        FOR each BP j (from the rightmost in Packet's BitString) {
            IF BP j is Px's forward connected adjacency {
                Gets the forwarding entry for BP j in the 
                secondary BIFT for Px,
                Copies Packet, updates the copy's BitString by 
                clearing all the BPs for Px's adjacencies, 
                and sends the updated copy to BFR-NBR
            }
        }
     }
  }]]></artwork>
</figure> </t>
      </section> <!-- Updated Forwarding Procedure -->
    </section> <!-- Improved BIER-TE  -->


    <section title="Example Application of Improved BIER-TE">
      <t>This section illustrates an example application of 
         improved BIER-TE to <xref target="bier-top-lan1"/>.

         It shows the forwarding behaviors along an explicit
         P2MP path in <xref target="bier-top-lan1-bp"/> going
         through the LAN in the figure.</t>

      <t>The new BP assignments for the LAN 
         in <xref target="bier-top-lan1"/> is 
         shown in <xref target="bier-top-lan1-bp"/>.

         The improved BIER-TE BIFT on each of the BFRs 
         attached to the LAN is given in  
         <xref target="improved-bifts"/>.</t>

      <t>The explicit P2MP path traverses 
         the link/adjacency from A to B (indicated by BP 2'),
         the link/adjacency from B to G (indicated by BP 4') and 
         the link/adjacency from B to C (indicated by BP 6'), 
         the link/adjacency from G to K (indicated by BP 14'), 
         the link/adjacency from G to Px (indicated by BP 18'), 
         the link/adjacency from C to F (indicated by BP 12'), and
         the link/adjacency from Px to H (indicated by BP 19'). 
         This path is represented by
         {2', 4', 6', 12', 14', 18', 19', 2, 4, 6}. 
         The packet at A has this path.</t>

     <t>For the packet with the P2MP path,
        A forwards the packet to B according to the forwarding
        entry for BP 2' in its BIFT.</t>

     <t>After receiving the packet from A,
        B forwards the packet to G and C according to the forwarding 
        entries for BPs 4' and 6' in B's BIFT respectively.
        The packet received by G has path {12', 14', 18', 19', 2, 4, 6}.
        The packet received by C has path {12', 14', 18', 19', 2, 4, 6}.</t> 

     <t>After receiving the packet from B, 
        G sends a copy of the packet to K according to the forwarding
        entry for BP 14' in G's improved BIER-TE BIFT and
        "sends" another copy of the
        packet to Px according to the forwarding 
        entry for BP 18' in G's improved BIER-TE BIFT.
        After receiving the packet from G, 
        which has path {12', 19', 2, 4, 6}, 
        Px "sends" the packet to H according to the forwarding
        entry for BP 19' in the secondary BIFT for Px 
        (a part of G's improved BIER-TE BIFT).</t> 

     <t>After receiving the packet from G, 
        which has path {12', 19', 2, 4, 6},
        K decapsulates the packet and passes a copy of the
        payload of the packet to the packet's NextProto within node K 
        according to the forwarding 
        entry for BP 6 in K's BIFT.</t>

     <t>After receiving the packet from G, 
        which has path {12', 2, 4, 6},
        H decapsulates the packet and passes a copy of the
        payload of the packet to the packet's NextProto within node H 
        according to the forwarding 
        entry for BP 4 in H's improved BIER-TE BIFT.</t>

     <t>After receiving the packet from B, 
        which has path {12', 14', 18', 19', 2, 4, 6},
        C sends the
        packet to F according to the forwarding 
        entry for BP 12' in C's improved BIER-TE BIFT.</t> 

     <t>After receiving the packet from C, 
        which has path {14', 18', 19', 2, 4, 6},
        F decapsulates the packet and passes a copy of the
        payload of the packet to the packet's NextProto within node F 
        according to the forwarding 
        entry for BP 2 in F's BIER-TE BIFT.</t>

     <t>Egress node H of the P2MP path does not receive
        any duplicated packet.</t>

    </section> <!-- Example Application of Improved BIER-TE -->


    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>No requirements for IANA.</t>
    </section>


    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Greg Shepherd and others
      for their comments to this work.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.5286"?>
      <?rfc include="reference.RFC.5714"?>
      <?rfc include="reference.RFC.5880"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include="reference.RFC.8279"?>
      <?rfc include="reference.RFC.8556"?>
      <?rfc include="reference.RFC.7490"?>

      <?rfc include="reference.RFC.5250"?>
      <?rfc include="reference.RFC.5226"?>
      <?rfc include="reference.RFC.7356"?>
      <?rfc include="reference.RFC.7684"?>
      <?rfc include="reference.RFC.7770"?>
      <?rfc include="reference.RFC.9262"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.8296"?>
      <?rfc include="reference.RFC.8401"?>
      <?rfc include="reference.RFC.8444"?>
      <?rfc include="reference.I-D.ietf-rtgwg-segment-routing-ti-lfa"?>
      <?rfc include="reference.I-D.ietf-spring-segment-protection-sr-te-paths"?>
      <?rfc include="reference.I-D.eckert-bier-te-frr"?>
    </references>

  </back>

</rfc>
