<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc compact="yes" ?>
<?rfc iprnotified="Yes" ?>
<?rfc strict="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" category="exp" docName="draft-ietf-pce-pcep-ls-01" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.9.0 -->
  <front>
    <title abbrev="PCEP-LS">PCEP extensions for Distribution of Link-State and TE Information</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-pce-pcep-ls-01"/>
    <author initials="D" surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>dhruv.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S" surname="Peng" fullname="Shuping Peng">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>
          <city>Beijing</city>
          <region/>
          <code>100095</code>
          <country>China</country>
        </postal>
        <email>pengshuping@huawei.com</email>
      </address>
    </author>
    <author fullname="Young Lee" initials="Y" surname="Lee">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street/>
          <city>Seoul</city>
          <region/>
          <code/>
          <country>South Korea</country>
        </postal>
        <email>younglee.tx@gmail.com</email>
      </address>
    </author>
    <author initials="D" fullname="Daniele Ceccarelli" surname="Ceccarelli">
      <organization>Cisco</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region/>
          <code/>
          <country></country>
        </postal>
        <email>daniele.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Aijun Wang" initials="A" surname="Wang">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>
          <city>Beijing</city>
          <region/>
          <code>102209</code>
          <country>China</country>
        </postal>
        <email>wangaijun@tsinghua.org.cn</email>
      </address>
    </author>
    <author fullname="Gyan Mishra" initials="G. " surname="Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>
    <!--<author fullname="Siva Sivabalan" initials="S. " surname="Sivabalan">
      <organization>Ciena Corporation</organization>
      <address>
        <email>ssivabal@ciena.com</email>
      </address>
    </author>-->
    <date/>
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
      <t>In order to compute and provide optimal paths, Path Computation
   Elements (PCEs) require an accurate and timely Traffic Engineering
   Database (TED). Traditionally, this TED has been obtained from a link
   state (LS) routing protocol supporting the traffic engineering extensions.</t>
      <t>This document  extends the Path Computation Element Communication
   Protocol (PCEP) with Link-State and TE Information as an experimental extension. </t>
    </abstract>
  </front>
  <middle>
    <section toc="default" numbered="true">
      <name>Introduction</name>
      <t>In Multiprotocol Label Switching (MPLS) and Generalized MPLS
   (GMPLS), a Traffic Engineering Database (TED) is used in computing
   paths for connection-oriented packet services and for circuits. The
   TED contains all relevant information that a Path Computation
   Element (PCE) needs to perform its computations.
   The TED must be 'complete and accurate' each time the PCE performs a
   path computation.</t>
      <t>In MPLS and GMPLS, Interior Gateway Protocols (IGPs) have
   been used to create and maintain a copy of the TED at each node
   running the IGP. One of the benefits of the PCE architecture
   <xref target="RFC4655" format="default"/> is the use of computationally more sophisticated path
   computation algorithms and the realization that these may need
   enhanced processing power (not necessarily available at each node).</t>
      <t>Section 4.3 of <xref target="RFC4655" format="default"/> describes the potential load of the TED on
   a network node and proposes an architecture where the TED is
   maintained by the PCE rather than the network nodes. However, it
   does not describe how a PCE would obtain the information needed to
   populate its TED. PCE may construct its TED by participating in the
   IGP (<xref target="RFC3630" format="default"/>  and <xref target="RFC5305" format="default"/>  for MPLS-TE; <xref target="RFC4203" format="default"/>  and <xref target="RFC5307" format="default"/>
   for GMPLS). An alternative mechanism is offered by BGP-LS <xref target="I-D.ietf-idr-rfc7752bis" format="default"/> .</t>
      <t><xref target="RFC8231" format="default"/> describes a set of extensions to PCEP to provide
   stateful control.  A stateful PCE has access to not only the
   information carried by the network's
   IGP, but also the set of active paths and their reserved resources
   for its computations. Path Computation Client (PCC) can delegate the rights to modify the LSP
   parameters to an Active Stateful PCE. This requires PCE to quickly
   be updated on any changes in the topology/TED, so that PCE can
   meet the need for updating LSPs effectively and in a timely manner.
   The fastest way for a PCE to be updated on TED changes is via a
   direct session with each network node and with an incremental update
   from each network node with only the attributes that gets modified.</t>
      <t><xref target="RFC8281" format="default"/> describes the setup, maintenance, and teardown of
   PCE-initiated LSPs under the stateful PCE model, without the need
   for local configuration on the PCC, thus allowing for a dynamic
   network that is centrally controlled and deployed. This model
   requires timely topology and TED updates at the PCE. </t>
      <!--<t><xref target="I-D.leedhody-teas-pcep-ls"/> proposes some other approaches for learning and maintaining
   the Link-State and TE information directly on a PCE as an alternative to IGPs and BGP flooding
   and investigate the impact from the PCE, routing protocol, and node
   perspectives.</t>-->

   <t><xref target="RFC5440" format="default"/> describes the specifications for the Path Computation
   Element Communication Protocol (PCEP).  PCEP specifies the
   communication between a PCC and a PCE, or between two PCEs based on the PCE
   architecture <xref target="RFC4655" format="default"/>.</t>
      <t>This document describes how link-state and TE
   information can be collected from networks and shared with PCE
   using the PCEP itself.  This is achieved using a new PCEP message format.
   The mechanism is applicable to physical and virtual links as well as
   further subjected to various policies.</t>
      <t>A network node maintains one or more databases for storing link-state
   and TE information about nodes and links in any given area.  Link attributes
   stored in these databases include: local/remote IP addresses, local/remote interface identifiers, link metric, and TE metric, link
   bandwidth, reservable bandwidth, per CoS class reservation state,
   preemption, and Shared Risk Link Groups (SRLG).  The node's PCEP
   process can retrieve topology from these databases and distribute
   it to a PCE, either directly or via another PCEP Speaker, using
   the encoding specified in this document.</t>
      <t>Further <xref target="RFC6805" format="default"/> describes Hierarchical-PCE architecture,
   where a Parent PCE maintains a domain
   topology map. To build this domain topology map, the Child PCE can carry
   the border nodes and inter-domain link information to the Parent PCE using
   the mechanism described in this document. Further, as described in
   <xref target="RFC8637" format="default"/>, the
   Child PCE can also transport abstract Link-State and
   TE information from a Child PCE to a Parent PCE using the mechanism
   described in this document to build an abstract topology at the Parent PCE.</t>
      <t><xref target="RFC8231" format="default"/> describes LSP
   state synchronization between PCCs and PCEs in the case of stateful PCE. This
   document does not make any changes to the LSP state synchronization process.
   The mechanism described in this document are on top of the existing LSP
   state synchronization.</t>
      <section toc="default" numbered="true">
        <name>Scope</name>
        <t>The procedures described in this document are experimental.  The
   experiment is intended to enable research on the usage of PCEP to
   populate the Link-State and TE Information from a PCC to the PCE.
   For this purpose, this
   document specifies a new PCEP message, a new PCEP object, and new TLVs.</t>
        <t>The new message introduced by this document will not be understood
   by legacy implementations.  On receiving the message, a legacy implementation
   will behave according to the rules for an
   unknown message as per <xref target="RFC5440" format="default"/>. It is assumed that
   this experiment will be conducted only when both the PCE and PCC
   form part of the experiment.  It is possible
   that a PCC or PCE can operate with peers, some of which form part of
   the experiment and some that do not.  In this case, the capability exchange
   required before using this extension would take care of the mismatch. A PCEP speaker that offers this feature to its peer that does not support or does not wish to support the feature will not receive the indication of support in the Open message, and so is expected to not use the feature.
   Thus this experimentation would not clash with or cause harm to existing
   deployments. Further, since a PCEP speaker would use the new message only
   after capability exchange, there is no danger of this experimentation "escaping"
   to the wider Internet. A PCEP speaker that receives the new message (that is part of the feature when the use of the feature has not been agreed) will send an error message as described in Section 6.9 of <xref target="RFC5440" format="default"/>. A PCEP speaker that receives the new object that is part of the feature when the use of the feature has not been agreed, it will send an error message as described in Section 7.2 of <xref target="RFC5440" format="default"/>.</t>
        <t>The experiment will end three years after the RFC is published.  At
   that point, the RFC authors will attempt to determine how widely this
   has been implemented and deployed. When the results of implementation and deployment are available, this
   document (or part thereof) will be updated and refined, and then it could be moved from
   Experimental to Standards Track.</t>
       <section toc="default" numbered="true">
      <name>Requirements Language</name>
      <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" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they
      appear in all capitals, as shown here.
      </t>
    </section>
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>Terminology</name>
      <t>The terminology is as per <xref target="RFC4655" format="default"/> and <xref target="RFC5440" format="default"/>.</t>
    </section>
    <section toc="default" numbered="true">
      <name>Applicability</name>
      <t>The
   mechanism specified in this draft is applicable to deployments:
      </t>
      <ul spacing="normal">
        <li>Where there is no IGP or BGP-LS running in the network. </li>
        <li>Where there is no IGP or BGP-LS running at the PCE to learn link-state and TE information. </li>
        <li>
          <t>Where there is IGP or BGP-LS running but with a need for a faster and direct TE and link-state population and convergence at the PCE.
          </t>
          <ul spacing="normal">
            <li>A PCE may receive partial information (say basic TE, link-state) from IGP and other information (optical and impairment) from PCEP.</li>
            <li>A PCE may receive an incremental update (as opposed to the full (entire) information of the node/link).</li>
            <li>A PCE may receive full information from both existing mechanisms (IGP or BGP-LS) and PCEP.</li>
          </ul>
        </li>
        <li>Where there is a need for transporting (abstract) Link-State
   and TE information from Child PCE to a Parent PCE in H-PCE <xref target="RFC6805" format="default"/>;
   as well as for Provisioning Network Controller (PNC) to Multi-Domain Service Coordinator
   (MDSC) in Abstraction and Control of TE Networks (ACTN) <xref target="RFC8453" format="default"/>.
   </li>
        <li>Where there is an existing PCEP session between all the nodes and the PCE-based central controller (PCECC) <xref target="RFC8283" format="default"/>, and the operator would like to use PCEP as a direct southbound interface to all the nodes in the network. This enables the operator to use PCEP as a single direct protocol between the controller and all the nodes in the network. In this mode, all nodes send only the local information.</li>
      </ul>
      <t>Based on the local policy and deployment scenario, a PCC chooses to send only local information or both local and remote learned information. How a PCE manages the link-state (and TE) information is implementation-specific and thus out of the scope of this document.</t>
      <t>The prefix information in PCEP-LS can also help in determining the domain of the tunnel destination in the H-PCE (and ACTN) scenario.
   Section 4.5 of <xref target="RFC6805" format="default"/> describes various mechanisms and procedures that might be used, PCEP-LS provides a simple mechanism
   to exchange this information within PCEP.  </t>
      <t><xref target="RFC8453" format="default"/> defines three types of
   topology abstraction - (1) Native/White Topology; (2) Black Topology;
   and (3) Grey Topology.  Based on the local policy, the PNC (or Child PCE) would share the domain topology with the MDSC (or Parent PCE)
   based on the abstraction type.  The protocol extensions defined in this document can carry any type of topology abstraction.</t>
    </section>
    <section toc="default" anchor="sec_req" numbered="true">
      <name>Requirements for PCEP Extensions</name>
      <t>The following key requirements associated with link-state (and TE) distribution are identified for PCEP:
      </t>
      <ol spacing="normal" type="1"><li>The PCEP speaker supporting this draft MUST have a mechanism to advertise the Link-State (and TE) distribution capability.</li>
        <li>PCC supporting this draft MUST have the capability to report the link-state (and TE) information to
    the PCE. This MUST include self-originated (local) information and MAY also allow remote information
    learned via routing protocols. PCC MUST be capable to do the initial bulk sync at
    the time of session initialization as well as any changes there after.</li>
        <li>A PCE MAY learn link-state (and TE) from PCEP as well as from existing mechanisms like
    IGP/BGP-LS. PCEP extensions MUST have a mechanism to correlate the information
    learned via other means. There MUST NOT be any changes to the existing link-state (and TE)
    population mechanism
    via IGP/BGP-LS. PCEP extension SHOULD keep the properties in a
    protocol (IGP or BGP-LS) neutral way, such that an implementation
    need not know about any OSPF or IS-IS or BGP-LS protocol specifics.</li>
        <li>It SHOULD be possible to encode only the changes in link-state (and TE) properties
    (after the initial sync) in PCEP messages. This leads to faster convergence. </li>
        <li>The same mechanism SHOULD be used for both MPLS TE as well as GMPLS,
    optical, and impairment-aware properties.</li>
        <li>The same mechanism SHOULD be used for PCE to PCE Link-state (and TE) synchronization.</li>
        <!--<t>The extension in this draft SHOULD be extensible to support various
    architecture options listed in <xref target="I-D.leedhody-teas-pcep-ls"/>.</t>-->

      </ol>
    </section>
    <section numbered="true" toc="default">
      <name>New Functions to distribute link-state (and TE) via PCEP</name>
      <t>Several new functions are required in PCEP to support distribution
   of link-state (and TE) information. A function can be initiated
   either from a PCC towards a PCE (C-E) or from a PCE towards a PCC (E-C).
    The new functions are:
      </t>
      <ul spacing="normal">
        <li>Capability advertisement (E-C,C-E): both the PCC and the PCE MUST announce during the PCEP session establishment that they support PCEP extensions for the distribution of link-state (and TE) information defined in this document.</li>
        <li>Link-State (and TE) synchronization (C-E): after the session between the PCC and a PCE is initialized, the PCE must learn Link-State (and TE) information before it can perform path computations.  In the case of stateful PCE it is RECOMMENDED that this operation be done before LSP state synchronization.</li>
        <li>Link-State (and TE) Report (C-E): a PCC sends an LS (and TE) report to a PCE whenever the Link-State and TE information changes.</li>
      </ul>
    </section>
    <section toc="default" anchor="sec_overview" numbered="true">
      <name>Overview of Extensions to PCEP</name>
      <section numbered="true" toc="default">
        <name>New Messages</name>
        <t>In this document, we define a new PCEP message called LS Report (LSRpt),
      a PCEP message sent by a PCC
      to a PCE to report link-state (and TE) information.  Each LS Report in an LSRpt message can contain
      the node or link properties. A unique PCEP-specific LS identifier (LS-ID) is
      also carried in the message to identify a node or a link that remains constant for the
      lifetime of a PCEP session. This identifier on its own is sufficient
      when no IGP or BGP-LS running in the network for PCE to learn link-state (and TE) information.
      In case PCE learns some information from PCEP and some
      from the existing mechanism, the PCC SHOULD include the mapping of IGP or BGP-LS
      identifier to map the information populated via PCEP with IGP/BGP-LS.
      See <xref target="sec_lsrpt" format="default"/> for details.</t>
      </section>
      <section numbered="true" toc="default">
        <name>Capability Advertisement</name>
        <t>During the PCEP Initialization Phase, PCEP Speakers (PCE or PCC)
   advertise their support of LS (and TE) distribution via PCEP extensions.  A PCEP Speaker
   includes the "LS Capability" TLV, described in <xref target="sec_ls_tlv" format="default"/>,
   in the OPEN Object to advertise its support for PCEP-LS extensions.
   The presence of the LS Capability TLV in PCC's OPEN Object
   indicates that the PCC is willing to send LS Reports with
   local link-state (and TE) information. The presence of the
   LS Capability TLV in PCE's Open message
   indicates that the PCE is interested in receiving LS Reports
   with local link-state (and TE) information.</t>
        <t>The PCEP extensions for LS (and TE) distribution MUST NOT be used if
   one or both PCEP Speakers have not included the LS
   Capability TLV in their respective OPEN message. If the PCE
   supports the extensions defined in this document but does not advertise this
   capability, then upon receipt of an LSRpt message from the PCC, it
   SHOULD generate a PCErr with error-type 19 (Invalid Operation),
   error-value TBD1 (Attempted LS Report if LS
   capability was not advertised) and it will
   terminate the PCEP session.</t>
        <t>The LS reports sent by PCC MAY carry the remote link-state (and TE) information
   learned via existing means like IGP and BGP-LS
   only if both PCEP Speakers set the R (remote) Flag in the
   "LS Capability" TLV to 'Remote Allowed (R Flag = 1)'.  If this
   is not the case and LS reports carry remote link-state (and TE) information, then a
   PCErr with error-type 19 (Invalid Operation) and
   error-value TBD1 (Attempted LS Report if LS
   remote capability was not advertised) and it will
   terminate the PCEP session.</t>
      </section>
      <section numbered="true" toc="default">
        <name>Initial Link-State (and TE) Synchronization</name>
        <t>The purpose of LS Synchronization is to provide a checkpoint-in-time state replica of a PCC's link-state (and TE) database in a PCE. State
   Synchronization is performed immediately after the Initialization
   phase (see <xref target="RFC5440" format="default"/>). In the case of stateful PCE
   (<xref target="RFC8231" format="default"/>)
   it is RECOMMENDED that the LS synchronization should be done
   before LSP state synchronization.</t>
        <t>During LS Synchronization, a PCC first takes a snapshot of the
   state of its database, then sends the snapshot to a PCE in a
   sequence of LS Reports.  Each LS Report sent during
   LS Synchronization has the SYNC Flag in the LS Object set to 1.
   The end of synchronization marker is an LSRpt message with the SYNC
   Flag set to 0 for an LS Object with LS-ID equal to the reserved
   value 0. If the
   PCC has no link-state to synchronize, it will only send the end of
   synchronization marker.</t>
        <t>Either the PCE or the PCC MAY terminate the session using the PCEP
   session termination procedures during the synchronization phase.  If
   the session is terminated, the PCE MUST clean up the state it received
   from this PCC.  The session re-establishment MUST be re-attempted per
   the procedures defined in <xref target="RFC5440" format="default"/>, including the use of a back-off
   timer.</t>
        <t>If the PCC encounters a problem which prevents it from completing the
   LS synchronization, it MUST send a PCErr message with error-type TBD2 (LS
   Synchronization Error) and error-value 2 (indicating an
   internal PCC error) to the PCE and terminate the session.</t>
        <t>The PCE does not send positive acknowledgements for properly received
   LS synchronization messages.  It MUST respond with a PCErr message with
   error-type TBD2 (LS Synchronization Error) and error-value 1
   (indicating an error in processing the LSRpt) if it
   encounters a problem with the LS Report it received from the
   PCC and it MUST terminate the session.</t>
        <t>The LS reports can carry local as well as remote link-state (and TE) information depending on the R flag in the LS capability
      TLV.</t>
        <t>The successful LS Synchronization sequence is shown in <xref target="F1" format="default"/>.</t>
        <figure anchor="F1">
          <name>Successful LS synchronization</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[

      +-+-+                    +-+-+
      |PCC|                    |PCE|
      +-+-+                    +-+-+
        |                        |
        |-----LSRpt, SYNC=1----->| (Sync start)
        |                        |
        |-----LSRpt, SYNC=1----->|
        |            .           |
        |            .           |
        |            .           |
        |-----LSRpt, SYNC=1----->|
        |            .           |
        |            .           |
        |            .           |
        |                        |
        |-----LSRpt, SYNC=0----->| (End of sync marker
        |                        |  LS Report
        |                        |  for LS-ID=0)
        |                        | (Sync done)

]]></artwork>
        </figure>
        <t>The sequence where the PCE fails during the LS Synchronization
   phase is shown in <xref target="F2" format="default"/>.</t>
        <figure anchor="F2">
          <name>Failed LS synchronization (PCE failure)</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      +-+-+                    +-+-+
      |PCC|                    |PCE|
      +-+-+                    +-+-+
        |                        |
        |-----LSRpt, SYNC=1----->|
        |                        |
        |-----LSRpt, SYNC=1----->|
        |            .           |
        |            .           |
        |            .           |
        |-----LSRpt, SYNC=1----->|
        |                        |
        |---LSRpt,SYNC=1         |
        |         \    ,-PCErr---|
        |          \  /          |
        |           \/           |
        |           /\           |
        |          /   `-------->| (Ignored)
        |<--------`              |

]]></artwork>
        </figure>
        <t>The sequence where the PCC fails during the LS Synchronization
   phase is shown in <xref target="F3" format="default"/>.</t>
        <figure anchor="F3">
          <name>Failed LS synchronization (PCC failure)</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      +-+-+                    +-+-+
      |PCC|                    |PCE|
      +-+-+                    +-+-+
        |                        |
        |-----LSRpt, SYNC=1----->|
        |                        |
        |-----LSRpt, SYNC=1----->|
        |            .           |
        |            .           |
        |            .           |
        |-------- PCErr--------->|
        |                        |

      ]]></artwork>
        </figure>
        <section numbered="true" toc="default">
          <name>Optimizations for LS Synchronization</name>
          <t>These optimizations are described in <xref target="I-D.kondreddy-pce-pcep-ls-sync-optimizations" format="default"/>.</t>
        </section>
      </section>
      <section numbered="true" toc="default">
        <name>LS Report</name>
        <t>The PCC MUST report any changes in the link-state (and TE) information to the PCE by sending an
      LS Report carried on an LSRpt message to the PCE.
      Each node and Link would be uniquely identified by a
      PCEP LS identifier (LS-ID). The LS reports may carry local as well as
      remote link-state (and TE) information depending on the R flag in LS capability
      TLV.
      It MAY also include the mapping of IGP or BGP-LS
      identifier to map the information populated via PCEP with IGP/BGP-LS identifiers.</t>
        <t>More details about the LSRpt message are in <xref target="sec_lsrpt" format="default"/>.</t>
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>Transport</name>
      <t>A permanent PCEP session (section 4.2.8 of <xref target="RFC5440" format="default"/>) MUST be established between a PCE
   and PCC supporting link-state (and TE) distribution via PCEP. In the case of session failure,
   session re-establishment
   is re-attempted as per the procedures defined in
   <xref target="RFC5440" format="default"/>.</t>
    </section>
    <section toc="default" anchor="sec_msg" numbered="true">
      <name>PCEP Messages</name>
      <t>As defined in <xref target="RFC5440" format="default"/>, a PCEP message consists of a common header
   followed by a variable-length body made of a set of objects that can
   be either mandatory or optional.  An object is said to be mandatory
   in a PCEP message when the object must be included for the message to
   be considered valid.  For each PCEP message type, a set of rules is
   defined that specify the set of objects that the message can carry.
   An implementation MUST form the PCEP messages using the object
   ordering specified in this document.</t>
      <section anchor="sec_lsrpt" numbered="true" toc="default">
        <name>LS Report Message</name>
        <t>A PCEP LS Report message (also referred to as
   LSRpt message) is a PCEP message sent by a PCC to a PCE to report the
   link-state (and TE) information.  An LSRpt message can carry more than one LS
   Reports (LS object).  The Message-Type field of the PCEP common header
   for the LSRpt message is set to [TBD3].</t>
        <t>The format of the LSRpt message is as follows:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
