<?xml version="1.0" encoding="US-ASCII"?>
<?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-ietf-bier-te-ospfv3-08"
     ipr="trust200902"
     submissionType="IETF"
     consensus="true">
  <front>
    <title abbrev="OSPFv3 for BIER-TE">OSPFv3 Extensions for BIER-TE</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>hchen.ietf@gmail.com</email>
      </address>
    </author>

    <author fullname="Mike McBride" initials="M" surname="McBride">
      <organization>Futurewei</organization>
      <address>
        <email>michael.mcbride@futurewei.com</email>
      </address>
    </author>


     <author 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="Y" fullname="Yanhe Fan" 
            surname="Fan">
      <organization>Casa Systems</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>yfan@casa-systems.com</email>
      </address>
    </author>

   <author initials="L" fullname="Lei Liu" 
            surname="Liu">
      <organization>Fujitsu</organization>
      <address>
        <postal>
          <street> </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>Alef Edge</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region> </region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2024"/>

    <abstract>
      <t>This document describes OSPFv3 extensions for distributing 
         the BitPositions configured on a Bit-Forwarding Router (BFR)
         in a "Bit Index Explicit Replication Traffic Engineering" 
         (BIER-TE) domain. 
      </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.

        There are three types of BitPositions (BPs) in a BIER-TE domain:
        link BitPosition (BP), routed BP and localdecap BP.

        A link BP is a BP configured on a link from 
        Bit-Forwarding Router (BFR) X to BFR Y
        for a forward connected adjacency from X to Y.

        A routed BP is a BP configured on BFR X
        for a forward routed adjacency from X to a remote BFR Z
        not directly connected to X.

        A localdecap BP is a BP configured on a BFR. 
        </t>

     <t><xref target="I-D.ietf-bier-ospfv3-extensions"/> 
        describes OSPFv3 Extensions for distributing
        the BFR identifier (BFR-id) configured on a BFR.

        This document specifies OSPFv3 extensions for distributing 
        the BitPositions configured a BFR
        in a BIER-TE domain.
        The BitPositions distributed may be used 
        by a BFR as a Point of Local Repair (PLR) for 
        Fast-ReRoute (FRR).</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="LSA:">Link State Advertisement.</t>
       <t hangText="OSPF:">Open Shortest Path First.</t>

      </list></t>
    </section>
-->
 <!-- Terminology -->

    </section> <!-- Introduction -->


   <section title="Extensions to OSPFv3">
     <t>This section describes protocol extensions to OSPFv3
        for distributing the BitPositions configured on a BFR in 
        a BIER-TE domain.</t>

     <section anchor="linkBP" title="Link BitPosition">
  
      <t><xref target="RFC8362"/> defines OSPFv3 Extended Router LSA,
         which may include multiple Router-Link TLVs.
