<?xml version="1.0" encoding="US-ASCII"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<?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="exp" docName="draft-ietf-pce-pcep-extension-native-ip-34"
     ipr="trust200902" sortRefs="true" submissionType="IETF" symRefs="true"
     tocInclude="true">
  <front>
    <title abbrev="PCEP for Native IP">Path Computation Element Communication
    Protocol (PCEP) Extensions for Native IP Networks</title>

    <author fullname="Aijun Wang" initials="A" surname="Wang">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>102209</code>

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

        <email>wangaijun@tsinghua.org.cn</email>
      </address>
    </author>

    <author fullname="Boris Khasanov" initials="B" surname="Khasanov">
      <organization abbrev="">MTS Web Services (MWS)</organization>

      <address>
        <postal>
          <street>Andropova av.,18/9 115432</street>

          <street/>

          <city>Moscow</city>

          <region/>

          <code/>

          <country>Russia</country>
        </postal>

        <email>bhassanov@yahoo.com</email>
      </address>
    </author>

    <author fullname="Sheng Fang" initials="S" surname="Fang">
      <organization abbrev="">Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <phone/>

        <facsimile/>

        <email>fsheng@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Ren Tan" initials="R" surname="Tan">
      <organization abbrev="">Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code/>

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

        <phone/>

        <facsimile/>

        <email>tanren@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Chun Zhu" initials="C" surname="Zhu">
      <organization>ZTE Corporation</organization>

      <address>
        <postal>
          <street>50 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

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

        <phone/>

        <facsimile/>

        <email>zhu.chun1@zte.com.cn</email>

        <uri/>
      </address>
    </author>

    <date day="19" month="August" year="2024"/>

    <area>Routing</area>

    <workgroup>PCE Working Group</workgroup>

    <keyword>CCDR, PCECC</keyword>

    <abstract>
      <t>This document defines the Path Computation Element Communication
      Protocol (PCEP) extension for Central Control Dynamic Routing (CCDR)
      based applications in Native IP networks. It describes the key
      information that is transferred between the Path Computation Element
      (PCE) and the Path Computation Clients (PCC) to accomplish the
      End-to-End (E2E) traffic assurance in the Native IP network under PCE as
      a central controller (PCECC).</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>Generally, Multiprotocol Label Switching Traffic Engineering
      (MPLS-TE) requires the corresponding network devices to support Resource
      ReSerVation Protocol (RSVP)/Label Distribution Protocol (LDP) protocols
      to ensure the End-to-End (E2E) traffic performance. But in native IP
      network scenarios described in <xref target="RFC8735"/>, there will be
      no such signaling protocol to synchronize the actions among different
      network devices. It is feasible to use the central control mode
      described in <xref target="RFC8283"/> to correlate the forwarding
      behavior among different network devices. <xref target="RFC8821"/>
      describes the architecture and solution philosophy for the E2E traffic
      assurance in the Native IP network via multiple Border Gateway Protocol
      (BGP) sessions-based solution. It requires only the PCE to send the
      instructions to the PCCs, to build multiple BGP sessions, distribute
      different prefixes on the established BGP sessions and assign the
      different paths to the BGP next hops.</t>

      <t>This document describes the corresponding Path Computation Element
      Communication Protocol (PCEP) extensions to transfer the key information
      about BGP peer, peer prefix advertisement, and the explicit peer route
      on on-path routers.</t>
    </section>

    <section title="Conventions used in this document">
      <t>The keywords "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 title="Use of RBNF">
        <t>The message formats in this document are illustrated using Routing
        Backus-Naur Form (RBNF) encoding, as specified in <xref
        target="RFC5511"/>. The use of RBNF is illustrative only and may elide
        certain important details; the normative specification of messages is
        found in the prose description. If there is any divergence between the
        RBNF and the prose, the prose is considered authoritative.</t>
      </section>
    </section>

    <section title="Terminology">
      <t>This document uses the following terms defined in <xref
      target="RFC5440"/>: PCC, PCE, PCEP.</t>

      <t>The following terminology is used in this document:</t>

      <t>
        <list style="symbols">
          <t>BPI: BGP Peer Info</t>

          <t>CCDR: Central Control Dynamic Routing</t>

          <t>CCI: Central Controller Instructions, defined in <xref
          target="RFC9050"/></t>

          <t>E2E: End-to-End</t>

          <t>EPR: Explicit Peer Route</t>

          <t>PCECC: PCE as a Central Controller, defined in <xref
          target="RFC8283"/></t>

          <t>PPA: Peer Prefix Advertisement</t>

          <t>PST: Path Setup Type, defined in <xref target="RFC8408"/></t>

          <t>SRP: Stateful PCE Request Parameters, defined in <xref
          target="RFC8231"/></t>

          <t>RR: Route Reflector</t>
        </list>
      </t>
    </section>

    <section title="Capability Advertisement">
      <section title="Open Message">
        <t>During the PCEP Initialization Phase, PCEP Speakers (PCE or PCC)
        advertise their support of Native IP extensions.</t>

        <t>This document defines a new Path Setup Type (PST) <xref
        target="RFC8408"/> for Native-IP, as follows: <list style="symbols">
            <t>PST = 4: Path is a Native IP TE path as per <xref
            target="RFC8821"/>.</t>
          </list></t>

        <t>A PCEP speaker MUST indicate its support of the function described
        in this document by sending a PATH-SETUP-TYPE-CAPABILITY TLV in the
        OPEN object with this new PST included in the PST list.</t>

        <t><xref target="RFC9050"/> defined the PCECC-CAPABILITY sub-TLV to
        exchange information about their PCECC capability. A new flag is
        defined in PCECC-CAPABILITY sub-TLV for Native IP:</t>

        <t>N (NATIVE-IP-TE-CAPABILITY - 1 bit - 30): If set to 1 by a PCEP
        speaker, it indicates that the PCEP speaker is capable of TE in a
        Native IP network as specified in this document. The flag MUST be set
        by both the PCC and PCE to support this extension.</t>

        <t>If a PCEP speaker receives the PATH-SETUP-TYPE-CAPABILITY TLV with
        the newly defined path setup type, but without the N bit set in
        PCECC-CAPABILITY sub-TLV, it MUST:</t>

        <t>
          <list style="symbols">
            <t>send a PCErr message with Error-Type=10 (Reception of an
            invalid object) and Error-Value=39 (PCECC NATIVE-IP-TE-CAPABILITY
            bit is not set).</t>

            <t>terminate the PCEP session</t>
          </list>
        </t>

        <t>If a PCEP speaker receives the PATH-SETUP-TYPE-CAPABILITY TLV with
        the newly defined path setup type, but without the PCECC-CAPABILITY
        sub-TLV, it MUST:</t>

        <t>
          <list style="symbols">
            <t>send a PCErr message with Error-Type=10(Reception of an invalid
            object) and Error-Value=33 (Missing PCECC Capability sub-TLV).</t>

            <t>terminate the PCEP session</t>
          </list>
        </t>

        <t>If one or both speakers (PCE and PCC) have not indicated support
        and willingness to use the PCEP extensions for Native-IP, the PCEP
        extensions for the Native-IP MUST NOT be used. If a Native-IP
        operation is attempted when both speakers have not agreed on the OPEN
        messages, the receiver of the message MUST:</t>

        <t>
          <list style="symbols">
            <t>send a PCErr message with Error-Type=19 (Invalid Operation) and
            Error-value=TBD1 (Attempted Native-IP operations when the
            capability was not advertised) and</t>

            <t>terminate the PCEP session.</t>
          </list>
        </t>
      </section>
    </section>

    <section title="PCEP Messages" toc="default">
      <t>PCECC Native IP TE solution uses the existing PCE Label Switched Path
      (LSP) Initiate Request message (PCInitiate) <xref target="RFC8281"/>,
      and PCE Report message (PCRpt) <xref target="RFC8231"/> to accomplish
      the multiple BGP sessions establishment, E2E Native-IP TE path
      deployment, and route prefixes advertisement among different BGP
      sessions. A new PST for Native-IP is used to indicate the path setup
      based on TE in Native IP networks.</t>

      <t>The extended PCInitiate message described in <xref target="RFC9050"/>
      is used to download or remove the central controller's instructions
      (CCIs). <xref target="RFC9050"/> specifies an object called CCI for the
      encoding of the central controller's instructions. This document
      specifies a new CCI Object-Type for Native IP. The PCEP messages are
      extended in this document to handle the PCECC operations for Native IP.
      Three new PCEP Objects (BGP Peer Info (BPI) Object, Explicit Peer Route
      (EPR) Object, and Peer Prefix Advertisement (PPA) Object) are defined in
      this document. Refer to <xref target="Obj-Def-Sec"/> for detailed object
      definitions. All PCEP procedures specified in <xref target="RFC9050"/>
      continue to apply unless specified otherwise.</t>

      <section anchor="SEC_PCInitiate" title="The PCInitiate Message"
               toc="default">
        <t>The PCInitiate Message defined in <xref target="RFC8281"/> and
        extended in <xref target="RFC9050"/> is further extended to support
        Native-IP CCI.</t>

        <t>The format of the extended PCInitiate message is as follows:
        <figure title="">
            <artwork><![CDATA[
     <PCInitiate Message> ::= <Common Header>
                              <PCE-initiated-lsp-list>
  Where:
     <Common Header> is defined in [RFC5440]

     <PCE-initiated-lsp-list> ::= <PCE-initiated-lsp-request>
                                  [<PCE-initiated-lsp-list>]

     <PCE-initiated-lsp-request> ::=
                          (<PCE-initiated-lsp-instantiation>|
                           <PCE-initiated-lsp-deletion>|
                           <PCE-initiated-lsp-central-control>)

     <PCE-initiated-lsp-central-control> ::= <SRP>
                                             <LSP>
                                             <cci-list>

     <cci-list> ::=  <CCI>
                     [<BPI>|<EPR>|<PPA>]
                     [<cci-list>]

]]></artwork>
          </figure>Where: <list>
            <t>&lt;PCE-initiated-lsp-instantiation&gt; and
            &lt;PCE-initiated-lsp-deletion&gt; are as per [RFC8281].</t>

            <t>The LSP and SRP objects are defined in [RFC8231].</t>
          </list></t>

        <t>When the PCInitiate message is used for Native IP instructions,
        i.e. When the CCI Object-Type is 2, the SRP, LSP and CCI objects MUST
        be present. The error handling for missing SRP, LSP or CCI objects is
        as per <xref target="RFC9050"/>. Furthermore, one, and only one,
        object among BPI, EPR or PPA objects MUST be present. The PLSP-ID and
        Symbolic Path Name TLVs are set as per the existing rules in <xref
        target="RFC8231"/>, <xref target="RFC8281"/>, and <xref
        target="RFC9050"/>. The Symbolic Path Name is used by the PCE/PCC to
        uniquely identify the E2E native IP TE path. The related Native-IP
        instructions with BPI, EPR or PPA objects are identified by the same
        Symbolic Path Name.</t>

        <t>If none of the BPI, EPR or PPA objects are present, the receiving
        PCC MUST send a PCErr message with Error-type=6 (Mandatory Object
        missing) and Error-value=19 (Native IP object missing). If there is
        more than one instance of BPI, EPR or PPA object present, the
        receiving PCC MUST send a PCErr message with Error-type=19 (Invalid
        Operation) and Error-value=22 (Only one BPI, EPR or PPA object can be
        included in this message).</t>

        <t>When the PCInitiate message is not used for Native IP instructions,
        i.e. When CCI Object-Type is not equal to 2, the BPI, EPR and PPA
        objects SHOULD NOT be present. If present, they MUST be ignored by the
        receiver.</t>

        <t>To clean up the existing Native IP instructions, the SRP object
        MUST set the R (remove) bit.</t>
      </section>

      <section anchor="SEC_PCRpt" title="The PCRpt Message" toc="default">
        <t>The PCRpt message is used to acknowledge the Native-IP instructions
        received from the central controller (PCE) as well as during the State
        Synchronization phase.</t>

        <t>The format of the PCRpt message is as follows: <figure title="">
            <artwork><![CDATA[
      <PCRpt Message> ::= <Common Header>
                          <state-report-list>
   Where:

      <state-report-list> ::= <state-report>[<state-report-list>]

      <state-report> ::= (<lsp-state-report>|
                          <central-control-report>)

      <lsp-state-report> ::= [<SRP>]
                             <LSP>
                             <path>

      <central-control-report> ::= [<SRP>]
                                   <LSP>
                                   <cci-list>

      <cci-list> ::=  <CCI>
                     [<BPI>|<EPR>|<PPA>]
                     [<cci-list>]
]]></artwork>
          </figure></t>

        <t>
          <list>
            <t>Where: &lt;path&gt; is as per [RFC8231] and the LSP and SRP
            objects are also defined in [RFC8231].</t>
          </list>
        </t>

        <t>The error handling for missing CCI objects is as per <xref
        target="RFC9050"/>. Furthermore, one, and only one, object among BPI,
        EPR or PPA object MUST be present.</t>

        <t>If none of the BPI, EPR or PPA objects are present, the receiving
        PCE MUST send a PCErr message with Error-type=6 (Mandatory Object
        missing) and Error-value=19 (Native IP object missing). If there are
        more than one instance of BPI, EPR or PPA objects present, the
        receiving PCE MUST send a PCErr message with Error-type=19 (Invalid
        Operation) and Error-value=22 (Only one BPI, EPR or PPA object can be
        included in this message).</t>

        <t>When the PCInitiate message is not used for Native IP instructions,
        i.e. When CCI Object-Type is not equal to 2, the BPI, EPR and PPA
        objects SHOULD NOT be present. If present, they MUST be ignored by the
        receiver.</t>
      </section>
    </section>

    <section title="PCECC Native IP TE Procedures">
      <t>The detailed procedures for the TE in the native IP environment are
      described in the following sections.</t>

      <section anchor="BGPSess" title="BGP Session Establishment Procedures">
        <t>The PCInitiate and PCRpt message pair is used to exchange the
        configuration parameters for a BGP peer session. This pair of PCEP
        messages are exchanged between a PCE and each BGP peer (acting as PCC)
        which needs to establish a BGP session. After the BGP peer session has
        been initiated via this pair of PCEP messages, the BGP session
        establishes and operates in a normal fashion. The BGP peers can be
        used for External BGP (EBGP) peers or Internal BGP (IBGP) peers. For
        IBGP connection topologies, the Route Reflector (RR) is required.</t>

        <t>The PCInitiate message should be sent to PCC which is acting as BGP
        router and/or RR.</t>

        <t>The RR topology for a single Autonomous System (AS) is shown in
        Figure 1. The BGP routers R1, R3, and R7 are within a single AS. R1
        and R7 are BGP RR clients, and R3 is a RR. The PCInitiate message
        should be sent to the BGP routers R1, R3 and R7 that need to establish
        a BGP session.</t>

        <t>PCInitiate message creates an auto-configuration function for these
        BGP peers by providing the indicated Peer AS and the Local/Peer IP
        Address.</t>

        <t>When the PCC receives the BPI and CCI object (with the R bit set to
        0 in the SRP object) in the PCInitiate message, the PCC should try to
        establish the BGP session with the indicated Peer as per AS and
        Local/Peer IP address.</t>

        <t>During the establishment procedure, the PCC should report to the
        PCE the status of the BGP session via the PCRpt message, with the
        status field in the BPI object set to the appropriate value and the
        corresponding SRP and CCI objects included.</t>

        <t>When the PCC receives this message with the R bit set to 1 in the
        SRP object in the PCInitiate message, the PCC should clear the BGP
        configuration and tear down the BGP session that is indicated by the
        BPI object.</t>

        <t>When the PCC clears successfully the specified BGP session
        configuration, it should report the result via the PCRpt message, with
        the BPI object included, and the corresponding SRP and CCI
        objects.</t>

        <figure>
          <artwork><![CDATA[                             +------------------+
                 +----------->       PCE        <----------+
                 |           +--------^---------+          |
                 |                    |                    |
                 |             PCInitiate/PCRpt            |
                 |                    |                    |
                 |               +----v--+                 |
                 +---------------+ R3(RR)+-----------------+
                 |               +-------+                 |
           PCInitiate/PCRpt                         PCInitiate/PCRpt
                 |                                         |
                +v-+          +--+          +--+         +-v+
                |R1+----------+R5+----------+R6+---------+R7|
                ++-+          +-++          +--+         +-++
                 |              |                          |
                 |            +--+          +--+           |
                 +------------+R2+----------+R4+-----------+
                              +--+          +--+
       Figure 1: BGP Session Establishment Procedures(R3 act as RR)
]]></artwork>
        </figure>

        <t/>

        <t>The message peers, message type, message key parameters and
        procedures in the above figures are shown below:<figure>
            <artwork><![CDATA[
              +-------+                                       +-------+
              |PCC    |                                       |  PCE  |
              |R1     |                                       +-------+
       +------|       |                                            |
       | PCC  +-------+                                            |
       | R3     | |   (For R1/R3 BGP Session on R1)                |
+------|        | |<-PCInitiate,CC-ID=X,Symbolic Path Name=Class A-|
|      |        | |BPI Object(Peer AS, Local_IP=R1_A, Peer_IP=R3_A)|
|PCC   +--------+ |                                                |
|R7      |  |     |----PCRpt,CC-ID=X(Symbolic Path Name=Class A)-->|
|        |  |     |BPI Object(Peer AS, Local_IP=R1_A, Peer_IP=R3_A)|
+--------+  |                                                      |
    |       |          (For R1/R3 BGP Session on R3)               |
    |       |<--PCInitiate,CC-ID=Y1,Symbolic Path Name=Class A-----|
    |       |      BPI Object(Peer AS, Local_IP=R3_A, Peer_IP=R1_A)|
    |       |---PCRpt,CC-ID=Y1,Symbolic Path Name=Class A--------->|
    |       |      BPI Object(Peer AS, Local_IP=R3_A, Peer_IP=R1_A)|
    |       |                                                      |
    |       |          (For R3/R7 BGP Session on R3)               |
    |       |<--PCInitiate,CC-ID=Y2,Symbolic Path Name=Class A-----|
    |       |  BPI Object(Peer AS, Local_IP=R3_A, Peer_IP=R7_A)    |
    |       |----PCRpt,CC-ID=Y2,Symbolic Path Name=Class A-------->|
    |       |  BPI Object(Peer AS, Local_IP=R3_A, Peer_IP=R7_A)    |
    |                                                              |
    |                  (For R3/R7 BGP Session on R7)               |
    |<--PCInitiate,CC-ID=Z,Symbolic Path Name=Class A--------------|
    |            BPI Object(Peer AS, Local_IP=R7_A, Peer_IP=R3_A)  |
    |---PCRpt,CC-ID=Z,Symbolic Path Name=Class A------------------>|
    |            BPI Object(Peer AS, Local_IP=R7_A, Peer_IP=R3_A)  |

               Figure 2: Message Information and Procedures
]]></artwork>
          </figure></t>

        <t>The Local/Peer IP address MUST be dedicated to the usage of the
        native IP TE solution, and MUST NOT be used by other BGP sessions that
        are established manually or in other ways. If the Local IP Address or
        Peer IP Address within the BPI object is used in other existing BGP
        sessions, the PCC MUST report such an error situation via a PCErr
        message with:</t>

        <t>
          <list>
            <t>Error-type=33 (Native IP TE failure) and Error-value=1 (Local
            IP is in use), or</t>

            <t>Error-type=33 (Native IP TE failure )and Error-value=2 (Remote
            IP is in use).</t>

            <t>The detailed Error-Types and Error-Values are defined in <xref
            target="NewErrorTypeAndValue"/></t>
          </list>
        </t>

        <t>If the established BGP session is broken, the PCC MUST report such
        information via PCRpt message with the status field set to "BGP
        session down" in the associated BPI Object. The error code field
        within the BPI object should indicate the reason that leads to the BGP
        session being down. In the future, when the BGP session is up again,
        the PCC MUST report that as well via the PCRpt message with the status
        field set to "BGP Session Established".</t>
      </section>

      <section anchor="BGPEx" title="Explicit Route Establishment Procedures">
        <t>The explicit route establishment procedures can be used by PCE to
        install a route on the PCC, using the PCInitiate and PCRpt message
        pair. Such explicit routes operate the same as static routes installed
        by network management protocols (Network Configuration Protocol
        (NETCONF)/YANG). The procedures of such explicit route addition and
        removal must be controlled by the PCE in a specific order so that the
        pathways are established without loops.</t>

        <t>The PCInitiate message should be sent to every router on the path.
        In the example, for the explicit route from R1 to R7, the PCInitiate
        message should be sent to R1, R2 and R4, as shown in Figure 3. For the
        explicit route from R7 to R1, the PCInitiate message should be sent to
        R7, R4 and R2, as shown in Figure 5.</t>

        <t>When the PCC receives the EPR and the CCI object (with the R bit
        set to 0 in the SRP object) in the PCInitiate message, the PCC should
        install the explicit route to the peer in the RIB/FIB.</t>

        <t>When the PCC installs successfully the explicit route to the peer,
        it should report the result via the PCRpt messages, with the EPR
        object and the corresponding SRP and CCI objects included.</t>

        <t>When the PCC receives the EPR and the CCI object with the R bit set
        to 1 in the SRP object in the PCInitiate message, the PCC MUST remove
        the explicit route to the peer that is indicated by the EPR
        object.</t>

        <t>When the PCC has removed the explicit route that is indicated by
        this object, it should report the result via the PCRpt message, with
        the EPR object included, and the corresponding SRP and CCI object.</t>

        <figure>
          <artwork><![CDATA[                          +------------------+
               +---------->       PCE        +
               |          +----^-----------^-+
               |               |           |
               |               |           |
               |               | +------+  |
               +---------------|-+R3(RR)+--|-------------+
          PCInitiate/PCRpt     | +------+  |             |
               |               |           |             |
              +v-+      +--+   |           |   +--+    +--+
              |R1+------+R5+---+-----------|---+R6+----+R7|
              ++-+      +--+   |           |   +--+    +-++
               |     PCInitiate/PCRpt  PCInitiate/PCRpt  |
               |               |           |             |
               |            +--v--+     +--v-+           |
               +------------+- R2 +-----+ R4 +-----------+
                            +--+--+     +--+-+
    Figure 3: Explicit Route Establish Procedures(From R1 to R7)
]]></artwork>
        </figure>

        <t>The message peers, message type, message key parameters and
        procedures in the above figures are shown below:<figure>
            <artwork><![CDATA[
              +-------+                                       +-------+
              |PCC    |                                       |  PCE  |
              |R4     |                                       +-------+
       +------|       |                                           |
       | PCC  +-------+                                           |
       | R2     | |        (EPR route on R4)                      |
+------|        | |<-PCInitiate,CC-ID=Z,Symbolic Path Name=Class A|
|      |        | |   EPR Object(Peer Address=R7_A, Next Hop=R7_A)|
|PCC   +--------+ |                                               |
|R1      |  |     |----PCRpt,CC-ID=Z,Symbolic Path Name=Class A-->|
|        |  |     |   EPR Object(Peer Address=R7_A, Next Hop=R7_A)|
+--------+  |                                                     |
    |       |              (EPR route on R2)                      |
    |       |<--PCInitiate,CC-ID=Y,Symbolic Path Name=Class A-----|
    |       |   EPR Object(Peer Address=R7_A, Next Hop=R4_A)      |
    |       |----PCRpt,CC-ID=Y,Symbolic Path Name=Class A-------->|
    |       |   EPR Object(Peer Address=R7_A, Next Hop=R4_A)      |
    |       |                                                     |
    |                                                             |
    |                      (EPR route on R1)                      |
    |<--PCInitiate,CC-ID=X,Symbolic Path Name=Class A-------------|
    |              EPR Object(Peer Address=R7_A, Next Hop=R2_A)   |
    |---PCRpt,CC-ID=X1(Symbolic Path Name=Class A)--------------->|
    |              EPR Object(Peer Address=R7_A, Next Hop=R2_A)   |

           Figure 4: Message Information and Procedures
]]></artwork>
          </figure></t>

        <figure>
          <artwork><![CDATA[
                    +------------------+
                    +       PCE        <-----------+
                    +----^-----------^-+           |
                         |           |             |
                         |           |             |
                         | +------+  |             |
         +-----------------+R3(RR)+--|-------------+
         |               | +------+  |       PCInitiate/PCRpt
         |               |           |             |
        +--+      +--+   |           |   +--+    +-v+
        |R1+------+R5+---+-----------|---+R6+----+R7|
        ++-+      +--+   |           |   +--+    +-++
         |       PCInitiate/PCRpt PCInitiate/PCRpt |
         |               |           |             |
         |            +--v--+     +--v-+           |
         +------------+- R2 +-----+ R4 +-----------+
                      +--+--+     +--+-+
    Figure 5: Explicit Route Establish Procedures(From R7 to R1)
]]></artwork>
        </figure>

        <t>The message peers, message type, message key parameters and
        procedures in the above figures are shown below:</t>

        <figure>
          <artwork><![CDATA[
              +-------+                                       +-------+
              |PCC    |                                       |  PCE  |
              |R2     |                                       +-------+
       +------|       |                                           |
       | PCC  +-------+                                           |
       | R4     | |        (EPR route on R2)                      |
+------|        | |<-PCInitiate,CC-ID=X,Symbolic Path Name=Class A|
|      |        | |  EPR Object(Peer Address=R1_A, Next Hop=R1_A) |
|PCC   +--------+ |                                               |
|R7      |  |     |----PCRpt,CC-ID=X,Symbolic Path Name=Class A-->|
|        |  |     |  EPR Object(Peer Address=R1_A, Next Hop=R1_A) |
+--------+  |                                                     |
    |       |              (EPR route on R4)                      |
    |       |<--PCInitiate,CC-ID=Y,Symbolic Path Name=Class A-----|
    |       |   EPR Object(Peer Address=R1_A, Next Hop=R2_A)      |
    |       |----PCRpt,CC-ID=Y,Symbolic Path Name=Class A-------->|
    |       |   EPR Object(Peer Address=R1_A, Next Hop=R2_A)      |
    |       |                                                     |
    |                                                             |
    |                      (EPR route on R7)                      |
    |<--PCInitiate,CC-ID=Z,Symbolic Path Name=Class A-------------|
    |   EPR Object(Peer Address=R1_A, Next Hop=R4_A)              |
    |---PCRpt,CC-ID=Z,Symbolic Path Name=Class A----------------->|
    |   EPR Object(Peer Address=R1_A, Next Hop=R4_A)              |

    Figure 6: Explicit Route Establish Procedures(From R7 to R1)
]]></artwork>
        </figure>

        <t>To avoid the transient loop while deploying the explicit peer
        route, the EPR object should be sent to the PCCs in the reverse order
        of the E2E path. To remove the explicit peer route, the EPR object
        should be sent to the PCCs in the same order as the E2E path.</t>

        <t>To accomplish ECMP effects, the PCE can send multiple EPR/CCI
        objects to the same node, with the same route priority and peer
        address value but a different next-hop address.</t>

        <t>The PCC should verify that the next hop address is reachable. In
        case of failure, the PCC MUST send the corresponding error via PCErr
        message, with the error information: Error-type=33 (Native IP TE
        failure), Error-value=3 (Explicit Peer Route Error).</t>

        <t>When the peer info is not the same as the peer info that is
        indicated in the BPI object in PCC for the same path that is
        identified by Symbolic Path Name TLV, a PCErr message MUST be
        reported, with the error information: Error-type=33 (Native IP TE
        failure), Error-value=4, EPR/BPI Peer Info Mismatch. Note that the
        same error can be used in case no BPI is received at the PCC.</t>

        <t>If the PCE needs to update the path, it should first instruct the
        new CCI with updated EPR corresponding to the new next hop to use and
        then instruct the removal of the older CCI.</t>
      </section>

      <section anchor="BGPPrefix" title="BGP Prefix Advertisement Procedures">
        <t>The detailed procedures for BGP prefix advertisement are shown
        below, using the PCInitiate and PCRpt message pair.</t>

        <t>The PCInitiate message should be sent to PCC that acts as a BGP
        peer edge router only. In the example, it should be sent to R1 and R7
        respectively.</t>

        <t>When the PCC receives the PPA and the CCI object (with the R bit
        set to 0 in the SRP object) in the PCInitiate message, the PCC should
        send the prefixes indicated in this object to the identified BGP peer
        via the corresponding BGP session <xref target="RFC4271"/>.</t>

        <t>When the PCC has successfully sent the prefixes to the appointed
        BGP peer, it should report the result via the PCRpt messages, with the
        PPA object and the corresponding SRP and CCI objects included.</t>

        <t>When the PCC receives the PPA and the CCI object with the R bit set
        to 1 in the SRP object in the PCInitiate message, the PCC MUST
        withdraw the prefixes advertisement to the peer indicated by this
        object.</t>

        <t>When the PCC withdraws successfully the prefixes that are indicated
        by this object, it should report the result via the PCRpt message,
        with the PPA object included, and the corresponding SRP and CCI
        objects.</t>

        <t>
          <figure>
            <artwork><![CDATA[
                 +------------------+
      +---------->       PCE        <-----------+
      |          +------------------+           |
      |                  +--+                   |
      +------------------+R3+-------------------+
PCInitiate/PCRpt         +--+             PCInitiate/PCRpt
      |                                         |
     +v-+          +--+          +--+         +-v+
     |R1+----------+R5+----------+R6+---------+R7|
     ++-+          +--+          +--+         +-++
 (BGP Router)                           (BGP Router)
      |                                         |
      |                                         |
      |            +--+          +--+           |
      +------------+R2+----------+R4+-----------+
                   +--+          +--+
   Figure 7: BGP Prefix Advertisement Procedures
]]></artwork>
          </figure>
        </t>

        <t>The message peers, message type, message key parameters and
        procedures in the above figures are shown below:</t>

        <figure>
          <artwork><![CDATA[
              +-------+                                      +-------+
              |PCC    |                                      |  PCE  |
              |R1     |                                      +-------+
       +------|       |                                           |
       | PCC  +-------+                                           |
       | R7     | |   (Instruct R1 to advertise Prefix 1_A to R7) |
       |        | |<-PCInitiate,CC-ID=X,Symbolic Path Name=Class A|
       |        | |  PPA Object(Peer IP=R7_A, Prefix=1_A)         |
       +--------+ |                                               |
            |     |----PCRpt,CC-ID=X,Symbolic Path Name=Class A-->|
            |     |    PPA Object(Peer IP=R7_A, Prefix=1_A)       |
            |                                                     |
            |     (Instruct R7 to advertise Prefix 7_A to R1 )    |
            |<--PCInitiate,CC-ID=Z,Symbolic Path Name=Class A-----|
            |         PPA Object(Peer IP=R1_A, Prefix=7_A)        |
            |----PCRpt,CC-ID=Z,Symbolic Path Name=Class A-------->|
            |              PPA Object(Peer IP=R1_A, Prefix=7_A)   |
            |                                                     |

            Figure 8: Message Information and Procedures
]]></artwork>
        </figure>

        <t>The AFI/SAFI for the corresponding BGP session should match the
        Peer Prefix Advertisement Object-Type, AFI/SAFI should be 1/1 for the
        IPv4 prefix and 2/1 for the IPv6 prefix. In case of mismatch, an
        error: Error-type=33 (Native IP TE failure), Error-value=5 (BPI/PPA
        address family mismatch) SHOULD be reported via PCErr message.</t>

        <t>When the peer info is not the same as the peer info that is
        indicated in the BPI object in PCC for the same path that is
        identified by Symbolic Path Name TLV, an error: Error-type=33 (Native
        IP TE failure), Error-value=6 (PPA/BPI peer info mismatch) SHOULD be
        reported via the PCErr message. Note that the same error can be used
        in case no BPI is received at the PCC.</t>
      </section>

      <section title="Selection of Raw Mode and Tunnel Mode Forwarding Strategy">
        <t>Normally, when the above procedures are finished, the user traffic
        will be forwarded via the appointed path, but the forwarding will be
        based solely on the destination of user traffic. If there is traffic
        from different attached points to the same destination coming into the
        network, they could share the priority path which may not be the
        initial desire. For example, as illustrated in Figure 1, the initial
        aim is to ensure traffic that enters the network via R1 and exits the
        network at R7 via R5-R6-R7. If some traffic enters the network via the
        R2 router, passes through R5 and exits at R7, they may share the
        priority path among R5-R6-R7, which may not be the desired effect.</t>

        <t>The above normal traffic forwarding behavior is clarified as a Raw
        mode forwarding strategy. Such a mode can achieve only the moderate
        traffic path control effect. To achieve the strict traffic path
        control effect, the entry point should tunnel the user traffic from
        the entry point of the network to the exit point of the network, which
        is also between the BGP peer established via <xref target="BGPSess"/>.
        Such forwarding behavior is called the Tunnel mode forwarding
        strategy. For simplicity, the IPinIP tunnel type is used between the
        BGP peers by default.</t>

        <t>The selection of Raw mode and Tunnel mode forwarding strategies are
        controlled via the "T" bit in BPI Object that is defined in <xref
        target="BPI_Object"/></t>
      </section>

      <section title="Clean Up">
        <t>To remove the Native-IP state from the PCC, the PCE MUST send
        explicit CCI cleanup instructions for PPA, EPR and BPI objects
        respectively with the R flag set in the SRP object. If the PCC
        receives a PCInitiate message but does not recognize the Native-IP
        information in the CCI, the PCC MUST generate a PCErr message with
        Error-Type=19 (Invalid operation) and Error-value=TBD2 (Unknown
        Native-IP Info) and MUST include the SRP object to specify the error
        is for the corresponding cleanup (via a PCInitiate message).</t>
      </section>

      <section title="Other Procedures">
        <t>The handling of the state synchronization, redundant PCEs,
        re-delegation and clean up is the same as other CCIs as specified in
        <xref target="RFC9050"/>.</t>
      </section>
    </section>

    <section anchor="Obj-Def-Sec" title="New PCEP Objects">
      <t>One new CCI Object type and three new PCEP objects are defined in
      this document. All new PCEP objects are as per <xref
      target="RFC5440"/>.</t>

      <section anchor="CCI" title="CCI Object">
        <t>The Central Control Instructions (CCI) Object (defined in <xref
        target="RFC9050"/>) is used by the PCE to specify the forwarding
        instructions. This document defines another object type for Native-IP
        procedures.</t>

        <t>CCI Object-Type is 2 for Native-IP as below: <figure>
            <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            CC-ID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Reserved             |             Flags             |