<LSRpt Message> ::= <Common Header>
                    <ls-report-list>
Where:

<ls-report-list> ::= <LS>[<ls-report-list>]

            ]]></artwork>
        <t>The LS object is a mandatory object which carries LS information of
      a node/prefix or a link. Each LS object has a unique LS-ID as described
      in <xref target="sec_ls_obj" format="default"/>. If the LS
   object is missing, the receiving PCE MUST send a PCErr message with
   Error-type=6 (Mandatory Object missing) and Error-value=[TBD4] (LS
   object missing).</t>
        <t>A PCE may choose to implement a limit on the LS information a single PCC
   can populate.  If an LSRpt is received that causes the PCE to exceed
   this limit, it MUST send a PCErr message with error-type 19 (invalid
   operation) and error-value 4 (indicating resource limit exceeded) in
   response to the LSRpt message triggering this condition and SHOULD
   terminate the session.</t>
      </section>
      <section anchor="sec_pcerr" numbered="true" toc="default">
        <name>The PCErr Message</name>
        <t>If a PCEP speaker has advertised the LS capability on the PCEP
   session, the PCErr message MAY include the LS object.  If the error
   reported is the result of an LS report, then the LS-ID
   number MUST be the one from the LSRpt that triggered the error.</t>
        <t>The format of a PCErr message from <xref target="RFC5440" format="default"/> is
   extended as follows:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
