<?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-ietf-bier-te-isis-03"
     ipr="trust200902">
  <front>
    <title abbrev="ISIS for BIER-TE">IS-IS 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>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="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>IBM Corporation</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region> </region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2022"/>

    <abstract>
      <t>This document describes IS-IS extensions for distributing BitPositions 
         configured on the links 
         in "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.

        A link in a BIER-TE domain has its BitPositions.
        For a link between two nodes X and Y, there are two BitPositions for
        two forward connected adjacencies.  These two 
        adjacency BitPositions could be configured on nodes X and Y respectively.
        The BitPosition configured on X is the forward connected adjacency of
        Y.  The BitPosition configured on Y is the forward connected adjacency
        of X.</t>

     <t>This document proposes IS-IS extensions for distributing BitPositions 
        configured on the links 
        in "Bit Index Explicit Replication Traffic Engineering" (BIER-TE)
        domain.</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="IS-IS:">Intermediate System to Intermediate System.</t>

      </list></t>
    </section> <!-- Terminology -->

    </section> <!-- Introduction -->


   <section title="Extensions to IS-IS">
     <t>This section describes protocol extensions to IS-IS
        for distributing BIER-TE information
        such as the BitPositions configured on the links in 
        a BIER-TE domain.</t>

<!--
     <t>BIER Info Sub-TLV of the following format is used to
        advertise the information for the BIER subdomains.
           <figure anchor="bier-info-sub-tlv" 
           title="BIER Info 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 (32)    |    Length     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |      BAR      |      IPA      |  subdomain-id | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |             BFR-id            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  sub-sub-TLVs (variable)                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>

    Any IS-IS BIER information Sub-TLV is carried within the TLVs 
    235, 237 [RFC5120], 135 [RFC5305], or 236 [RFC5308]. 
    </t>

    <t>Multi-Topology Reachable IPv4 Prefixes TLV (Type 235) 
       is aligned with extended IP
       reachability TLV type 135 beside an additional two bytes in front.
 
           <figure anchor="mt-ipv4-prefix-tlv" 
           title="MT Reachable IPv4 Prefixes TLV (235)">
  <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 (235)   |    Length     |R R R R|         MT ID         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       extended IP reachability TLVs (Type 135) (variable)     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
</t>

    <t>Multi-Topology Reachable IPv6 Prefixes TLV (Type 237) 
       is aligned with IPv6
       reachability TLV type 236 beside an additional two bytes in front. 

           <figure anchor="mt-ipv6-prefix-tlv" 
           title="MT Reachable IPv6 Prefixes TLV (237)">
  <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 (237)   |    Length     |R R R R|         MT ID         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          IPv6 reachability TLVs (Type 236) (variable)         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
</t>

    <t>Extended IP reachability TLV (Type 135) 
       can hold sub-TLVs that apply to a particular prefix.
       reachability TLV type 236 beside an additional two bytes in front. 

           <figure anchor="ex-ip-reach-tlv" 
           title="Extended IP reachability TLV (135)">
  <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 (135)   |    Length     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              Metric                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|S|Prefix-Len |           Prefix (0 - 4 bytes)                ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Sub-TLVs (variable)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
   U -  up/down information.
   S -  indicating the presence of sub-TLVs.
</t>

    <t>IPv6 reachability TLV (Type 236) 
       can hold sub-TLVs that apply to a particular prefix.

           <figure anchor="ipv6-reach-tlv" 
           title="IPv6 reachability TLV (236)">
  <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 (236)   |    Length     |             Metric            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Metric              |U|X|S| Reserve |   Prefix-Len  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Prefix (0 - 16 bytes)                                ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Sub-TLV-Len  |     Sub-TLVs (variable)                       ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
   U -  up/down information.
   X - external original bit.
   S -  indicating the presence of sub-TLVs.
</t>
-->

    <t>An Extended IS Reachability TLV (Type 22) 
       defined in <xref target="RFC5305"/> 
       may contain Sub-TLVs (such as those for TE) 
       that apply to a link/interface to a neighbor. 