+---------------------------------------------------------------+
|                                                               |
//                        Optional TLVs                        //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Figure 9: CCI Object for Native IP]]></artwork>
          </figure></t>

        <t>The field CC-ID is as described in <xref target="RFC9050"/>. The
        following fields are defined for CCI Object-Type 2 <list
            style="hanging">
            <t hangText="Reserved:">2 Bytes, is set to zero while sending and
            ignored on receipt.</t>

            <t hangText="Flags:">2 Bytes, is used to carry any additional
            information about the Native-IP CCI. Currently, no flag bits are
            defined. Unassigned flags are set to zero while sending and
            ignored on receipt.</t>
          </list></t>

        <t>Optional TLVs may be included within the CCI object body. The
        Symbolic Path Name TLV <xref target="RFC8231"/> MUST be included in
        the CCI Object-Type 2 to identify the E2E TE path in the Native IP
        environment.</t>
      </section>

      <section anchor="BPI_Object" title="BGP Peer Info Object">
        <t>The BGP Peer Info object is used to specify the information about
        the peer with which the PCC should establish the BGP session. This
        object should only be included and sent to the source and destination
        router of the E2E path in case there is no Route Reflection (RR)
        involved. If the RR is used between the source and destination
        routers, then such information should be sent to the source router, RR
        and destination router respectively.</t>

        <t>By default, the Local/Peer IP address MUST be dedicated to the
        usage of the native IP TE solution, and MUST NOT be used by other BGP
        sessions that are established by manual or other configuration
        mechanisms.</t>

        <t>BGP Peer Info Object-Class is 46</t>

        <t>BGP Peer Info Object-Type is 1 for IPv4 and 2 for IPv6</t>

        <t>The format of the BGP Peer Info object body for IPv4
        (Object-Type=1) is as follows:</t>

        <figure>
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Peer AS Number                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   ETTL        |     Status    |   Error Code  |    Flag     |T|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Local IP Address                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Peer IP Address                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                    Optional TLVs                            //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     Figure 10: BGP Peer Info Object Body Format for IPv4  ]]></artwork>
        </figure>

        <t/>

        <t>The format of the BGP Peer Info object body for IPv6
        (Object-Type=2) is as follows:</t>

        <t>
          <figure>
            <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Peer AS Number                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   ETTL        |      Status   |   Error Code  |    Flag     |T|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|               Local IP Address (16 bytes)                     |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|               Peer IP Address (16 bytes)                      |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                    Optional TLVs                            //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      Figure 11: BGP Peer Info Object Body Format for IPv6  ]]></artwork>
          </figure>
        </t>

        <t>
          <list style="empty">
            <t>Peer AS Number: 4 Bytes, to indicate the AS number of Remote
            Peer. Note that if 2-byte AS numbers are in use, the low-order
            bits (16 through 31) MUST be used, and the high-order bits (0
            through 15) MUST be set to zero.</t>

            <t>ETTL: 1 Byte, EBGP Time To Live, to indicate the multi-hop
            count for the EBGP session. It should be 0 and ignored when Local
            AS and Peer AS are the same.</t>

            <t>Status: 1 Byte, Indicate BGP session status between the peers.
            Its values are defined below:</t>

            <t>
              <list>
                <t>0: Reserved</t>

                <t>1: BGP Session Established</t>

                <t>2: BGP Session Establishment In Progress</t>

                <t>3: BGP Session Down</t>

                <t>4-255: Reserved</t>
              </list>
            </t>

            <t>Error Code: 1 Byte, Indicate the reason that the BGP session
            can't be established.</t>

            <t>
              <list>
                <t>0: Unspecific</t>

                <t>1: ASes do not match, BGP Session Failure</t>

                <t>2: Peer IP can't be reached, BGP Session Failure</t>

                <t>3-255: Reserved</t>
              </list>
            </t>

            <t>Flag: 1 Byte.</t>

            <t>
              <list>
                <t>Currently, only bit 7 (T bit) is defined. When the T bit is
                set, the traffic should be sent in the IPinIP tunnel (Tunnel
                source is Local IP Address, tunnel destination is Peer IP
                Address). When the T bit is cleared, the traffic is sent via
                its original source and destination address. The Tunnel mode(T
                bit is set) is used when the operator wants to ensure only the
                traffic from the specified (entry, exit) pair, and the Raw
                mode (T bit is clear) is used when the operator wants to
                ensure traffic from any entry to the specified destination.
                Unassigned flags are set to zero while sending and ignored on
                receipt.</t>
              </list>
            </t>

            <t>Local IP Address(4/16 Bytes): IP address of the local router,
            used to peer with another end router. When Object-Type is 1, the
            length is 4 bytes; when Object-Type is 2, the length is 16
            bytes.</t>

            <t>Peer IP Address(4/16 Bytes): IP address of the peer router,
            used to peer with the local router. When Object-Type is 1, the
            length is 4 bytes; when Object-Type is 2, the length is 16
            bytes;</t>

            <t>Optional TLVs: TLVs that are associated with this object, can
            be used to convey other necessary information for dynamic BGP
            session establishment. No TLVs are currently defined.</t>
          </list>
        </t>

        <t>When the PCC receives a BPI object, with Object-Type=1, it should
        try to establish a BGP session with the peer in AFI/SAFI=1/1.</t>

        <t>When the PCC receives a BPI object with Object-Type=2, it should
        try to establish a BGP session with the peer in AFI/SAFI=2/1.</t>
      </section>

      <section title="Explicit Peer Route Object">
        <t>The Explicit Peer Route object is defined to specify the explicit
        peer route to the corresponding peer address on each device that is on
        the E2E Native-IP TE path. This Object should be sent to all the
        devices on the path that is calculated by the PCE. Although the object
        is named as &ldquo;Explicit Peer Route&rdquo;, it can be seen that the
        routes it installs are simply host routes. The use of this object to
        install host routes for any purpose other than reaching the
        corresponding peer address on each device that is on the E2E Native-IP
        TE path is outside the scope of this specification.</t>

        <t>It is RECOMMENDED that the path established by this object should
        have higher priority than the other paths calculated by dynamic IGP
        protocol, but should have lower priority than the static route
        configured by manual or NETCONF or any other static means.</t>

        <t>Explicit Peer Route Object-Class is 47.</t>

        <t>Explicit Peer Route Object-Type is 1 for IPv4 and 2 for IPv6</t>

        <t>The format of the Explicit Peer Route object body for IPv4
        (Object-Type=1) is as follows:</t>

        <figure>
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Route Priority        |          Reserved               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Peer IPv4 Address                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Next Hop IPv4 Address to the Peer               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                    Optional TLVs                            //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Figure 12: Explicit Peer Route Object Body Format for IPv4
]]></artwork>
        </figure>

        <t/>

        <t>The format of the Explicit Peer Route object body for IPv6
        (Object-Type=2) is as follows:</t>

        <figure>
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Route Priority        |           Reserved              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                       Peer IPv6 Address                       |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                Next Hop IPv6 Address to the Peer              |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                    Optional TLVs                            //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Figure 13: Explicit Peer Route Object Body Format for IPv6
]]></artwork>
        </figure>

        <t>
          <list style="empty">
            <t>Route Priority: 2 Bytes; the priority of this explicit route.
            The higher priority should be preferred by the device. This field
            is used to indicate the preferred path at each hop.</t>

            <t>Reserved: is set to zero while sending, ignored on receipt.</t>

            <t>Peer (IPv4/IPv6) Address: Peer Address for the BGP session
            (4/16 Bytes).</t>

            <t>Next Hop (IPv4/IPv6) Address to the Peer: To indicate the next
            hop address (4/16 Bytes) to the corresponding peer address.</t>

            <t>Optional TLVs: TLVs that are associated with this object, can
            be used to convey other necessary information for explicit peer
            path establishment. No TLVs are currently defined.</t>
          </list>
        </t>
      </section>

      <section title="Peer Prefix Advertisement Object">
        <t>The Peer Prefix Advertisement object is defined to specify the IP
        prefixes that should be advertised to the corresponding peer. This
        object should only be included and sent to the source/destination
        router of the E2E path.</t>

        <t>The prefix information included in this object MUST only be
        advertised to the indicated peer, and MUST NOT be advertised to other
        BGP peers.</t>

        <t>Peer Prefix Advertisement Object-Class is 48</t>

        <t>Peer Prefix Advertisement Object-Type is 1 for IPv4 and 2 for
        IPv6</t>

        <t>The format of the Peer Prefix Advertisement object body is as
        follows:</t>

        <t>
          <figure>
            <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Peer IPv4 Address                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| No. of Prefix |                  Reserved                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  IPv4 Prefix #1                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Prefix #1 Len  |                  Reserved                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               :                               |