<PCErr Message> ::= <Common Header>
                  ( <error-obj-list> [<Open>] ) | <error>
                  [<error-list>]

<error-obj-list>::=<PCEP-ERROR>[<error-obj-list>]

<error>::=[<request-id-list> | <ls-id-list>]
           <error-obj-list>

<request-id-list>::=<RP>[<request-id-list>]

<ls-id-list>::=<LS>[<ls-id-list>]

<error-list>::=<error>[<error-list>]
            ]]></artwork>
      </section>
    </section>
    <section toc="default" anchor="sec_obj" numbered="true">
      <name>Objects and TLV</name>
      <t>The PCEP objects defined in this document are compliant with the PCEP
   object format defined in <xref target="RFC5440" format="default"/>.  The P flag and the I flag of the
   PCEP objects defined in this document MUST always be set to 0 on
   transmission and MUST be ignored on receipt since these flags are
   exclusively related to path computation requests. </t>
      <section numbered="true" toc="default">
        <name>TLV Format</name>
        <t>The TLV and the sub-TLV format (and padding) in this document, is as per section 7.1 of <xref target="RFC5440" format="default"/>. </t>
      </section>
      <section numbered="true" toc="default">
        <name>Open Object</name>
        <t>This document defines a new optional TLV for use in the OPEN
   Object.</t>
        <section anchor="sec_ls_tlv" numbered="true" toc="default">
          <name>LS Capability TLV</name>
          <t>The LS-CAPABILITY TLV is an optional TLV for use in the
   OPEN Object for link-state (and TE) distribution via PCEP capability
   advertisement.  Its format is shown in the following figure:</t>
          <artwork name="" type="" align="left" 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=[TBD5]     |            Length=4           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Flags                           |R|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          <t>The type of the TLV is [TBD5] and it has a fixed length of 4 octets.</t>
          <t>The value comprises a single field - Flags (32 bits):
          </t>
          <ul spacing="normal">
            <li>R (remote allowed - 1 bit): if set to 1 by a PCC, the R Flag
      indicates that the PCC allows the reporting of remote LS information
      learned via other means like IGP and BGP-LS; if
      set to 1 by a PCE, the R Flag indicates that the PCE is capable of
      receiving remote LS information (from the PCC point of view).
      The R Flag must be
      advertised by both PCC and PCE for LSRpt messages to report
      remote as well as local LS information on a PCEP session. The
      TLVs related to IGP/BGP-LS identifier MUST be encoded when
      both PCEP speakers have the R Flag set.</li>
          </ul>
          <t>Unassigned bits are considered reserved.  They MUST be set to 0 on
   transmission and MUST be ignored on receipt.</t>
          <t>Advertisement of the LS capability implies support of local link-state (and TE)
   distribution, as well as the objects, TLVs and
   procedures defined in this document.</t>
        </section>
      </section>
      <section anchor="sec_ls_obj" numbered="true" toc="default">
        <name>LS Object</name>
        <t>The LS (link-state) object MUST be carried
   within LSRpt messages and MAY be carried within PCErr
   messages.  The LS object contains a set of fields used to specify
   the target node or link. It also
   contains a flag indicating to a PCE that the LS
   synchronization is in progress. The TLVs used with the LS object
   correlate with the IGP/BGP-LS encodings.</t>
        <t>LS Object-Class is TBD6.</t>
        <t>Four Object-Type values are defined for the LS object so far:
        </t>
        <ul spacing="normal">
          <li>LS Node: LS Object-Type is 1. </li>
          <li>LS Link: LS Object-Type is 2.</li>
          <li>LS IPv4 Topology Prefix: LS Object-Type is 3.</li>
          <li>LS IPv6 Topology Prefix: LS Object-Type is 4.</li>
        </ul>
        <t>The format of all types of LS objects are as follows:</t>
        <artwork align="center" name="" 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Protocol-ID  |          Flag                             |R|S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          LS-ID                                |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//                         TLVs                                //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
        <t>Protocol-ID (8-bit): The field provides the source information.
     The protocol could be an IGP, BGP-LS, or an abstraction algorithm.
     In case the PCC only provides local information of the PCC,
     it MUST use Protocol-ID
     as Direct. The following values are defined (some of the initial values are the same as
     <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>):</t>
        <artwork align="center" name="" type="" alt=""><![CDATA[
+-------------+----------------------------------+
| Protocol-ID | Source protocol                  |
+-------------+----------------------------------+
|      1      | IS-IS Level 1                    |
|      2      | IS-IS Level 2                    |
|      3      | OSPFv2                           |
|      4      | Direct                           |
|      5      | Static configuration             |
|      6      | OSPFv3                           |
|      7      | BGP                              |
|      8      | RSVP-TE                          |
|      9      | Segment Routing                  |
|      10     | PCEP                             |
|      11     | Abstraction                      |
+-------------+----------------------------------+
            ]]></artwork>
        <t>Flags (24-bit):
        </t>
        <ul spacing="normal">
          <li>S (SYNC - 1 bit):  the S Flag MUST be set to 1 on each LSRpt sent
      from a PCC during LS Synchronization.  The S Flag MUST be set
      to 0 in other LSRpt messages sent from the PCC.</li>
          <li>R (Remove - 1 bit):  On LSRpt messages, the R Flag indicates that the
      node/link/prefix has been removed from the PCC and the PCE SHOULD remove
      from its database.  Upon receiving an LS Report with
      the R Flag set to 1, the PCE SHOULD
      remove all state for the node/link/prefix identified by the LS Identifiers
      from its database.</li>
        </ul>
        <t>LS-ID(64-bit): A PCEP-specific identifier for the node,
     link, or prefix information.  A PCC creates a unique LS-ID for
     each node/link/prefix that is
     constant for the lifetime of a PCEP session.  The PCC will
     advertise the same LS-ID on all PCEP sessions it maintains at a
     given time.  All
   subsequent PCEP messages then address the node/link/prefix by the LS-ID.
   The
   values of 0 and 0xFFFFFFFFFFFFFFFF are reserved.</t>
        <t>Unassigned bits are considered reserved.  They MUST be set to 0 on
   transmission and MUST be ignored on receipt.</t>
        <t>TLVs that may be included in the LS Object are described in the
   following sections.</t>
        <section numbered="true" toc="default">
          <name>Routing Universe TLV</name>
          <t>In the case of remote link-state (and TE) population when existing IGP/BGP-LS are
   also used, OSPF and IS-IS may run multiple routing protocol instances over
   the same link as described in <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>.
   See <xref target="RFC8202" format="default"/> and <xref target="RFC6549" format="default"/> for more information.
   These instances define
   an independent "routing universe".  The 64-bit 'Identifier' field is
   used to identify the "routing universe" where the LS object belongs.
   The
   LS objects representing IGP objects (nodes, links, or prefix) from the
   same routing universe MUST have the same 'Identifier' value; LS objects
   with different 'Identifier' values MUST be considered to be from
   different routing universes. </t>
          <t>The format of the optional ROUTING-UNIVERSE TLV is shown in the following
   figure:</t>
          <artwork align="center" name="" 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=[TBD7]         |           Length=8            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Identifier                          |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          <t>The below table lists the 'Identifier'
   values that are defined as well-known in this draft (same as
     <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>).</t>
          <artwork align="center" name="" type="" alt=""><![CDATA[
+------------+-----------------------------------+
| Identifier | Routing Universe                  |
+------------+-----------------------------------+
|     0      | Default Layer 3 Routing topology  |
+------------+-----------------------------------+
            ]]></artwork>
          <t>If this TLV is not present the default value 0 is assumed.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Route Distinguisher TLV</name>
          <t>To allow identification of VPN link, node, and prefix information
   in PCEP-LS, a Route Distinguisher (RD) <xref target="RFC4364" format="default"/> is used.
   The
   LS objects from the
   same VPN MUST have the same RD; LS objects
   with different RD values MUST be considered to be from
   different VPNs. </t>
          <t>The ROUTE-DISTINGUISHER TLV is defined in <xref target="RFC9168" format="default"/> as a Flow Specification TLVs with a separate registry. This
   document also adds the ROUTE-DISTINGUISHER TLV with TBD15 in the PCEP TLV registry to be used inside the LS object.</t>
          <!--<figure title=""
             suppress-title="true" align="center" alt="" width="" height="" >
            <artwork align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Type=[TBD15]        |           Length=8            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Route Distinguisher                       |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          </figure>
    </t>
    <t>The format of RD is as per <xref target="RFC4364"/>.</t>-->
   </section>
        <section numbered="true" toc="default">
          <name>Virtual Network TLV</name>
          <t>To realize ACTN, the MDSC needs to build a multi-domain topology.
    This topology is best served if this is an abstract view of the
    underlying network resources of each domain. It is also important
    to provide a customer view of the network slice for each customer.
    There is a need to control the level of abstraction based on
   the deployment scenario and business relationship between the controllers.
          </t>
          <t>Virtual service coordination function in ACTN incorporates customer
   service-related knowledge into the virtual network operations in
   order to seamlessly operate virtual networks while meeting customer's
   service requirements. <xref target="I-D.ietf-teas-actn-requirements" format="default"/> describes various VN operations
   initiated by a customer/application. In this context, there is a
   need for associating the abstracted link-state and TE topology with a VN "construct" to
   facilitate VN operations in PCE architecture.</t>
          <t>VIRTUAL-NETWORK-TLV as per <xref target="RFC9358" format="default"/>
   can be included in the LS object to identify the link, node, and prefix information
   belongs to a particular VN.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Local Node Descriptors TLV</name>
          <t>As described in <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>,
   each link is anchored by a pair of Router-IDs that are used by the
   underlying IGP, namely, 48-bit ISO System-ID for IS-IS and 32-bit
   Router-ID for OSPFv2 and OSPFv3.  In case of additional auxiliary
   Router-IDs used for TE, these MUST also be included in the link
   attribute TLV (see <xref target="link_attr" format="default"/>).</t>
          <t>It is desirable that the Router-ID assignments inside the Node
   Descriptors TLV are globally unique. Some considerations for globally
   unique Node/Link/Prefix identifiers are described in
   <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>.</t>
          <t>The Local Node Descriptors TLV contains Node Descriptors for the node
   anchoring the local end of the link.  This TLV MUST be included in the LS Report
   when during a given PCEP session a node/link/prefix is first reported to a PCE.
   A PCC sends to a PCE the first LS Report either during the State
   Synchronization, or when a new node/link/prefix is learned at the PCC.
   The value
   contains one or more Node Descriptor Sub-TLVs, which
   allows the specification of a flexible key for any given node/link/prefix
   information such that the global uniqueness of the node/link/prefix is ensured.</t>
          <t>This TLV is applicable for all LS Object-Type.</t>
          <artwork align="center" name="" 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=[TBD8]         |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//              Node Descriptor Sub-TLVs (variable)            //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          <t>The value contains
   one or more Node Descriptor Sub-TLVs defined in
   <xref target="node_subtlv" format="default"/>.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Remote Node Descriptors TLV</name>
          <t>The Remote Node Descriptors contain Node Descriptors for the node
   anchoring the remote end of the link.  This TLV MUST be included in the LS Report
   when during a given PCEP session a link is first reported to a PCE.
   A PCC sends to a PCE the first LS Report either during the State
   Synchronization, or when a new link is learned at the PCC. The length of this TLV is
   variable.  The value contains
   one or more Node Descriptor Sub-TLVs defined in <xref target="node_subtlv" format="default"/>.</t>
          <t>This TLV is applicable for LS Link Object-Type.</t>
          <artwork align="center" name="" 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=[TBD9]         |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//              Node Descriptor Sub-TLVs (variable)            //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
        </section>
        <section anchor="node_subtlv" numbered="true" toc="default">
          <name>Node Descriptors Sub-TLVs</name>
          <t>The Node Descriptors TLV  (Local and Remote) carries one or more Node Descriptor Sub-TLV follows the format of all PCEP TLVs as defined
   in <xref target="RFC5440" format="default"/>, however, the Type values are selected from a new PCEP-LS sub-TLV IANA registry (see <xref target="subtlv" format="default"/>).</t>
          <t>Type values are chosen so that there can be commonality with BGP-LS <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>.  This is possible because the "BGP-LS Node Descriptor, Link
   Descriptor, Prefix Descriptor, and Attribute TLVs" registry marks
   0-255 as reserved.  Thus the space of the sub-TLV values for the Type
   field can be partitioned as shown below -
          </t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Range          |