<!--
       The format of the TLV is as follows:

           <figure anchor="ex-is-reach-tlv" 
           title="Extended IS reachability TLV (22)">
  <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 (22)   |    Length     |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   |  Neighbor System ID (6 bytes) and Pseudonode Number (1 byte)  |
   |               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               |               Metric (3 bytes)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Sub-TLVs (variable)                    ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
      <list style="hanging" hangIndent="6">
         <t hangText="Type:">22.</t>
         <t hangText="Length:">Variable, dependent on the number of 
            neighbors.</t>
         <t hangText="Neighbor System ID and Pseudonode Number (7 bytes):">
            Identifies a neighbor over a link/interface.</t>
         <t hangText="Metric (3 bytes):">Indicates the metric to
            the neighbor.</t>

         <t hangText="Sub-TLVs:">Encode the information about the 
            link/interface to the neighbor.</t>
      </list>
-->
   To encode multiple links or interfaces to neighbors, 
   the structure inside TLV is repeated.
</t>

    <t>MT Intermediate Systems TLV (Type 222) defined in 
       <xref target="RFC5120"/>
       may contain Sub-TLVs (such as those for TE) 
       that apply to a link/interface. 
       It is aligned with Extended IS
       Reachability TLV (Type 22) beside an additional two bytes in front at
       the beginning of the TLV for MT-ID.</t>

<!--
<t>
           <figure anchor="mt-is-tlv" 
           title="MT Intermediate Systems TLV (222)">
  <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 (222)  |    Length     |R R R R|          MT-ID        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Neighbor system ID (6 bytes) and pseudonode number (1 byte)  |
   |                                               +-+-+-+-+-+-+-+-+
   |                                               |Metric(3 bytes)|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Metric (3 bytes)          | Sub-TLVs-Len  |               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |
   |                        Sub-TLVs (variable)                    ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
   To encode multiple adjacencies, 
   the structure inside TLV is repeated.
   If no Sub-TLVs are used, 11 bytes is needed for a neighbor.
   The TLV can contain up to 23 neighbors.
</t>
-->
     <t>BIER-TE Info Sub-TLV of the following format is defined and 
        used in Extended IS Reachability TLV (Type 22) and/or 
        MT Intermediate Systems TLV (Type 222) to
        advertise the BIER-TE information about a link or interface.

           <figure anchor="bier-te-info-sub-tlv" 
           title="BIER-TE Info 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 (TBD1)  |    Length     | sub-domain-id |      BAR      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |      IPA      |         BitPosition           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |     DisEndBitPosition         |    Sub-Sub-TLVs (variable)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   |                                                               ~ 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>

      <list style="hanging" hangIndent="6">
         <t hangText="Type:">TBD1 is to be assigned by IANA.</t>
         <t hangText="Length:">Variable, dependent on Sub-Sub-TLVs.</t>
         <t hangText="sub-domain-id:">Unique value identifying a 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 to an Intermediate System
            neighbor.</t>
         <t hangText="DisEndBitPosition:">A 2-octet field encoding the BitPosition
            of the connection on the designated Intermediate Systems (Dis) end. 
            This field is valid when the neighbor is a pseudonode. 
            If the neighbor is not a pseudonode, this field MUST be ignored. 
            The DisEndBitPosition may be configured on 
            the link/interface to a transit network 
            (i.e., broadcast link or say LAN).</t>
      </list>
      No Sub-Sub-TLV is defined so far.
 </t>

    </section> <!--  Extensions to IS-IS -->



    <section anchor="Security" title="Security Considerations">
      <t>Protocol extensions defined in this document do not 
      affect the IS-IS security.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>Under "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information" 
         registry, IANA is
         requested to assign a new Sub-TLV Type for 
         BIER-TE Info as follows:

<figure>
  <artwork> 
  +=======+=============+==+==+==+===+===+===+=============+
  | Type  |Description  |22|23|25|141|222|223|reference    |
  +=======+=============+==+==+==+===+===+===+=============+
  | TBD1  |BIER-TE Info |y |y |n | n | y | y |This document|
  +-------+-------------+--+--+--+---+---+---+-------------+
  </artwork>
</figure>
</t>

    </section>


    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Les Ginsberg, Tony Przygienda and Acee Lindem 
      for their comments on this work.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include="reference.RFC.8279"?>
      <?rfc include="reference.RFC.5305"?>
      <?rfc include="reference.RFC.5120"?>
      <?rfc include="reference.RFC.5226"?>
      <?rfc include="reference.RFC.9262"?>
    </references>

    <references title="Informative References">

      <?rfc include="reference.RFC.8296"?>
      <?rfc include="reference.RFC.8401"?>

      <?rfc include="reference.RFC.8556"?>
    </references>

  </back>

</rfc>
