<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
        <!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
        <!ENTITY RFC3032 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3032.xml">
        <!ENTITY RFC3277 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3277.xml">
        <!ENTITY RFC3719 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3719.xml">
        <!ENTITY RFC4271 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
        <!ENTITY RFC5120 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5120.xml">
        <!ENTITY RFC5301 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5301.xml">
        <!ENTITY RFC5303 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5303.xml">
        <!ENTITY RFC5305 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5305.xml">
        <!ENTITY RFC5308 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5308.xml">
        <!ENTITY RFC5309 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5309.xml">
        <!ENTITY RFC5311 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5311.xml">
        <!ENTITY RFC5316 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5316.xml">
        <!ENTITY RFC5440 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5440.xml">
        <!ENTITY RFC5449 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5449.xml">
        <!ENTITY RFC5614 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5614.xml">
        <!ENTITY RFC5837 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5837.xml">
        <!ENTITY RFC5820 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5820.xml">
        <!ENTITY RFC6232 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6232.xml">
        <!ENTITY RFC7356 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7356.xml">
        <!ENTITY RFC7921 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7921.xml">
        <!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <!ENTITY RFC8126 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8126.xml">
		<!ENTITY RFC8401 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8401.xml">
		<!ENTITY RFC8444 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8444.xml">
		<!ENTITY RFC9793 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9793.xml">
        <!ENTITY RFC8296 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8296.xml">
        ]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-zzhang-bier-unmasked-bier-02" ipr="trust200902">

    <!-- ***** FRONT MATTER ***** -->

    <front>

        <title>Unmasked BIER Mode</title>

        <author initials='T.' surname='Przygienda' fullname='Tony Przygienda'>
            <organization>HPE</organization>
            <address>
                <email>antoni.przygienda@hpe.com</email>
            </address>
        </author>

        <author initials='J.' surname='Zhang' fullname='Jeffrey (Zhaohui) Zhang'>
            <organization>HPE</organization>
            <address>
                <email>zhaohui.zhang@hpe.com</email>
            </address>
    </author>

        <author initials='H.' surname='Bidgoli' fullname='Hooman Bidgoli'>
            <organization>Nokia</organization>
            <address>
                <email>hooman.bidgoli@nokia.com</email>
            </address>
        </author>

        <author initials='I.' surname='Wijnands' fullname='IJsbrand Wijnands'>
            <organization>Individual</organization>
            <address>
                <email>ice@braindump.be</email>
            </address>
        </author>
		
		<author initials='Z.' surname='Zhang' fullname='Zheng Zhang' role="editor">
          <organization>ZTE Corporation</organization>
          <address>
            <email>zhang.zheng@zte.com.cn</email>
         </address>
        </author>


        <date/>

        <abstract>
            <t>
                The document introduces a new mode of interpretation of the bitmask field in the BIER encoding, called
                unmasked BIER, that solves the problem of BIER originator targeting receivers across many different sets and hence,
                in worst case, degrading into ingress replication.
            </t>


        </abstract>

    </front>

    <middle>

        <section title="Introduction">

            <t>

                BIER technology <xref target="RFC8296"/> in its standard form may suffer from a degradation towards
                ingress replication in a scenario where the total number of involved BFRs
                is very large but most packets address
                varying combination of relatively few receivers spread across different sets.
                </t>
            <t>
                More explicitly, BIER carries in its standard form a bitmask of successive BFR receivers represented as bits in a set
                and thus on large numbers of involved BFRs and few receivers w/o customized allocation of BFR IDs
                or application awareness of the address locality
                each receiver on a packet may be found in a different set in most extreme cases.
                Obviously, when receivers are in different sets, multiple packets MUST be sent,
                one per involved set.
                Such a scenario can become common in large distributed computation environments
                based on consensus building algorithms (or building closures by successive folding of results),
                e.g. multi-CPU HPC or data centers and RAID storage where storing data while addressing large
                number of always changing stripes can lead to this kind of anomaly.
            </t>
			
			<section numbered="true" toc="default">
              <name>Requirements Language</name>
                <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" format="default"/>.</t>
            </section>
        </section>

        <section title="Unmasked BIER">
            <t>
               To deal with the problem of small number of receivers spread across many sets we introduce
                into BIER a special interpretation of the bitmask field called unmasked BIER or U-BIER for brevity's sake.
                U-BIER bitmask is interpreted as sequence of BFR-IDs that can belong to different sets and
                be interspersed with "holes" consisting of illegal BFR-IDs to increase hardware processing efficiency.
            </t>
			
			<t>Each BFR-ID occupies 2 octets. The number of destination BFR-IDs encapsulated in each message 
			depends on the length of the BSL. When the BSL is 64 bits, 4 BFR-IDs can be encapsulated; 
			when the BSL is 256 bits, 16 BFR-IDs can be encapsulated, and so on.
            When the number of discrete receivers exceeds the number that can be encapsulated in a single 
			message, multiple message encapsulation can be used. 
			For example, if the BSL is 256 bits but 32 destination BFR-IDs need to be encapsulated, 
			16 destination BFR-IDs can be encapsulated in each message, resulting in 2 messages.</t>
			
            <t>
                Support for processing of unmasked BIER is indicated by signalling special label or its equivalent
                analogous
                to BIER Encapsulation signalling. Based on this info the upstream node
                can decide on a hop-by-hop basis whether
                it compresses the same BIER frames it received for different sets (how the recognition of
                same frames is performed is outside the scope of this document) into a single U-BIER frame or
                propagates a U-BIER frame with according changes, i.e. only providing the BFR-IDs for which
                the receiver is responsible. The removal of BFR IDs from the packet before forwarding it
                is completely analogous to the normal bitmask processing in a sense but here
                spanning possibly many sets in the lookup engine. In case the downstream receiver does not
                support U-BIER the frame needs to be replicated into according standard BIER frames with usual
                bitmask interpretation.
            </t>
			
			<section title="U-BIER header example">
            <t>
                The following is an example of U-BIER encapsulation. 
				Suppose there are 8 discrete BFR-IDs that need to be encapsulated into a U-BIER header. 
				BFR-ID1~8 represent 8 destinations respectively. 
            </t>
			
			<figure align="left">
                    <artwork align="left"><![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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |              BIFT-id                  | TC  |S|     TTL       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |Nibble |  Ver  |  BSL  |              Entropy                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |OAM|Rsv|    DSCP   |   Proto   |            BFIR-id            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             zero                              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             zero                              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             zero                              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             zero                              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             BFR-ID1           |            BFR-ID2            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             BFR-ID3           |            BFR-ID4            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             BFR-ID5           |            BFR-ID6            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             BFR-ID7           |            BFR-ID8            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
                </figure>

              <t>In this example, the number of encapsulated BFR-IDs is less than 16, 
			  the BFR-IDs are encoded at the end of the BitString, 
			  and the unused BitStrings are set to 0. 
			  Encoding the BFR-IDs at the end makes it easier to determine
			  if there are more BFR-IDs to check, as a BFR-ID may be cleared
			  during the forwarding iteration (see below).
			  </t>
			
			</section>
        </section>

        <section title="U-BIER Interpretation of the bitmask field">
            <t>
                The bitmask field MUST be interpreted in U-BIER mode as sequence of BFR-IDs (as an example, within 256 bits
                maximum 16 receivers can be encoded) whereas illegal BFR-IDs are allowed in any position and MUST be
                ignored. Duplicates are also allowed and MUST be treated as a single occurrence. No guarantees are
                provided in terms of sorting of the BFR-IDs in U-BIER.
            </t>
			
            <t>Conceptually and over-simplified, a BFR checks the BFR-IDs in the incoming BitString
			one by one. The lookup of a BFR-ID produces a next hop, and the rest of BFR-IDs are scanned.
			Any BFR-ID covered by the next hop's F-BM are moved into the copy of the packet sent to the next hop,
			and cleared	from the incoming packet. The process iterates until no more BFR-IDs are present
			in the incoming BitString.</t>

			<t>For the regular BIER, the reference model is that BIFTs for the same (SD, BSL) but different
			sets are separate. An implemenation may be different - it could have a single
			BIFT for all the sets of the same (SD, BSL) and the lookup of a bit index happens in the appropriate
			section of that single table. This document follows	the reference model because it is desired to
			have U-BIER and regular BIER co-exist and share the infrastructure as much as possible, while
			an implementation could still be different.
			Note that the F-BM checked for coverage of more BFR-IDs now is a combined set of all F-BMs
			for all the sets.</t>
            <t>An implementation may also preprocess the BFR-IDs into a BitString and then follow the
			regular BIER forwarding. When a copy is sent, it may use regular BIER encoding (with a true
			BitString) or use U-BIER encoding (with individual BFR-ID encoded in the BitString).</t>

        </section>

         <section title="Signalling">
            <t>The following sub-section will describe the extensions of IS-IS, OSPF, and BGP protocols 
			in MPLS and non-MPLS scenarios, respectively.</t>
			
			<section title="Signalling for MPLS in ISIS via U-Mode BIER MPLS Encapsulation Sub-sub-TLV" anchor="tlvs-isis-mpls">
                <t>
                   The signalling follows the BIER MPLS Encapsulation Sub-sub-TLV 
				   <xref target="RFC8401"/>, i.e. it is &lt;SD, SI, BSL&gt; specific
                    but obviously does not include the concept of a set.
                </t>


                <figure align="left">
                    <artwork align="left"><![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       |   Length      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Reserved    |BS Len |                    Label              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...
  ]]></artwork>
                </figure>

                <t><list>
                    <t>Type: TBD1</t>

                    <t>Length: 4 * of U-Mode BitString Length specific labels.</t>

                    <t>Reserved: MUST be 0 on send and ignored on reception.</t>
					
					<t>BS Len: BitString Length. A 4-bit field encoding the supported
                    BitString length associated with this BFR-prefix using the
                    exponential encoding defined in section 2.1.2 <xref target="RFC8296"/>.</t>

                    <t>Label: Frames received  on this label interpret the BitMask as U-BIER.</t>
                </list></t>

                <t>
                In case multiple values are advertised for same bitstring length, the sub-sub-TLV MUST be ignored.
                In case same label value is advertised for different bitstring lengths, the sub-sub-TLV MUST be ignored.
                </t>
                <t>
                Label values MUST NOT match any of the reserved values defined in
               <xref target="RFC3032"/>.
                </t>

            </section>
			
			<section title="Signalling for non-MPLS in ISIS via U-Mode BIER non-MPLS Encapsulation Sub-sub-TLV" anchor="tlvs-isis-non-mpls">
                <t>
                   The signalling follows the IS-IS BIER non-MPLS Encapsulation Sub-sub-TLV 
				   <xref target="I-D.ietf-bier-lsr-non-mpls-extensions" format="default"/>, excluding the SI.
                </t>


                <figure align="left">
                    <artwork align="left"><![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       |   Length      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Reserved    |BS Len |                BIFT-ID                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...
  ]]></artwork>
                </figure>

                <t><list>
                    <t>Type: TBD2</t>

                    <t>Length: 4 octets.</t>

                    <t>Reserved: MUST be 0 on send and ignored on reception.</t>
					
					<t>BS Len: BitString Length. A 4-bit field encoding the supported
                    BitString length associated with this BFR-prefix using the
                    exponential encoding defined in section 2.1.2 <xref target="RFC8296"/>.</t>

                    <t>BIFT-ID: A 20 bit field encoding the BIFT-id.</t>
                </list></t>

                <t>
                In case multiple values are advertised for same bitstring length, the sub-sub-TLV MUST be ignored.
                In case same BIFT-ID value is advertised for different bitstring lengths, the sub-sub-TLV MUST be ignored.
                </t>
            </section>
			
			<section title="Signalling for MPLS in OSPFv2 via U-Mode BIER MPLS Encapsulation Sub-TLV" anchor="tlvs-ospf-mpls">
                <t>
                   The signalling follows the BIER MPLS Encapsulation Sub-TLV
				   <xref target="RFC8444"/>, excluding the SI.
                </t>


                <figure align="left">
                    <artwork align="left"><![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             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Reserved   |                     Label                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |BS Len |                     Reserved                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
                </figure>

                <t><list>
                    <t>Type: TBD3</t>

                    <t>Length: 8 octets.</t>

                    <t>Reserved: MUST be 0 on send and ignored on reception.</t>
					
					<t>BS Len: BitString Length. A 4-bit field encoding the supported
                    BitString length associated with this BFR-prefix using the
                    exponential encoding defined in section 2.1.2 <xref target="RFC8296"/>.</t>

                    <t>Label: Frames received  on this label interpret the BitMask as U-BIER.</t>
                </list></t>

                <t>
                In case multiple values are advertised for same bitstring length, the sub-TLV MUST be ignored.
                In case same label value is advertised for different bitstring lengths, the sub-TLV MUST be ignored.
                </t>
                <t>
                Label values MUST NOT match any of the reserved values defined in
               <xref target="RFC3032"/>.
                </t>

            </section>
			
			<section title="Signalling for non-MPLS in OSPFv2 via U-Mode BIER non-MPLS Encapsulation Sub-TLV" anchor="tlvs-ospf-non-mpls">
                <t>
                   The signalling follows the OSPFv2 BIER non-MPLS Encapsulation Sub-TLV  
				   <xref target="I-D.ietf-bier-lsr-non-mpls-extensions" format="default"/>, excluding the SI.
                </t>

                <figure align="left">
                    <artwork align="left"><![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             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Reserved    |                   BIFT-id                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |BS Len |                     Reserved                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
                </figure>

                <t><list>
                    <t>Type: TBD4</t>

                    <t>Length: 8 octets.</t>

                    <t>Reserved: MUST be 0 on send and ignored on reception.</t>
					
					<t>BS Len: BitString Length. A 4-bit field encoding the supported
                    BitString length associated with this BFR-prefix using the
                    exponential encoding defined in section 2.1.2 <xref target="RFC8296"/>.</t>

                    <t>BIFT-ID: A 20 bit field encoding the BIFT-ID.</t>
                </list></t>

                <t>
                In case multiple values are advertised for same bitstring length, the sub-TLV MUST be ignored.
                In case same BIFT-ID value is advertised for different bitstring lengths, the sub-TLV MUST be ignored.
                </t>
            </section>
			
			<section title="Signalling for MPLS in OSPFv3 via U-Mode BIER MPLS Encapsulation Sub-TLV" anchor="tlvs-ospfv3-mpls">
                <t>
                   The signalling follows the BIER MPLS Encapsulation Sub-TLV 
				   <xref target="I-D.ietf-bier-ospfv3-extensions" format="default"/>, excluding the SI.
                </t>


                <figure align="left">
                    <artwork align="left"><![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 = TBD5      |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Reserved  |                    Label                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |BS Len |                     Reserved                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
                </figure>

                <t><list>
                    <t>Type: TBD5</t>

                    <t>Length: 8 octets.</t>

                    <t>Reserved: MUST be 0 on send and ignored on reception.</t>
					
					<t>BS Len: BitString Length. A 4-bit field encoding the supported
                    BitString length associated with this BFR-prefix using the
                    exponential encoding defined in section 2.1.2 <xref target="RFC8296"/>.</t>

                    <t>Label: Frames received on this label interpret the BitMask as U-BIER.</t>
                </list></t>

                <t>
                In case multiple values are advertised for same bitstring length, the sub-TLV MUST be ignored.
                In case same label value is advertised for different bitstring lengths, the sub-TLV MUST be ignored.
                </t>
                <t>
                Label values MUST NOT match any of the reserved values defined in
               <xref target="RFC3032"/>.
                </t>

            </section>
			
			<section title="Signalling for non-MPLS in OSPFv3 via U-Mode BIER non-MPLS Encapsulation Sub-TLV" anchor="tlvs-ospfv3-non-mpls">
                <t>
                   The signalling follows the OSPFv3 BIER non-MPLS Encapsulation Sub-TLV 
				   <xref target="I-D.ietf-bier-lsr-non-mpls-extensions" format="default"/>, excluding the SI.
                </t>

                <figure align="left">
                    <artwork align="left"><![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 = TBD6      |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Reserved  |                   BIFT-id                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |BS Len |                     Reserved                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
                </figure>

                <t><list>
                    <t>Type: TBD6</t>

                    <t>Length: 8 octets.</t>

                    <t>Reserved: MUST be 0 on send and ignored on reception.</t>
					
					<t>BS Len: BitString Length. A 4-bit field encoding the supported
                    BitString length associated with this BFR-prefix using the
                    exponential encoding defined in section 2.1.2 <xref target="RFC8296"/>.</t>

                    <t>BIFT-ID: A 20 bit field encoding the BIFT-ID.</t>
                </list></t>

                <t>
                In case multiple values are advertised for same bitstring length, the sub-TLV MUST be ignored.
                In case same BIFT-ID value is advertised for different bitstring lengths, the sub-TLV MUST be ignored.
                </t>
            </section>
			
			<section title="Signalling for MPLS in BGP via U-Mode BIER MPLS Encapsulation Sub-TLV" anchor="tlvs-bgp-mpls">
                <t>
                   The signalling follows the BIER MPLS Encapsulation Sub-TLV
				   <xref target="RFC9793"/>, excluding the SI.
                </t>


                <figure align="left">
                    <artwork align="left"><![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 =TBD7           |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Reserved   |BS Len |             Label                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                        sub-TLVs                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
                </figure>

                <t><list>
                    <t>Type: TBD7</t>

                    <t>Length: 2 octets encoding the length in octets of the Value part. 
					The value is 4 or other (depending on sub-TLVs).</t>

                    <t>Reserved: MUST be 0 on send and ignored on reception.</t>
					
					<t>BS Len: BitString Length. A 4-bit field encoding the supported
                    BitString length associated with this BFR-prefix using the
                    exponential encoding defined in section 2.1.2 <xref target="RFC8296"/>.</t>

                    <t>Label: Frames received  on this label interpret the BitMask as U-BIER.</t>
                </list></t>

                <t>
                In case multiple values are advertised for same bitstring length, the sub-TLV MUST be ignored.
                In case same label value is advertised for different bitstring lengths, the sub-LV MUST be ignored.
                </t>
                <t>
                Label values MUST NOT match any of the reserved values defined in
               <xref target="RFC3032"/>.
                </t>

            </section>
			
			<section title="Signalling for non-MPLS in BGP via U-Mode BIER non-MPLS Encapsulation Sub-TLV" anchor="tlvs-bgp-non-mpls">
                <t>
                   The signalling follows the BIER non-MPLS Encapsulation Sub-TLV 
				   <xref target="RFC9793"/>, excluding the SI.
                </t>

                <figure align="left">
                    <artwork align="left"><![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 = TBD8           |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Reserved   |BS Len |                  BIFT-id              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                        sub-TLVs                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
                </figure>

                <t><list>
                    <t>Type: TBD8</t>

                    <t>Length: 2 octets encoding the length in octets of the Value part. 
					The value is 4 or other (depending on sub-TLVs).</t>

                    <t>Reserved: MUST be 0 on send and ignored on reception.</t>
					
					<t>BS Len: BitString Length. A 4-bit field encoding the supported
                    BitString length associated with this BFR-prefix using the
                    exponential encoding defined in section 2.1.2 <xref target="RFC8296"/>.</t>

                    <t>BIFT-ID: A 20 bit field encoding the BIFT-id.</t>
                </list></t>

                <t>
                In case multiple values are advertised for same bitstring length, the sub-TLV MUST be ignored.
                In case same BIFT-ID value is advertised for different bitstring lengths, the sub-TLV MUST be ignored.
                </t>
            </section>
			
			
		</section>


        <section title="Further Considerations" toc="default">

            <t>U-BIER can be deployed within existing BIER node by node, either as addition or the only mode supported.
                Observe that in an environment where only some nodes support U-BIER those may have to disaggregate
                U-BIER into normal BIER and hence fall back to average replication. In a network where some nodes
                support only U-BIER normal BIER nodes may consider them not supporting BIER at all or may perform
                translation from normal BIER into U-BIER frames, however, it MUST be expected that they
                will use a single frame and basically send U-BIER with the BFR IDs of a single set only, not
                rendering any gains unless a mechanism is in place the same frame is detected sent on multiple
                sets and coalesced into a single U-BIER frame. This can be achieved by many mechanisms out the scope
                of this draft, amongst them a shim after the BIER encapsulation <xref target="I-D.zzhang-bier-extension-headers"/>

                in way similar to inband
                telemetry or fragmentation support.
            </t>

            <t>
                Mixing U-BIER and normal BIER within a subdomain can lead to difficulties of decoding the
                according packets in the middle in terms of destinations targeted if the involved parties in the
                middle do not possess the correct binding information. An obvious method to deal with
                this problem is to deploy U-BIER specifically in its own sub-domain where the interpretation of the
                bitmask is unambiguous.
            </t>

        </section>

        <section title="Security Considerations" toc="default">

            <t>TBD
            </t>

        </section> <!-- end of security considerations -->

        <section title="IANA Considerations">
          <t>The document requests new allocations from the IANA registries as follows:</t>
		  
		  <section title="IS-IS sub-sub-TLVs for BIER Info sub-TLV Registry">
            <t>U-Mode BIER MPLS Encapsulation Sub-sub-TLV: TBD1 </t>
			<t>U-Mode BIER non-MPLS Encapsulation Sub-sub-TLV: TBD2 </t>
          </section>
		  
		  <section title="OSPFv2 Extended Prefix TLV Sub-TLVs Registry">
            <t>U-Mode BIER MPLS Encapsulation Sub-TLV: TBD3 </t>
			<t>U-Mode BIER non-MPLS Encapsulation Sub-TLV: TBD4 </t>
          </section>
		  
		  <section title="OSPFv3 Extended LSA Sub-TLVs Registry">
            <t>U-Mode BIER MPLS Encapsulation Sub-TLV: TBD5 </t>
			<t>U-Mode BIER non-MPLS Encapsulation Sub-TLV: TBD6 </t>
          </section>
		  
		  <section title="BGP BIER TLV and Sub-TLV Types Registry">
            <t>U-Mode BIER MPLS Encapsulation Sub-TLV: TBD7 </t>
			<t>U-Mode BIER non-MPLS Encapsulation Sub-TLV: TBD8 </t>
          </section>
        </section>
		
        <!-- 2 -->
        <section title="Acknowledgement" toc="default">

            <t>Michael Menth and Toerless Eckert mentioned the problem and approaches to address it in open forums
            for the first time.</t>

        </section> <!-- end of contributors -->

    </middle>

    <back>

        <references title="Normative References">

            &RFC2119;
			&RFC3032;
			&RFC8401;
			&RFC8444;
			&RFC8296;
            &RFC9793;
			
			<?rfc include="reference.I-D.ietf-bier-ospfv3-extensions.xml"?>
			<?rfc include="reference.I-D.ietf-bier-lsr-non-mpls-extensions.xml"?>

        </references> <!-- end of normative references -->

        <references title="Informative References">



            <?rfc include="reference.I-D.zzhang-bier-extension-headers.xml"?>

        </references> <!-- end of informative references -->

    </back>

</rfc>