---------------+---------------------------------------------
0              | Reserved - must not be allocated.
               |
1 .. 255       | New PCEP sub-TLV allocated according to the
               | registry defined in this document.
               |
256 ..   65535 | Per BGP registry defined by
               | [I-D.ietf-idr-rfc7752bis].
               | Not to be allocated in this registry.
]]></artwork>
          <t>All Node Descriptors TLVs defined for BGP-LS can then be used with PCEP-LS as well. One new PCEP sub-TLVs for Node Descriptor are defined in this document.</t>
          <artwork align="center" name="" type="" alt=""><![CDATA[
+----------+-------------------+----------+----------------+
| Sub-TLV  | Description       |   Length |Value defined in|
+----------+-------------------+----------+----------------+
|      24  | SPEAKER-ENTITY-ID | Variable | [RFC8232]      |
+----------+-------------------+----------+----------------+
            ]]></artwork>
          <t>A new sub-TLV type (24) is allocated for SPEAKER-ENTITY-ID sub-TLV. The length and value fields are as per <xref target="RFC8232" format="default"/>.</t>
          <!--<t>The sub-TLV values in Node Descriptor TLVs are defined
   as follows (similar to <xref target="RFC7752"/>):
   <list style="symbols">
   <t>Autonomous System:  opaque value (32 Bit AS Number)</t>
   <t>BGP-LS Identifier:  opaque value (32 Bit ID).  In conjunction with
      ASN, uniquely identifies the BGP-LS domain as described in <xref target="RFC7752"/>.
      This sub-TLV is present only if the node implements BGP-LS and the ID is set by the operator.
