<?xml version="1.0" encoding="iso-8859-1" ?>
<!--<!DOCTYPE rfc SYSTEM "rfc4748.dtd"> -->
    <!DOCTYPE rfc SYSTEM 'rfc2629.dtd' [ 
    <!ENTITY rfc2629 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml'> 
		<!ENTITY RFC2119 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'> 
    <!ENTITY RFC8174 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml'> 
    <!ENTITY RFC6126 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6126.xml'> 
    <!ENTITY RFC7557 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.7557.xml'> 
    <!ENTITY RFC8279 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8279.xml'> 
    <!ENTITY RFC8296 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8296.xml'> 
    <!ENTITY RFC8401 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8401.xml'> 
    <!ENTITY RFC8444 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8444.xml'> 
    <!ENTITY I-D.ietf-babel-rfc6126bis PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-babel-rfc6126bis.xml'>
    <!ENTITY I-D.ietf-bier-ospfv3-extensions PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-bier-ospfv3-extensions.xml'>
    <!ENTITY I-D.ietf-bier-lsr-ethernet-extensions PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-bier-lsr-ethernet-extensions.xml'>
    <!ENTITY I-D.zhang-bier-bierin6 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.zhang-bier-bierin6.xml'>
		]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>		

<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc disable-output-escaping="yes"?>

<rfc category="std"  docName="draft-zhang-bier-babel-extensions-04"
     ipr="trust200902">
  <!-- ***** FRONT MATTER ***** -->
  <front>
    <title abbrev="BIER Babel extensions">BIER in BABEL</title>
	
	<author fullname="Zheng(Sandy) Zhang" initials="Z" surname="Zhang">
      <organization>ZTE Corporation</organization>

      <address>
        <postal>
          <street>No. 50 Software Ave, Yuhuatai Distinct</street>
          
          <city>Nanjing</city>
          
          <region></region>
  
          <code></code>

          <country>China</country>
        </postal>

        <email>zhang.zheng@zte.com.cn</email>
      </address>
    </author>
	
	 <author fullname="Tony Przygienda" initials="A" surname="Przygienda">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street></street>
          
          <city></city>
          
          <region></region>
  
          <code></code>

          <country></country>
        </postal>

        <email>prz@juniper.net</email>
      </address>
    </author>

	<date year="2020"/>	
    <area>Routing</area>
    <workgroup>BIER WG</workgroup>
    <keyword>BIER, Babel</keyword>
    <abstract>
     <t>BIER introduces a novel multicast architecture. It does not require a signaling
    protocol to explicitly
	 build multicast distribution trees, nor does it require intermediate nodes to
	 maintain any per-flow state.
</t>
<t>
	Babel defines a distance-vector routing protocol that operates in a robust and
	 efficient fashion both in wired as well as
in wireless mesh networks. This document
	 defines a way to carry necessary BIER signaling information in Babel. </t>
    </abstract>
  </front>

  <!-- ***** MIDDLE MATTER ***** -->

  <middle>
    <section title="Introduction">
    <t><xref target="RFC8279"/> introduces a novel 
    multicast architecture. It does not require a signaling
    protocol to explicitly
    build multicast distribution trees, nor does it require intermediate nodes to
    maintain any per-flow state. All procedures necessary to support
    BIER are abbreviated by the "BIER architecture" moniker in this document.
    </t>

<!--
	  <t>BIER information can be carried in OSPF and ISIS routing protocol as
	   defined in <xref target="I-D.ietf-bier-isis-extensions"/> and
	  <xref target="I-D.ietf-bier-ospf-bier-extensions"/> respectively. 
        The according tables for BIER forwarding purposes are built when OSPF/ISIS
	  performs according calculations on the advertised information.</t>
-->

    <t>
    <xref target="I-D.ietf-babel-rfc6126bis"/>
    define a distance-vector routing protocol under the name of "Babel".
    Babel  operates in a robust and efficient fashion both in ordinary 
    wired as well as in wireless mesh networks. </t>

	  <t></t>
	</section>
	 
	<section title="Terminology"> 
	 <t>The terminology of this documents follows
	 <xref target="RFC8279"/>, <xref target="RFC6126"/>, 
     <xref target="RFC7557"/> and <xref target="I-D.ietf-babel-rfc6126bis"/>.</t>
	</section>
  
  	<section title="Conventions Used in This Document">
	  <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
   when, and only when, they appear in all capitals, as shown here.</t>
	 </section>

	<section title="Advertisement of BIER information">

