<?xml version='1.0' encoding='utf-8'?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<rfc
      xmlns:xi="http://www.w3.org/2001/XInclude"
      category="std"
      docName="draft-chen-pce-pcep-extension-pce-controller-bier-06"
      ipr="trust200902"
      obsoletes=""
      updates=""
      submissionType="IETF"
      xml:lang="en"
      tocInclude="true"
      tocDepth="4"
      symRefs="true"
      sortRefs="true"
      version="3">
  <!-- xml2rfc v2v3 conversion 2.38.1 -->
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

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

 <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title abbrev="PCECC BIER">PCEP Procedures and Protocol Extensions for Using PCE as a Central Controller (PCECC) of BIER</title>
    <seriesInfo name="Internet-Draft" value="draft-chen-pce-pcep-extension-pce-controller-bier-06"/>
    <!-- add 'role="editor"' below for the editors if appropriate -->

   <!-- Another author who claims to be an editor -->

   <author fullname="Ran Chen" initials="R." surname="Chen">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>chen.ran@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>

	  <author fullname="Chun Zhu" initials="ch." surname="Zhu">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>zhu.chun@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	   <author fullname="BenChong Xu" initials="B." surname="Xu">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>xu.benchong@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	  <author fullname="Huaimo Chen" initials="H." surname="Chen">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>United States of America</country>
        </postal>
        <email>Huaimo.chen@futurewei.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
		  <author fullname="Aijun Wang" initials="A." surname="Wang">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>wangaj3@chinatelecom.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
	
    <date year="2024"/>
    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>Routing</area>
    <workgroup>PCE</workgroup>
    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>Internet Draft</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

   <abstract>
	 <t>This draft specify a new mechanism where PCE allocates the BIER information centrally and uses PCEP to distribute them to all nodes, then PCC generate a "Bit Index Forwarding Table"(BIFT).</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
	<t><xref target="RFC8283" format="default"></xref>introduces the architecture for PCE as a central controller as an extension of the architecture described in <xref target="RFC4655" format="default"></xref> and assumes the continued use of PCEP as the protocol used between PCE and PCC. <xref target="RFC8283" format="default"></xref>further examines the motivations and applicability for PCEP as a Southbound Interface (SBI), and introduces the implications for the protocol.</t> 
	<t><xref target="RFC9050"></xref> specify the procedures and PCEP protocol extensions for using the PCE as the central controller for static LSPs, where LSPs can be provisioned as explicit label instructions at each hop on the end-to-end path. Each router along the path must be told what label-forwarding instructions to program and what resources to reserve. The PCE-based controller keeps a view of the network and determines the paths of the end-to-end LSPs, and the controller uses PCEP to communicate with each router along the path of the end-to-end LSP.</t>
	<t><xref target="RFC8279" format="default"></xref> defines a Bit Index Explicit Replication (BIER) architecture where all intended multicast receivers are encoded as a bitmask in the multicast packet header within different encapsulations such as described in <xref target="RFC8296" format="default"></xref>. A router that receives such a packet will forward the packet based on the bit position in the packet header towards the receiver(s) following a precomputed tree for each of the bits in the packet. Each receiver is represented by a unique bit in the bitmask.</t>
	<t>In order to reduce the transmission of redundant information, the PCE-based controllers do not allocate the BFIT directly. Instead, the PCC generates the BFIT based on the received bier informations or the node calculates the nexthop by itself. This document specifies the procedures and PCEP protocol extensions when a PCE-based controller is responsible for configuring the BIER informations.</t>
    <section title="Requirements Language">
        <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>
   <section numbered="true" toc="default">
   <name>PCECC BIER Requirements</name>
   <t> Following key requirements for PCECC-BIER should be considered when`designing the PCECC based solution:</t>
    <ul spacing="normal">
        <li>PCEP speaker supporting this draft needs to have the capability to advertise its PCECC-BIER capability to its peers.</li>
        <li>PCEP speaker not supporting this draft needs to be able to reject PCECC-BIER related message with a reason code that indicates no support for PCECC.</li>
		<li>PCEP procedures needs to provide a means to update (or cleanup) the BIER related informations (BIER subdomain-id, BFR-id and BSL etc) to the PCC.</li>
		<li>PCEP procedures needs to provide a means to update (or cleanup) the "Bit Index Forwarding Table"(BIFT) to the PCC.</li>
		<li>PCEP procedures needs to provide a means to synchronize the BIER related informations (BIER subdomain-id, BFR-id and BSL etc) between PCE to PCC in the PCEP messages.</li>
		 </ul>
      </section> 
	  
    <section numbered="true" toc="default">
    <name>Procedures for Using the PCE as the Central Controller (PCECC) in BIER</name>
	 <t>Active stateful PCE is described in <xref target="RFC8231"></xref>. PCE as a central controller (PCECC) reuses existing Active stateful PCE mechanism as much as possible to control the LSP.</t>
	 <t>This document uses the same PCEP messages and its extensions which are described in <xref target="RFC9050"></xref> for PCECC-BIER as well.</t>
	 <t>PCEP messages PCRpt, PCInitiate, PCUpd are also used to send LSP Reports, LSP setup and LSP update respectively. The extended PCInitiate message described in <xref target="RFC9050"></xref> is used to download or cleanup central controller's instructions (CCIs) (BIER related informations and "Bit Index Forwarding Table"(BIFT) in scope of this document). The extended PCRpt message described in <xref target="RFC9050"></xref> is also used to report the CCIs (BIER related informations) from PCC to PCE.</t>
	 <t><xref target="RFC9050"></xref> specify an object called CCI for the encoding of central controller's instructions. This document extends the CCI by defining another object-type for BIER.</t>
    <section numbered="true" toc="default"> 
    <name>PCECC Capability Advertisement</name>
    <t>During PCEP Initialization Phase, PCEP Speakers (PCE or PCC) advertise their support of PCECC extensions. A PCEP Speaker includes the "PCECC Capability" sub-TLV, described in <xref target="RFC9050"></xref>.</t>
	<t>This document adds B-bit in PCECC-CAPABILITY sub-TLV for BIER. </t>
    </section>
	<section numbered="true" toc="default"> 
    <name>New BIER Path Setup</name>
	<t>The PCEP messages pertaining to PCECC-BIER MUST include PATH-SETUP-TYPE TLV <xref target="RFC8408"/> with PST=TBD in the SRP object to clearly identify the PCECC-BIER is intended.</t>
	</section> 
	<section numbered="true" toc="default"> 
    <name>PCECC BIER information allocation and Generation of BFIT</name>
	<t>There are two ways to generate a "Bit Index Forwarding Table"(BIFT):</t>
	 <ul spacing="normal">
        <li>The PCECC allocate parameters(BIER subdomain-id, BFR-id, BAR and IPA) carried by CCI object, parameters(BFR prefix, BSL, Encapsulation Type, BIFT ID, and Max SI) carried by BIER Encapsulation TLV and parameters (BFR prefix)carried by OFEC Object to the PCC. On receiving the BIER informations allocation, each node (PCC) uses IGP protocol to distribute BIER related information to other nodes. The node calculate the nexthop. In this case, Each node (PCC) only needs to be allocated its own BIER informations by the PCECC.</li>
        <li>In scenarios where the IGP protocol is not used/available,Each node (PCC) is allocated its own and neighbor BIER informations by the PCECC, then PCC generates a BIFT based on the informations it receives. The BIER informations include BIER subdomain-id and BFR-id carried by CCI object, BFR prefix, BSL, Encapsulation Type, BIFT ID, and Max SI carried by BIER Encapsulation TLV , BFR-NBR carried by Address TLV and BFR prefix carried by OFEC Object. The BIFT mainly includes BFR ID, F-BM and BFR nexthop.</li>
		 </ul>
	</section>  
	
	<section numbered="true" toc="default"> 
    <name>Redundant PCEs</name>
	   <t><xref target="I-D.ietf-pce-state-sync"/> describes synchronization mechanism between the stateful PCEs. The BIER informations allocated by a PCE MUST also be synchronized among PCEs for PCECC BIER state synchronization.</t>
	   </section> 
	   
	   <section numbered="true" toc="default"> 
       <name>Re Delegation and Cleanup</name>
	   <t><xref target="RFC9050"></xref> describes the action needed for CCIs for the Basic PCECC LSP on this terminated session. Similarly actions should be applied for the BIER information as well.</t>
	   </section> 
	   
	   <section numbered="true" toc="default"> 
       <name>Synchronization of BIER information Allocations</name>
	   <t><xref target="RFC9050"></xref> describes the synchronization of Central Controller's Instructions (CCI) via LSP state synchronization as described in <xref target="RFC8231"></xref> and <xref target="RFC8232"/>.Same procedures should be applied for BIER informations as well.</t>
	   </section> 
	    </section> 
		
		<section numbered="true" toc="default"> 
        <name>PCEP extension</name>
		<section numbered="true" toc="default"> 
        <name>The OPEN Object</name>
		<section numbered="true" toc="default"> 
        <name>PCECC Capability sub-TLV</name>
        <t><xref target="RFC9050"></xref> defined the PCECC-CAPABILITY TLV. A new B-bit is defined in PCECC-CAPABILITY sub-TLV for PCECC-BIER:</t>
         <figure anchor="xml_happy1">
        <artwork align="center" name="Figure 1" type="" alt="">
		<![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=TBD                  |               Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                Flags                                    |B|I|S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           ]]></artwork>
      </figure>
	  <t>where:</t>
	  <t>B (PCECC-BIER-CAPABILITY - 1 bit): If set to 1 by a PCEP speaker, it indicates that the PCEP speaker is capable for PCECC-BIER capability and PCE would allocate BIER information on this session.</t>
	 </section>
    </section>
	
	<section numbered="true" toc="default"> 
    <name>PATH-SETUP-TYPE TLV</name>
    <t>The PATH-SETUP-TYPE TLV is defined in <xref target="RFC8408"/>. PST = TBD is used when Path is setup via PCECC BIER mode.On a PCRpt/PCUpd/PCInitiate message, the PST=TBD indicates that this path was setup via a PCECC-BIER based mechanism where either the BIER informations and BIER forwarding entries were allocated/instructed by PCE via PCECC mechanism.</t>
    </section>
	
	<section numbered="true" toc="default"> 
    <name>CCI object</name>
	<t>The Central Control Instructions (CCI) Object is used by the PCE to specify the forwarding instructions is defined in <xref target="RFC9050"></xref>. This document defines another object-type for BIER purpose.</t>
	<t>CCI Object-Type is TBD for BIER as below</t>
	  <figure anchor="xml_happy2">
        <artwork align="center" name="Figure 2" type="" alt="">
		<![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                CC-ID                          | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| subdomain-ID  |     BAR       |     IPA       | Flags         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           BFR-ID              |        Reserved               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                       Optional TLV                          //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           ]]></artwork>
      </figure>
	<t>where:</t>
    <t>The field CC-ID is as described in <xref target="RFC9050"></xref>.</t>
    <t>BIER subdomain-ID: Unique value identifying the BIER subdomain. (as defined in <xref target="RFC8401"/>.</t>
	<t>BAR:BIER Algorithm, as documented in <xref target="RFC8401"/>. Specifies a BIER-specific algorithm used to calculate underlay paths to reach BFERs.  Values are allocated from the "BIER Algorithms" registry.</t>
	<t>IPA:IGP Algorithm, as documented in <xref target="RFC8401"/>. 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>Flags (16 bit):  A field used to carry any additional information pertaining to the CCI.</t>
    <t>BFR-ID: A 2-octet field encoding the BFR-id, as documented in <xref target="RFC8279"/>.</t>
    <t>Optional TLV: There are two optional TLV are defined/reused in this draft.</t>
   
	<section numbered="true" toc="default"> 
    <name>BIER Encapsulation Sub TLV</name>  
	 <figure anchor="xml_happy3">
        <artwork align="center" name="Figure 3" type="" alt="">
		<![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            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Flags             | ET|             Reserved          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Max SI      |BS Len |                  BIFT-id              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           ]]></artwork>
      </figure>
	<t>where:</t>
	<t>The code point for the TLV type is to be defined by IANA.</t>
	<t>Length:4 </t>
	<t>ET-Flag:ET(Encapsulation type) Flag,There are two Encapsulation Types:</t>
	 <ul spacing="normal">
        <li>0b00-MPLS encapsulation.</li>
        <li>0b01-Non-MPLS encapsulation.</li>
		 </ul>
	<t>Max SI:  A 1 octet field encoding the Maximum Set Identifier(Section 1 of <xref target="RFC8279"/> ) used in the encapsulation for this BIER subdomain for this BitString length.</t>
	<t>Local BitString Length (BS Len):  Encoded BitString length as per <xref target="RFC8296"/>.</t>
    <t>BIFT-id: A 20 bit field encoding the first BIFT-id of the BIFT-id range.</t>
	 </section>
	 
     <section numbered="true" toc="default"> 
    <name>Address TLVs</name>
 <t>Address TLVs described in <xref target="RFC9050"></xref> are used to associate the next-hop information, so we Reuse ADDRESS TLV to carry the BFR out-interface and nexthop informations.</t>
</section>

</section>	 	

<section title="FEC Object"> 
 <t>BIER information is always associated with a host prefix, so we reuse FEC Object 1'IPv4 Node ID' and FEC Object-Type 2 'IPv6 Node ID' defined in <xref target="RFC8664"/> to carry the BFR prefix.</t>
 </section>	
  </section>	
  
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>We would like to thank Dhruv Dhody for their useful comments and suggestions.</t>
    </section>
    <!-- Possibly a 'Contributors' section ... -->

   <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
	  <t>TBD.</t>
      </section>
	
   <section anchor="Security" numbered="true" toc="default">
   <name>Security Considerations</name>
   <t>The PCECC extension are based on the existing PCEP messages and thus the
   security considerations described in </t>
   <t>The PCECC extension are based on the existing PCEP messages and thus the
   security considerations described in <xref target="RFC5440"/> ,<xref target="RFC8231"/> ,<xref target="RFC8281"/>, and <xref target="RFC9050"/> apply to this draft.</t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

 <back>
    <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

 <references>
        <name>Normative References</name>
        <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
      <?rfc include="reference.RFC.2119.xml"?>
	  <?rfc include="reference.RFC.4655.xml"?>
	    <?rfc include="reference.RFC.5440.xml"?>
		  <?rfc include="reference.RFC.8279.xml"?>
		    <?rfc include="reference.RFC.8296.xml"?>
		    <?rfc include="reference.RFC.8231.xml"?>
		    <?rfc include="reference.RFC.8281.xml"?>
			<?rfc include="reference.RFC.8232.xml"?>
		    <?rfc include="reference.RFC.8283.xml"?>
		    <?rfc include="reference.RFC.8401.xml"?>
		    <?rfc include="reference.RFC.8408.xml"?>
			 <?rfc include="reference.RFC.8664.xml"?>
			 <?rfc include="reference.RFC.8174.xml"?>
		    <?rfc include="reference.RFC.9050.xml"?>
			<?rfc include="reference.I-D.ietf-pce-state-sync.xml"?>
      </references>
       
    <!-- Change Log

v00 2006-03-15  EBD   Initial version

v01 2006-04-03  EBD   Moved PI location back to position 1 -
                     v3.1 of XMLmind is better with them at this location.
v02 2007-03-07  AH    removed extraneous nested_list attribute,
                     other minor corrections
v03 2007-03-09  EBD   Added comments on null IANA sections and fixed heading capitalization.
                     Modified comments around figure to reflect non-implementation of
                     figure indent control.  Put in reference using anchor="DOMINATION".
                     Fixed up the date specification comments to reflect current truth.
v04 2007-03-09 AH     Major changes: shortened discussion of PIs,
                     added discussion of rfc include.
v05 2007-03-10 EBD    Added preamble to C program example to tell about ABNF and alternative 
                     images. Removed meta-characters from comments (causes problems).

v06 2010-04-01 TT     Changed ipr attribute values to latest ones. Changed date to
                     year only, to be consistent with the comments. Updated the 
                     IANA guidelines reference from the I-D to the finished RFC.
v07 2020-01-21 HL    Converted the template to use XML schema version 3.
    -->
 </back>
</rfc>