</t>

   <t>OSPF Area ID:  It is used to identify the 32 Bit area to which the LS object
      belongs.  Area Identifier allows the different LS objects of the same
      node to be discriminated.</t>

   <t>Router ID:  opaque value.  Usage is
      described in <xref target="RFC7752"/> as IGP Router ID. In case this is not learned from IGP, it SHOULD contain the unique router ID, such as TE router ID.</t>



      </list>
      </t>-->
   </section>
        <section numbered="true" toc="default">
          <name>Link Descriptors TLV</name>
          <t>The Link Descriptors TLV contains Link Descriptors for each link.
   This TLV MUST be included in the LS Report
   when during a given PCEP session a link is first reported to a PCE.
   A PCC sends to a PCE the first LS Report either during State
   Synchronization, or when a new link is learned at the PCC.  The length of this
   TLV is variable. The value contains one or more Link Descriptor Sub-TLVs.</t>
          <t>The 'Link descriptor' TLVs uniquely identify a link among
    multiple parallel
   links between a pair of anchor routers similar to
   <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>. </t>
          <t>This TLV is applicable for LS Link Object-Type.</t>
          <artwork align="center" name="" 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=[TBD10]        |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//              Link Descriptor Sub-TLVs (variable)            //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          <t>All Link Descriptors TLVs defined for BGP-LS can then be used with PCEP-LS as well. No new PCEP sub-TLVs for Link Descriptor are defined in this document.</t>
          <t>The format and semantics of the 'value' fields in most 'Link
   Descriptor' sub-TLVs correspond to the format and semantics of the value
   fields in IS-IS Extended IS Reachability sub-TLVs, defined in
   <xref target="RFC5305" format="default"/>, <xref target="RFC5307" format="default"/> and <xref target="RFC6119" format="default"/>.  Although the encodings for 'Link
   Descriptor' TLVs were originally defined for IS-IS, the TLVs can
   carry data sourced by IS-IS, OSPF, or direct.</t>
          <t>The information about a link present in the LSA/LSP originated by the
   local node of the link determines the set of sub-TLVs in the Link
   Descriptor of the link as described in
   <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>.</t>
        </section>
        <section numbered="true" toc="default">
          <name>Prefix Descriptors TLV</name>
          <t>The Prefix Descriptors TLV contains Prefix Descriptors that uniquely identify an IPv4 or IPv6
   Prefix originated by a Node.  This TLV MUST be included in the LS Report
   when during a given PCEP session a prefix is first reported to a PCE.
   A PCC sends to a PCE the first LS Report either during the State
   Synchronization, or when a new prefix is learned at the PCC. The length of this TLV is
   variable.  </t>
          <t>This TLV is applicable for LS Prefix Object-Types for both IPv4 and IPv6.</t>
          <artwork align="center" name="" 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=[TBD11]        |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//             Prefix Descriptor Sub-TLVs (variable)           //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          <t>All Prefix Descriptors TLVs defined for BGP-LS can then be used with PCEP-LS as well. No new PCEP sub-TLVs for Prefix Descriptor are defined in this document.</t>
        </section>
        <section numbered="true" toc="default">
          <name>PCEP-LS Attributes</name>
          <section anchor="node_attr" numbered="true" toc="default">
            <name>Node Attributes TLV</name>
            <t>This is an optional attribute that is used to
   carry node attributes. This TLV is applicable for LS Node Object-Type.</t>
            <artwork align="center" name="" 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=[TBD12]        |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//              Node Attributes Sub-TLVs (variable)            //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
            <t>All Node Attributes TLVs defined for BGP-LS can then be used with PCEP-LS as well. No new PCEP sub-TLVs for Node Attributes are defined in this document.</t>
          </section>
          <section anchor="link_attr" numbered="true" toc="default">
            <name>Link Attributes TLV</name>
            <t>This TLV is applicable for LS Link Object-Type. The format
   and semantics of the 'value' fields in some 'Link Attribute' sub-TLVs
   correspond to the format and semantics of the 'value' fields in IS-IS
   Extended IS Reachability sub-TLVs, defined in <xref target="RFC5305" format="default"/>,
   <xref target="RFC5307" format="default"/> and <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>.
   Although the encodings for 'Link Attribute' TLVs were originally
   defined for IS-IS, the TLVs can carry data sourced by IS-IS,
   OSPF, or direct.</t>
            <artwork align="center" name="" 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=[TBD13]        |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//              Link Attributes Sub-TLVs (variable)            //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
            <t>All Link Attributes TLVs defined for BGP-LS can then be used with PCEP-LS as well. No new PCEP sub-TLVs for Link Attributes are defined in this document.</t>
          </section>
          <section numbered="true" toc="default">
            <name>Prefix Attributes TLV</name>
            <t>This TLV is applicable for LS Prefix Object-Types for both IPv4 and IPv6.
   Prefixes are learned from the IGP (IS-IS or OSPF) or BGP topology with a set
   of IGP attributes (such as metrics, route tags, etc.). This section describes the
   different attributes related to the IPv4/IPv6 prefixes.  Prefix
   Attributes TLVs SHOULD be encoded in the LS Prefix Object.</t>
            <artwork align="center" name="" 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=[TBD14]        |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//            Prefix Attributes Sub-TLVs (variable)            //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
            <t>All Prefix Attributes TLVs defined for BGP-LS can then be used with PCEP-LS as well. No new PCEP sub-TLVs for Prefix Attributes are defined in this document.</t>
          </section>
        </section>
        <section toc="default" numbered="true">
          <name>Removal of an Attribute</name>
          <t>One of the key objectives of PCEP-LS is to encode
      and carry only the impacted attributes of a Node, a Link, or a Prefix.
      To accommodate this requirement, in case of a removal of an attribute,
      the sub-TLV MUST be included with no 'value' field and length=0
      to indicate that the attribute is removed. On receiving a sub-TLV
      with zero length, the receiver removes the attribute from the database. An absence of a sub-TLV that was included earlier MUST be interpreted as no change.</t>
        </section>
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>Other Considerations</name>
      <section toc="default" numbered="true">
        <name>Inter-AS Links</name>
        <t>The main source of LS (and TE) information is the IGP, which is not active on
   inter-AS links.  In some cases, the IGP may have information of
   inter-AS links (<xref target="RFC5392" format="default"/>, <xref target="RFC9346" format="default"/>).  In other cases, an
   implementation SHOULD provide a means to inject inter-AS links into
   PCEP.  The exact mechanism used to provision the inter-AS links is
   outside the scope of this document.</t>
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>Security Considerations</name>
      <t>This document extends PCEP for LS (and TE) distribution including a new
      LSRpt message with a new object and TLVs. Procedures and protocol extensions
      defined in this document do not affect the overall PCEP security model.
      See <xref target="RFC5440" format="default"/>, <xref target="RFC8253" format="default"/>.
      Tampering with the LSRpt message
      may have an effect on path computations at PCE. It also provides adversaries
      an opportunity to eavesdrop and learn sensitive information and plan
      sophisticated attacks on the network infrastructure. The PCE implementation
      SHOULD provide mechanisms to prevent strains created by network flaps and
      amount of LS (and TE) information. Thus it is suggested
      that any mechanism used for securing the transmission of other PCEP
      message be applied here as well. As a general precaution, it is
      RECOMMENDED that these PCEP extensions only are activated on
      authenticated and encrypted sessions belonging to the same
      administrative authority.</t>
      <t>Further, as stated in <xref target="RFC6952" format="default"/>, PCEP implementations SHOULD support the
   TCP-AO <xref target="RFC5925" format="default"/> and not use TCP MD5 because of TCP MD5's known
   vulnerabilities and weaknesses. PCEP also support Transport Layer Security (TLS)
      <xref target="RFC8253" format="default"/> as per the recommendations and best current practices
      in <xref target="RFC9325" format="default"/>.</t>
    </section>
    <section toc="default" numbered="true">
      <name>Manageability Considerations</name>
      <t>All manageability requirements and considerations listed in <xref target="RFC5440" format="default"/>
   apply to PCEP protocol extensions defined in this document.  In
   addition, requirements, and considerations listed in this section
   apply.</t>
      <section toc="default" numbered="true">
        <name>Control of Function and Policy</name>
        <t>A PCE or PCC implementation MUST allow configuring the PCEP-LS
          capabilities as described in this document.</t>
        <t>A PCC implementation SHOULD allow configuration to suggest if
        remote information learned via routing protocols should be reported or not.</t>
        <t>An implementation SHOULD allow the operator to specify the maximum
   number of LS data to be reported.</t>
        <t>An implementation SHOULD also allow the operator to create abstracted
   topologies that are reported to the peers and create different
   abstractions for different peers.</t>
        <t>An implementation SHOULD allow the operator to configure a 64-bit
   identifier for Routing Universe TLV.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Information and Data Models</name>
        <t>An implementation SHOULD allow the operator to view the LS
   capabilities advertised by each peer.  To serve this purpose, the PCEP YANG module
   <xref target="I-D.ietf-pce-pcep-yang" format="default"/> can be extended to include advertised
   capabilities.</t>
        <t>An implementation SHOULD also provide the following statistics:
        </t>
        <ul spacing="normal">
          <li>Total number of LSRpt sent/received, as well as per neighbour </li>
          <li>Number of errors received for LSRpt, per neighbour </li>
          <li>Total number of locally originated Link-State Information</li>
        </ul>
        <t>These statistics should be recorded as absolute counts since the system
   or session start time.  An implementation MAY also enhance this
   information by recording peak per-second counts in each case.</t>
        <t>An operator SHOULD define an import policy to limit inbound LSRpt
   to "drop all LSRpt from a particular peer" as well as provide means to
   limit inbound LSRpts.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Liveness Detection and Monitoring</name>
        <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" format="default"/>".</t>
      </section>
      <section toc="default" numbered="true">
        <name>Verify Correct Operations</name>
        <t>
   Mechanisms defined in this document do not imply any new operation
   verification requirements in addition to those already listed in
   <xref target="RFC5440" format="default"/>.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Requirements On Other Protocols</name>
        <t>   Mechanisms defined in this document do not imply any new requirements
   on other protocols.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Impact On Network Operations</name>
        <t>Mechanisms defined in this document do not have any impact on the network
   operations in addition to those already listed in <xref target="RFC5440" format="default"/>.</t>
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>IANA Considerations</name>
      <t>   This document requests IANA actions to allocate code points for the
   protocol elements defined in this document.</t>
      <section numbered="true" toc="default">
        <name>PCEP Messages</name>
        <t>IANA created a registry for "PCEP Messages".  Each PCEP message has a
   message type value. This document defines a new PCEP message value.</t>
        <artwork name="" type="" align="center" alt=""><![CDATA[
Value     Meaning                          Reference
 TBD3     LSRpt                            [This I-D]
]]></artwork>
      </section>
      <section numbered="true" toc="default">
        <name>PCEP Objects</name>
        <t>This document defines the following new PCEP Object-classes and