<t>In case a router is configured with BIER information, and Babel is the
routing protocol used, such a router MAY use Babel protocol to
announce the BIER information using the BIER sub-TLV specified below.</t>

	    <section title="BIER BFR-prefix and BIER sub-TLV">

      <t>BFR-prefix and according information is carried in a Babel Update TLV
            per <xref target="I-D.ietf-babel-rfc6126bis"/>. A new sub-TLV is defined 
to convey further BIER information such as BFR-id, sub-domain-id and BSL. Two
sub-sub-TLVs are carried as payload of BIER sub-TLV.</t>
          <t>The mandatory bit of BIER sub-TLV should be set to 0. If a router cannot
recognize a sub-TLV, the router MUST ignore this unknown sub-TLV.</t>

		    <section title="BIER sub-TLV">
		      <t>The BIER sub-TLV format aligns exactly with the definition and 
                restrictions in
			  <xref target="RFC8401"/> , <xref target="RFC8444"/> and <xref target="I-D.ietf-bier-ospfv3-extensions"/>. 
			  It is a sub-TLV of Babel update TLV. The prefix MUST NOT be
            summarized and the according sub-TLV MUST be treated as 
            optional and transitive.</t>
			  
			  <figure  align="center">
                <artwork align="center"><![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      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   BAR         |    IPA        | subdomain-id  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     BFR-id                    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  sub-sub-TLVs (variable)                                      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	                  Figure 1: BIER sub-TLV
                ]]></artwork>
                <postamble></postamble>
              </figure>
 
          <t>
          <list style="symbols">
	
	      <t>Type: as indicated in IANA section.</t>

	      <t>Length: 1 octet. Include the length of BIER sub-TLV and potential 