|                               :                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  IPv4 Prefix #n                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Prefix #n Len  |                  Reserved                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                    Optional TLVs                            //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 14: Peer Prefix Advertisement Object Body Format for IPv4]]></artwork>
          </figure>
        </t>

        <t>
          <figure>
            <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                  Peer IPv6 Address                            |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| No. of Prefix |                  Reserved                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  IPv6 Prefix #1                               |
|                                                               |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Prefix #1 Len  |                  Reserved                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               :                               |
|                               :                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  IPv6 Prefix #n                               |
|                                                               |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Prefix #n Len  |                  Reserved                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                    Optional TLVs                            //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 Figure 15: Peer Prefix Advertisement Object Body Format for IPv6]]></artwork>
          </figure>
        </t>

        <t>
          <list style="empty">
            <t>Peer IPv4 Address: 4 Bytes. Identifies the peer IPv4 address
            that the associated prefixes will be sent to.</t>

            <t>No. of Prefix: 1 Byte. Identifies the number of prefixes that
            are advertised to the peer in the PPA object.</t>

            <t>Reserved: 3 Bytes. MUST be set to zero while sending and MUST
            be ignored on receipt.</t>

            <t>IPv4 Prefix: 4 Bytes. Identifies the prefix that will be sent
            to the peer identified by Peer IPv4 Address.</t>

            <t>Prefix Len: 1 Byte. Identifies the length of the prefix.</t>

            <t>Optional TLVs: TLVs that are associated with this object, can
            be used to convey other necessary information for prefix
            advertisement. No TLVs are currently defined.</t>

            <t>For IPv6:<list style="empty">
                <t>Peer IPv6 Address: 16 Bytes. Identifies the peer IPv6
                address that the associated prefixes will be sent to.</t>

                <t>IPv6 Prefix: Identifies the prefix that will be sent to the
                peer identified by Peer IPv6 Address.</t>
              </list>If in the future, a requirement is identified to
            advertise IPv4 prefixes toward an IPv6 peering address, or IPv6
            prefixes towards an IPv4 peering address, then a new Peer Prefix
            Advertisement Object-Types can be defined for these purposes.</t>
          </list>
        </t>
      </section>
    </section>

    <section anchor="NewErrorTypeAndValue"
             title="New Error-Types and Error-Values Defined">
      <t>A PCEP-ERROR object is used to report a PCEP error and is
      characterized by an Error-Type that specifies that type of error and an
      Error-value that provides additional information about the error. An
      additional Error-Type and several Error-values are defined to represent
      the errors related to the newly defined objects that are related to
      Native IP TE procedures.</t>

      <t>
        <figure>
          <artwork><![CDATA[       +============+==========+=====================================+
       | Error-Type | Meaning  | Error-value                         |
       +=======+===============+=====================================+
       | 33    | Native IP TE failure                                |
       |       |                                                     |
       +-------+---------------+-------------------------------------+
       |       |               |0:Unassigned                         |
       +-------+---------------+-------------------------------------+
       |       |               |1:Local IP is in use                 |
       +-------+---------------+-------------------------------------+
       |       |               |2:Remote IP is in use                |
       +-------+---------------+-------------------------------------+
       |       |               |3:Explicit Peer Route Error          |
       +-------+---------------+-------------------------------------+
       |       |               |4:EPR/BPI Peer Info mismatch         |
       +-------+---------------+-------------------------------------+
       |       |               |5:BPI/PPA Address Family mismatch    |
       +-------+---------------+-------------------------------------+
       |       |               |6:PPA/BPI Peer Info mismatch         |
       +-------+---------------+-------------------------------------+
       | 6     | Mandatory Object missing                            |
       |       |                                                     |
       +-------+---------------+-------------------------------------+
       |       |               |19:Native IP object missing          |
       +-------+---------------+-------------------------------------+
       | 10    | Reception of an invalid object                      |
       |       |                                                     |
       +-------+---------------+-------------------------------------+
       |       |               |39:PCECC NATIVE-IP-TE-CAPABILITY bit |
       |       |               |is not set                           |
       +-------+---------------+-------------------------------------+
       | 19    | Invalid Operation                                   |
       |       |                                                     |
       +-------+---------------+-------------------------------------+
       |       |               |22:Only one BPI, EPR or PPA object   |
       |       |               |can be included in this message      |
       +-------+---------------+-------------------------------------+
       |       |               |TBD1:Attempted Native-IP operations  |
       |       |               |when the capability was not          |
       |       |               | advertised                          |
       +-------+---------------+-------------------------------------+
       |       |               |TBD2:Unknown Native-IP Info          |
       +-------+---------------+-------------------------------------+
            Figure 16: Newly defined Error-Type and Error-Value
]]></artwork>
        </figure>
      </t>
    </section>

    <section anchor="BGP_Considerations" title="BGP Considerations">
      <t>This document defines the procedures and objects to create the BGP
      sessions and advertise the associated prefixes dynamically. Only the key
      information, for example, peer IP addresses, and peer AS numbers are
      exchanged via the PCEP protocol. Other parameters that are needed for
      the BGP session setup should be derived from their default values.</t>

      <t>When the PCE sends out the PCInitiate message with the BPI object
      embedded to establish the BGP session between the PCC peers, the PCC
      should report the BGP session status. For instance, the PCC could
      respond with "BGP Session Establishment In Progress" initially and on
      session establishment send another PCRpt message with the state updated
      to "BGP Session Established". If there is any error during the BGP
      session establishment, the PCC should indicate the reason with the
      appropriate status value set in the BPI object.</t>

      <t>Upon receiving such key information, the BGP module on the PCC should
      try to accomplish the task appointed by the PCEP protocol and report the
      successful status to the PCEP modules after the session is set up.</t>

      <t>There is no influence on the current implementation of BGP Finite
      State Machine (FSM). The PCEP focuses only on the success and failure
      status of the BGP session and acts upon such information
      accordingly.</t>

      <t>The error-handling procedures related to incorrect BGP parameters are
      specified in <xref target="BGPSess"/>, <xref target="BGPEx"/>, and <xref
      target="BGPPrefix"/>.</t>
    </section>

    <section title="Deployment Considerations">
      <t>The information transferred in this document is mainly used for the
      BGP session setup, explicit route deployment and the prefix
      distribution. The planning, allocation and distribution of the peer
      addresses within IGP should be accomplished in advance and they are out
      of the scope of this document.</t>

      <t>The communication of PCE and PCC described in this document SHOULD
      follow the state synchronization procedures described in <xref
      target="RFC8232"/>, treat the three newly defined objects (BPI, EPR and
      PPA) associated with the same symbolic path name as the attribute of the
      same path in the LSP-DB (LSP State Database).</t>

      <t>When PCE detects one or some of the PCCs are out of its control, it
      should recompute and redeploy the traffic engineering path for native IP
      on the currently active PCCs. The PCE should ensure the avoidance of the
      possible transient loop in such node failure when it deploys the
      explicit peer route on the PCCs.</t>

      <t>In case of a PCE failure, a new PCE can gain control over the central
      controller instructions as described in <xref target="RFC9050"/>.</t>

      <t>As per the PCEP procedures in <xref target="RFC8281"/>, the State
      Timeout Interval timer is used to ensure that a PCE failure does not
      result in automatic and immediate disruption for the services.
      Similarly, as per <xref target="RFC9050"/>, the central controller
      instructions are not removed immediately upon PCE failure. Instead, they
      could be re-delegated to the new PCE before the expiration of this
      timer, or be cleaned up on the expiration of this timer. This allows for
      network clean up without manual intervention. The PCC supports the
      removal of CCI as one of the behaviors applied on the expiration of the
      State Timeout Interval timer.</t>
    </section>

    <section title="Manageability Considerations">
      <section title="Control of Function and Policy">
        <t>A PCE or PCC implementation SHOULD allow the PCECC Native-IP
        capability to be enabled/disabled as part of the global
        configuration.</t>
      </section>

      <section title="Information and Data Models">
        <t><xref target="RFC7420"/> describes the PCEP MIB; this MIB could be
        extended to get the PCECC Native-IP capability status. The PCEP YANG
        <xref target="I-D.ietf-pce-pcep-yang"/> module could be extended to
        enable/disable the PCECC Native-IP capability.</t>
      </section>

      <section title="Liveness Detection and Monitoring">
        <t>Mechanisms defined in this document do not imply any new liveness
        detection and monitoring requirements in addition to those already
        listed in <xref target="RFC5440"/>. The operator relies on existing IP
        liveness detection and monitoring.</t>
      </section>

      <section title="Verify Correct Operations">
        <t>Verification of the mechanisms defined in this document can be
        built on those already listed in <xref target="RFC5440"/>, <xref
        target="RFC8231"/> and <xref target="RFC9050"/>. Further, the operator
        needs to be able to verify the status of BGP sessions and prefix
        advertisements.</t>
      </section>

      <section title="Requirements on Other Protocols">
        <t>Mechanisms defined in this document require the interaction with
        BGP. <xref target="BGP_Considerations"/> describes in detail the
        considerations regarding the BGP. During the BGP session
        establishment, the Local/Peer IP address MUST be dedicated to the
        usage of the native IP TE solution, and MUST NOT be used by other BGP
        sessions that are established manually or in other ways.</t>
      </section>

      <section title="Impact on Network Operations">
        <t><xref target="RFC8821"/> describes the various deployment
        considerations in CCDR architecture and their impact on network
        operations.</t>
      </section>
    </section>

    <section title="Implementation Status">
      <t>[Note to the RFC Editor - remove this section before publication, as
      well as remove the reference to RFC 7942.]</t>

      <t>This section records the status of known implementations of the
      protocol defined by this specification at the time of posting of this
      Internet-Draft, and is based on a proposal described in [RFC7942]. The
      description of implementations in this section is intended to assist the
      IETF in its decision processes in progressing drafts to RFCs. Please
      note that the listing of any individual implementation here does not
      imply endorsement by the IETF. Furthermore, no effort has been spent to
      verify the information presented here that was supplied by IETF
      contributors. This is not intended as, and must not be construed to be,
      a catalog of available implementations or their features. Readers are
      advised to note that other implementations may exist.</t>

      <t>According to <xref target="RFC7942"/>, "This will allow reviewers and
      working groups to assign due consideration to documents that have the
      benefit of running code, which may serve as evidence of valuable
      experimentation and feedback that has made the implemented protocols
      more mature. It is up to the individual working groups to use this
      information as they see fit".</t>

      <section title="Proof of Concept based on ODL">
        <t>At the time of posting the -26 version of this document, there are
        no known implementations of this mechanism. A proof of concept for the
        overall design has been verified using another SBI protocol on the
        Open Daylight (ODL) controller.</t>
      </section>

      <section title="ZTE">
        <t>ZTE is preparing an implementation of this document at the time of
        posting the -29 version of this document.</t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>In this setup, the BGP sessions, prefix advertisement, and explicit
      peer route establishment are all controlled by the PCE. See <xref
      target="RFC4271"/> for security consideration of classical BGP
      implementation, and <xref target="RFC4272"/> for classical BGP
      vulnerabilities analysis. Security considerations in <xref
      target="RFC5440"/>for basic PCEP protocol, <xref target="RFC8231"/> for
      PCEP extension for stateful PCE and <xref target="RFC8281"/> for
      PCE-Initiated LSP setup should be considered. To prevent a bogus PCE
      from sending harmful messages to the network nodes, the network devices
      should authenticate the validity of the PCE and ensure a secure
      communication channel between them. Thus, the mechanisms described in
      <xref target="RFC8253"/> for the usage of TLS for PCEP and <xref
      target="RFC9050"/> for malicious PCE should be used.</t>

      <t>If suitable default values as discussed in <xref
      target="BGP_Considerations"/> aren't enough and securing the BGP
      transport is required(for example, the TCP-AO <xref target="RFC5925"/>,
      it can be provided through the addition of optional TLVs to the BGP Peer
      Info object that conveys the necessary additional information (for
      example, a key chain <xref target="RFC8177"/>name).</t>
    </section>

    <section title="IANA Considerations">
      <section title="Path Setup Type Registry">
        <t><xref target="RFC8408"/> created a sub-registry within the "Path
        Computation Element Protocol (PCEP) Numbers" registry called "PCEP
        Path Setup Types". IANA is requested to allocate a new code point
        within this sub-registry, as follows:</t>

        <t>
          <figure>
            <artwork><![CDATA[
Value          Description                        Reference
4              Native IP TE Path                  This document
]]></artwork>
          </figure>
        </t>
      </section>

      <section title="PCECC-CAPABILITY sub-TLV's Flag field">
        <t><xref target="RFC9050"/> created a sub-registry within the "Path
        Computation Element Protocol (PCEP) Numbers" registry to manage the
        value of the PCECC-CAPABILITY sub-TLV's 32-bit Flag field. IANA is
        requested to allocate a new bit position within this registry, as
        follows:</t>

        <t>
          <figure>
            <artwork><![CDATA[
Bit       Name                   Reference
30        NATIVE IP              This document
]]></artwork>
          </figure>
        </t>
      </section>

      <section title="PCEP Object">
        <t>IANA is requested to allocate new codepoints in the "PCEP Objects"
        sub-registry as follows:</t>

        <t>
          <figure>
            <artwork><![CDATA[
Object-Class Value   Name                        Reference
44                   CCI Object                  This document
                     Object-Type
                       2: Native IP

46                BGP Peer Info                  This document
                     Object-Type
                       1: IPv4 address
                       2: IPv6 address

47                Explicit Peer Route            This document
                     Object-Type
                       1: IPv4 address
                       2: IPv6 address

48                Peer Prefix Advertisement      This document
                     Object-Type
                       1: IPv4 address
                       2: IPv6 address
]]></artwork>
          </figure>
        </t>
      </section>

      <section title="PCEP-Error Object">
        <t>IANA is requested to allocate new error types and error values
        within the "PCEP-ERROR Object Error Types and Values" sub-registry of
        the PCEP Numbers registry for the following errors:</t>

        <t>
          <figure>
            <artwork><![CDATA[
Error-Type  Meaning              Error-value
6      Mandatory Object missing
                                 19:Native IP object missing

10    Reception of an invalid object
                                 39:PCECC NATIVE-IP-TE-CAPABILITY bit
                                    is not set

19    Invalid Operation
                                 22:Only one BPI, EPR or PPA object can
                                    be included in this message
                                 TBD1:Attempted Native-IP operations 
                                    when the capability was not advertised
                                 TBD2:Unknown Native-IP Info

33     Native IP TE failure
                           1:Local IP is in use
                           2:Remote IP is in use
                           3:Explicit Peer Route Error
                           4:EPR/BPI Peer Info mismatch
                           5:BPI/PPA Address Family mismatch
                           6:PPA/BPI Peer Info mismatch
]]></artwork>
          </figure>
        </t>

        <t>The reference for the new Error-type/value should be set to this
        document.</t>
      </section>

      <section title="CCI Object Flag Field">
        <t>IANA is requested to create a new sub-registry to manage the
        16-bits Flag field of the new CCI Object called "CCI Object Flag Field
        for Native-IP". New values are to be assigned by IETF review <xref
        target="RFC8126"/>. Each bit should be tracked with the following
        qualities:</t>

        <t>
          <list>
            <t>bit number (counting from bit 0 as the most significant bit,
            and bit 15 as the lest significant bit)</t>

            <t>capability description</t>

            <t>defining RFC</t>
          </list>
        </t>

        <t>Currently, no flags are assigned.</t>
      </section>

      <section title="BPI Object Status Code">
        <t>IANA is requested to create a new sub-registry "BPI Object Status
        Code Field" within the "Path Computation Element Protocol (PCEP)
        Numbers". New values are assigned by IETF review <xref
        target="RFC8126"/>. Each value should be tracked with the following
        qualities: value, meaning, and defining RFC. The following values are
        defined in this document:</t>

        <t>
          <figure>
            <artwork><![CDATA[
Value           Meaning                                    Reference
    0           Reserved                                 This document
    1           BGP Session Established                  This document
    2           BGP Session Establishment In Progress    This document
    3           BGP Session Down                         This document
    4-255       Unassigned                               This document
]]></artwork>
          </figure>
        </t>
      </section>

      <section title="BPI Object Error Code">
        <t>IANA is requested to create a new sub-registry "BPI Object Error
        Code Field" within the "Path Computation Element Protocol (PCEP)
        Numbers". New values are assigned by IETF review <xref
        target="RFC8126"/>. Each value should be tracked with the following
        qualities: value, meaning, and defining RFC. The following values are
        defined in this document:</t>

        <t>
          <figure>
            <artwork><![CDATA[
Value     Meaning                                          Reference
    0     Reserved                                       This document
    1     ASes does not match, BGP Session Failure       This document
    2     Peer IP can't be reached, BGP Session Failure  This document
    3-255 Unassigned                                     This document
]]></artwork>
          </figure>
        </t>
      </section>

      <section title="BPI Object Flag Field">
        <t>IANA is requested to create a new sub-registry "BPI Object Flag
        Field" within the "Path Computation Element Protocol (PCEP) Numbers".
        New values are to be assigned by IETF review <xref target="RFC8126"/>.
        Each bit should be tracked with the following qualities:</t>

        <t>
          <list>
            <t>bit number (counting from bit 0 as the most significant
            bit)</t>

            <t>capability description</t>

            <t>defining RFC</t>
          </list>
        </t>

        <t>The following values are defined in this document:</t>

        <t>
          <figure>
            <artwork><![CDATA[
Bit             Meaning                            Reference
0-6             Unassigned
7               T (IPnIP) bit                      This document
]]></artwork>
          </figure>
        </t>
      </section>
    </section>

    <section title="Contributor">
      <t>Dhruv Dhody has contributed to this document.</t>
    </section>

    <section title="Acknowledgement">
      <t>Thanks Mike Koldychev, Susan Hares, Siva Sivabalan and Adam Simpson
      for their valuable suggestions and comments.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.4271"?>

      <?rfc include="reference.RFC.5440"?>

      <?rfc include="reference.RFC.5511"?>

      <?rfc include="reference.RFC.5925"?>

      <?rfc include="reference.RFC.7420"?>

      <?rfc include="reference.RFC.8126"?>

      <?rfc include="reference.RFC.8174"?>

      <?rfc include="reference.RFC.8231"?>

      <?rfc include="reference.RFC.8232"?>

      <?rfc include="reference.RFC.8253"?>

      <?rfc include="reference.RFC.8281"?>

      <?rfc include="reference.RFC.8408"?>

      <?rfc include="reference.RFC.9050"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.4272"?>

      <?rfc include="reference.RFC.7942"?>

      <?rfc include="reference.RFC.8177"?>

      <?rfc include="reference.RFC.8283"?>

      <?rfc include="reference.RFC.8735"?>

      <?rfc include="reference.RFC.8821"?>

      <?rfc include="reference.I-D.ietf-pce-pcep-yang"?>
    </references>
  </back>
</rfc>