Object-values:</t>
        <artwork name="" type="" align="center" alt=""><![CDATA[
Object-Class Value  Name                    Reference
     TBD6           LS Object               [This I-D]
                    Object-Type=1
                    (LS Node)
                    Object-Type=2
                    (LS Link)
                    Object-Type=3
                    (LS IPv4 Prefix)
                    Object-Type=4
                    (LS IPv6 Prefix)
]]></artwork>
      </section>
      <section numbered="true" toc="default">
        <name>LS Object</name>
        <t>This document requests that a new sub-registry, named "LS Object
   Protocol-ID Field", is created within the "Path Computation Element Protocol
   (PCEP) Numbers" registry to manage the Flag field of the LSP
   object. New values are to be assigned by "IETF Review" <xref target="RFC8126" format="default"/>.
        </t>
        <artwork name="" type="" align="center" alt=""><![CDATA[
Value       Meaning                        Reference
0           Reserved                       [This I-D]
1           IS-IS Level 1                  [This I-D]
2           IS-IS Level 2                  [This I-D]
3           OSPFv2                         [This I-D]
4           Direct                         [This I-D]
5           Static configuration           [This I-D]
6           OSPFv3                         [This I-D]
7           BGP                            [This I-D]
8           RSVP-TE                        [This I-D]
9           Segment Routing                [This I-D]
10          PCEP                           [This I-D]
11          Abstraction                    [This I-D]
12-255      Unassigned
]]></artwork>
        <t>Further, this document also requests that a new sub-registry, named "LS Object
   Flag Field", is created within the "Path Computation Element Protocol
   (PCEP) Numbers" registry to manage the Flag field of the LSP
   object. New values are to be assigned by "IETF Review" <xref target="RFC8126" format="default"/>.
   Each bit should be tracked with the following qualities:
</t>
        <ul spacing="normal">
          <li>Bit number (counting from bit 0 as the most significant bit)</li>
          <li>Capability description</li>
          <li>Defining RFC</li>
        </ul>
        <t>The following values are defined in this document:</t>
        <artwork name="" type="" align="center" alt=""><![CDATA[
Bit     Description           Reference
0-21    Unassigned
22      R (Remove bit)        [This I-D]
23      S (Sync bit)          [This I-D]
]]></artwork>
      </section>
      <section numbered="true" toc="default">
        <name>PCEP-Error Object</name>
        <t>IANA is requested to make the following allocation in the "PCEP-ERROR
   Object Error Types and Values" registry.</t>
        <artwork name="" type="" align="center" alt=""><![CDATA[
Error-Type Meaning                        Reference
6          Mandatory Object missing       [RFC5440]
           Error-Value=TBD4               [This I-D]
           (LS object missing)

19         Invalid Operation              [RFC8231]
           Error-Value=TBD1               [This I-D]
           (Attempted LS Report if LS
           remote capability was not
           advertised)

TBD2       LS Synchronization Error       [This I-D]
           Error-Value=1
           (An error in processing the
           LSRpt)
           Error-Value=2
           (An internal PCC error)


]]></artwork>
      </section>
      <section numbered="true" toc="default">
        <name>PCEP TLV Type Indicators</name>
        <t>IANA is requested to make the following allocation in the "PCEP TLV Type Indicators" registry.</t>
        <artwork name="" type="" align="center" alt=""><![CDATA[
Value     Meaning                        Reference
 TBD5     LS-CAPABILITY TLV              [This I-D]
 TBD7     ROUTING-UNIVERSE TLV           [This I-D]
 TBD15    ROUTE-DISTINGUISHER TLV        [This I-D]
 TBD8     Local Node Descriptors TLV     [This I-D]
 TBD9     Remote Node Descriptors TLV    [This I-D]
 TBD10    Link Descriptors TLV           [This I-D]
 TBD11    Prefix Descriptors TLV         [This I-D]
 TBD12    Node Attributes TLV            [This I-D]
 TBD13    Link Attributes TLV            [This I-D]
 TBD14    Prefix Attributes TLV          [This I-D]

]]></artwork>
      </section>
      <section anchor="subtlv" numbered="true" toc="default">
        <name>PCEP-LS Sub-TLV Type Indicators</name>
        <t>This document specifies the PCEP-LS Sub-TLVs.  IANA
   is requested to create a "PCEP-LS Sub-TLV Types"
   sub-registry for the sub-TLVs
   carried in the PCEP-LS TLV (Local and Remote Node Descriptors TLV,
   Link Descriptors TLV, Prefix Descriptors TLV, Node Attributes TLV,
   Link Attributes TLV and Prefix Attributes TLV.  </t>
        <t>Allocations from this registry are to be made according to the following assignment policies <xref target="RFC8126" format="default"/>:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[

Range          | Assignment policy
---------------+---------------------------------------------------
0              | Reserved - must not be allocated.
               |
1 .. 251       | Specification Required
               |
252 .. 255     | Experimental Use
               |
256 ..   65535 | Reserved - must not be allocated.
               | Usage mirrors the BGP-LS TLV registry
               | [I-D.ietf-idr-rfc7752bis]
               |

     ]]></artwork>
        <t>IANA is requested to pre-populate this registry with values defined in this
      document as follows, taking the new values from the range 1 to 251:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[

 Value | Meaning
-------+------------------------
 24    | SPEAKER-ENTITY-ID

     ]]></artwork>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>TLV Code Points Summary</name>
      <t>This section contains the global table of all TLVs in the LS object, defined
   in this document.</t>
      <figure>
        <name>TLV Table</name>
        <artwork name="" type="" align="center" alt=""><![CDATA[
+-----------+---------------------+---------------+-----------------+
|    TLV    | Description         |     Ref TLV   | Value defined   |
|           |                     |               | in:             |
+-----------+---------------------+---------------+-----------------+
|    TBD7   | Routing Universe    |      --       | Sec 9.2.1       |
|    TBD15  | Route               |      --       | Sec 9.2.2       |
|           | Distinguisher       |               |                 |
|     *     | Virtual Network     |      --       | [ietf-pce-      |
|           |                     |               | vn-association] |
|    TBD8   | Local Node          |      256      | [I-D.ietf-idr-  |
|           |                     |               | rfc7752bis]     |
|           | Descriptors         |               | /3.2.1.2        |
|    TBD9   | Remote Node         |      257      | [I-D.ietf-idr-  |
|           |                     |               | rfc7752bis]     |
|           | Descriptors         |               | /3.2.1.3        |
|    TBD10  | Link Descriptors    |      --       | Sec 9.2.8       |
|    TBD11  | Prefix Descriptors  |      --       | Sec 9.2.9       |
|    TBD12  | Node Attributes     |      --       | Sec 9.2.10.1    |
|    TBD13  | Link Attributes     |      --       | Sec 9.2.10.2    |
|    TBD14  | Prefix Attributes   |      --       | Sec 9.2.10.3    |
+-----------+---------------------+---------------+-----------------+

* this TLV is defined in a different PCEP document
]]></artwork>
      </figure>
      <!--<t>Refer <xref target="subtlv"/> for the table of Sub-TLVs.</t>-->

    </section>
    <section numbered="true" toc="default">
      <name>Implementation Status</name>
      <t>[Note to RFC Editor: Please remove this section.]</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
     RFC 7942.  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 RFC 7942, "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 have made the implemented
     protocols more mature.  It is up to the individual working groups
     to use this information as they see fit".</t>

      <t>The PCEP-LS protocol extensions as described in this I-D
   were implemented and tested for a variety of applications. Apart from the below implementation, there exist other experimental implementations done for optical networks.</t>
      <section numbered="true" toc="default">
        <name>Hierarchical Transport PCE controllers</name>
        <t>The PCEP-LS has been implemented as part of the IETF97 Hackathon and Bits-N-Bites demonstration. The use-case demonstrated was the DCI use-case of ACTN architecture in which to show the following scenarios:
        </t>
        <ul empty="true" spacing="normal">
          <li>- connectivity services on the ACTN-based recursive hierarchical SDN/PCE platform that has the three-tier level SDN controllers (two-tier level MDSC and PNC) on the top of the PTN systems managed by EMS. </li>
          <li>- Integration test of two tier-level MDSC: The SBI of the low-level MDSC is the YANG-based Korean national standards and one of the high-level MDSC is the PCEP-LS based ACTN protocols.</li>
          <li>- Performance test of three types of SDN controller based recovery schemes including protection, reactive, and proactive restoration. PCEP-LS protocol was used to demonstrate a quick report of failed network components. </li>
        </ul>
      </section>
      <section numbered="true" toc="default">
        <name>ONOS-based Controller (MDSC and PNC)</name>
        <t>Huawei (PNC, MDSC) and SKT (MDSC) implemented PCEP-LS during the Hackathon and IETF97 Bits-N-Bites demonstration. The demonstration was ONOS-based ACTN architecture in which to show the following
   capabilities:
        </t>
        <ul empty="true" spacing="normal">
          <li>Both packet PNC and optical PNC (with optical PCEP-LS extensions) implemented PCEP-LS on its SBI as well as its NBI (towards MDSC).</li>
          <li>SKT orchestrator (acting as MDSC) also supported PCEP-LS (as well as RestConf) towards packet and optical PNCs on its SBI.</li>
        </ul>
        <t>Further description can be found at <eref target="https://wiki.onosproject.org/display/ONOS/PCEP+Protocol">ONOS-PCEP</eref>
     and the code at <eref target="https://github.com/opennetworkinglab/onos/tree/master/protocols/pcep">ONOS-PCEP-GITHUB</eref>.</t>
     <!--<t>Further description can be found at <eref target="ONOS-PCEP"/>
     and the code at <eref target="ONOS-PCEP-GITHUB"/>.</t>-->
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>Acknowledgments</name>
      <t>This document borrows some of the structure and text from the
      <xref target="I-D.ietf-idr-rfc7752bis" format="default"/>.
      </t>
      <t>Thanks to Eric Wu, Venugopal Kondreddy, Mahendra Singh Negi,
      Avantika, Zhengbin Li, Daniel King, and Adrian Farrel for the reviews.</t>
      <t>Thanks to Ramon Casellas for his comments and suggestions based on his implementation experience.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5305.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5307.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6119.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-idr-rfc7752bis.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8232.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3630.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4203.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4364.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml"/>
        <!--<?rfc include="reference.RFC.5120.xml" ?>-->

      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9346.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5392.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6549.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6805.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6952.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9325.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8202.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8253.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8283.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8453.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8637.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9168.xml"/>
                <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9358.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-pcep-yang.xml"/>
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-teas-actn-requirements.xml"/>

        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-kondreddy-pce-pcep-ls-sync-optimizations.xml"/>
        <!--<?rfc include="reference.I-D.leedhody-teas-pcep-ls"?>-->

      <!--<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-pce-vn-association.xml"/>
        <reference anchor="ONOS-PCEP" target="https://wiki.onosproject.org/display/ONOS/PCEP+Protocol">
  <front>
    <title>Support for PCEP in ONOS</title>
    <author/>
    <date/>
  </front>