<!--
           <figure anchor="e-router-lsa" 
           title="Extended Router-LSA">
  <artwork> <![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |              LS Age         |1|0|1|             0x21          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Link State ID                          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Advertising Router                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      LS Sequence Number                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |        LS Checksum          |             Length              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  0  |N|x|V|E|B|                  Options                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  .                                                               .
  .                              TLVs                             .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
-->
         A Router-Link TLV defines a single router link.
<!--
           <figure anchor="router-link-tlv" 
           title="Router-Link TV">
  <artwork> <![CDATA[   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Type (1 - Router-Link)    |         Length (Variable)       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Link Type  |       0       |              Metric             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Interface ID                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                    Neighbor Interface ID                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Neighbor Router ID                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  .                                                               .
  .                          Sub-TLVs                             .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
-->
         A Router-Link TLV 
         may include a Link-BP Sub-TLV below  
         for distributing a link BP.

           <figure anchor="link-bp-sub-tlv3" 
           title="Link-BP Sub-TLV in Router-Link TLV">
  <artwork> <![CDATA[    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Type (TBD1)          |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | sub-domain-id |     MT-ID     |      BAR      |    IPA        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         BitPosition           |         DrEndBitPosition      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
      <list style="hanging" hangIndent="6">
         <t hangText="Type:">TBD1 is to be assigned by IANA.</t>
         <t hangText="Length:"> Variable.</t>
<!--
            For a Point to Point (P2P) link, 
            it is 6 since there is no DrEndBitPosition.
            For a broadcast link, it is 8 since there is a DrEndBitPosition.</t>
-->
         <t hangText="sub-domain-id, MT-ID, BAR and IPA:">They are defined in 
            Section 2.1 of <xref target="I-D.ietf-bier-ospfv3-extensions"/>.</t>
<!--
         <t hangText="sub-domain-id:">Unique value identifying a BIER-TE 
            sub-domain.</t>
         <t hangText="MT-ID:">Multi-Topology ID identifying the topology 
            that is associated with the BIER-TE sub-domain.</t>
         <t hangText="BAR:">Single-octet BIER Algorithm used to calculate 
            underlay paths to reach other BFRs. Values are allocated
            from the "BIER Algorithm" registry defined in 
            <xref target="RFC8401"/>.</t>
         <t hangText="IPA:">Single-octet IGP Algorithm used to either modify,
            enhance, or replace the calculation of underlay paths to reach 
            other BFRs as defined by the BAR value.  Values are defined
            in the "IGP Algorithm Types" registry.</t>
-->
         <t hangText="BitPosition:">A 2-octet field encoding the BitPosition
            locally configured on the link/interface when the Link Type of 
            the link in the Router-Link TLV containing this Sub-TLV
            is 1 (i.e., Point-to-Point connection to another router) or 
            2 (i.e., connection to Transit Network or say LAN).
            </t>
         <t hangText="DrEndBitPosition:">A 2-octet field encoding the BitPosition
            of the connection on the designated router (DR) end. This field
            exists when the Link Type in the Router-Link TLV 
            containing this Sub-TLV is 2 (i.e., Transit Network or LAN). 
            For the other value of the Link Type, this field MUST NOT exist. The 
            DrEndBitPosition may be configured on 
            the link/interface to a transit network 
            (i.e., broadcast link or say LAN) as described in 
            <xref target="I-D.chen-bier-te-lan"/>.</t>
      </list>
     </t>
    </section>


    <section anchor="rtBPs" title="Routed and Localdecap BitPositions">
     <t>The Node BPs TLV, Routed BP Sub-TLV and Localdecap BP Sub-TLV
        defined in <xref target="I-D.ietf-bier-te-ospf"/> 
        are reused in OSPVv3 for distributing the routed BitPositions  
        and the localdecap BitPosition configured on a BFR. 
        </t>
<!--
     <t>A TLV, called Node BPs TLV, is defined within 
        the body of the OSPF Router Information (RI) Opaque 
        Link State Advertisement (LSA) <xref target="RFC7770"/>. 
        The TLV contains Sub-TLVs. Two types of Sub-TLVs are defined. 
        One is for a Routed BitPosition and 
        the other for a Localdecap BitPosition.</t>  


     <t>The Node BPs TLV has the following format:
           <figure anchor="node-bps-tlv" 
           title="Node BPs TLV">
  <artwork> <![CDATA[   0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Type (TBD2)          |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | sub-domain-id |     MT-ID     |      BAR      |    IPA        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Sub-TLVs                           ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
</t>
     <t>
      <list style="hanging" hangIndent="6">
         <t hangText="Type:">TBD2 is to be assigned by IANA.</t>
         <t hangText="Length:">Variable.</t>
         <t hangText="sub-domain-id, MT-ID, BAR and IPA:">They are defined in 
            Section 2.1 of <xref target="I-D.ietf-bier-ospfv3-extensions"/>.</t>
         <t hangText="Sub-TLVs:">They are Routed-BP Sub-TLVs for Routed BPs
            and/or Localdecap-BP Sub-TLV for Localdecap BP.</t>
      </list>
     </t>

     <t>The Routed-BP Sub-TLV has the following format:
           <figure anchor="rt-bp-sub-tlv" 
           title="Routed-BP Sub-TLV">
  <artwork> <![CDATA[   0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Type (TBDa)          |           Length(4)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         BitPosition           |             BFR-id            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
</t>
     <t>
      <list style="hanging" hangIndent="6">
         <t hangText="Type:">TBDa is to be assigned by IANA.</t>
         <t hangText="Length:">It is 4.</t>
         <t hangText="BitPosition:">A 2-octet field encoding the BitPosition
            configured on a BFR for a forward routed adjacency to a remote BFR.
            </t>
         <t hangText="BFR-id:">A 2-octet field encoding the BFR-id of 
            the remote BFR.</t>
      </list>
     </t>

     <t>The Localdecap-BP Sub-TLV has the following format:
           <figure anchor="ld-bp-sub-tlv" 
           title="Localdecap-BP Sub-TLV">
  <artwork> <![CDATA[   0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Type (TBDb)          |           Length(2)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         BitPosition           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
</t>
     <t>
      <list style="hanging" hangIndent="2">
         <t hangText="Type:">TBDb is to be assigned by IANA.</t>
         <t hangText="Length:">It is 6.</t>
         <t hangText="BitPosition:">A 2-octet field encoding the 
            localdecap BitPosition configured on a BFR.</t>
      </list>
     </t>
-->
    </section>
    </section> <!--  Extensions to OSPFv3 -->



    <section anchor="Security" title="Security Considerations">
      <t>Protocol extensions defined in this document do not 
      affect the OSPF security other than those as discussed 
      in the Security Considerations section of 
      <xref target="RFC8362"/>.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">

      <t>Under "OSPFv3 Extended-LSA Sub-TLVs" registry as defined
         in <xref target="RFC8362"/>, IANA is
         requested to assign a new registry value for 
         Link-BP Sub-TLV as follows:

<figure>
  <artwork>
  +==============+===================+=====================+
  |  Value       |  Description      |    reference        |
  +==============+===================+=====================+
  |  TBD1 (30)   |  Link-BP          |    This document    |
  +--------------+-------------------+---------------------+
  </artwork>
</figure>
</t>
    </section>

  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include="reference.RFC.8362"?>
      <?rfc include="reference.RFC.9262"?>
      <?rfc include="reference.I-D.ietf-bier-te-ospf"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.8401"?>
      <?rfc include="reference.I-D.ietf-bier-ospfv3-extensions"?>
      <?rfc include="reference.I-D.chen-bier-te-lan"?>
    </references>

    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t>The authors would like to thank Acee Lindem, Les Ginsberg,
         Tony Przygienda, Jeffrey Zhang and 
         Toerless Eckert for their comments on this work.</t>
    </section>
  </back>

</rfc>