length of the sub-sub-TLVs.</t>

          <t>BAR: BIER Algorithm. Specifies a BIER-specific algorithm used to
      calculate underlay paths to reach BFERs. Values are allocated
      from the "BIER Algorithms" registry. 1 octet.</t>

          <t>IPA: IGP Algorithm. Specifies an IGP Algorithm to either modify,
      enhance, or replace the calculation of underlay paths to reach
      BFERs as defined by the BAR value. Values are from the IGP
      Algorithm registry. 1 octet.</t>
	
	      <t>subdomain-id: Unique value identifying the BIER sub-domain. 1 octet.</t>
	
	      <t>BFR-id: A 2 octet field encoding the BFR-id, as documented in
            <xref target="RFC8279"/>.  If no BFR-id has been
            assigned this field is set to the invalid BFR-id.</t>
	
          </list>
          </t>
		</section>
	

	  </section>

      <section title="BIER MPLS Encapsulation sub-sub-TLV"> 
        <t>The BIER MPLS Encapsulation sub-sub-TLV can be carried by BIER sub-TLV. 
        The format and restrictions are aligned with
		<xref target="RFC8401"/>,  
		<xref target="RFC8444"/> and <xref target="I-D.ietf-bier-ospfv3-extensions"/>.  
    This sub-sub-TLV carries the
		information for the BIER MPLS encapsulation including the label range for a 
		specific BSL for a certain &lt;MT,SD&gt; pair.</t>

		<figure  align="center">
        <artwork align="center"><![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      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   Max SI      |BS Len |                    Label              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	          Figure 2: MPLS Encapsulation sub-sub-TLV
            ]]></artwork>
       <postamble></postamble>
      </figure>

      <t>
      <list style="symbols">
	
	  <t>Type: value of 1 indicating MPLS encapsulation.</t>

	  <t>Length: 1 octet</t>
	
	  <t>Max SI:  Maximum Set Identifier (Section 1 of <xref target="RFC8279"/>) used in the
      encapsulation for this BIER subdomain for this BitString length, 1
      octet.  Each SI maps to a single label in the label range.  The
      first label is for SI=0, the second label is for SI=1, etc.  If
      the label associated with the Maximum Set Identifier exceeds the
      20-bit range, the sub-sub-TLV MUST be ignored.</t>
	  
	  <t>Local BitString Length (BS Len): Encoded BitString length as per
      <xref target="RFC8296"/>. 4 bits.</t>
	  
	  <t>Label: First label, 20 bits. The labels are as defined
      in <xref target="RFC8296"/>.</t>
		
      </list>
      </t>
	  </section>
    
    <section title="BIER non-MPLS Encapsulation sub-sub-TLV"> 
    <t>The BIER non-MPLS Encapsulation sub-sub-TLV can be carried by BIER sub-TLV. 
        The format and restrictions are aligned with
		<xref target="I-D.ietf-bier-lsr-ethernet-extensions"/>.  
    This sub-sub-TLV carries the
		information for the BIER MPLS encapsulation including the label range for a 
		specific BSL for a certain &lt;MT,SD&gt; pair.</t>
   
    		<figure  align="center">
        <artwork align="center"><![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            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Max SI    |                  BIFT-id                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |BS Len |                     Reserved                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	          Figure 3: non-MPLS Encapsulation sub-sub-TLV
            ]]></artwork>
       <postamble></postamble>
      </figure>

      <t>
      <list style="symbols">
	
	  <t>Type: value of 2 indicating non-MPLS encapsulation.</t>

	  <t>Length: 1 octet</t>
	
	  <t>Max SI:  Maximum Set Identifier (Section 1 of <xref target="RFC8279"/>) used in the
      encapsulation for this BIER subdomain for this BitString length, 1
      octet.  The first BIFT-id is for SI=0,
      the second BIFT-id is for SI=1, etc.  If the BIFT-id associated with
      the Maximum Set Identifier exceeds the 20-bit range, the sub-sub-TLV
      MUST be ignored.</t>
      
    <t>BIFT-id: A 3-octet field, where the 20 rightmost bits represent the
       first BIFT-id in the BIFT-id range.  The 4 leftmost bits MUST be
       ignored. The "BIFT-id range" is the set of 20-bit values beginning with the
       BIFT-id and ending with (BIFT-id + (Max SI)).  These BIFT-id's are
       used for BIER forwarding as described in <xref target="RFC8279"/> and 
       <xref target="RFC8296"/>.</t>
	  
	  <t>Local BitString Length (BS Len): Encoded BitString length as per
      <xref target="RFC8296"/>. 4 bits.</t>
		
      </list>
      </t>
    
    <section title="BIER IPv6 transportation sub-sub-TLV"> 
    <t>The BIER IPv6 transportation sub-sub-TLV can be carried by BIER non-MPLS Encapsulation sub-sub-TLV. 
        The format and restrictions are aligned with
		<xref target="I-D.zhang-bier-bierin6"/>.  
    A node that requires IPv6 encapsualtion MUST advertise the
    BIER IPv6 transportation sub-sub-TLV according to local
    configuration or policy in the BIER domain to request other BFRs to
    always use IPv6 encapsulation.</t>
    
    <t>The format is the same with the definition in section 4.1, <xref target="I-D.zhang-bier-bierin6"/>. </t>
    </section>
    
    </section>
	</section>

    <section title="Tree types and tunneling">

<t>Since Babel is performing a diffusion computation, support for different tree 
types is not as natural as with link-state protocols. Hence this specification is
assuming that normal Babel reachability computation is performed without further 
modifications.
</t>
<t>BIER architecture does not rely on all routers in a domain performing BFR 
procedures. How to support tunnels that will allow to tunnel BIER across such 
routers in Babel is for further study.
</t>
</section>


    <section title="Security Considerations"> 
    <t>TBD</t>
    </section>

    <section title="IANA Considerations"> 
    <t>A new type of Babel update sub-TLV needs to be defined for BIER information 
advertisement.</t>
    </section>

  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
  
    <references title='Normative References'>
	  &I-D.ietf-babel-rfc6126bis;
    &RFC2119;
    &RFC6126;
    &RFC7557;
    &RFC8279;
    &RFC8296;
    &RFC8174;
    &RFC8401;
    &RFC8444;
    </references>
    
    <references title="Informative References">
    &I-D.ietf-bier-ospfv3-extensions;
    &I-D.ietf-bier-lsr-ethernet-extensions;
    &I-D.zhang-bier-bierin6;
    </references>

	</back>
</rfc>