</reference>
<reference anchor="ONOS-PCEP-GITHUB" target="https://github.com/opennetworkinglab/onos/tree/master/protocols/pcep">
  <front>
    <title>Github for PCEP code in ONOS</title>
    <author/>
    <date/>
  </front>
</reference>-->


    </references>
    </references>
    <section toc="default" numbered="true">
      <name>Examples</name>
      <t>These examples are for illustration purposes only to show how the new
   PCEP-LS message could be encoded.  They are not meant to be an exhaustive
   list of all possible use cases and combinations.</t>
      <section toc="default" anchor="sec_all" numbered="true">
        <name>All Nodes</name>
        <t>Each node (PCC) in the network chooses to provide its own local node
   and link information, and in this way PCE can build the full link-state and
   TE information.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
+--------------------+                    +--------------------+
|                    |                    |                    |
|     RTA            |192.0.2.0/24        |     RTB            |
|     11.11.11.11    |--------------------|     33.33.33.34    |
|     Area 0         |       192.0.2.0/24 |     Area 0         |
|                    |                    |                    |
+--------------------+                    +--------------------+
RTA
---
LS Node
   TLV - Local Node Descriptors
       Sub-TLV - 514: OSPF Area-ID: 0.0.0.0
       Sub-TLV - 515: IGP Router-ID: 11.11.11.11
   TLV - Node Attributes TLV
       Sub-TLV(s)


LS Link
   TLV - Local Node Descriptors
       Sub-TLV - 514: OSPF Area-ID: 0.0.0.0
       Sub-TLV - 515: IGP Router-ID: 11.11.11.11
   TLV - Remote Node Descriptors
       Sub-TLV - 514: OSPF Area-ID: 0.0.0.0
       Sub-TLV - 515: IGP Router-ID: 22.22.22.22
   TLV - Link Descriptors
       Sub-TLV - 259: IPv4 interface:  192.0.2.1
       Sub-TLV - 260: IPv4 neighbor:  192.0.2.2
   TLV - Link Attributes TLV
       Sub-TLV(s)

RTB
---
LS Node
   TLV - Local Node Descriptors
       Sub-TLV - 514: OSPF Area-ID: 0.0.0.0
       Sub-TLV - 515: IGP Router-ID: 22.22.22.22
   TLV - Node Attributes TLV
       Sub-TLV(s)

LS Link
   TLV - Local Node Descriptors
       Sub-TLV - 514: OSPF Area-ID: 0.0.0.0
       Sub-TLV - 515: IGP Router-ID: 22.22.22.22
   TLV - Remote Node Descriptors
       Sub-TLV - 514: OSPF Area-ID: 0.0.0.0
       Sub-TLV - 515: IGP Router-ID: 11.11.11.11
   TLV - Link Descriptors
       Sub-TLV - 259: IPv4 interface: 192.0.2.2
       Sub-TLV - 260: IPv4 neighbor: 192.0.2.1
   TLV - Link Attributes TLV
       Sub-TLV(s)
]]></artwork>
<t>A similar example with IPv6 address (say 2001:db8::1 and 2001:db8::2) for the links could be imagined with all other information as same and just IPv6 interface and neighbour TLVs.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Designated Node</name>
        <t>A designated node(s) in the network will provide its own local node as well as
   all learned remote information, and in this way, PCE can build the full link-state and
   TE information.</t>
        <t>As described in <xref target="sec_all" format="default"/>, the same LS Node and Link objects will be
   generated with a difference that it would be a designated router say RTA that generates all
   this information.</t>
      </section>
      <section toc="default" numbered="true">
        <name>Between PCEs</name>
        <t>As per Hierarchical-PCE <xref target="RFC6805" format="default"/>, Parent PCE
        builds an abstract domain topology map with each domain as an abstract node
        and inter-domain links as an abstract link. Each Child PCE may provide
        this information to the Parent PCE. Considering the example in
        figure 1 of <xref target="RFC6805" format="default"/>, following LS object
        will be generated:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
PCE1
----
LS Node
   TLV - Local Node Descriptors
       Sub-TLV - 512: Autonomous System: 100 (Domain 1)
       Sub-TLV - 515: IGP Router-ID: 11.11.11.11 (abstract)

LS Link
   TLV - Local Node Descriptors
       Sub-TLV - 512: Autonomous System: 100
       Sub-TLV - 515: IGP Router-ID: 11.11.11.11 (abstract)
   TLV - Remote Node Descriptors
       Sub-TLV - 512: Autonomous System: 200 (Domain 2)
       Sub-TLV - 515: IGP Router-ID: 22.22.22.22 (abstract)
   TLV - Link Descriptors
       Sub-TLV - 259: IPv4 interface:  192.0.2.1
       Sub-TLV - 260: IPv4 neighbor:  192.0.2.2
   TLV - Link Attributes TLV
       Sub-TLV(s)

LS Link
   TLV - Local Node Descriptors
       Sub-TLV - 512: Autonomous System: 100
       Sub-TLV - 515: IGP Router-ID: 11.11.11.11 (abstract)
   TLV - Remote Node Descriptors
       Sub-TLV - 512: Autonomous System: 200
       Sub-TLV - 515: IGP Router-ID: 22.22.22.22 (abstract)
   TLV - Link Descriptors
       Sub-TLV - 259: IPv4 interface: 198.51.100.1
       Sub-TLV - 260: IPv4 neighbor: 198.51.100.2
   TLV - Link Attributes TLV
       Sub-TLV(s)

LS Link
   TLV - Local Node Descriptors
       Sub-TLV - 512: Autonomous System: 100
       Sub-TLV - 515: IGP Router-ID: 11.11.11.11 (abstract)
   TLV - Remote Node Descriptors
       Sub-TLV - 512: Autonomous System: 400 (Domain 4)
       Sub-TLV - 515: IGP Router-ID: 44.44.44.44 (abstract)
   TLV - Link Descriptors
       Sub-TLV - 259: IPv4 interface: 203.0.113.1
       Sub-TLV - 260: IPv4 neighbor: 203.0.113.2
   TLV - Link Attributes TLV
       Sub-TLV(s)

* similar information will be generated by other PCE
  to help form the abstract domain topology.
]]></artwork>
        <t>Further the exact border nodes and the abstract internal path between
the border nodes may also be transported to the Parent PCE to enable
ACTN as described in <xref target="RFC8637" format="default"/>
using the similar LS node and link objects encodings.</t>
      </section>
    </section>
    <section toc="default" numbered="true">
      <name>Contributor Addresses</name>
      <artwork name="" type="" align="left" alt=""><![CDATA[
Gyan Mishra
Verizon Inc.

Email: gyan.s.mishra@verizon.com

Siva Sivabalan
Ciena Corporation

Email: ssivabal@ciena.com

Udayasree Palle

EMail: udayasreereddy@gmail.com

Sergio Belotti
Nokia

EMail: sergio.belotti@nokia.com

Satish Karunanithi
India

Email: satish.karunanithi@gmail.com

Cheng Li
Huawei Technologies
Huawei Campus, No. 156 Beiqing Rd.
Beijing  100095
China

Email: c.l@huawei.com


]]></artwork>
    </section>
  </back>
</rfc>
