<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2.7.0) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-teas-rfc8776-update-12" category="std" consensus="true" submissionType="IETF" obsoletes="8776" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="TE Common YANG Types">Common YANG Data Types for Traffic Engineering</title>

    <author initials="I." surname="Busi" fullname="Italo Busi">
      <organization>Huawei</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    <author initials="A." surname="Guo" fullname="Aihua Guo">
      <organization>Futurewei Technologies</organization>
      <address>
        <email>aihuaguo.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="X." surname="Liu" fullname="Xufeng Liu">
      <organization>Alef Edge</organization>
      <address>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Cisco Systems Inc.</organization>
      <address>
        <email>tsaad.net@gmail.com</email>
      </address>
    </author>
    <author initials="I." surname="Bryskin" fullname="Igor Bryskin">
      <organization>Individual</organization>
      <address>
        <email>i_bryskin@yahoo.com</email>
      </address>
    </author>

    <date year="2024" month="July" day="25"/>

    
    <workgroup>TEAS Working Group</workgroup>
    

    <abstract>


<t>This document defines a collection of common data types, identities, and groupings in YANG data modeling language. These derived common data types, identities and groupings are intended to be imported by other modules, e.g., those which model the Traffic Engineering (TE) configuration and state capabilities.</t>

<t>This document obsoletes RFC 8776.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>YANG <xref target="RFC6020"/> <xref target="RFC7950"/> is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols such as the Network Configuration Protocol (NETCONF) <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. The YANG language supports a small set of built-in data types and provides mechanisms to derive other types from the built-in types.</t>

<t>This document introduces a collection of common data types derived from the built-in YANG data types. The derived data types, identities, and groupings are mainly designed to be the common definitions applicable for modeling Traffic Engineering (TE) features in model(s) defined outside of this document. Nevertheless, these common definitions can be used by any other module per the guidance in <xref section="4.12" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>.</t>

<t>This document adds new common data types, identities, and groupings to both the "ietf-te-types" and the "ietf-te-packet-types" YANG models and obsoletes <xref target="RFC8776"/>. For further details, refer to <xref target="changes-bis"/>.</t>

<section anchor="terminology"><name>Terminology</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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<t>The terminology for describing YANG data models is found in
   <xref target="RFC7950"/>.</t>

<ul empty="true"><li>
  <t>RFC Editor: The document uses "CHANGE NOTE" to ease identifying the changes vs. RFC8776. Please remove these notes.</t>
</li></ul>

</section>
<section anchor="prefixes-in-data-node-names"><name>Prefixes in Data Node Names</name>

<t>Names of data nodes and other data model objects
  are prefixed using the standard prefix associated with the
  corresponding YANG imported modules, as shown in <xref target="tab-prefixes"/>.</t>

<texttable title="Prefixes and corresponding YANG modules" anchor="tab-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>yang</c>
      <c>ietf-yang-types</c>
      <c><xref section="3" sectionFormat="of" target="RFC6991"/></c>
      <c>inet</c>
      <c>ietf-inet-types</c>
      <c><xref section="4" sectionFormat="of" target="RFC6991"/></c>
      <c>rt-types</c>
      <c>ietf-routing-types</c>
      <c><xref target="RFC8294"/></c>
      <c>te-types</c>
      <c>ietf-te-types</c>
      <c>RFCXXXX</c>
      <c>te-packet-types</c>
      <c>ietf-te-packet-types</c>
      <c>RFCXXXX</c>
</texttable>

<ul empty="true"><li>
  <t>RFC Editor: Please replace XXXX through this document with the RFC number assigned to this document. Please remove this note.</t>
</li></ul>

</section>
</section>
<section anchor="acronyms-and-abbreviations"><name>Acronyms and Abbreviations</name>

<dl>
  <dt>GMPLS:</dt>
  <dd>
    <t>Generalized Multiprotocol Label Switching</t>
  </dd>
  <dt>LSP:</dt>
  <dd>
    <t>Label Switched Path</t>
  </dd>
  <dt>LSR:</dt>
  <dd>
    <t>Label Switching Router</t>
  </dd>
  <dt>LER:</dt>
  <dd>
    <t>Label Edge Router</t>
  </dd>
  <dt>MPLS:</dt>
  <dd>
    <t>Multiprotocol Label Switching</t>
  </dd>
  <dt>RSVP:</dt>
  <dd>
    <t>Resource Reservation Protocol</t>
  </dd>
  <dt>TE:</dt>
  <dd>
    <t>Traffic Engineering</t>
  </dd>
  <dt>DS-TE:</dt>
  <dd>
    <t>Differentiated Services Traffic Engineering</t>
  </dd>
  <dt>SRLG:</dt>
  <dd>
    <t>Shared Risk Link Group</t>
  </dd>
  <dt>NBMA:</dt>
  <dd>
    <t>Non-Broadcast Multi-Access</t>
  </dd>
  <dt>APS:</dt>
  <dd>
    <t>Automatic Protection Switching</t>
  </dd>
  <dt>SD:</dt>
  <dd>
    <t>Signal Degrade</t>
  </dd>
  <dt>SF:</dt>
  <dd>
    <t>Signal Fail</t>
  </dd>
  <dt>WTR:</dt>
  <dd>
    <t>Wait-to-Restore</t>
  </dd>
  <dt>PM:</dt>
  <dd>
    <t>Performance Metrics</t>
  </dd>
</dl>

</section>
<section anchor="overview"><name>Overview</name>

<t>This document defines two YANG modules for common TE types: "ietf-te-types" for TE generic types and "ietf-te-packet-types" for packet-specific types. Other technology-specific TE types are outside the scope of this document.</t>

<section anchor="te-types-module-contents"><name>TE Types Module Contents</name>

<t>The "ietf-te-types" module (<xref target="te-yang-code"/>) contains common TE types that are independent and agnostic of any specific technology or control-plane instance.</t>

<t>The "ietf-te-types" module contains the following YANG reusable groupings:</t>

<dl>
  <dt>te-bandwidth:</dt>
  <dd>
    <t>A YANG grouping that defines the generic TE bandwidth. The modeling structure allows augmentation for each technology. For unspecified technologies, the string-encoded "te-bandwidth" type is used.</t>
  </dd>
  <dt>te-label:</dt>
  <dd>
    <t>A YANG grouping that defines the generic TE label. The modeling structure allows augmentation for each technology. For unspecified technologies, "rt-types:generalized-label" is used.</t>
  </dd>
  <dt>performance-metrics-attributes:</dt>
  <dd>
    <t>A YANG grouping that defines one-way and two-way measured Performance Metrics (PM) and indications of anomalies on link(s) or the path as defined in <xref target="RFC7471"/>, <xref target="RFC8570"/>, and <xref target="RFC7823"/>.</t>
  </dd>
  <dt>performance-metrics-throttle-container:</dt>
  <dd>
    <t>A YANG grouping that defines configurable thresholds for advertisement suppression and measurement intervals.</t>
  </dd>
</dl>

<t>The "ietf-te-types" module contains the following YANG reusable data types:</t>

<dl>
  <dt>te-ds-class:</dt>
  <dd>
    <t>A type representing the Differentiated Services (DS) Class-Type of traffic as defined in <xref target="RFC4124"/>.</t>
  </dd>
  <dt>te-label-direction:</dt>
  <dd>
    <t>An enumerated type for specifying the forward or reverse direction of a label.</t>
  </dd>
  <dt>te-hop-type:</dt>
  <dd>
    <t>An enumerated type for specifying that a hop is loose or strict.</t>
  </dd>
  <dt>te-global-id:</dt>
  <dd>
    <t>A type representing the identifier that uniquely identifies an operator, which can be either a provider or a client. The definition of this type is taken from <xref section="3" sectionFormat="of" target="RFC6370"/> and <xref section="3" sectionFormat="of" target="RFC5003"/>. This attribute type is used solely to provide a globally unique context for TE topologies.</t>
  </dd>
  <dt>te-node-id:</dt>
  <dd>
    <t>A type representing the identifier for a node in a TE topology. The identifier is represented either as 4 octets in dotted-quad notation or as 16 octets in full, mixed, shortened, or shortened-mixed IPv6 address notation.</t>
  </dd>
  <dt/>
  <dd>
    <t>This attribute MAY be mapped to the Router Address TLV described in <xref section="2.4.1" sectionFormat="of" target="RFC3630"/>, the TE Router ID described in <xref section="6.2" sectionFormat="of" target="RFC6827"/>, the Traffic Engineering Router ID TLV described in <xref section="4.3" sectionFormat="of" target="RFC5305"/>, or the TE Router ID TLV described in <xref section="3.2.1" sectionFormat="of" target="RFC6119"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>The reachability of such a TE node MAY be achieved by a mechanism such as that described in <xref section="6.2" sectionFormat="of" target="RFC6827"/>.</t>
  </dd>
  <dt>te-topology-id:</dt>
  <dd>
    <t>A type representing the identifier for a topology. It is optional to have one or more prefixes at the beginning, separated by colons. The prefixes can be "network-types" as defined in the "ietf-network" module in <xref target="RFC8345"/>, to help the user better understand the topology before further inquiry is made.</t>
  </dd>
  <dt>te-tp-id:</dt>
  <dd>
    <t>A type representing the identifier of a TE interface Link Termination Point (LTP) on a specific TE node where the TE link connects. This attribute is mapped to a local or remote link identifier <xref target="RFC3630"/> <xref target="RFC5305"/>.</t>
  </dd>
  <dt>te-path-disjointness:</dt>
  <dd>
    <t>A type representing the different resource disjointness options for a TE tunnel path as defined in <xref target="RFC4872"/>.</t>
  </dd>
  <dt>admin-groups:</dt>
  <dd>
    <t>A union type for a TE link's classic or extended administrative groups as defined in <xref target="RFC3630"/>, <xref target="RFC5305"/>, and <xref target="RFC7308"/>.</t>
  </dd>
  <dt>srlg:</dt>
  <dd>
    <t>A type representing the Shared Risk Link Group (SRLG) as defined in <xref target="RFC4203"/> and <xref target="RFC5307"/>.</t>
  </dd>
  <dt>te-metric:</dt>
  <dd>
    <t>A type representing the TE metric as defined in <xref target="RFC3785"/>.</t>
  </dd>
  <dt>te-recovery-status:</dt>
  <dd>
    <t>An enumerated type for the different statuses of a recovery action as defined in <xref target="RFC4427"/> and <xref target="RFC6378"/>.</t>
  </dd>
</dl>

<t>The "ietf-te-types" module contains the following YANG reusable identities:</t>

<dl>
  <dt>path-attribute-flags:</dt>
  <dd>
    <t>A base YANG identity for supported LSP path flags as defined in <xref target="RFC3209"/>, <xref target="RFC4090"/>, <xref target="RFC4736"/>, <xref target="RFC5712"/>, <xref target="RFC4920"/>, <xref target="RFC5420"/>, <xref target="RFC7570"/>, <xref target="RFC4875"/>, <xref target="RFC5151"/>, <xref target="RFC5150"/>, <xref target="RFC6001"/>, <xref target="RFC6790"/>, <xref target="RFC7260"/>, <xref target="RFC8001"/>, <xref target="RFC8149"/>, and <xref target="RFC8169"/>.</t>
  </dd>
  <dt>link-protection-type:</dt>
  <dd>
    <t>A base YANG identity for supported link protection types as defined in <xref target="RFC4872"/> and <xref target="RFC4427"/>.</t>
  </dd>
  <dt>restoration-scheme-type:</dt>
  <dd>
    <t>A base YANG identity for supported LSP restoration schemes as defined in <xref target="RFC4872"/>.</t>
  </dd>
  <dt>protection-external-commands:</dt>
  <dd>
    <t>A base YANG identity for supported protection-related external commands used for troubleshooting purposes, as defined in <xref target="RFC4427"/> and <xref target="ITU_G.808.1"/>.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>CHANGE NOTE: The description and reference of the identity action-exercise, which applies only to APS and it is not defined in RFC4427, has been updated to reference ITU-T G.808.1.</t>
</li></ul>

<dl>
  <dt>association-type:</dt>
  <dd>
    <t>A base YANG identity for supported LSP association types as defined in <xref target="RFC6780"/>, <xref target="RFC4872"/>, <xref target="RFC4873"/>, and <xref target="RFC8800"/>.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>CHANGE NOTE: The association-type-diversity identity, defined in <xref target="RFC8800"/> has been added to the association-type base identity.</t>
</li></ul>

<dl>
  <dt>objective-function-type:</dt>
  <dd>
    <t>A base YANG identity for supported path objective functions as defined in <xref target="RFC5541"/>.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>CHANGE NOTE: The objective-function-type identity has been redefined to be used only for path objective functions and a new svec-objective-function-type identity has been added for the Synchronization VECtor (SVEC) objective functions. Therefore the of-minimize-agg-bandwidth-consumption, of-minimize-load-most-loaded-link and of-minimize-cost-path-set identities, defined in <xref target="RFC5541"/> and derived from the objective-function-type identity, have been obsoleted because not applicable to paths but to Synchronization VECtor (SVEC) objects.</t>
</li></ul>

<dl>
  <dt>te-tunnel-type:</dt>
  <dd>
    <t>A base YANG identity for supported TE tunnel types as defined in <xref target="RFC3209"/> and <xref target="RFC4875"/>.</t>
  </dd>
  <dt>lsp-encoding-types:</dt>
  <dd>
    <t>A base YANG identity for supported LSP encoding types as defined in <xref target="RFC3471"/>.</t>
  </dd>
  <dt>lsp-protection-type:</dt>
  <dd>
    <t>A base YANG identity for supported LSP protection types as defined in <xref target="RFC4872"/> and <xref target="RFC4873"/>.</t>
  </dd>
  <dt>switching-capabilities:</dt>
  <dd>
    <t>A base YANG identity for supported interface switching capabilities as defined in <xref target="RFC3471"/>.</t>
  </dd>
  <dt>resource-affinities-type:</dt>
  <dd>
    <t>A base YANG identity for supported attribute filters associated with a tunnel that must be satisfied for a link to be acceptable as defined in <xref target="RFC2702"/> and <xref target="RFC3209"/>.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>CHANGE NOTE: The description of the path-metric-type has been updated</t>
</li></ul>

<dl>
  <dt>path-metric-type:</dt>
  <dd>
    <t>A base YANG identity for supported path metric types as defined in <xref target="RFC3630"/> <xref target="RFC3785"/>, <xref target="RFC5440"/>, <xref target="RFC7471"/>, <xref target="RFC8233"/>, <xref target="RFC8570"/> and <xref target="I-D.ietf-pce-sid-algo"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>The unit of the path metric value is interpreted in the context of the path metric type. The derived identities SHOULD describe the unit and maximum value of the path metric types they define.</t>
  </dd>
  <dt/>
  <dd>
    <t>For example, the bound of the 'path-metric-loss', defined in 'ietf-te-packet-types', is defined in multiples of the basic unit 0.000003% as described in <xref target="RFC7471"/> and <xref target="RFC8570"/>.</t>
  </dd>
  <dt>explicit-route-hop:</dt>
  <dd>
    <t>A YANG grouping that defines supported explicit routes as defined in <xref target="RFC3209"/> and <xref target="RFC3477"/>.</t>
  </dd>
  <dt>te-link-access-type:</dt>
  <dd>
    <t>An enumerated type for the different TE link access types as defined in <xref target="RFC3630"/>.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>CHANGE NOTE: The module "ietf-te-types" has been updated to add the following YANG identities, types and groupings.</t>
</li></ul>

<dl>
  <dt>lsp-provisioning-error-reason:</dt>
  <dd>
    <t>A base YANG identity for reporting LSP provisioning error reasons. No standard LPS provisioning error reasons are defined in this document.</t>
  </dd>
  <dt>path-computation-error-reason:</dt>
  <dd>
    <t>A base YANG identity for reporting path computation error reasons as defined in <xref target="pc-error"/>.</t>
  </dd>
  <dt>protocol-origin-type:</dt>
  <dd>
    <t>A base YANG identity for the type of protocol origin as defined in <xref target="protocol-origin"/>.</t>
  </dd>
  <dt>svec-objective-function-type:</dt>
  <dd>
    <t>A base YANG identity for supported SVEC objective functions as defined in <xref target="RFC5541"/> and <xref target="RFC8685"/>.</t>
  </dd>
  <dt>svec-metric-type:</dt>
  <dd>
    <t>A base YANG identity for supported SVEC objective functions as defined in <xref target="RFC5541"/>.</t>
  </dd>
  <dt>encoding-and-switching-type:</dt>
  <dd>
    <t>This is a common grouping to define the LSP encoding and switching types.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>CHANGE NOTE: The tunnel-admin-state-auto YANG identity, derived from the tunnel-admin-status-type base YANG identity has also been added. No description is provided, since no description for the tunnel-admin-status-type base YANG identity has been provided in RFC8776.</t>
</li></ul>

<ul empty="true"><li>
  <t>CHANGE NOTE: The lsp-restoration-restore-none YANG identity, derived from the lsp-restoration-type base YANG identity has also been added. No description is provided, since no description for the lsp-restoration-type base YANG identity has been provided in RFC8776.</t>
</li></ul>

<section anchor="pc-error"><name>Path Computation Errors</name>

<t>The "ietf-te-types" module contains the YANG reusable identities for reporting path computation error reasons as defined in <xref target="RFC5440"/>, <xref target="RFC5441"/>, <xref target="RFC5520"/>, <xref target="RFC5557"/>, <xref target="RFC8306"/>, and <xref target="RFC8685"/>.</t>

<t>It also defines the following additional YANG reusable identities for reporting also the following path computation error reasons:</t>

<dl>
  <dt>path-computation-error-no-topology:</dt>
  <dd>
    <t>A YANG identity for reporting path computation error when there is no topology with the provided topology identifier.</t>
  </dd>
</dl>

</section>
<section anchor="protocol-origin"><name>Protocol Origin</name>

<t>The "ietf-te-types" module contains the YANG reusable identities for the type of protocol origin as defined in <xref target="RFC5440"/> and <xref target="RFC9012"/>.</t>

<t>It also defines the following additional YANG reusable identities for the type of protocol origin:</t>

<dl>
  <dt>protocol-origin-api:</dt>
  <dd>
    <t>A YANG identity to be used when  the type of protocol origin is an Application Programmable Interface (API).</t>
  </dd>
</dl>

</section>
</section>
<section anchor="packet-te-types-module-contents"><name>Packet TE Types Module Contents</name>

<t>The "ietf-te-packet-types" module (<xref target="pkt-yang-code"/>) covers the common types and groupings that are specific to packet technology.</t>

<t>The "ietf-te-packet-types" module contains the following YANG reusable types and groupings:</t>

<dl>
  <dt>backup-protection-type:</dt>
  <dd>
    <t>A base YANG identity for supported protection types that a backup or bypass tunnel can provide as defined in <xref target="RFC4090"/>.</t>
  </dd>
  <dt>te-class-type:</dt>
  <dd>
    <t>A type that represents the Diffserv-TE Class-Type as defined in <xref target="RFC4124"/>.</t>
  </dd>
  <dt>bc-type:</dt>
  <dd>
    <t>A type that represents Diffserv-TE Bandwidth Constraints (BCs) as defined in <xref target="RFC4124"/>.</t>
  </dd>
  <dt>bc-model-type:</dt>
  <dd>
    <t>A base YANG identity for supported Diffserv-TE Bandwidth Constraints Models as defined in <xref target="RFC4125"/>, <xref target="RFC4126"/>, and <xref target="RFC4127"/>.</t>
  </dd>
  <dt>te-bandwidth-requested-type:</dt>
  <dd>
    <t>An enumerated type for the different options to request bandwidth for a specific tunnel.</t>
  </dd>
  <dt>performance-metrics-attributes-packet:</dt>
  <dd>
    <t>A YANG grouping that contains the generic performance metrics and additional packet-specific metrics.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>CHANGE NOTE: The module "ietf-te-packet-types" has been updated to add the following YANG identities and groupings.</t>
</li></ul>

<dl>
  <dt>bandwidth-profile-type:</dt>
  <dd>
    <t>A base YANG identity for various bandwidth profiles specified in <xref target="MEF_10.3"/>, <xref target="RFC2697"/>, <xref target="RFC2698"/> and <xref target="RFC4115"/> that may be used to limit bandwidth utilization of packet flows (e.g., MPLS-TE LSPs).</t>
  </dd>
  <dt>te-packet-path-bandwidth:</dt>
  <dd>
    <t>A YANG grouping that defines the path bandwidth information and could be used in any Packet TE model (e.g., MPLS-TE topology model) for the path bandwidth representation (e.g., the bandwidth of an MPLS-TE LSP).</t>
  </dd>
  <dt/>
  <dd>
    <t>All the path and LSP bandwidth related sections in the "ietf-te-types" generic module, <xref target="te-yang-code"/>, need to be augmented with this grouping for the usage of Packet TE technologies.</t>
  </dd>
  <dt/>
  <dd>
    <t>The Packet TE path bandwidth can be represented by a bandwidth profile.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>NOTE: Other formats for the MPLS-TE path bandwidth are defined in <xref target="I-D.ietf-teas-yang-te-mpls"/> and they could be added in a future update of this document.</t>
</li></ul>

<dl>
  <dt>te-packet-link-bandwidth:</dt>
  <dd>
    <t>A YANG grouping that defines the link bandwidth information and could be used in any Packet TE model (e.g., MPLS-TE topology) for link bandwidth representation.</t>
  </dd>
  <dt/>
  <dd>
    <t>All the link bandwidth related sections in the "ietf-te-types" generic module, <xref target="te-yang-code"/>, need to be augmented with this grouping for the usage of Packet TE technologies.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="te-yang-code"><name>TE Types YANG Module</name>

<t>The "ietf-te-types" module imports from the following modules:</t>

<t><list style="symbols">
  <t>"ietf-yang-types" and "ietf-inet-types" as defined in <xref target="RFC6991"/></t>
  <t>"ietf-routing-types" as defined in <xref target="RFC8294"/></t>
</list></t>

<t>In addition to <xref target="RFC6991"/> and <xref target="RFC8294"/>, this module references the following documents in defining the types and YANG groupings:
<xref target="RFC9522"/>, <xref target="RFC4090"/>, <xref target="RFC4202"/>, <xref target="RFC4328"/>, <xref target="RFC4561"/>, <xref target="RFC4657"/>, <xref target="RFC4736"/>, <xref target="RFC6004"/>, <xref target="RFC6511"/>, <xref target="RFC7139"/>, <xref target="RFC7308"/>, <xref target="RFC7551"/>, <xref target="RFC7571"/>, <xref target="RFC7579"/>, and <xref target="ITU-T_G.709"/>.</t>

<ul empty="true"><li>
  <t>CHANGE NOTE: Please focus your review only on the updates to the YANG model: see also <xref target="te-yang-diff"/>.</t>
</li></ul>

<figure title="TE Types YANG module" anchor="fig-te-yang"><sourcecode type="yang" markers="true" name="ietf-te-types@2024-01-29.yang"><![CDATA[
module ietf-te-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-te-types";
  prefix te-types;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-routing-types {
    prefix rt-types;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area";
  }

  import ietf-network {
    prefix "nw";
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }

  import ietf-network-topology {
    prefix "nt";
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Tarek Saad
               <mailto:tsaad.net@gmail.com>

     Editor:   Rakesh Gandhi
               <mailto:rgandhi@cisco.com>

     Editor:   Vishnu Pavan Beeram
               <mailto:vbeeram@juniper.net>

     Editor:   Xufeng Liu
               <mailto:xufeng.liu.ietf@gmail.com>

     Editor:   Igor Bryskin
               <mailto:i_bryskin@yahoo.com>";
  description
    "This YANG module contains a collection of generally useful
     YANG data type definitions specific to TE.  The model fully
     conforms to the Network Management Datastore Architecture
     (NMDA).

     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 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

     Copyright (c) 2024 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.";
  revision 2024-07-23 {
    description
      "This revision adds the following new identities:
      - lsp-provisioning-error-reason;
      - association-type-diversity;
      - tunnel-admin-state-auto;
      - lsp-restoration-restore-none;
      - restoration-scheme-rerouting;
      - path-metric-optimization-type;
      - link-path-metric-type;
      - link-metric-type and its derived identities;
      - path-computation-error-reason and its derived identities;
      - protocol-origin-type and its derived identities;
      - svec-objective-function-type and its derived identities;
      - svec-metric-type and its derived identities.

      This revision adds the following new data types:
      - path-type;
      - te-gen-node-id.

      This revision adds the following new groupings:
      - encoding-and-switching-type;
      - te-generic-node-id.

      This revision updates the following identities:
      - objective-function-type;
      - action-exercise;
      - path-metric-type;
      - path-metric-te;
      - path-metric-igp;
      - path-metric-hop;
      - path-metric-delay-average;
      - path-metric-delay-minimum;
      - path-metric-residual-bandwidth;
      - path-metric-optimize-includes;
      - path-metric-optimize-excludes;
      - te-optimization-criterion.

      This revision updates the following data types:
      - te-node-id.

      This revision updates the following groupings:
      - explicit-route-hop:
        - adds the following leaves:
          - node-id-uri;
          - link-tp-id-uri;
        - updates the following leaves:
          - node-id;
          - link-tp-id;
      - record-route-state:
        - adds the following leaves:
          - node-id-uri;
          - link-tp-id-uri;
        - updates the following leaves:
          - node-id;
          - link-tp-id;
      - optimization-metric-entry:
        - updates the following leaves:
          - metric-type;
      - tunnel-constraints;
        - adds the following leaves:
          - network-id;
      - path-constraints-route-objects:
        - updates the following containers:
          - explicit-route-objects-always;
      - generic-path-metric-bounds:
        - updates the following leaves:
          - metric-type;
      - generic-path-optimization
        - adds the following leaves:
          - tiebreaker;
        - deprecate the following containers:
          - tiebreakers.

      This revision obsoletes the following identities:
      - of-minimize-agg-bandwidth-consumption;
      - of-minimize-load-most-loaded-link;
      - of-minimize-cost-path-set;
      - lsp-protection-reroute-extra;
      - lsp-protection-reroute.

      This revision provides also few editorial changes.";
    reference
      "RFC XXXX: Common YANG Data Types for Traffic Engineering";
  }
  // RFC Editor: replace XXXX with actual RFC number, update date
  // information and remove this note

  revision 2020-06-10 {
    description
      "Initial Version of TE types.";
    reference
      "RFC 8776: Common YANG Data Types for Traffic Engineering";
  }

  /**
   * Typedefs
   */

  typedef admin-group {
    type yang:hex-string {
      /* 01:02:03:04 */
      length "1..11";
    }
    description
      "Administrative group / resource class / color representation
       in 'hex-string' type.

       The most significant byte in the hex-string is the farthest
       to the left in the byte sequence.  Leading zero bytes in the
       configured value may be omitted for brevity.";
    reference
      "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
                 Version 2
       RFC 5305: IS-IS Extensions for Traffic Engineering
       RFC 7308: Extended Administrative Groups in MPLS Traffic
                 Engineering (MPLS-TE)";
  }

  typedef admin-groups {
    type union {
      type admin-group;
      type extended-admin-group;
    }
    description
      "Derived types for TE administrative groups.";
  }

  typedef extended-admin-group {
    type yang:hex-string;
    description
      "Extended administrative group / resource class / color
       representation in 'hex-string' type.

       The most significant byte in the hex-string is the farthest
       to the left in the byte sequence.  Leading zero bytes in the
       configured value may be omitted for brevity.";
    reference
      "RFC 7308: Extended Administrative Groups in MPLS Traffic
                 Engineering (MPLS-TE)";
  }

  typedef path-attribute-flags {
    type union {
      type identityref {
        base session-attributes-flags;
      }
      type identityref {
        base lsp-attributes-flags;
      }
    }
    description
      "Path attributes flags type.";
  }

  typedef performance-metrics-normality {
    type enumeration {
      enum unknown {
        value 0;
        description
          "Unknown.";
      }
      enum normal {
        value 1;
        description
          "Normal.  Indicates that the anomalous bit is not set.";
      }
      enum abnormal {
        value 2;
        description
          "Abnormal.  Indicates that the anomalous bit is set.";
      }
    }
    description
      "Indicates whether a performance metric is normal (anomalous
       bit not set), abnormal (anomalous bit set), or unknown.";
    reference
      "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions
       RFC 7823: Performance-Based Path Selection for Explicitly
                 Routed Label Switched Paths (LSPs) Using TE Metric
                 Extensions
       RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
  }

  typedef srlg {
    type uint32;
    description
      "SRLG type.";
    reference
      "RFC 4203: OSPF Extensions in Support of Generalized
                 Multi-Protocol Label Switching (GMPLS)
       RFC 5307: IS-IS Extensions in Support of Generalized
                 Multi-Protocol Label Switching (GMPLS)";
  }

  typedef te-common-status {
    type enumeration {
      enum up {
        description
          "Enabled.";
      }
      enum down {
        description
          "Disabled.";
      }
      enum testing {
        description
          "In some test mode.";
      }
      enum preparing-maintenance {
        description
          "The resource is disabled in the control plane to prepare
           for a graceful shutdown for maintenance purposes.";
        reference
          "RFC 5817: Graceful Shutdown in MPLS and Generalized MPLS
                     Traffic Engineering Networks";
      }
      enum maintenance {
        description
          "The resource is disabled in the data plane for maintenance
           purposes.";
      }
      enum unknown {
        description
          "Status is unknown.";
      }
    }
    description
      "Defines a type representing the common states of a TE
       resource.";
  }

  typedef te-bandwidth {
    type string {
      pattern '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|'
            + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?'
            + '[pP](\+)?(12[0-7]|'
            + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+'
            + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|'
            + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?'
            + '[pP](\+)?(12[0-7]|'
            + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*';
    }
    description
      "This is the generic bandwidth type.  It is a string containing
       a list of numbers separated by commas, where each of these
       numbers can be non-negative decimal, hex integer, or
       hex float:

       (dec | hex | float)[*(','(dec | hex | float))]

       For the packet-switching type, the string encoding follows
       the type 'bandwidth-ieee-float32' as defined in RFC 8294
       (e.g., 0x1p10), where the units are in bytes per second.

       For the Optical Transport Network (OTN) switching type,
       a list of integers can be used, such as '0,2,3,1', indicating
       two ODU0s and one ODU3.  ('ODU' stands for 'Optical Data
       Unit'.)  For Dense Wavelength Division Multiplexing (DWDM),
       a list of pairs of slot numbers and widths can be used,
       such as '0,2,3,3', indicating a frequency slot 0 with
       slot width 2 and a frequency slot 3 with slot width 3.
       Canonically, the string is represented as all lowercase and in
       hex, where the prefix '0x' precedes the hex number.";
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area
       ITU-T G.709: Interfaces for the optical transport network -
                    Edition 6.0 (06/2020)";
  }

  typedef te-ds-class {
    type uint8 {
      range "0..7";
    }
    description
      "The Differentiated Services Class-Type of traffic.";
    reference
      "RFC 4124: Protocol Extensions for Support of Diffserv-aware
                 MPLS Traffic Engineering, Section 4.3.1";
  }

  typedef te-global-id {
    type uint32;
    description
      "An identifier to uniquely identify an operator, which can be
       either a provider or a client.

       The definition of this type is taken from RFCs 6370 and 5003.

       This attribute type is used solely to provide a globally
       unique context for TE topologies.";
    reference
      "RFC 5003: Attachment Individual Identifier (AII) Types for
                 Aggregation
       RFC 6370: MPLS Transport Profile (MPLS-TP) Identifiers";
  }

  typedef te-hop-type {
    type enumeration {
      enum loose {
        description
          "A loose hop in an explicit path.";
      }
      enum strict {
        description
          "A strict hop in an explicit path.";
      }
    }
    description
      "Enumerated type for specifying loose or strict paths.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels,
                 Section 4.3.3";
  }

  typedef te-link-access-type {
    type enumeration {
      enum point-to-point {
        description
          "The link is point-to-point.";
      }
      enum multi-access {
        description
          "The link is multi-access, including broadcast and NBMA.";
      }
    }
    description
      "Defines a type representing the access type of a TE link.";
    reference
      "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
                 Version 2";
  }

  typedef te-label-direction {
    type enumeration {
      enum forward {
        description
          "Label allocated for the forward LSP direction.";
      }
      enum reverse {
        description
          "Label allocated for the reverse LSP direction.";
      }
    }
    description
      "Enumerated type for specifying the forward or reverse
       label.";
  }

  typedef te-link-direction {
    type enumeration {
      enum incoming {
        description
          "The explicit route represents an incoming link on
           a node.";
      }
      enum outgoing {
        description
          "The explicit route represents an outgoing link on
           a node.";
      }
    }
    description
      "Enumerated type for specifying the direction of a link on
       a node.";
  }

  typedef te-metric {
    type uint32;
    description
      "TE metric.";
    reference
      "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a
                 second MPLS Traffic Engineering (TE) Metric";
  }

  // CHANGE NOTE: The typedef te-node-id below has been
  // updated in this module revision
  // RFC Editor: remove the note above and this note
  typedef te-node-id {
    type union {
      type yang:dotted-quad;
      type inet:ipv6-address-no-zone;
    }
    description
      "A type representing the identifier for a node in a TE
       topology.

       The identifier is represented either as 4 octets in
       dotted-quad notation, or as 16 octets in full, mixed,
       shortened, or shortened-mixed IPv6 address notation.

       This attribute MAY be mapped to the Router Address TLV
       described in Section 2.4.1 of RFC 3630, the TE Router ID
       described in Section 3 of RFC 6827, the Traffic Engineering
       Router ID TLV described in Section 4.3 of RFC 5305, the TE
       Router ID TLV described in Section 3.2.1 of RFC 6119, or the
       IPv6 TE Router ID TLV described in Section 4.1 of RFC 6119.

       The reachability of such a TE node MAY be achieved by a
       mechanism such as that described in Section 6.2 of RFC 6827.";
    reference
      "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
                 Version 2, Section 2.4.1
       RFC 5305: IS-IS Extensions for Traffic Engineering,
                 Section 4.3
       RFC 6119: IPv6 Traffic Engineering in IS-IS, Section 3.2.1
       RFC 6827: Automatically Switched Optical Network (ASON)
                 Routing for OSPFv2 Protocols, Section 3";
  }

  typedef te-oper-status {
    type te-common-status;
    description
      "Defines a type representing the operational status of
       a TE resource.";
  }

  typedef te-admin-status {
    type te-common-status;
    description
      "Defines a type representing the administrative status of
       a TE resource.";
  }

  typedef te-path-disjointness {
    type bits {
      bit node {
        position 0;
        description
          "Node disjoint.";
      }
      bit link {
        position 1;
        description
          "Link disjoint.";
      }
      bit srlg {
        position 2;
        description
          "SRLG (Shared Risk Link Group) disjoint.";
      }
    }
    description
      "Type of the resource disjointness for a TE tunnel path.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  typedef te-recovery-status {
    type enumeration {
      enum normal {
        description
          "Both the recovery span and the working span are fully
           allocated and active, data traffic is being
           transported over (or selected from) the working
           span, and no trigger events are reported.";
      }
      enum recovery-started {
        description
          "The recovery action has been started but not completed.";
      }
      enum recovery-succeeded {
        description
          "The recovery action has succeeded.  The working span has
           reported a failure/degrade condition, and the user traffic
           is being transported (or selected) on the recovery span.";
      }
      enum recovery-failed {
        description
          "The recovery action has failed.";
      }
      enum reversion-started {
        description
          "The reversion has started.";
      }
      enum reversion-succeeded {
        description
          "The reversion action has succeeded.";
      }
      enum reversion-failed {
        description
          "The reversion has failed.";
      }
      enum recovery-unavailable {
        description
          "The recovery is unavailable, as a result of either an
           operator's lockout command or a failure condition
           detected on the recovery span.";
      }
      enum recovery-admin {
        description
          "The operator has issued a command to switch the user
           traffic to the recovery span.";
      }
      enum wait-to-restore {
        description
          "The recovery domain is recovering from a failure/degrade
           condition on the working span that is being controlled by
           the Wait-to-Restore (WTR) timer.";
      }
    }
    description
      "Defines the status of a recovery action.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)
       RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection";
  }

  typedef te-template-name {
    type string {
      pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*';
    }
    description
      "A type for the name of a TE node template or TE link
       template.";
  }

  typedef te-topology-event-type {
    type enumeration {
      enum add {
        value 0;
        description
          "A TE node or TE link has been added.";
      }
      enum remove {
        value 1;
        description
          "A TE node or TE link has been removed.";
      }
      enum update {
        value 2;
        description
          "A TE node or TE link has been updated.";
      }
    }
    description
      "TE event type for notifications.";
  }

  typedef te-topology-id {
    type union {
      type string {
        length "0";
        // empty string
      }
      type string {
        pattern '([a-zA-Z0-9\-_.]+:)*'
              + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*';
      }
    }
    description
      "An identifier for a topology.

       It is optional to have one or more prefixes at the beginning,
       separated by colons.  The prefixes can be 'network-types' as
       defined in the 'ietf-network' module in RFC 8345, to help the
       user better understand the topology before further inquiry
       is made.";
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }

  typedef te-tp-id {
    type union {
      type uint32;
      // Unnumbered
      type inet:ip-address;
      // IPv4 or IPv6 address
    }
    description
      "An identifier for a TE link endpoint on a node.

       This attribute is mapped to a local or remote link identifier
       as defined in RFCs 3630 and 5305.";
    reference
      "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
                 Version 2
       RFC 5305: IS-IS Extensions for Traffic Engineering";
  }

  // CHANGE NOTE: The typedef path-type below has been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  typedef path-type {
    type enumeration {
      enum primary-path {
        description
          "Indicates that the TE path is a primary path.";
      }
      enum secondary-path {
        description
          "Indicates that the TE path is a secondary path.";
      }
      enum primary-reverse-path {
        description
          "Indicates that the TE path is a primary reverse path.";
      }
      enum secondary-reverse-path {
        description
          "Indicates that the TE path is a secondary reverse path.";
      }
    }
    description
      "The type of TE path, indicating whether a path is a primary, 
       or a reverse primary, or a secondary, or a reverse secondary 
       path.";
  }

  // CHANGE NOTE: The typedef te-gen-node-id below has been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  typedef te-gen-node-id {
    type union {
      type te-node-id;
      type inet:ip-address;
      type nw:node-id;
    }
    description
      "Generic type that identifies a node in a TE topology.";
  }

  /* TE features */

  feature p2mp-te {
    description
      "Indicates support for Point-to-Multipoint TE (P2MP-TE).";
    reference
      "RFC 4875: Extensions to Resource Reservation Protocol -
                 Traffic Engineering (RSVP-TE) for
                 Point-to-Multipoint TE Label Switched Paths (LSPs)";
  }

  feature frr-te {
    description
      "Indicates support for TE Fast Reroute (FRR).";
    reference
      "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels";
  }

  feature extended-admin-groups {
    description
      "Indicates support for TE link extended administrative
       groups.";
    reference
      "RFC 7308: Extended Administrative Groups in MPLS Traffic
                 Engineering (MPLS-TE)";
  }

  feature named-path-affinities {
    description
      "Indicates support for named path affinities.";
  }

  feature named-extended-admin-groups {
    description
      "Indicates support for named extended administrative groups.";
  }

  feature named-srlg-groups {
    description
      "Indicates support for named SRLG groups.";
  }

  feature named-path-constraints {
    description
      "Indicates support for named path constraints.";
  }

  feature path-optimization-metric {
    description
      "Indicates support for path optimization metrics.";
  }

  feature path-optimization-objective-function {
    description
      "Indicates support for path optimization objective functions.";
  }

  /*
   * Identities
   */

  // CHANGE NOTE: The base identity lsp-provisioning-error-reason 
  // has been added in this module revision
  // RFC Editor: remove the note above and this note
  identity lsp-provisioning-error-reason {
    description
      "Base identity for LSP provisioning errors.";
  }

  identity session-attributes-flags {
    description
      "Base identity for the RSVP-TE session attributes flags.";
  }

  identity local-protection-desired {
    base session-attributes-flags;
    description
      "Local protection is desired.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels,
                 Section 4.7.1";
  }

  identity se-style-desired {
    base session-attributes-flags;
    description
      "Shared explicit style, to allow the LSP to be established
       and share resources with the old LSP.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
  }

  identity local-recording-desired {
    base session-attributes-flags;
    description
      "Label recording is desired.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels,
                 Section 4.7.1";
  }

  identity bandwidth-protection-desired {
    base session-attributes-flags;
    description
      "Requests FRR bandwidth protection on LSRs, if present.";
    reference
      "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels";
  }

  identity node-protection-desired {
    base session-attributes-flags;
    description
      "Requests FRR node protection on LSRs, if present.";
    reference
      "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels";
  }

  identity path-reevaluation-request {
    base session-attributes-flags;
    description
      "This flag indicates that a path re-evaluation (of the
       current path in use) is requested.  Note that this does
       not trigger any LSP reroutes but instead just signals a
       request to evaluate whether a preferable path exists.";
    reference
      "RFC 4736: Reoptimization of Multiprotocol Label Switching
                 (MPLS) Traffic Engineering (TE) Loosely Routed Label
                 Switched Path (LSP)";
  }

  identity soft-preemption-desired {
    base session-attributes-flags;
    description
      "Soft preemption of LSP resources is desired.";
    reference
      "RFC 5712: MPLS Traffic Engineering Soft Preemption";
  }

  identity lsp-attributes-flags {
    description
      "Base identity for LSP attributes flags.";
  }

  identity end-to-end-rerouting-desired {
    base lsp-attributes-flags;
    description
      "Indicates end-to-end rerouting behavior for an LSP
       undergoing establishment.  This MAY also be used to
       specify the behavior of end-to-end LSP recovery for
       established LSPs.";
    reference
      "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS
                 RSVP-TE
       RFC 5420: Encoding of Attributes for MPLS LSP Establishment
                 Using Resource Reservation Protocol Traffic
                 Engineering (RSVP-TE)
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity boundary-rerouting-desired {
    base lsp-attributes-flags;
    description
      "Indicates boundary rerouting behavior for an LSP undergoing
       establishment.  This MAY also be used to specify
       segment-based LSP recovery through nested crankback for
       established LSPs.  The boundary Area Border Router (ABR) /
       Autonomous System Border Router (ASBR) can decide to forward
       the PathErr message upstream to either an upstream boundary
       ABR/ASBR or the ingress LSR.  Alternatively, it can try to
       select another egress boundary LSR.";
    reference
      "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS
                 RSVP-TE
       RFC 5420: Encoding of Attributes for MPLS LSP Establishment
                 Using Resource Reservation Protocol Traffic
                 Engineering (RSVP-TE)
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity segment-based-rerouting-desired {
    base lsp-attributes-flags;
    description
      "Indicates segment-based rerouting behavior for an LSP
       undergoing establishment.  This MAY also be used to specify
       segment-based LSP recovery for established LSPs.";
    reference
      "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS
                 RSVP-TE
       RFC 5420: Encoding of Attributes for MPLS LSP Establishment
                 Using Resource Reservation Protocol
                 Traffic Engineering (RSVP-TE)
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity lsp-integrity-required {
    base lsp-attributes-flags;
    description
      "Indicates that LSP integrity is required.";
    reference
      "RFC 4875: Extensions to Resource Reservation Protocol -
                 Traffic Engineering (RSVP-TE) for
                 Point-to-Multipoint TE Label Switched Paths (LSPs)
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity contiguous-lsp-desired {
    base lsp-attributes-flags;
    description
      "Indicates that a contiguous LSP is desired.";
    reference
      "RFC 5151: Inter-Domain MPLS and GMPLS Traffic Engineering --
                 Resource Reservation Protocol-Traffic Engineering
                 (RSVP-TE) Extensions
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity lsp-stitching-desired {
    base lsp-attributes-flags;
    description
      "Indicates that LSP stitching is desired.";
    reference
      "RFC 5150: Label Switched Path Stitching with Generalized
                 Multiprotocol Label Switching Traffic Engineering
                 (GMPLS TE)
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity pre-planned-lsp-flag {
    base lsp-attributes-flags;
    description
      "Indicates that the LSP MUST be provisioned in the
       control plane only.";
    reference
      "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions for
                 Multi-Layer and Multi-Region Networks (MLN/MRN)
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity non-php-behavior-flag {
    base lsp-attributes-flags;
    description
      "Indicates that non-PHP (non-Penultimate Hop Popping) behavior
       for the LSP is desired.";
    reference
      "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band
                 Mapping for RSVP-TE Label Switched Paths
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity oob-mapping-flag {
    base lsp-attributes-flags;
    description
      "Indicates that signaling of the egress binding information is
       out of band (e.g., via the Border Gateway Protocol (BGP)).";
    reference
      "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band
                 Mapping for RSVP-TE Label Switched Paths
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity entropy-label-capability {
    base lsp-attributes-flags;
    description
      "Indicates entropy label capability.";
    reference
      "RFC 6790: The Use of Entropy Labels in MPLS Forwarding
       RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)";
  }

  identity oam-mep-entity-desired {
    base lsp-attributes-flags;
    description
      "OAM Maintenance Entity Group End Point (MEP) entities
       desired.";
    reference
      "RFC 7260: GMPLS RSVP-TE Extensions for Operations,
                 Administration, and Maintenance (OAM)
                 Configuration";
  }

  identity oam-mip-entity-desired {
    base lsp-attributes-flags;
    description
      "OAM Maintenance Entity Group Intermediate Points (MIP)
       entities desired.";
    reference
      "RFC 7260: GMPLS RSVP-TE Extensions for Operations,
                 Administration, and Maintenance (OAM)
                 Configuration";
  }

  identity srlg-collection-desired {
    base lsp-attributes-flags;
    description
      "SRLG collection desired.";
    reference
      "RFC 7570: Label Switched Path (LSP) Attribute in the Explicit
                 Route Object (ERO)
       RFC 8001: RSVP-TE Extensions for Collecting Shared Risk
                 Link Group (SRLG) Information";
  }

  identity loopback-desired {
    base lsp-attributes-flags;
    description
      "This flag indicates that a particular node on the LSP is
       required to enter loopback mode.  This can also be
       used to specify the loopback state of the node.";
    reference
      "RFC 7571: GMPLS RSVP-TE Extensions for Lock Instruct and
                 Loopback";
  }

  identity p2mp-te-tree-eval-request {
    base lsp-attributes-flags;
    description
      "P2MP-TE tree re-evaluation request.";
    reference
      "RFC 8149: RSVP Extensions for Reoptimization of Loosely Routed
                 Point-to-Multipoint Traffic Engineering Label
                 Switched Paths (LSPs)";
  }

  identity rtm-set-desired {
    base lsp-attributes-flags;
    description
      "Residence Time Measurement (RTM) attribute flag requested.";
    reference
      "RFC 8169: Residence Time Measurement in MPLS Networks";
  }

  identity link-protection-type {
    description
      "Base identity for the link protection type.";
  }

  identity link-protection-unprotected {
    base link-protection-type;
    description
      "Unprotected link type.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity link-protection-extra-traffic {
    base link-protection-type;
    description
      "Extra-Traffic protected link type.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity link-protection-shared {
    base link-protection-type;
    description
      "Shared protected link type.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity link-protection-1-for-1 {
    base link-protection-type;
    description
      "One-for-one (1:1) protected link type.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity link-protection-1-plus-1 {
    base link-protection-type;
    description
      "One-plus-one (1+1) protected link type.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity link-protection-enhanced {
    base link-protection-type;
    description
      "A compound link protection type derived from the underlay
       TE tunnel protection configuration supporting the TE link.";
  }

  identity association-type {
    description
      "Base identity for the tunnel association.";
  }

  identity association-type-recovery {
    base association-type;
    description
      "Association type for recovery, used to associate LSPs of the
       same tunnel for recovery.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery
       RFC 6780: RSVP ASSOCIATION Object Extensions";
  }

  identity association-type-resource-sharing {
    base association-type;
    description
      "Association type for resource sharing, used to enable
       resource sharing during make-before-break.";
    reference
      "RFC 4873: GMPLS Segment Recovery
       RFC 6780: RSVP ASSOCIATION Object Extensions";
  }

  identity association-type-double-sided-bidir {
    base association-type;
    description
      "Association type for double-sided bidirectional LSPs,
       used to associate two LSPs of two tunnels that are
       independently configured on either endpoint.";
    reference
      "RFC 7551: RSVP-TE Extensions for Associated Bidirectional
                 Label Switched Paths (LSPs)";
  }

  identity association-type-single-sided-bidir {
    base association-type;
    description
      "Association type for single-sided bidirectional LSPs,
       used to associate two LSPs of two tunnels, where one
       tunnel is configured on one side/endpoint and the other
       tunnel is dynamically created on the other endpoint.";
    reference
      "RFC 6780: RSVP ASSOCIATION Object Extensions
       RFC 7551: RSVP-TE Extensions for Associated Bidirectional
                 Label Switched Paths (LSPs)";
  }

  // CHANGE NOTE: The identity association-type-diversity below has 
  // been added in this module revision
  // RFC Editor: remove the note above and this note
  identity association-type-diversity {
    base association-type;
    description
      "Association Type diversity used to associate LSPs whose 
       paths are to be diverse from each other.";
    reference
      "RFC 8800: Path Computation Element Communication Protocol 
                 (PCEP) Extension for Label Switched Path (LSP)
                 Diversity Constraint Signaling";
  }

  // CHANGE NOTE: The description of the base identity 
  // objective-function-type has been updated 
  // in this module revision
  // RFC Editor: remove the note above and this note
  identity objective-function-type {
    description
      "Base identity for path objective function types.";
  }

  identity of-minimize-cost-path {
    base objective-function-type;
    description
      "Objective function for minimizing path cost.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

  identity of-minimize-load-path {
    base objective-function-type;
    description
      "Objective function for minimizing the load on one or more
       paths.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

  identity of-maximize-residual-bandwidth {
    base objective-function-type;
    description
      "Objective function for maximizing residual bandwidth.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

  // CHANGE NOTE: The identity of-minimize-agg-bandwidth-consumption
  // below has been obsoleted in this module revision
  // RFC Editor: remove the note above and this note
  identity of-minimize-agg-bandwidth-consumption {
    base objective-function-type;
    status obsolete;
    description
      "Objective function for minimizing aggregate bandwidth
       consumption.
      
       This identity has been obsoleted: the
       'svec-of-minimize-agg-bandwidth-consumption' identity SHOULD
       be used instead.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

  // CHANGE NOTE: The identity of-minimize-load-most-loaded-link
  // below has been obsoleted in this module revision
  // RFC Editor: remove the note above and this note
  identity of-minimize-load-most-loaded-link {
    base objective-function-type;
    status obsolete;
    description
      "Objective function for minimizing the load on the link that
       is carrying the highest load.
      
       This identity has been obsoleted: the
       'svec-of-minimize-load-most-loaded-link' identity SHOULD
       be used instead.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

  // CHANGE NOTE: The identity of-minimize-cost-path-set
  // below has been obsoleted in this module revision
  // RFC Editor: remove the note above and this note
  identity of-minimize-cost-path-set {
    base objective-function-type;
    status obsolete;
    description
      "Objective function for minimizing the cost on a path set.
      
       This identity has been obsoleted: the
       'svec-of-minimize-cost-path-set' identity SHOULD
       be used instead.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

  identity path-computation-method {
    description
      "Base identity for supported path computation mechanisms.";
  }

  // CHANGE NOTE: The reference of the identity path-locally-computed
  // below has been updated in this module revision
  // RFC Editor: remove the note above and this note
  identity path-locally-computed {
    base path-computation-method;
    description
      "Indicates a constrained-path LSP in which the
       path is computed by the local LER.";
    reference
      "RFC 9522: Overview and Principles of Internet Traffic
                 Engineering, Section 4.4";
  }

  // CHANGE NOTE: The reference of the identity 
  // path-externally-queried below has been updated
  // in this module revision
  // RFC Editor: remove the note above and this note
  identity path-externally-queried {
    base path-computation-method;
    description
      "Constrained-path LSP in which the path is obtained by
       querying an external source, such as a PCE server.
       In the case that an LSP is defined to be externally queried,
       it may also have associated explicit definitions (provided
       to the external source to aid computation).  The path that is
       returned by the external source may require further local
       computation on the device.";
    reference
      "RFC 9522: Overview and Principles of Internet Traffic
                 Engineering
       RFC 4657: Path Computation Element (PCE) Communication
                 Protocol Generic Requirements";
  }

  // CHANGE NOTE: The reference of the identity 
  // path-explicitly-defined below has been updated
  // in this module revision
  // RFC Editor: remove the note above and this note
  identity path-explicitly-defined {
    base path-computation-method;
    description
      "Constrained-path LSP in which the path is
       explicitly specified as a collection of strict and/or loose
       hops.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels
       RFC 9522: Overview and Principles of Internet Traffic
                 Engineering";
  }

  identity lsp-metric-type {
    description
      "Base identity for the LSP metric specification types.";
  }

  identity lsp-metric-relative {
    base lsp-metric-type;
    description
      "The metric specified for the LSPs to which this identity
       refers is specified as a value relative to the IGP metric
       cost to the LSP's tail end.";
    reference
      "RFC 4657: Path Computation Element (PCE) Communication
                 Protocol Generic Requirements";
  }

  identity lsp-metric-absolute {
    base lsp-metric-type;
    description
      "The metric specified for the LSPs to which this identity
       refers is specified as an absolute value.";
    reference
      "RFC 4657: Path Computation Element (PCE) Communication
                 Protocol Generic Requirements";
  }

  identity lsp-metric-inherited {
    base lsp-metric-type;
    description
      "The metric for the LSPs to which this identity refers is
       not specified explicitly; rather, it is directly inherited
       from the IGP cost.";
    reference
      "RFC 4657: Path Computation Element (PCE) Communication
                 Protocol Generic Requirements";
  }

  identity te-tunnel-type {
    description
      "Base identity from which specific tunnel types are derived.";
  }

  identity te-tunnel-p2p {
    base te-tunnel-type;
    description
      "TE Point-to-Point (P2P) tunnel type.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
  }

  identity te-tunnel-p2mp {
    base te-tunnel-type;
    description
      "TE P2MP tunnel type.";
    reference
      "RFC 4875: Extensions to Resource Reservation Protocol -
                 Traffic Engineering (RSVP-TE) for
                 Point-to-Multipoint TE Label Switched Paths (LSPs)";
  }

  identity tunnel-action-type {
    description
      "Base identity from which specific tunnel action types
       are derived.";
  }

  identity tunnel-action-resetup {
    base tunnel-action-type;
    description
      "TE tunnel action that tears down the tunnel's current LSP
       (if any) and attempts to re-establish a new LSP.";
  }

  identity tunnel-action-reoptimize {
    base tunnel-action-type;
    description
      "TE tunnel action that reoptimizes the placement of the
       tunnel LSP(s).";
  }

  identity tunnel-action-switchpath {
    base tunnel-action-type;
    description
      "TE tunnel action that switches the tunnel's LSP to use the
       specified path.";
  }

  identity te-action-result {
    description
      "Base identity from which specific TE action results
       are derived.";
  }

  identity te-action-success {
    base te-action-result;
    description
      "TE action was successful.";
  }

  identity te-action-fail {
    base te-action-result;
    description
      "TE action failed.";
  }

  identity tunnel-action-inprogress {
    base te-action-result;
    description
      "TE action is in progress.";
  }

  identity tunnel-admin-state-type {
    description
      "Base identity for TE tunnel administrative states.";
  }

  identity tunnel-admin-state-up {
    base tunnel-admin-state-type;
    description
      "Tunnel's administrative state is up.";
  }

  identity tunnel-admin-state-down {
    base tunnel-admin-state-type;
    description
      "Tunnel's administrative state is down.";
  }

  // CHANGE NOTE: The identity tunnel-admin-state-auto below
  // has been added in this module revision
  // RFC Editor: remove the note above and this note
  identity tunnel-admin-state-auto {
    base tunnel-admin-state-type;
    description
      "Tunnel administrative auto state. The administrative status
       in state datastore transitions to 'tunnel-admin-up' when the
       tunnel used by the client layer, and to 'tunnel-admin-down'
       when it is not used by the client layer.";
  }

  identity tunnel-state-type {
    description
      "Base identity for TE tunnel states.";
  }

  identity tunnel-state-up {
    base tunnel-state-type;
    description
      "Tunnel's state is up.";
  }

  identity tunnel-state-down {
    base tunnel-state-type;
    description
      "Tunnel's state is down.";
  }

  identity lsp-state-type {
    description
      "Base identity for TE LSP states.";
  }

  identity lsp-path-computing {
    base lsp-state-type;
    description
      "State path computation is in progress.";
  }

  identity lsp-path-computation-ok {
    base lsp-state-type;
    description
      "State path computation was successful.";
  }

  identity lsp-path-computation-failed {
    base lsp-state-type;
    description
      "State path computation failed.";
  }

  identity lsp-state-setting-up {
    base lsp-state-type;
    description
      "State is being set up.";
  }

  identity lsp-state-setup-ok {
    base lsp-state-type;
    description
      "State setup was successful.";
  }

  identity lsp-state-setup-failed {
    base lsp-state-type;
    description
      "State setup failed.";
  }

  identity lsp-state-up {
    base lsp-state-type;
    description
      "State is up.";
  }

  identity lsp-state-tearing-down {
    base lsp-state-type;
    description
      "State is being torn down.";
  }

  identity lsp-state-down {
    base lsp-state-type;
    description
      "State is down.";
  }

  identity path-invalidation-action-type {
    description
      "Base identity for TE path invalidation action types.";
  }

  identity path-invalidation-action-drop {
    base path-invalidation-action-type;
    description
      "Upon invalidation of the TE tunnel path, the tunnel remains
       valid, but any packet mapped over the tunnel is dropped.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels,
                 Section 2.5";
  }

  identity path-invalidation-action-teardown {
    base path-invalidation-action-type;
    description
      "TE path invalidation action teardown.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels,
                 Section 2.5";
  }

  identity lsp-restoration-type {
    description
      "Base identity from which LSP restoration types are derived.";
  }

    // CHANGE NOTE: The identity lsp-restoration-restore-none 
    // below has been added in this module revision
    // RFC Editor: remove the note above and this note
    identity lsp-restoration-restore-none {
      base lsp-restoration-type;
      description
        "No LSP affected by a failure is restored.";
    }

  identity lsp-restoration-restore-any {
    base lsp-restoration-type;
    description
      "Any LSP affected by a failure is restored.";
  }

  identity lsp-restoration-restore-all {
    base lsp-restoration-type;
    description
      "Affected LSPs are restored after all LSPs of the tunnel are
       broken.";
  }

  identity restoration-scheme-type {
    description
      "Base identity for LSP restoration schemes.";
  }

    // CHANGE NOTE: The identity restoration-scheme-rerouting 
    // below has been added in this module revision
    // RFC Editor: remove the note above and this note
    identity restoration-scheme-rerouting {
      base restoration-scheme-type;
      description
        "Restoration LSP is computed after the failure detection.
        
         This restoration scheme is also known as
         'Full LSP Re-routing.'";
      reference
        "RFC 4427: Recovery (Protection and Restoration) Terminology
                   for Generalized Multi-Protocol Label Switching
                   (GMPLS)";
    }

  identity restoration-scheme-preconfigured {
    base restoration-scheme-type;
    description
      "Restoration LSP is preconfigured prior to the failure.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity restoration-scheme-precomputed {
    base restoration-scheme-type;
    description
      "Restoration LSP is precomputed prior to the failure.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity restoration-scheme-presignaled {
    base restoration-scheme-type;
    description
      "Restoration LSP is presignaled prior to the failure.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity lsp-protection-type {
    description
      "Base identity from which LSP protection types are derived.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity lsp-protection-unprotected {
    base lsp-protection-type;
    description
      "'Unprotected' LSP protection type.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  // CHANGE NOTE: The identity lsp-protection-reroute-extra
  // below has been obsoleted in this module revision
  // RFC Editor: remove the note above and this note
  identity lsp-protection-reroute-extra {
    base lsp-protection-type;
    status obsolete;
    description
      "'(Full) Rerouting' LSP protection type.
      
       This identity has been obsoleted: the
       'restoration-scheme-rerouting' identity SHOULD be used
       instead.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  // CHANGE NOTE: The identity lsp-protection-reroute
  // below has been obsoleted in this module revision
  // RFC Editor: remove the note above and this note
  identity lsp-protection-reroute {
    base lsp-protection-type;
    status obsolete;
    description
      "'Rerouting without Extra-Traffic' LSP protection type.
      
       This identity has been obsoleted: the
       'restoration-scheme-rerouting' identity SHOULD be used
       instead.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity lsp-protection-1-for-n {
    base lsp-protection-type;
    description
      "'1:N Protection with Extra-Traffic' LSP protection type.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity lsp-protection-1-for-1 {
    base lsp-protection-type;
    description
      "LSP protection '1:1 Protection Type'.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity lsp-protection-unidir-1-plus-1 {
    base lsp-protection-type;
    description
      "'1+1 Unidirectional Protection' LSP protection type.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity lsp-protection-bidir-1-plus-1 {
    base lsp-protection-type;
    description
      "'1+1 Bidirectional Protection' LSP protection type.";
    reference
      "RFC 4872: RSVP-TE Extensions in Support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)
                 Recovery";
  }

  identity lsp-protection-extra-traffic {
    base lsp-protection-type;
    description
      "Extra-Traffic LSP protection type.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity lsp-protection-state {
    description
      "Base identity of protection states for reporting purposes.";
  }

  identity normal {
    base lsp-protection-state;
    description
      "Normal state.";
  }

  identity signal-fail-of-protection {
    base lsp-protection-state;
    description
      "The protection transport entity has a signal fail condition
       that is of higher priority than the forced switchover
       command.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity lockout-of-protection {
    base lsp-protection-state;
    description
      "A Loss of Protection (LoP) command is active.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity forced-switch {
    base lsp-protection-state;
    description
      "A forced switchover command is active.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity signal-fail {
    base lsp-protection-state;
    description
      "There is a signal fail condition on either the working path
       or the protection path.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity signal-degrade {
    base lsp-protection-state;
    description
      "There is a signal degrade condition on either the working
       path or the protection path.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity manual-switch {
    base lsp-protection-state;
    description
      "A manual switchover command is active.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity wait-to-restore {
    base lsp-protection-state;
    description
      "A WTR timer is running.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity do-not-revert {
    base lsp-protection-state;
    description
      "A Do Not Revert (DNR) condition is active because of
       non-revertive behavior.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity failure-of-protocol {
    base lsp-protection-state;
    description
      "LSP protection is not working because of a protocol failure
       condition.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity protection-external-commands {
    description
      "Base identity from which protection-related external commands
       used for troubleshooting purposes are derived.";
  }

  identity action-freeze {
    base protection-external-commands;
    description
      "A temporary configuration action initiated by an operator
       command that prevents any switchover action from being taken
       and, as such, freezes the current state.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity clear-freeze {
    base protection-external-commands;
    description
      "An action that clears the active freeze state.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity action-lockout-of-normal {
    base protection-external-commands;
    description
      "A temporary configuration action initiated by an operator
       command to ensure that the normal traffic is not allowed
       to use the protection transport entity.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity clear-lockout-of-normal {
    base protection-external-commands;
    description
      "An action that clears the active lockout of the
       normal state.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity action-lockout-of-protection {
    base protection-external-commands;
    description
      "A temporary configuration action initiated by an operator
       command to ensure that the protection transport entity is
       temporarily not available to transport a traffic signal
       (either normal or Extra-Traffic).";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity action-forced-switch {
    base protection-external-commands;
    description
      "A switchover action initiated by an operator command to switch
       the Extra-Traffic signal, the normal traffic signal, or the
       null signal to the protection transport entity, unless a
       switchover command of equal or higher priority is in effect.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity action-manual-switch {
    base protection-external-commands;
    description
      "A switchover action initiated by an operator command to switch
       the Extra-Traffic signal, the normal traffic signal, or
       the null signal to the protection transport entity, unless
       a fault condition exists on other transport entities or a
       switchover command of equal or higher priority is in effect.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  // CHANGE NOTE: The description and reference of the 
  // identity action-exercise have been updated in this module 
  // revision
  // RFC Editor: remove the note above and this note
  identity action-exercise {
    base protection-external-commands;
    description
      "An action that starts testing whether or not Automatic 
       Protection Switching (APS) communication is operating 
       correctly.  It is of lower priority than any
       other state or command.";
    reference
      "ITU-T G.808.1: Generic protection switching - Linear trail and
                      subnetwork protection - Edition 4.0 (05/2014)";
  }

  identity clear {
    base protection-external-commands;
    description
      "An action that clears the active near-end lockout of a
       protection, forced switchover, manual switchover, WTR state,
       or exercise command.";
    reference
      "RFC 4427: Recovery (Protection and Restoration) Terminology
                 for Generalized Multi-Protocol Label Switching
                 (GMPLS)";
  }

  identity switching-capabilities {
    description
      "Base identity for interface switching capabilities.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity switching-psc1 {
    base switching-capabilities;
    description
      "Packet-Switch Capable-1 (PSC-1).";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity switching-evpl {
    base switching-capabilities;
    description
      "Ethernet Virtual Private Line (EVPL).";
    reference
      "RFC 6004: Generalized MPLS (GMPLS) Support for Metro Ethernet
                 Forum and G.8011 Ethernet Service Switching";
  }

  identity switching-l2sc {
    base switching-capabilities;
    description
      "Layer-2 Switch Capable (L2SC).";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity switching-tdm {
    base switching-capabilities;
    description
      "Time-Division-Multiplex Capable (TDM).";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity switching-otn {
    base switching-capabilities;
    description
      "OTN-TDM capable.";
    reference
      "RFC 7138: Traffic Engineering Extensions to OSPF for GMPLS
                 Control of Evolving G.709 Optical Transport
                 Networks";
  }

  identity switching-dcsc {
    base switching-capabilities;
    description
      "Data Channel Switching Capable (DCSC).";
    reference
      "RFC 6002: Generalized MPLS (GMPLS) Data Channel
                 Switching Capable (DCSC) and Channel Set Label
                 Extensions";
  }

  identity switching-lsc {
    base switching-capabilities;
    description
      "Lambda-Switch Capable (LSC).";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity switching-fsc {
    base switching-capabilities;
    description
      "Fiber-Switch Capable (FSC).";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-types {
    description
      "Base identity for encoding types.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-packet {
    base lsp-encoding-types;
    description
      "Packet LSP encoding.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-ethernet {
    base lsp-encoding-types;
    description
      "Ethernet LSP encoding.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-pdh {
    base lsp-encoding-types;
    description
      "ANSI/ETSI PDH LSP encoding.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-sdh {
    base lsp-encoding-types;
    description
      "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-digital-wrapper {
    base lsp-encoding-types;
    description
      "Digital Wrapper LSP encoding.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-lambda {
    base lsp-encoding-types;
    description
      "Lambda (photonic) LSP encoding.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-fiber {
    base lsp-encoding-types;
    description
      "Fiber LSP encoding.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-fiber-channel {
    base lsp-encoding-types;
    description
      "FiberChannel LSP encoding.";
    reference
      "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Functional Description";
  }

  identity lsp-encoding-oduk {
    base lsp-encoding-types;
    description
      "G.709 ODUk (Digital Path) LSP encoding.";
    reference
      "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Extensions for G.709 Optical Transport
                 Networks Control";
  }

  identity lsp-encoding-optical-channel {
    base lsp-encoding-types;
    description
      "G.709 Optical Channel LSP encoding.";
    reference
      "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS)
                 Signaling Extensions for G.709 Optical Transport
                 Networks Control";
  }

  identity lsp-encoding-line {
    base lsp-encoding-types;
    description
      "Line (e.g., 8B/10B) LSP encoding.";
    reference
      "RFC 6004: Generalized MPLS (GMPLS) Support for Metro
                 Ethernet Forum and G.8011 Ethernet Service
                 Switching";
  }

  identity path-signaling-type {
    description
      "Base identity from which specific LSP path setup types
       are derived.";
  }

  identity path-setup-static {
    base path-signaling-type;
    description
      "Static LSP provisioning path setup.";
  }

  identity path-setup-rsvp {
    base path-signaling-type;
    description
      "RSVP-TE signaling path setup.";
    reference
      "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
  }

  identity path-setup-sr {
    base path-signaling-type;
    description
      "Segment-routing path setup.";
  }

  identity path-scope-type {
    description
      "Base identity from which specific path scope types are
       derived.";
  }

  identity path-scope-segment {
    base path-scope-type;
    description
      "Path scope segment.";
    reference
      "RFC 4873: GMPLS Segment Recovery";
  }

  identity path-scope-end-to-end {
    base path-scope-type;
    description
      "Path scope end to end.";
    reference
      "RFC 4873: GMPLS Segment Recovery";
  }

  identity route-usage-type {
    description
      "Base identity for route usage.";
  }

  identity route-include-object {
    base route-usage-type;
    description
      "'Include route' object.";
  }

  identity route-exclude-object {
    base route-usage-type;
    description
      "'Exclude route' object.";
    reference
      "RFC 4874: Exclude Routes - Extension to Resource ReserVation
                 Protocol-Traffic Engineering (RSVP-TE)";
  }

  identity route-exclude-srlg {
    base route-usage-type;
    description
      "Excludes SRLGs.";
    reference
      "RFC 4874: Exclude Routes - Extension to Resource ReserVation
                 Protocol-Traffic Engineering (RSVP-TE)";
  }

  // CHANGE NOTE: The path-metric-optimization-type base identity
  // has been added in this module revision
  // RFC Editor: remove the note above and this note
  identity path-metric-optimization-type {
    description
      "Base identity used to define the path metric optimization
       types.";
  }

  // CHANGE NOTE: The link-path-metric-type base identity
  // has been added in this module revision
  // RFC Editor: remove the note above and this note
  identity link-path-metric-type {
    description
      "Base identity used to define the link and the path metric
       types.
      
       The unit of the path metric value is interpreted in the
       context of the path metric type and the derived identities
       SHOULD describe the unit of the path metric types they
       define.";
  }

    // CHANGE NOTE: The link-metric-type base identity
    // and its derived identities
    // have been added in this module revision
    // RFC Editor: remove the note above and this note
    identity link-metric-type {
      base link-path-metric-type;
      description
        "Base identity for the link metric types.";
    }

      identity link-metric-te {
        base link-metric-type;
        description
          "Traffic Engineering (TE) Link Metric.";
        reference
          "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
                     Version 2, Section 2.5.5
           RFC 5305: IS-IS Extensions for Traffic Engineering,
                     Section 3.7";
      }

      identity link-metric-igp {
        base link-metric-type;
        description
          "Interior Gateway Protocol (IGP) Link Metric.";
        reference
          "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric
                     as a second MPLS Traffic Engineering (TE)
                     Metric";
      }

      identity link-metric-delay-average {
        base link-metric-type;
        description
          "Unidirectional Link Delay, measured in units of
           microseconds.";
        reference
          "RFC 7471: OSPF Traffic Engineering (TE) Metric
                     Extensions, Section 4.1        
           RFC 8570: IS-IS Traffic Engineering (TE) Metric
                     Extensions, Section 4.1";
      }

      identity link-metric-delay-minimum {
        base link-metric-type;
        description
          "Minimum unidirectional Link Delay, measured in units of
           microseconds.";
        reference
          "RFC 7471: OSPF Traffic Engineering (TE) Metric
                     Extensions, Section 4.2
           RFC 8570: IS-IS Traffic Engineering (TE) Metric
                     Extensions, Section 4.2";
      }

      identity link-metric-delay-maximum {
        base link-metric-type;
        description
          "Maximum unidirectional Link Delay, measured in units of
           microseconds.";
        reference
          "RFC 7471: OSPF Traffic Engineering (TE) Metric
                     Extensions, Section 4.2
           RFC 8570: IS-IS Traffic Engineering (TE) Metric
                     Extensions, Section 4.2";
      }

      identity link-metric-residual-bandwidth {
        base link-metric-type;
        description
          "Unidirectional Residual Bandwidth, measured in units of
           bytes per second.
          
           It is defined to be Maximum Bandwidth minus the bandwidth
           currently allocated to LSPs.";
        reference
          "RFC 7471: OSPF Traffic Engineering (TE) Metric
                     Extensions, Section 4.5
           RFC 8570: IS-IS Traffic Engineering (TE) Metric
                     Extensions, Section 4.5";
      }

    // CHANGE NOTE: The base and the description of the
    // path-metric-type identity
    // has been updated in this module revision
    // RFC Editor: remove the note above and this note
    identity path-metric-type {
      base link-path-metric-type;
      base path-metric-optimization-type;
      description
        "Base identity for the path metric types.";
    }

      // CHANGE NOTE: The description and the reference of the
      // path-metric-te identity have been updated
      // in this module revision
      // RFC Editor: remove the note above and this note
      identity path-metric-te {
        base path-metric-type;
        description
          "Traffic Engineering (TE) Path Metric.";
        reference
          "RFC 5440: Path Computation Element (PCE) Communication
                     Protocol (PCEP), Section 7.8";
      }

      // CHANGE NOTE: The description and the reference of the
      // path-metric-igp identity have been updated 
      // in this module revision
      // RFC Editor: remove the note above and this note
      identity path-metric-igp {
        base path-metric-type;
        description
          "Interior Gateway Protocol (IGP) Path Metric.";
        reference
          "RFC 5440: Path Computation Element (PCE) Communication
                     Protocol (PCEP), section 7.8";
      }

      // CHANGE NOTE: The description and the reference of the
      // path-metric-hop identity have been updated
      // in this module revision
      // RFC Editor: remove the note above and this note
      identity path-metric-hop {
        base path-metric-type;
        description
          "Hop Count Path Metric.";
        reference
          "RFC 5440: Path Computation Element (PCE) Communication
                     Protocol (PCEP), Section 7.8";
      }

      // CHANGE NOTE: The description and the reference of the
      // path-metric-delay-average identity have been updated
      // in this module revision
      // RFC Editor: remove the note above and this note
      identity path-metric-delay-average {
        base path-metric-type;
        description
          "The Path Delay Metric, measured in units of
           microseconds.";
        reference
          "RFC8233: Extensions to the Path Computation Element
                    Communication Protocol (PCEP) to Compute
                    Service-Aware Label Switched Paths (LSPs),
                    Section 3.1.1";
      }

      // CHANGE NOTE: The description and the reference of the
      // path-metric-delay-minimum identity have been updated
      // in this module revision
      // RFC Editor: remove the note above and this note
      identity path-metric-delay-minimum {
        base path-metric-type;
        description
          "The Path Min Delay Metric, measured in units of
           microseconds.";
        reference
          "RFC YYYY: Carrying SR-Algorithm information in PCE-based
                     Networks, Section 3.5.1";
      }
      // RFC Editor: replace YYYY with actual RFC number assigned to 
      // [I-D.ietf-pce-sid-algo] and remove this note

      // CHANGE NOTE: The description and the reference of the
      // path-metric-residual-bandwidth identity have been updated
      // in this module revision
      // RFC Editor: remove the note above and this note
      identity path-metric-residual-bandwidth {
        base path-metric-type;
        description
          "The Path Residual Bandwidth, defined as the minimum Link
           Residual Bandwidth all the links along the path.

           The Path Residual Bandwidth can be seen as the path
           metric associated with the Maximum residual Bandwidth Path
           (MBP) objective function.";
        reference
          "RFC 5541: Encoding of Objective Functions in the Path
                     Computation Element Communication Protocol
                     (PCEP)";
      }

    // CHANGE NOTE: The base of the path-metric-optimize-includes
    // identity has been updated in this module revision
    // RFC Editor: remove the note above and this note
    identity path-metric-optimize-includes {
      base path-metric-optimization-type;
      description
        "A metric that optimizes the number of included resources
         specified in a set.";
    }

    // CHANGE NOTE: The base of the path-metric-optimize-excludes
    // identity has been updated in this module revision
    // RFC Editor: remove the note above and this note
    identity path-metric-optimize-excludes {
      base path-metric-optimization-type;
      description
        "A metric that optimizes to a maximum the number of excluded
         resources specified in a set.";
    }

  identity path-tiebreaker-type {
    description
      "Base identity for the path tiebreaker type.";
  }

  identity path-tiebreaker-minfill {
    base path-tiebreaker-type;
    description
      "Min-Fill LSP path placement: selects the path with the most
       available bandwidth (load balance LSPs over more links).";
  }

  identity path-tiebreaker-maxfill {
    base path-tiebreaker-type;
    description
      "Max-Fill LSP path placement: selects the path with the least
       available bandwidth (packing more LSPs over few links).";
  }

  identity path-tiebreaker-random {
    base path-tiebreaker-type;
    description
      "Random LSP path placement.";
  }

  identity resource-affinities-type {
    description
      "Base identity for resource class affinities.";
    reference
      "RFC 2702: Requirements for Traffic Engineering Over MPLS";
  }

  identity resource-aff-include-all {
    base resource-affinities-type;
    description
      "The set of attribute filters associated with a
       tunnel, all of which must be present for a link
       to be acceptable.";
    reference
      "RFC 2702: Requirements for Traffic Engineering Over MPLS
       RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
  }

  identity resource-aff-include-any {
    base resource-affinities-type;
    description
      "The set of attribute filters associated with a
       tunnel, any of which must be present for a link
       to be acceptable.";
    reference
      "RFC 2702: Requirements for Traffic Engineering Over MPLS
       RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
  }

  identity resource-aff-exclude-any {
    base resource-affinities-type;
    description
      "The set of attribute filters associated with a
       tunnel, any of which renders a link unacceptable.";
    reference
      "RFC 2702: Requirements for Traffic Engineering Over MPLS
       RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
  }

  // CHANGE NOTE: The reference of the identity 
  // te-optimization-criterion below has been updated
  // in this module revision
  // RFC Editor: remove the note above and this note
  identity te-optimization-criterion {
    description
      "Base identity for the TE optimization criteria.";
    reference
      "RFC 9522: Overview and Principles of Internet Traffic
                 Engineering";
  }

  identity not-optimized {
    base te-optimization-criterion;
    description
      "Optimization is not applied.";
  }

  identity cost {
    base te-optimization-criterion;
    description
      "Optimized on cost.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

  identity delay {
    base te-optimization-criterion;
    description
      "Optimized on delay.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

  identity path-computation-srlg-type {
    description
      "Base identity for SRLG path computation.";
  }

  identity srlg-ignore {
    base path-computation-srlg-type;
    description
      "Ignores SRLGs in the path computation.";
  }

  identity srlg-strict {
    base path-computation-srlg-type;
    description
      "Includes a strict SRLG check in the path computation.";
  }

  identity srlg-preferred {
    base path-computation-srlg-type;
    description
      "Includes a preferred SRLG check in the path computation.";
  }

  identity srlg-weighted {
    base path-computation-srlg-type;
    description
      "Includes a weighted SRLG check in the path computation.";
  }

  // CHANGE NOTE: The base identity path-computation-error-reason 
  // and its derived identities below have been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  identity path-computation-error-reason {
    description
      "Base identity for path computation error reasons.";
  }

    identity path-computation-error-path-not-found {
      base path-computation-error-reason;
      description
        "Path computation has failed because of an unspecified 
         reason.";
      reference
        "RFC 5440: Path Computation Element (PCE) Communication
                   Protocol (PCEP), Section 7.5";
    }

    identity path-computation-error-no-topology {
      base path-computation-error-reason;
      description
        "Path computation has failed because there is no topology
         with the provided topology-identifier.";
    }

    identity path-computation-error-no-dependent-server {
      base path-computation-error-reason;
      description
        "Path computation has failed because one or more dependent
         path computation servers are unavailable.

         The dependent path computation server could be
         a Backward-Recursive Path Computation (BRPC) downstream
         PCE or a child PCE.";
      reference
        "RFC 5441: A Backward-Recursive PCE-Based Computation (BRPC)
                   Procedure to Compute Shortest Constrained
                   Inter-Domain Traffic Engineering Label Switched
                   Paths
         RFC 8685: Path Computation Element Communication Protocol
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture";
    }

    identity path-computation-error-pce-unavailable {
      base path-computation-error-reason;
      description
        "Path computation has failed because PCE is not available.
        
         It corresponds to bit 31 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 5440: Path Computation Element (PCE) Communication
                   Protocol (PCEP)
         
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-no-inclusion-hop {
      base path-computation-error-reason;
      description
        "Path computation has failed because there is no
         node or link provided by one or more inclusion hops.";
    }

    identity path-computation-error-destination-unknown-in-domain {
      base path-computation-error-reason;
      description
        "Path computation has failed because the destination node is
         unknown in indicated destination domain.
        
         It corresponds to bit 19 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 8685: Path Computation Element Communication Protocol
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture
         
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-no-resource {
      base path-computation-error-reason;
      description
        "Path computation has failed because there is no
         available resource in one or more domains.
        
         It corresponds to bit 20 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 8685: Path Computation Element Communication Protocol
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-child-pce-unresponsive {
      base path-computation-error-no-dependent-server;
      description
        "Path computation has failed because child PCE is not
         responsive.
        
         It corresponds to bit 21 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 8685: Path Computation Element Communication Protocol
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-destination-domain-unknown {
      base path-computation-error-reason;
      description
        "Path computation has failed because the destination domain
         was unknown.
        
         It corresponds to bit 22 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 8685: Path Computation Element Communication Protocol
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-p2mp {
      base path-computation-error-reason;
      description
        "Path computation has failed because of P2MP reachability
         problem.
        
         It corresponds to bit 24 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 8306: Extensions to the Path Computation Element
                   Communication Protocol (PCEP) for
                   Point-to-Multipoint Traffic Engineering Label
                   Switched Paths
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-no-gco-migration {
      base path-computation-error-reason;
      description
        "Path computation has failed because of no Global Concurrent
         Optimization (GCO) migration path found.
        
         It corresponds to bit 26 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 5557: Path Computation Element Communication Protocol
                   (PCEP) Requirements and Protocol Extensions in
                   Support of Global Concurrent Optimization
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-no-gco-solution {
      base path-computation-error-reason;
      description
        "Path computation has failed because of no GCO solution
         found.
        
         It corresponds to bit 25 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 5557: Path Computation Element Communication Protocol
                   (PCEP) Requirements and Protocol Extensions in
                   Support of Global Concurrent Optimization
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-pks-expansion {
      base path-computation-error-reason;
      description
        "Path computation has failed because of Path-Key Subobject
         (PKS)  expansion failure.
        
         It corresponds to bit 27 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 5520: Preserving Topology Confidentiality in
                   Inter-Domain Path Computation Using a
                   Path-Key-Based Mechanism
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-brpc-chain-unavailable {
      base path-computation-error-no-dependent-server;
      description
        "Path computation has failed because PCE BRPC chain
         unavailable.
        
         It corresponds to bit 28 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 5441: A Backward-Recursive PCE-Based Computation (BRPC)
                   Procedure to Compute Shortest Constrained
                   Inter-Domain Traffic Engineering Label Switched
                   Paths
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-source-unknown {
      base path-computation-error-reason;
      description
        "Path computation has failed because source node is 
         unknown.
        
         It corresponds to bit 29 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 5440: Path Computation Element (PCE) Communication
                   Protocol (PCEP);
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-destination-unknown {
      base path-computation-error-reason;
      description
        "Path computation has failed because destination node is
         unknown.
        
         It corresponds to bit 30 of the Flags field of the 
         NO-PATH-VECTOR TLV.";
      reference
        "RFC 5440: Path Computation Element (PCE) Communication
        Protocol (PCEP);
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

    identity path-computation-error-no-server {
      base path-computation-error-reason;
      description
        "Path computation has failed because path computation
         server is unavailable.";
      reference
        "RFC 5440: Path Computation Element (PCE) Communication
                   Protocol (PCEP);
        
         https://www.iana.org/assignments/pcep
         /pcep.xhtml#no-path-vector-tlv";
    }

  // CHANGE NOTE: The base identity protocol-origin-type and 
  // its derived identities below have been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  identity protocol-origin-type {
    description
      "Base identity for protocol origin type.";
  }

    identity protocol-origin-api {
      base protocol-origin-type;
      description
        "Protocol origin is via Application Programming Interface
         (API).";
    }

    identity protocol-origin-pcep {
      base protocol-origin-type;
      description
        "Protocol origin is Path Computation Engine Protocol 
         (PCEP).";
      reference
        "RFC 5440: Path Computation Element (PCE) Communication
                   Protocol (PCEP)";
    }

    identity protocol-origin-bgp {
      base protocol-origin-type;
      description
        "Protocol origin is Border Gateway Protocol (BGP).";
      reference
        "RFC 9012: The BGP Tunnel Encapsulation Attribute";
    }

  // CHANGE NOTE: The base identity svec-objective-function-type 
  // and its derived identities below have been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  identity svec-objective-function-type {
    description
      "Base identity for SVEC objective function type.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

    identity svec-of-minimize-agg-bandwidth-consumption {
      base svec-objective-function-type;
      description
        "Objective function for minimizing aggregate bandwidth 
         consumption (MBC).";
      reference
        "RFC 5541: Encoding of Objective Functions in the Path
                   Computation Element Communication Protocol
                   (PCEP)";
    }

    identity svec-of-minimize-load-most-loaded-link {
      base svec-objective-function-type;
      description
        "Objective function for minimizing the load on the link that 
         is carrying the highest load (MLL).";
      reference
        "RFC 5541: Encoding of Objective Functions in the Path
                   Computation Element Communication Protocol
                   (PCEP)";
    }

    identity svec-of-minimize-cost-path-set {
      base svec-objective-function-type;
      description
        "Objective function for minimizing the cost on a path set 
         (MCC).";
      reference
        "RFC 5541: Encoding of Objective Functions in the Path
                   Computation Element Communication Protocol
                   (PCEP)";
    }

    identity svec-of-minimize-common-transit-domain {
      base svec-objective-function-type;
      description
        "Objective function for minimizing the number of common 
         transit domains (MCTD).";
      reference
        "RFC 8685: Path Computation Element Communication Protocol 
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture.";
    }

    identity svec-of-minimize-shared-link {
      base svec-objective-function-type;
      description
        "Objective function for minimizing the number of shared 
         links (MSL).";
      reference
        "RFC 8685: Path Computation Element Communication Protocol 
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture.";
    }

    identity svec-of-minimize-shared-srlg {
      base svec-objective-function-type;
      description
        "Objective function for minimizing the number of shared 
         Shared Risk Link Groups (SRLG) (MSS).";
      reference
        "RFC 8685: Path Computation Element Communication Protocol 
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture.";
    }

    identity svec-of-minimize-shared-nodes {
      base svec-objective-function-type;
      description
        "Objective function for minimizing the number of shared 
         nodes (MSN).";
      reference
        "RFC 8685: Path Computation Element Communication Protocol
                   (PCEP) Extensions for the Hierarchical Path
                   Computation Element (H-PCE) Architecture.";
    }

  // CHANGE NOTE: The base identity svec-metric-type and 
  // its derived identities below have been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  identity svec-metric-type {
    description
      "Base identity for SVEC metric type.";
    reference
      "RFC 5541: Encoding of Objective Functions in the Path
                 Computation Element Communication Protocol (PCEP)";
  }

    identity svec-metric-cumulative-te {
      base svec-metric-type;
      description
        "Cumulative TE cost.";
      reference
        "RFC 5541: Encoding of Objective Functions in the Path
                   Computation Element Communication Protocol
                   (PCEP)";
    }

    identity svec-metric-cumulative-igp {
      base svec-metric-type;
      description
        "Cumulative IGP cost.";
      reference
        "RFC 5541: Encoding of Objective Functions in the Path
                   Computation Element Communication Protocol
                   (PCEP)";
    }

    identity svec-metric-cumulative-hop {
      base svec-metric-type;
      description
        "Cumulative Hop path metric.";
      reference
        "RFC 5541: Encoding of Objective Functions in the Path
                   Computation Element Communication Protocol
                   (PCEP)";
    }

    identity svec-metric-aggregate-bandwidth-consumption {
      base svec-metric-type;
      description
        "Aggregate bandwidth consumption.";
      reference
        "RFC 5541: Encoding of Objective Functions in the Path
                   Computation Element Communication Protocol
                   (PCEP)";
    }

    identity svec-metric-load-of-the-most-loaded-link {
      base svec-metric-type;
      description
        "Load of the most loaded link.";
      reference
        "RFC 5541: Encoding of Objective Functions in the Path
                   Computation Element Communication Protocol
                   (PCEP)";
    }

  /**
   * TE bandwidth groupings
   **/

  grouping te-bandwidth {
    description
      "This grouping defines the generic TE bandwidth.
       For some known data-plane technologies, specific modeling
       structures are specified.  The string-encoded 'te-bandwidth'
       type is used for unspecified technologies.
       The modeling structure can be augmented later for other
       technologies.";
    container te-bandwidth {
      description
        "Container that specifies TE bandwidth.  The choices
         can be augmented for specific data-plane technologies.";
      choice technology {
        default "generic";
        description
          "Data-plane technology type.";
        case generic {
          leaf generic {
            type te-bandwidth;
            description
              "Bandwidth specified in a generic format.";
          }
        }
      }
    }
  }

  /**
   * TE label groupings
   **/

  grouping te-label {
    description
      "This grouping defines the generic TE label.
       The modeling structure can be augmented for each technology.
       For unspecified technologies, 'rt-types:generalized-label'
       is used.";
    container te-label {
      description
        "Container that specifies the TE label.  The choices can
         be augmented for specific data-plane technologies.";
      choice technology {
        default "generic";
        description
          "Data-plane technology type.";
        case generic {
          leaf generic {
            type rt-types:generalized-label;
            description
              "TE label specified in a generic format.";
          }
        }
      }
      leaf direction {
        type te-label-direction;
        default "forward";
        description
          "Label direction.";
      }
    }
  }

  grouping te-topology-identifier {
    description
      "Augmentation for a TE topology.";
    container te-topology-identifier {
      description
        "TE topology identifier container.";
      leaf provider-id {
        type te-global-id;
        default "0";
        description
          "An identifier to uniquely identify a provider.
           If omitted, it assumes that the topology provider ID
           value = 0 (the default).";
      }
      leaf client-id {
        type te-global-id;
        default "0";
        description
          "An identifier to uniquely identify a client.
           If omitted, it assumes that the topology client ID
           value = 0 (the default).";
      }
      leaf topology-id {
        type te-topology-id;
        default "";
        description
          "When the datastore contains several topologies,
           'topology-id' distinguishes between them.  If omitted,
           the default (empty) string for this leaf is assumed.";
      }
    }
  }

  /**
   * TE performance metrics groupings
   **/

  grouping performance-metrics-one-way-delay-loss {
    description
      "Performance Metrics (PM) information in real time that can
       be applicable to links or connections.  PM defined in this
       grouping are applicable to generic TE PM as well as packet TE
       PM.";
    reference
      "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions
       RFC 7823: Performance-Based Path Selection for Explicitly
                 Routed Label Switched Paths (LSPs) Using TE Metric
                 Extensions
       RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
    leaf one-way-delay {
      type uint32 {
        range "0..16777215";
      }
      description
        "One-way delay or latency in microseconds.";
    }
    leaf one-way-delay-normality {
      type te-types:performance-metrics-normality;
      description
        "One-way delay normality.";
    }
  }

  grouping performance-metrics-two-way-delay-loss {
    description
      "PM information in real time that can be applicable to links or
       connections.  PM defined in this grouping are applicable to
       generic TE PM as well as packet TE PM.";
    reference
      "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions
       RFC 7823: Performance-Based Path Selection for Explicitly
                 Routed Label Switched Paths (LSPs) Using TE Metric
                 Extensions
       RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
    leaf two-way-delay {
      type uint32 {
        range "0..16777215";
      }
      description
        "Two-way delay or latency in microseconds.";
    }
    leaf two-way-delay-normality {
      type te-types:performance-metrics-normality;
      description
        "Two-way delay normality.";
    }
  }

  grouping performance-metrics-one-way-bandwidth {
    description
      "PM information in real time that can be applicable to links.
       PM defined in this grouping are applicable to generic TE PM
       as well as packet TE PM.";
    reference
      "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions
       RFC 7823: Performance-Based Path Selection for Explicitly
                 Routed Label Switched Paths (LSPs) Using TE Metric
                 Extensions
       RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
    leaf one-way-residual-bandwidth {
      type rt-types:bandwidth-ieee-float32;
      units "bytes per second";
      default "0x0p0";
      description
        "Residual bandwidth that subtracts tunnel reservations from
         Maximum Bandwidth (or link capacity) (RFC 3630) and
         provides an aggregated remainder across QoS classes.";
      reference
        "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
                   Version 2";
    }
    leaf one-way-residual-bandwidth-normality {
      type te-types:performance-metrics-normality;
      default "normal";
      description
        "Residual bandwidth normality.";
    }
    leaf one-way-available-bandwidth {
      type rt-types:bandwidth-ieee-float32;
      units "bytes per second";
      default "0x0p0";
      description
        "Available bandwidth that is defined to be residual
         bandwidth minus the measured bandwidth used for the
         actual forwarding of non-RSVP-TE LSP packets.  For a
         bundled link, available bandwidth is defined to be the
         sum of the component link available bandwidths.";
    }
    leaf one-way-available-bandwidth-normality {
      type te-types:performance-metrics-normality;
      default "normal";
      description
        "Available bandwidth normality.";
    }
    leaf one-way-utilized-bandwidth {
      type rt-types:bandwidth-ieee-float32;
      units "bytes per second";
      default "0x0p0";
      description
        "Bandwidth utilization that represents the actual
         utilization of the link (i.e., as measured in the router).
         For a bundled link, bandwidth utilization is defined to
         be the sum of the component link bandwidth utilizations.";
    }
    leaf one-way-utilized-bandwidth-normality {
      type te-types:performance-metrics-normality;
      default "normal";
      description
        "Bandwidth utilization normality.";
    }
  }

  grouping one-way-performance-metrics {
    description
      "One-way PM throttle grouping.";
    leaf one-way-delay {
      type uint32 {
        range "0..16777215";
      }
      default "0";
      description
        "One-way delay or latency in microseconds.";
    }
    leaf one-way-residual-bandwidth {
      type rt-types:bandwidth-ieee-float32;
      units "bytes per second";
      default "0x0p0";
      description
        "Residual bandwidth that subtracts tunnel reservations from
         Maximum Bandwidth (or link capacity) (RFC 3630) and
         provides an aggregated remainder across QoS classes.";
      reference
        "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
                   Version 2";
    }
    leaf one-way-available-bandwidth {
      type rt-types:bandwidth-ieee-float32;
      units "bytes per second";
      default "0x0p0";
      description
        "Available bandwidth that is defined to be residual
         bandwidth minus the measured bandwidth used for the
         actual forwarding of non-RSVP-TE LSP packets.  For a
         bundled link, available bandwidth is defined to be the
         sum of the component link available bandwidths.";
    }
    leaf one-way-utilized-bandwidth {
      type rt-types:bandwidth-ieee-float32;
      units "bytes per second";
      default "0x0p0";
      description
        "Bandwidth utilization that represents the actual
         utilization of the link (i.e., as measured in the router).
         For a bundled link, bandwidth utilization is defined to
         be the sum of the component link bandwidth utilizations.";
    }
  }

  grouping two-way-performance-metrics {
    description
      "Two-way PM throttle grouping.";
    leaf two-way-delay {
      type uint32 {
        range "0..16777215";
      }
      default "0";
      description
        "Two-way delay or latency in microseconds.";
    }
  }

  grouping performance-metrics-thresholds {
    description
      "Grouping for configurable thresholds for measured
       attributes.";
    uses one-way-performance-metrics;
    uses two-way-performance-metrics;
  }

  grouping performance-metrics-attributes {
    description
      "Contains PM attributes.";
    container performance-metrics-one-way {
      description
        "One-way link performance information in real time.";
      reference
        "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions
         RFC 7823: Performance-Based Path Selection for Explicitly
                   Routed Label Switched Paths (LSPs) Using TE Metric
                   Extensions
         RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
      uses performance-metrics-one-way-delay-loss;
      uses performance-metrics-one-way-bandwidth;
    }
    container performance-metrics-two-way {
      description
        "Two-way link performance information in real time.";
      reference
        "RFC 6374: Packet Loss and Delay Measurement for MPLS
                   Networks";
      uses performance-metrics-two-way-delay-loss;
    }
  }

  grouping performance-metrics-throttle-container {
    description
      "Controls PM throttling.";
    container throttle {
      must 'suppression-interval >= measure-interval' {
        error-message "'suppression-interval' cannot be less than "
                    + "'measure-interval'.";
        description
          "Constraint on 'suppression-interval' and
           'measure-interval'.";
      }
      description
        "Link performance information in real time.";
      reference
        "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions
         RFC 7823: Performance-Based Path Selection for Explicitly
                   Routed Label Switched Paths (LSPs) Using TE Metric
                   Extensions
         RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions";
      leaf one-way-delay-offset {
        type uint32 {
          range "0..16777215";
        }
        default "0";
        description
          "Offset value to be added to the measured delay value.";
      }
      leaf measure-interval {
        type uint32;
        default "30";
        description
          "Interval, in seconds, to measure the extended metric
           values.";
      }
      leaf advertisement-interval {
        type uint32;
        default "0";
        description
          "Interval, in seconds, to advertise the extended metric
           values.";
      }
      leaf suppression-interval {
        type uint32 {
          range "1..max";
        }
        default "120";
        description
          "Interval, in seconds, to suppress advertisement of the
           extended metric values.";
        reference
          "RFC 8570: IS-IS Traffic Engineering (TE) Metric
                     Extensions, Section 6";
      }
      container threshold-out {
        uses performance-metrics-thresholds;
        description
          "If the measured parameter falls outside an upper bound
           for all but the minimum-delay metric (or a lower bound
           for the minimum-delay metric only) and the advertised
           value is not already outside that bound, an 'anomalous'
           announcement (anomalous bit set) will be triggered.";
      }
      container threshold-in {
        uses performance-metrics-thresholds;
        description
          "If the measured parameter falls inside an upper bound
           for all but the minimum-delay metric (or a lower bound
           for the minimum-delay metric only) and the advertised
           value is not already inside that bound, a 'normal'
           announcement (anomalous bit cleared) will be triggered.";
      }
      container threshold-accelerated-advertisement {
        description
          "When the difference between the last advertised value and
           the current measured value exceeds this threshold, an
           'anomalous' announcement (anomalous bit set) will be
           triggered.";
        uses performance-metrics-thresholds;
      }
    }
  }

  /**
   * TE tunnel generic groupings
   **/

  // CHANGE NOTE: The explicit-route-hop grouping below has been
  // updated in this module revision
  // RFC Editor: remove the note above and this note
  grouping explicit-route-hop {
    description
      "The explicit route entry grouping.";
    choice type {
      description
        "The explicit route entry type.";
      case numbered-node-hop {
        container numbered-node-hop {
          must "node-id-uri or node-id" {
            description
              "At least one node identifier MUST be present.";
          }
          leaf node-id-uri {
            type nw:node-id;
            description
              "The identifier of a node in the topology.";
          }
          leaf node-id {
            type te-node-id;
            description
              "The identifier of a node in the TE topology.";
          }
          leaf hop-type {
            type te-hop-type;
            default "strict";
            description
              "Strict or loose hop.";
          }
          description
            "Numbered node route hop.";
          reference
            "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels,
                       Section 4.3, EXPLICIT_ROUTE in RSVP-TE
             RFC 3477: Signalling Unnumbered Links in Resource
                       ReSerVation Protocol - Traffic Engineering
                       (RSVP-TE)";
        }
      }
      case numbered-link-hop {
        container numbered-link-hop {
          leaf link-tp-id {
            type te-tp-id;
            mandatory true;
            description
              "TE Link Termination Point (LTP) identifier.";
          }
          leaf hop-type {
            type te-hop-type;
            default "strict";
            description
              "Strict or loose hop.";
          }
          leaf direction {
            type te-link-direction;
            default "outgoing";
            description
              "Link route object direction.";
          }
          description
            "Numbered link explicit route hop.";
          reference
            "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels,
                       Section 4.3, EXPLICIT_ROUTE in RSVP-TE
             RFC 3477: Signalling Unnumbered Links in Resource
                       ReSerVation Protocol - Traffic Engineering
                       (RSVP-TE)";
        }
      }
      case unnumbered-link-hop {
        container unnumbered-link-hop {
          must "(link-tp-id-uri or link-tp-id) and " +
                "(node-id-uri or node-id)" {
            description
              "At least one node identifier and at least one Link 
              Termination Point (LTP) identifier MUST be present.";
          }
          leaf link-tp-id-uri {
            type nt:tp-id;
            description
              "Link Termination Point (LTP) identifier.";
          }
          leaf link-tp-id {
            type te-tp-id;
            description
              "TE LTP identifier.  The combination of the TE link ID
               and the TE node ID is used to identify an unnumbered
               TE link.";
          }
          leaf node-id-uri {
            type nw:node-id;
            description
              "The identifier of a node in the topology.";
          }
          leaf node-id {
            type te-node-id;
            description
              "The identifier of a node in the TE topology.";
          }
          leaf hop-type {
            type te-hop-type;
            default "strict";
            description
              "Strict or loose hop.";
          }
          leaf direction {
            type te-link-direction;
            default "outgoing";
            description
              "Link route object direction.";
          }
          description
            "Unnumbered link explicit route hop.";
          reference
            "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels,
                       Section 4.3, EXPLICIT_ROUTE in RSVP-TE
             RFC 3477: Signalling Unnumbered Links in Resource
                       ReSerVation Protocol - Traffic Engineering
                       (RSVP-TE)";
        }
      }
      case as-number {
        container as-number-hop {
          leaf as-number {
            type inet:as-number;
            mandatory true;
            description
              "The Autonomous System (AS) number.";
          }
          leaf hop-type {
            type te-hop-type;
            default "strict";
            description
              "Strict or loose hop.";
          }
          description
            "AS explicit route hop.";
        }
      }
      case label {
        container label-hop {
          description
            "Label hop type.";
          uses te-label;
        }
        description
          "The label explicit route hop type.";
      }
    }
  }

  // CHANGE NOTE: The explicit-route-hop grouping below has been
  // updated in this module revision
  // RFC Editor: remove the note above and this note
  grouping record-route-state {
    description
      "The Record Route grouping.";
    leaf index {
      type uint32;
      description
        "Record Route hop index.  The index is used to
         identify an entry in the list.  The order of entries
         is defined by the user without relying on key values.";
    }
    choice type {
      description
        "The Record Route entry type.";
      case numbered-node-hop {
        container numbered-node-hop {
          must "node-id-uri or node-id" {
            description
              "At least one node identifier MUST be present.";
          }
          description
            "Numbered node route hop container.";
          leaf node-id-uri {
            type nw:node-id;
            description
              "The identifier of a node in the topology.";
          }
          leaf node-id {
            type te-node-id;
            description
              "The identifier of a node in the TE topology.";
          }
          leaf-list flags {
            type path-attribute-flags;
            description
              "Path attributes flags.";
            reference
              "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels
               RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP
                         Tunnels
               RFC 4561: Definition of a Record Route Object (RRO)
                         Node-Id Sub-Object";
          }
        }
        description
          "Numbered node route hop.";
      }
      case numbered-link-hop {
        container numbered-link-hop {
          description
            "Numbered link route hop container.";
          leaf link-tp-id {
            type te-tp-id;
            mandatory true;
            description
              "Numbered TE LTP identifier.";
          }
          leaf-list flags {
            type path-attribute-flags;
            description
              "Path attributes flags.";
            reference
              "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels
               RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP
                         Tunnels
               RFC 4561: Definition of a Record Route Object (RRO)
                         Node-Id Sub-Object";
          }
        }
        description
          "Numbered link route hop.";
      }
      case unnumbered-link-hop {
        container unnumbered-link-hop {
          must "(link-tp-id-uri or link-tp-id) and " +
              "(node-id-uri or node-id)" {
            description
              "At least one node identifier and at least one Link 
              Termination Point (LTP) identifier MUST be present.";
          }
          leaf link-tp-id-uri {
            type nt:tp-id;
            description
              "Link Termination Point (LTP) identifier.";
          }
          leaf link-tp-id {
            type te-tp-id;
            description
              "TE LTP identifier.  The combination of the TE link ID
               and the TE node ID is used to identify an unnumbered
               TE link.";
          }
          leaf node-id-uri {
            type nw:node-id;
            description
              "The identifier of a node in the topology.";
          }
          leaf node-id {
            type te-node-id;
            description
              "The identifier of a node in the TE topology.";
          }
          leaf-list flags {
            type path-attribute-flags;
            description
              "Path attributes flags.";
            reference
              "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels
               RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP
                         Tunnels
               RFC 4561: Definition of a Record Route Object (RRO)
                         Node-Id Sub-Object";
          }
          description
            "Unnumbered link Record Route hop.";
          reference
            "RFC 3477: Signalling Unnumbered Links in Resource
                       ReSerVation Protocol - Traffic Engineering
                       (RSVP-TE)";
        }
        description
          "Unnumbered link route hop.";
      }
      case label {
        container label-hop {
          description
            "Label route hop type.";
          uses te-label;
          leaf-list flags {
            type path-attribute-flags;
            description
              "Path attributes flags.";
            reference
              "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels
               RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP
                         Tunnels
               RFC 4561: Definition of a Record Route Object (RRO)
                         Node-Id Sub-Object";
          }
        }
        description
          "The label Record Route entry types.";
      }
    }
  }

  grouping label-restriction-info {
    description
      "Label set item information.";
    leaf restriction {
      type enumeration {
        enum inclusive {
          description
            "The label or label range is inclusive.";
        }
        enum exclusive {
          description
            "The label or label range is exclusive.";
        }
      }
      default "inclusive";
      description
        "Indicates whether the list item is inclusive or exclusive.";
    }
    leaf index {
      type uint32;
      description
        "The index of the label restriction list entry.";
    }
    container label-start {
      must "(not(../label-end/te-label/direction) and"
         + " not(te-label/direction))"
         + " or "
         + "(../label-end/te-label/direction = te-label/direction)"
         + " or "
         + "(not(te-label/direction) and"
         + " (../label-end/te-label/direction = 'forward'))"
         + " or "
         + "(not(../label-end/te-label/direction) and"
         + " (te-label/direction = 'forward'))" {
        error-message "'label-start' and 'label-end' must have the "
                    + "same direction.";
      }
      description
        "This is the starting label if a label range is specified.
         This is the label value if a single label is specified,
         in which case the 'label-end' attribute is not set.";
      uses te-label;
    }
    container label-end {
      must "(not(../label-start/te-label/direction) and"
         + " not(te-label/direction))"
         + " or "
         + "(../label-start/te-label/direction = te-label/direction)"
         + " or "
         + "(not(te-label/direction) and"
         + " (../label-start/te-label/direction = 'forward'))"
         + " or "
         + "(not(../label-start/te-label/direction) and"
         + " (te-label/direction = 'forward'))" {
        error-message "'label-start' and 'label-end' must have the "
                    + "same direction.";
      }
      description
        "This is the ending label if a label range is specified.
         This attribute is not set if a single label is specified.";
      uses te-label;
    }
    container label-step {
      description
        "The step increment between labels in the label range.
         The label start/end values will have to be consistent
         with the sign of label step.  For example,
         'label-start' < 'label-end' enforces 'label-step' > 0
         'label-start' > 'label-end' enforces 'label-step' < 0.";
      choice technology {
        default "generic";
        description
          "Data-plane technology type.";
        case generic {
          leaf generic {
            type int32;
            default "1";
            description
              "Label range step.";
          }
        }
      }
    }
    leaf range-bitmap {
      type yang:hex-string;
      description
        "When there are gaps between 'label-start' and 'label-end',
         this attribute is used to specify the positions
         of the used labels.  This is represented in big endian as
         'hex-string'.

         In case the restriction is 'inclusive', the bit-position is
         set if the corresponding mapped label is available.
         In this case, if the range-bitmap is not present, all the
         labels in the range are available.

         In case the restriction is 'exclusive', the bit-position is
         set if the corresponding mapped label is not available.
         In this case, if the range-bitmap is not present, all the
         labels in the range are not available.

         The most significant byte in the hex-string is the farthest
         to the left in the byte sequence.  Leading zero bytes in the
         configured value may be omitted for brevity.
         Each bit position in the 'range-bitmap' 'hex-string' maps
         to a label in the range derived from 'label-start'.

         For example, assuming that 'label-start' = 16000 and
         'range-bitmap' = 0x01000001, then:

         - bit position (0) is set, and the corresponding mapped
           label from the range is 16000 + (0 * 'label-step') or
           16000 for default 'label-step' = 1.
         - bit position (24) is set, and the corresponding mapped
           label from the range is 16000 + (24 * 'label-step') or
           16024 for default 'label-step' = 1.";
    }
  }

  grouping label-set-info {
    description
      "Grouping for the list of label restrictions specifying what
       labels may or may not be used.";
    container label-restrictions {
      description
        "The label restrictions container.";
      list label-restriction {
        key "index";
        description
          "The absence of the label restrictions container implies
           that all labels are acceptable; otherwise, only restricted
           labels are available.";
        reference
          "RFC 7579: General Network Element Constraint Encoding
                     for GMPLS-Controlled Networks";
        uses label-restriction-info;
      }
    }
  }

  // CHANGE NOTE: The grouping optimization-metric-entry below has
  // been updated in this module revision
  // RFC Editor: remove the note above and this note
  grouping optimization-metric-entry {
    description
      "Optimization metrics configuration grouping.";
    leaf metric-type {
      type identityref {
        base path-metric-optimization-type;
      }
      description
        "Identifies the 'metric-type' that the path computation
         process uses for optimization.";
    }
    leaf weight {
      type uint8;
      default "1";
      description
        "TE path metric normalization weight.";
    }
    container explicit-route-exclude-objects {
      when "../metric-type = "
         + "'te-types:path-metric-optimize-excludes'";
      description
        "Container for the 'exclude route' object list.";
      uses path-route-exclude-objects;
    }
    container explicit-route-include-objects {
      when "../metric-type = "
         + "'te-types:path-metric-optimize-includes'";
      description
        "Container for the 'include route' object list.";
      uses path-route-include-objects;
    }
  }

  grouping common-constraints {
    description
      "Common constraints grouping that can be set on
       a constraint set or directly on the tunnel.";
    uses te-bandwidth {
      description
        "A requested bandwidth to use for path computation.";
    }
    leaf link-protection {
      type identityref {
        base link-protection-type;
      }
      default "te-types:link-protection-unprotected";
      description
        "Link protection type required for the links included
         in the computed path.";
      reference
        "RFC 4202: Routing Extensions in Support of
                   Generalized Multi-Protocol Label Switching
                   (GMPLS)";
    }
    leaf setup-priority {
      type uint8 {
        range "0..7";
      }
      default "7";
      description
        "TE LSP requested setup priority.";
      reference
        "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
    }
    leaf hold-priority {
      type uint8 {
        range "0..7";
      }
      default "7";
      description
        "TE LSP requested hold priority.";
      reference
        "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
    }
    leaf signaling-type {
      type identityref {
        base path-signaling-type;
      }
      default "te-types:path-setup-rsvp";
      description
        "TE tunnel path signaling type.";
    }
  }

  // CHANGE NOTE: The grouping tunnel-constraints below has
  // been updated in this module revision
  // RFC Editor: remove the note above and this note
  grouping tunnel-constraints {
    description
      "Tunnel constraints grouping that can be set on
       a constraint set or directly on the tunnel.";
    leaf network-id {
      type nw:network-id;
      description
        "The network topology identifier.";
    }
    uses te-topology-identifier;
    uses common-constraints;
  }

  // CHANGE NOTE: The grouping path-constraints-route-objects below
  // has been updated in this module revision
  // RFC Editor: remove the note above and this note
  grouping path-constraints-route-objects {
    description
      "List of route entries to be included or excluded when
       performing the path computation.";
    container explicit-route-objects {
      description
        "Container for the explicit route object lists.";
      list route-object-exclude-always {
        key "index";
        ordered-by user;
        description
          "List of route objects to always exclude from the path
           computation.";
        leaf index {
          type uint32;
          description
            "Explicit Route Object index.  The index is used to
             identify an entry in the list.  The order of entries
             is defined by the user without relying on key values.";
        }
        uses explicit-route-hop;
      }
      list route-object-include-exclude {
        key "index";
        ordered-by user;
        description
          "List of route objects to include or exclude in the path
           computation.";
        leaf explicit-route-usage {
          type identityref {
            base route-usage-type;
          }
          default "te-types:route-include-object";
          description
            "Indicates whether to include or exclude the
             route object.  The default is to include it.";
        }
        leaf index {
          type uint32;
          description
            "Route object include-exclude index.  The index is used
             to identify an entry in the list.  The order of entries
             is defined by the user without relying on key values.";
        }
        uses explicit-route-hop {
          augment "type" {
            case srlg {
              container srlg {
                description
                  "SRLG container.";
                leaf srlg {
                  type uint32;
                  description
                    "SRLG value.";
                }
              }
              description
                "An SRLG value to be included or excluded.";
            }
            description
              "Augmentation for a generic explicit route for SRLG
               exclusion.";
          }
        }
      }
    }
  }

  grouping path-route-include-objects {
    description
      "List of route objects to be included when performing
       the path computation.";
    list route-object-include-object {
      key "index";
      ordered-by user;
      description
        "List of Explicit Route Objects to be included in the
         path computation.";
      leaf index {
        type uint32;
        description
          "Route object entry index.  The index is used to
           identify an entry in the list.  The order of entries
           is defined by the user without relying on key values.";
      }
      uses explicit-route-hop;
    }
  }

  grouping path-route-exclude-objects {
    description
      "List of route objects to be excluded when performing
       the path computation.";
    list route-object-exclude-object {
      key "index";
      ordered-by user;
      description
        "List of Explicit Route Objects to be excluded in the
         path computation.";
      leaf index {
        type uint32;
        description
          "Route object entry index.  The index is used to
           identify an entry in the list.  The order of entries
           is defined by the user without relying on key values.";
      }
      uses explicit-route-hop {
        augment "type" {
          case srlg {
            container srlg {
              description
                "SRLG container.";
              leaf srlg {
                type uint32;
                description
                  "SRLG value.";
              }
            }
            description
              "An SRLG value to be included or excluded.";
          }
          description
            "Augmentation for a generic explicit route for SRLG
             exclusion.";
        }
      }
    }
  }

  // CHANGE NOTE: The grouping generic-path-metric-bounds below
  // has been updated in this module revision
  // RFC Editor: remove the note above and this note
  grouping generic-path-metric-bounds {
    description
      "TE path metric bounds grouping.";
    container path-metric-bounds {
      description
        "Top-level container for the list of path metric bounds.";
      list path-metric-bound {
        key "metric-type";
        description
          "List of path metric bounds, which can apply to link and
           path metrics.
          
           TE paths which have at least one path metric which
           exceeds the specified bounds MUST NOT be selected.
          
           TE paths that traverse TE links which have at least one
           link metric which exceeds the specified bounds MUST NOT
           be selected.";
        leaf metric-type {
          type identityref {
            base link-path-metric-type;
          }
          description
            "Identifies an entry in the list of 'metric-type' items
             bound for the TE path.";
        }
        leaf upper-bound {
          type uint64;
          default "0";
          description
            "Upper bound on the specified 'metric-type'.
            
             A zero indicates an unbounded upper limit for the
             specificied 'metric-type'.
            
             The unit of is interpreted in the context of the
             'metric-type' identity.";
        }
      }
    }
  }

  // CHANGE NOTE: The grouping generic-path-metric-bounds below
  // has been updated in this module revision
  // RFC Editor: remove the note above and this note
  grouping generic-path-optimization {
    description
      "TE generic path optimization grouping.";
    container optimizations {
      description
        "The objective function container that includes
         attributes to impose when computing a TE path.";
      choice algorithm {
        description
          "Optimizations algorithm.";
        case metric {
          if-feature "path-optimization-metric";
          /* Optimize by metric */
          list optimization-metric {
            key "metric-type";
            description
              "TE path metric type.";
            uses optimization-metric-entry;
          }
          /* Tiebreakers */
          container tiebreakers {
            status deprecated;
            description
              "Container for the list of tiebreakers.
              
               This container has been deprecated by the tiebreaker
               leaf.";
            list tiebreaker {
              key "tiebreaker-type";
              status deprecated;
              description
                "The list of tiebreaker criteria to apply on an
                 equally favored set of paths, in order to pick
                 the best.";
              leaf tiebreaker-type {
                type identityref {
                  base path-metric-type;
                }
                status deprecated;
                description
                  "Identifies an entry in the list of tiebreakers.";
              }
            }
          }
        }
        case objective-function {
          if-feature "path-optimization-objective-function";
          /* Objective functions */
          container objective-function {
            description
              "The objective function container that includes
               attributes to impose when computing a TE path.";
            leaf objective-function-type {
              type identityref {
                base objective-function-type;
              }
              default "te-types:of-minimize-cost-path";
              description
                "Objective function entry.";
            }
          }
        }
      }
    }
    leaf tiebreaker {
      type identityref {
        base path-tiebreaker-type;
      }
      default "te-types:path-tiebreaker-random";
      description
        "The tiebreaker criteria to apply on an equally favored set
         of paths, in order to pick the best.";
    }
  }

  grouping generic-path-affinities {
    description
      "Path affinities grouping.";
    container path-affinities-values {
      description
        "Path affinities represented as values.";
      list path-affinities-value {
        key "usage";
        description
          "List of named affinity constraints.";
        leaf usage {
          type identityref {
            base resource-affinities-type;
          }
          description
            "Identifies an entry in the list of value affinity
             constraints.";
        }
        leaf value {
          type admin-groups;
          default "";
          description
            "The affinity value.  The default is empty.";
        }
      }
    }
    container path-affinity-names {
      description
        "Path affinities represented as names.";
      list path-affinity-name {
        key "usage";
        description
          "List of named affinity constraints.";
        leaf usage {
          type identityref {
            base resource-affinities-type;
          }
          description
            "Identifies an entry in the list of named affinity
             constraints.";
        }
        list affinity-name {
          key "name";
          leaf name {
            type string;
            description
              "Identifies a named affinity entry.";
          }
          description
            "List of named affinities.";
        }
      }
    }
  }

  grouping generic-path-srlgs {
    description
      "Path SRLG grouping.";
    container path-srlgs-lists {
      description
        "Path SRLG properties container.";
      list path-srlgs-list {
        key "usage";
        description
          "List of SRLG values to be included or excluded.";
        leaf usage {
          type identityref {
            base route-usage-type;
          }
          description
            "Identifies an entry in a list of SRLGs to either
             include or exclude.";
        }
        leaf-list values {
          type srlg;
          description
            "List of SRLG values.";
        }
      }
    }
    container path-srlgs-names {
      description
        "Container for the list of named SRLGs.";
      list path-srlgs-name {
        key "usage";
        description
          "List of named SRLGs to be included or excluded.";
        leaf usage {
          type identityref {
            base route-usage-type;
          }
          description
            "Identifies an entry in a list of named SRLGs to either
             include or exclude.";
        }
        leaf-list names {
          type string;
          description
            "List of named SRLGs.";
        }
      }
    }
  }

  grouping generic-path-disjointness {
    description
      "Path disjointness grouping.";
    leaf disjointness {
      type te-path-disjointness;
      description
        "The type of resource disjointness.
         When configured for a primary path, the disjointness level
         applies to all secondary LSPs.  When configured for a
         secondary path, the disjointness level overrides the level
         configured for the primary path.";
    }
  }

  grouping common-path-constraints-attributes {
    description
      "Common path constraints configuration grouping.";
    uses common-constraints;
    uses generic-path-metric-bounds;
    uses generic-path-affinities;
    uses generic-path-srlgs;
  }

  grouping generic-path-constraints {
    description
      "Global named path constraints configuration grouping.";
    container path-constraints {
      description
        "TE named path constraints container.";
      uses common-path-constraints-attributes;
      uses generic-path-disjointness;
    }
  }

  grouping generic-path-properties {
    description
      "TE generic path properties grouping.";
    container path-properties {
      config false;
      description
        "The TE path properties.";
      list path-metric {
        key "metric-type";
        description
          "TE path metric type.";
        leaf metric-type {
          type identityref {
            base path-metric-type;
          }
          description
            "TE path metric type.";
        }
        leaf accumulative-value {
          type uint64;
          description
            "TE path metric accumulative value.";
        }
      }
      uses generic-path-affinities;
      uses generic-path-srlgs;
      container path-route-objects {
        description
          "Container for the list of route objects either returned by
           the computation engine or actually used by an LSP.";
        list path-route-object {
          key "index";
          ordered-by user;
          description
            "List of route objects either returned by the computation
             engine or actually used by an LSP.";
          leaf index {
            type uint32;
            description
              "Route object entry index.  The index is used to
               identify an entry in the list.  The order of entries
               is defined by the user without relying on key
               values.";
          }
          uses explicit-route-hop;
        }
      }
    }
  }

  // NOTE: The grouping encoding-and-switching-type below has been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  grouping encoding-and-switching-type {
    description
      "Common grouping to define the LSP encoding and
       switching types";
    leaf encoding {
      type identityref {
        base te-types:lsp-encoding-types;
      }
      description
        "LSP encoding type.";
      reference
        "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS)
                   Architecture";
    }
    leaf switching-type {
      type identityref {
        base te-types:switching-capabilities;
      }
      description
        "LSP switching type.";
      reference
        "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS)
                   Architecture";
    }
  }

  // CHANGE NOTE: The typedef te-gen-node-id below has been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  grouping te-generic-node-id {
    description
      "A reusable grouping for a TE generic node identifier.";
    leaf id {
      type te-gen-node-id;
      description
        "The identifier of the node. Can be represented as IP
         address or dotted quad address or as an URI.";
    }
    leaf type {
      type enumeration {
        enum ip {
          description
            "IP address representation of the node identifier.";
        }
        enum te-id {
          description
            "TE identifier of the node";
        }
        enum node-id {
          description
            "URI representation of the node identifier.";
        }
      }
      description
        "Type of node identifier representation.";
    }
  }
}
]]></sourcecode></figure>

</section>
<section anchor="pkt-yang-code"><name>Packet TE Types YANG Module</name>

<t>The "ietf-te-packet-types" module imports from the "ietf-te-types" module defined in <xref target="te-yang-code"/> of this document.</t>

<ul empty="true"><li>
  <t>CHANGE NOTE: Please focus your review only on the updates to the YANG model: see also <xref target="te-yang-diff"/>.</t>
</li></ul>

<figure title="Packet TE Types YANG module" anchor="fig-pkt-yang"><sourcecode type="yang" markers="true" name="ietf-te-packet-types@2024-01-25.yang"><![CDATA[
module ietf-te-packet-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types";
  prefix te-packet-types;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  import ietf-te-types {
    prefix te-types;
    reference
      "RFC XXXX: Common YANG Data Types for Traffic Engineering";
  }
  // RFC Editor: replace XXXX with actual RFC number
  // and remove this note

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Tarek Saad
               <mailto:tsaad.net@gmail.com>

     Editor:   Rakesh Gandhi
               <mailto:rgandhi@cisco.com>

     Editor:   Vishnu Pavan Beeram
               <mailto:vbeeram@juniper.net>

     Editor:   Xufeng Liu
               <mailto:xufeng.liu.ietf@gmail.com>

     Editor:   Igor Bryskin
               <mailto:i_bryskin@yahoo.com>";
  description
    "This YANG module contains a collection of generally useful YANG
     data type definitions specific to Packet Traffic Enginnering
     (TE).
     
     The model fully conforms to the Network Management Datastore
     Architecture (NMDA).

     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 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

     Copyright (c) 2024 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.";
  revision 2024-07-23 {
    description
      "This revision adds the following new identities:
       - bandwidth-profile-type;
       - link-metric-delay-variation;
       - link-metric-loss;
       - path-metric-delay-variation;
       - path-metric-loss.

      This revision adds the following new groupings:
       - te-packet-path-bandwidth;
       - te-packet-link-bandwidth.
       
      This revision provides also few editorial changes.";
    reference
      "RFC XXXX: Common YANG Data Types for Traffic Engineering";
  }
  // RFC Editor: replace XXXX with actual RFC number, update date
  // information and remove this note

  revision 2020-06-10 {
    description
      "Latest revision of TE MPLS types.";
    reference
      "RFC 8776: Common YANG Data Types for Traffic Engineering";
  }

  /*
   * Identities
   */

  // CHANGE NOTE: The base identity bandwidth-profile-type and 
  // its derived identities below have been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  identity bandwidth-profile-type {
    description
      "Bandwidth Profile Types";
  }

    identity mef-10 {
      base bandwidth-profile-type;
      description
        "MEF 10 Bandwidth Profile";
      reference
        "MEF 10.3: Ethernet Services Attributes Phase 3";
    }

    identity rfc-2697 {
      base bandwidth-profile-type;
      description
        "RFC 2697 Bandwidth Profile";
      reference
        "RFC 2697: A Single Rate Three Color Marker";
    }

    identity rfc-2698 {
      base bandwidth-profile-type;
      description
        "RFC 2698 Bandwidth Profile";
      reference
        "RFC 2698: A Two Rate Three Color Marker";
    }

    identity rfc-4115 {
      base bandwidth-profile-type;
      description
        "RFC 4115 Bandwidth Profile";
      reference
        "RFC 4115: A Differentiated Service Two-Rate, Three-Color 
                   Marker with Efficient Handling of in-Profile
                   Traffic";
    }

    // CHANGE NOTE: The identity link-metric-delay-variation
    // below has been added in this module revision
    // RFC Editor: remove the note above and this note
    identity link-metric-delay-variation {
      base te-types:link-metric-type;
      description
        "The Unidirectional Delay Variation Metric,
         measured in units of microseconds.";
      reference
        "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions,
                   Section 4.3
         RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions,
                   Section 4.3";
    }

    // CHANGE NOTE: The identity link-metric-loss below has 
    // been added in this module revision
    // RFC Editor: remove the note above and this note
    identity link-metric-loss {
      base te-types:link-metric-type;
      description
        "The Unidirectional Link Loss Metric,
         measured in units of 0.000003%.";
      reference
        "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions,
                   Section 4.4
         RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions,
                   Section 4.4";
    }

    // CHANGE NOTE: The identity path-metric-delay-variation
    // below has been added in this module revision
    // RFC Editor: remove the note above and this note
    identity path-metric-delay-variation {
      base te-types:path-metric-type;
      description
        "The Path Delay Variation Metric,
         measured in units of microseconds.";
      reference
        "RFC 8233: Extensions to the Path Computation Element
                   Communication Protocol (PCEP) to Compute
                   Service-Aware Label Switched Paths (LSPs),
                   Section 3.1.2";
    }

    // CHANGE NOTE: The identity path-metric-loss below has 
    // been added in this module revision
    // RFC Editor: remove the note above and this note
    identity path-metric-loss {
      base te-types:path-metric-type;
      description
        "The Path Loss Metric, measured in units of 0.000003%.";
      reference
        "RFC 8233: Extensions to the Path Computation Element
                   Communication Protocol (PCEP) to Compute
                   Service-Aware Label Switched Paths (LSPs),
                   Section 3.1.3";
    }

  /*
   * Typedefs
   */

  typedef te-bandwidth-requested-type {
    type enumeration {
      enum specified {
        description
          "Bandwidth is explicitly specified.";
      }
      enum auto {
        description
          "Bandwidth is automatically computed.";
      }
    }
    description
      "Enumerated type for specifying whether bandwidth is
       explicitly specified or automatically computed.";
  }

  typedef te-class-type {
    type uint8;
    description
      "Diffserv-TE Class-Type.  Defines a set of Traffic Trunks
       crossing a link that is governed by a specific set of
       bandwidth constraints.  Class-Type is used for the purposes
       of link bandwidth allocation, constraint-based routing, and
       admission control.";
    reference
      "RFC 4124: Protocol Extensions for Support of Diffserv-aware
                 MPLS Traffic Engineering";
  }

  typedef bc-type {
    type uint8 {
      range "0..7";
    }
    description
      "Diffserv-TE bandwidth constraints as defined in RFC 4124.";
    reference
      "RFC 4124: Protocol Extensions for Support of Diffserv-aware
                 MPLS Traffic Engineering";
  }

  typedef bandwidth-kbps {
    type uint64;
    units "Kbps";
    description
      "Bandwidth values, expressed in kilobits per second.";
  }

  typedef bandwidth-mbps {
    type uint64;
    units "Mbps";
    description
      "Bandwidth values, expressed in megabits per second.";
  }

  typedef bandwidth-gbps {
    type uint64;
    units "Gbps";
    description
      "Bandwidth values, expressed in gigabits per second.";
  }

  identity backup-protection-type {
    description
      "Base identity for the backup protection type.";
  }

  identity backup-protection-link {
    base backup-protection-type;
    description
      "Backup provides link protection only.";
  }

  identity backup-protection-node-link {
    base backup-protection-type;
    description
      "Backup offers node (preferred) or link protection.";
  }

  identity bc-model-type {
    description
      "Base identity for the Diffserv-TE Bandwidth Constraints
       Model type.";
    reference
      "RFC 4124: Protocol Extensions for Support of Diffserv-aware
                 MPLS Traffic Engineering";
  }

  identity bc-model-rdm {
    base bc-model-type;
    description
      "Russian Dolls Bandwidth Constraints Model type.";
    reference
      "RFC 4127: Russian Dolls Bandwidth Constraints Model for
                 Diffserv-aware MPLS Traffic Engineering";
  }

  identity bc-model-mam {
    base bc-model-type;
    description
      "Maximum Allocation Bandwidth Constraints Model type.";
    reference
      "RFC 4125: Maximum Allocation Bandwidth Constraints Model for
                 Diffserv-aware MPLS Traffic Engineering";
  }

  identity bc-model-mar {
    base bc-model-type;
    description
      "Maximum Allocation with Reservation Bandwidth Constraints
       Model type.";
    reference
      "RFC 4126: Max Allocation with Reservation Bandwidth
                 Constraints Model for Diffserv-aware MPLS Traffic
                 Engineering & Performance Comparisons";
  }

  /*
   * Groupings
   */

  grouping performance-metrics-attributes-packet {
    description
      "Contains PM attributes.";
    uses te-types:performance-metrics-attributes {
      augment "performance-metrics-one-way" {
        leaf one-way-min-delay {
          type uint32 {
            range "0..16777215";
          }
          description
            "One-way minimum delay or latency in microseconds.";
        }
        leaf one-way-min-delay-normality {
          type te-types:performance-metrics-normality;
          default "normal";
          description
            "One-way minimum delay or latency normality.";
        }
        leaf one-way-max-delay {
          type uint32 {
            range "0..16777215";
          }
          description
            "One-way maximum delay or latency in microseconds.";
        }
        leaf one-way-max-delay-normality {
          type te-types:performance-metrics-normality;
          default "normal";
          description
            "One-way maximum delay or latency normality.";
        }
        leaf one-way-delay-variation {
          type uint32 {
            range "0..16777215";
          }
          description
            "One-way delay variation in microseconds.";
          reference
            "RFC 5481: Packet Delay Variation Applicability
                       Statement, Section 4.2";
        }
        leaf one-way-delay-variation-normality {
          type te-types:performance-metrics-normality;
          default "normal";
          description
            "One-way delay variation normality.";
          reference
            "RFC 7471: OSPF Traffic Engineering (TE) Metric
                       Extensions
             RFC 7823: Performance-Based Path Selection for
                       Explicitly Routed Label Switched Paths (LSPs)
                       Using TE Metric Extensions
             RFC 8570: IS-IS Traffic Engineering (TE) Metric
                       Extensions";
        }
        leaf one-way-packet-loss {
          type decimal64 {
            fraction-digits 6;
            range "0..50.331642";
          }
          description
            "One-way packet loss as a percentage of the total traffic
             sent over a configurable interval.  The finest precision
             is 0.000003%, where the maximum is 50.331642%.";
          reference
            "RFC 8570: IS-IS Traffic Engineering (TE) Metric
                       Extensions, Section 4.4";
        }
        leaf one-way-packet-loss-normality {
          type te-types:performance-metrics-normality;
          default "normal";
          description
            "Packet loss normality.";
          reference
            "RFC 7471: OSPF Traffic Engineering (TE) Metric
                       Extensions
             RFC 7823: Performance-Based Path Selection for
                       Explicitly Routed Label Switched Paths (LSPs)
                       Using TE Metric Extensions
             RFC 8570: IS-IS Traffic Engineering (TE) Metric
                       Extensions";
        }
        description
          "PM one-way packet-specific augmentation for a generic PM
           grouping.";
      }
      augment "performance-metrics-two-way" {
        leaf two-way-min-delay {
          type uint32 {
            range "0..16777215";
          }
          default "0";
          description
            "Two-way minimum delay or latency in microseconds.";
        }
        leaf two-way-min-delay-normality {
          type te-types:performance-metrics-normality;
          default "normal";
          description
            "Two-way minimum delay or latency normality.";
          reference
            "RFC 7471: OSPF Traffic Engineering (TE) Metric
                       Extensions
             RFC 7823: Performance-Based Path Selection for
                       Explicitly Routed Label Switched Paths (LSPs)
                       Using TE Metric Extensions
             RFC 8570: IS-IS Traffic Engineering (TE) Metric
                       Extensions";
        }
        leaf two-way-max-delay {
          type uint32 {
            range "0..16777215";
          }
          default "0";
          description
            "Two-way maximum delay or latency in microseconds.";
        }
        leaf two-way-max-delay-normality {
          type te-types:performance-metrics-normality;
          default "normal";
          description
            "Two-way maximum delay or latency normality.";
          reference
            "RFC 7471: OSPF Traffic Engineering (TE) Metric
                       Extensions
             RFC 7823: Performance-Based Path Selection for
                       Explicitly Routed Label Switched Paths (LSPs)
                       Using TE Metric Extensions
             RFC 8570: IS-IS Traffic Engineering (TE) Metric
                       Extensions";
        }
        leaf two-way-delay-variation {
          type uint32 {
            range "0..16777215";
          }
          default "0";
          description
            "Two-way delay variation in microseconds.";
          reference
            "RFC 5481: Packet Delay Variation Applicability
                       Statement, Section 4.2";
        }
        leaf two-way-delay-variation-normality {
          type te-types:performance-metrics-normality;
          default "normal";
          description
            "Two-way delay variation normality.";
          reference
            "RFC 7471: OSPF Traffic Engineering (TE) Metric
                       Extensions
             RFC 7823: Performance-Based Path Selection for
                       Explicitly Routed Label Switched Paths (LSPs) 
                       Using TE Metric Extensions
             RFC 8570: IS-IS Traffic Engineering (TE) Metric
                       Extensions";
        }
        leaf two-way-packet-loss {
          type decimal64 {
            fraction-digits 6;
            range "0..50.331642";
          }
          default "0";
          description
            "Two-way packet loss as a percentage of the total traffic
             sent over a configurable interval.  The finest precision
             is 0.000003%.";
        }
        leaf two-way-packet-loss-normality {
          type te-types:performance-metrics-normality;
          default "normal";
          description
            "Two-way packet loss normality.";
        }
        description
          "PM two-way packet-specific augmentation for a generic PM
           grouping.";
        reference
            "RFC 7471: OSPF Traffic Engineering (TE) Metric
                       Extensions
             RFC 7823: Performance-Based Path Selection for
                       Explicitly Routed Label Switched Paths (LSPs)
                       Using TE Metric Extensions
             RFC 8570: IS-IS Traffic Engineering (TE) Metric
                       Extensions";
      }
    }
  }

  grouping one-way-performance-metrics-packet {
    description
      "One-way packet PM throttle grouping.";
    leaf one-way-min-delay {
      type uint32 {
        range "0..16777215";
      }
      default "0";
      description
        "One-way minimum delay or latency in microseconds.";
    }
    leaf one-way-max-delay {
      type uint32 {
        range "0..16777215";
      }
      default "0";
      description
        "One-way maximum delay or latency in microseconds.";
    }
    leaf one-way-delay-variation {
      type uint32 {
        range "0..16777215";
      }
      default "0";
      description
        "One-way delay variation in microseconds.";
    }
    leaf one-way-packet-loss {
      type decimal64 {
        fraction-digits 6;
        range "0..50.331642";
      }
      default "0";
      description
        "One-way packet loss as a percentage of the total traffic
         sent over a configurable interval.  The finest precision is
         0.000003%.";
    }
  }

  // CHANGE NOTE: The grouping 
  // one-way-performance-metrics-gauge-packet has been added in
  // this module revision
  // RFC Editor: remove the note above and this note
  grouping one-way-performance-metrics-gauge-packet {
    description
      "One-way packet PM throttle grouping.

       This grouping is used to report the same metrics defined in
       the one-way-performance-metrics-packet grouping, using gauges
       instead of uint32 data types and referencing IPPM RFCs
       instead of IGP-TE RFCs.";
    leaf one-way-min-delay {
      type yang:gauge64;
      description
        "One-way minimum delay or latency in microseconds.";
    }
    leaf one-way-max-delay {
      type yang:gauge64;
      description
        "One-way maximum delay or latency in microseconds.";
      reference
        "RFC 7679: A One-Way Delay Metric for IP Performance
                   Metrics (IPPM)";
    }
    leaf one-way-delay-variation {
      type yang:gauge64;
      description
        "One-way delay variation in microseconds.";
      reference
        "RFC 3393: IP Packet Delay Variation Metric for IP
                   Performance Metrics (IPPM)";
    }
    leaf one-way-packet-loss {
      type decimal64 {
        fraction-digits 5;
        range "0..100";
      }
      description
        "The ratio of packets dropped to packets transmitted between
         two endpoints.";
      reference
        "RFC 7680: A One-Way Loss Metric for IP Performance
                   Metrics (IPPM)";
    }
  }

  grouping two-way-performance-metrics-packet {
    description
      "Two-way packet PM throttle grouping.";
    leaf two-way-min-delay {
      type uint32 {
        range "0..16777215";
      }
      default "0";
      description
        "Two-way minimum delay or latency in microseconds.";
    }
    leaf two-way-max-delay {
      type uint32 {
        range "0..16777215";
      }
      default "0";
      description
        "Two-way maximum delay or latency in microseconds.";
    }
    leaf two-way-delay-variation {
      type uint32 {
        range "0..16777215";
      }
      default "0";
      description
        "Two-way delay variation in microseconds.";
    }
    leaf two-way-packet-loss {
      type decimal64 {
        fraction-digits 6;
        range "0..50.331642";
      }
      default "0";
      description
        "Two-way packet loss as a percentage of the total traffic
         sent over a configurable interval.  The finest precision is
         0.000003%.";
    }
  }

  // CHANGE NOTE: The grouping 
  // two-way-performance-metrics-gauge-packet has been added in
  // this module revision
  // RFC Editor: remove the note above and this note
  grouping two-way-performance-metrics-gauge-packet {
    description
      "Two-way packet PM throttle grouping.

       This grouping is used to report the same metrics defined in
       the two-way-performance-metrics-packet grouping, using gauges
       instead of uint32 data types and referencing IPPM RFCs
       instead of IGP-TE RFCs.";
    leaf two-way-min-delay {
      type yang:gauge64;
      description
        "Two-way minimum delay or latency in microseconds.";
      reference
        "RFC 2681: A Round-trip Delay Metric for IPPM";
    }
    leaf two-way-max-delay {
      type yang:gauge64;
      description
        "Two-way maximum delay or latency in microseconds.";
      reference
        "RFC 2681: A Round-trip Delay Metric for IPPM";
    }
    leaf two-way-delay-variation {
      type yang:gauge64;
      description
        "Two-way delay variation in microseconds.";
      reference
        "RFC 5481: Packet Delay Variation Applicability Statement";
    }
    leaf two-way-packet-loss {
      type decimal64 {
        fraction-digits 5;
        range "0..100";
      }
      description
        "The ratio of packets dropped to packets transmitted between
         two endpoints.";
    }
  }

  grouping performance-metrics-throttle-container-packet {
    description
      "Packet PM threshold grouping.";
    uses te-types:performance-metrics-throttle-container {
      augment "throttle/threshold-out" {
        uses one-way-performance-metrics-packet;
        uses two-way-performance-metrics-packet;
        description
          "PM threshold-out packet augmentation for a
           generic grouping.";
      }
      augment "throttle/threshold-in" {
        uses one-way-performance-metrics-packet;
        uses two-way-performance-metrics-packet;
        description
          "PM threshold-in packet augmentation for a
           generic grouping.";
      }
      augment "throttle/threshold-accelerated-advertisement" {
        uses one-way-performance-metrics-packet;
        uses two-way-performance-metrics-packet;
        description
          "PM accelerated advertisement packet augmentation for a
           generic grouping.";
      }
    }
  }

  // CHANGE NOTE: The te-packet-path-bandwidth below has been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  grouping te-packet-path-bandwidth {
    description
      "Path bandwidth for Packet. ";
    leaf bandwidth-profile-name {
      type string;
      description
        "Name of Bandwidth Profile.";
    }
    leaf bandwidth-profile-type {
      type identityref {
        base bandwidth-profile-type;
      }
      description
        "Type of Bandwidth Profile.";
    }
    leaf cir {
      type uint64;
      units "bits/second";
      mandatory true;
      description
        "Committed Information Rate (CIR).";
    }
    leaf cbs {
      type uint64;
      units "bits/second";
      mandatory true;
      description
        "Committed Burst Size (CBS).";
    }
    leaf eir {
      type uint64;
      units "bits/second";
      description
        "Excess Information Rate (EIR).";
    }
    leaf ebs {
      type uint64;
      units "bytes";
      description
        "Excess Burst Size (EBS).";
    }
    leaf pir {
      type uint64;
      units "bits/second";
      description
        "Peak Information Rate (PIR).";
    }
    leaf pbs {
      type uint64;
      units "bytes";
      description
        "Peak Burst Size (PBS).";
    }
  }

  // CHANGE NOTE: The te-packet-path-bandwidth below has been
  // added in this module revision
  // RFC Editor: remove the note above and this note
  grouping te-packet-link-bandwidth {
    description
      "Link Bandwidth for Packet. ";
    leaf packet-bandwidth {
      type uint64;
      units "bits/second";
      description
        "Available bandwith value.";
    }
  }
}
]]></sourcecode></figure>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requests IANA to update the following URIs in the "IETF XML Registry" <xref target="RFC3688"/> to refer to this document:</t>

<figure><artwork><![CDATA[
      URI: urn:ietf:params:xml:ns:yang:ietf-te-types
      Registrant Contact:  The IESG.
      XML: N/A, the requested URI is an XML namespace.

      URI: urn:ietf:params:xml:ns:yang:ietf-te-packet-types
      Registrant Contact:  The IESG.
      XML: N/A, the requested URI is an XML namespace.
]]></artwork></figure>

<t>This document also requests IANA to update the following YANG modules to the "YANG Module
Names" registry <xref target="RFC7950"/>:</t>

<figure><artwork><![CDATA[
      name:      ietf-te-types
      Maintained by IANA?  N
      namespace: urn:ietf:params:xml:ns:yang:ietf-te-types
      prefix:    te-types
      reference: RFC XXXX

      name:      ietf-te-packet-types
      Maintained by IANA?  N
      namespace: urn:ietf:params:xml:ns:yang:ietf-te-packet-types
      prefix:    te-packet-types
      reference: RFC XXXX
]]></artwork></figure>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The YANG module specified in this document defines a schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</t>

<t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>

<t>The YANG module in this document defines common TE type definitions
   (e.g., typedef, identity, and grouping statements) in YANG data
   modeling language to be imported and used by other TE modules.  When
   imported and used, the resultant schema will have data nodes that can
   be writable or readable.  Access to such data nodes may be considered
   sensitive or vulnerable in some network environments.  Write
   operations (e.g., edit-config) to these data nodes without proper
   protection can have a negative effect on network operations.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

<reference anchor="ITU_G.808.1" target="https://www.itu.int/rec/T-REC-G.808.1">
  <front>
    <title>Generic protection switching - Linear trail and subnetwork protection</title>
    <author >
      <organization>ITU-T Recommendation G.808.1</organization>
    </author>
    <date year="2014" month="May"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.808.1" value=""/>
</reference>
<reference anchor="MEF_10.3" target="https://www.mef.net/Assets/Technical_Specifications/PDF/MEF_10.pdf">
  <front>
    <title>Ethernet Services Attributes Phase 3</title>
    <author >
      <organization>MEF</organization>
    </author>
    <date year="2013" month="October"/>
  </front>
  <seriesInfo name="MEF 10.3" value=""/>
</reference>
<reference anchor="ITU-T_G.709" target="https://www.itu.int/rec/T-REC-G.709">
  <front>
    <title>Interfaces for the optical transport network</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="June"/>
  </front>
  <seriesInfo name="ITU-T G.709" value=""/>
</reference>


<reference anchor='RFC6020' target='https://www.rfc-editor.org/info/rfc6020'>
  <front>
    <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <date month='October' year='2010'/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6020'/>
  <seriesInfo name='DOI' value='10.17487/RFC6020'/>
</reference>

<reference anchor='RFC7950' target='https://www.rfc-editor.org/info/rfc7950'>
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <date month='August' year='2016'/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7950'/>
  <seriesInfo name='DOI' value='10.17487/RFC7950'/>
</reference>

<reference anchor='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'>
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname='R. Enns' initials='R.' role='editor' surname='Enns'/>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'/>
    <author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6241'/>
  <seriesInfo name='DOI' value='10.17487/RFC6241'/>
</reference>

<reference anchor='RFC8040' target='https://www.rfc-editor.org/info/rfc8040'>
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname='A. Bierman' initials='A.' surname='Bierman'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <date month='January' year='2017'/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8040'/>
  <seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>

<reference anchor='RFC8776' target='https://www.rfc-editor.org/info/rfc8776'>
  <front>
    <title>Common YANG Data Types for Traffic Engineering</title>
    <author fullname='T. Saad' initials='T.' surname='Saad'/>
    <author fullname='R. Gandhi' initials='R.' surname='Gandhi'/>
    <author fullname='X. Liu' initials='X.' surname='Liu'/>
    <author fullname='V. Beeram' initials='V.' surname='Beeram'/>
    <author fullname='I. Bryskin' initials='I.' surname='Bryskin'/>
    <date month='June' year='2020'/>
    <abstract>
      <t>This document defines a collection of common data types and groupings in YANG data modeling language. These derived common types and groupings are intended to be imported by modules that model Traffic Engineering (TE) configuration and state capabilities.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8776'/>
  <seriesInfo name='DOI' value='10.17487/RFC8776'/>
</reference>

<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname='S. Bradner' initials='S.' surname='Bradner'/>
    <date month='March' year='1997'/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='2119'/>
  <seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>

<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
    <date month='May' year='2017'/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='8174'/>
  <seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>

<reference anchor='RFC6991' target='https://www.rfc-editor.org/info/rfc6991'>
  <front>
    <title>Common YANG Data Types</title>
    <author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'/>
    <date month='July' year='2013'/>
    <abstract>
      <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6991'/>
  <seriesInfo name='DOI' value='10.17487/RFC6991'/>
</reference>

<reference anchor='RFC8294' target='https://www.rfc-editor.org/info/rfc8294'>
  <front>
    <title>Common YANG Data Types for the Routing Area</title>
    <author fullname='X. Liu' initials='X.' surname='Liu'/>
    <author fullname='Y. Qu' initials='Y.' surname='Qu'/>
    <author fullname='A. Lindem' initials='A.' surname='Lindem'/>
    <author fullname='C. Hopps' initials='C.' surname='Hopps'/>
    <author fullname='L. Berger' initials='L.' surname='Berger'/>
    <date month='December' year='2017'/>
    <abstract>
      <t>This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8294'/>
  <seriesInfo name='DOI' value='10.17487/RFC8294'/>
</reference>

<reference anchor='RFC8345' target='https://www.rfc-editor.org/info/rfc8345'>
  <front>
    <title>A YANG Data Model for Network Topologies</title>
    <author fullname='A. Clemm' initials='A.' surname='Clemm'/>
    <author fullname='J. Medved' initials='J.' surname='Medved'/>
    <author fullname='R. Varga' initials='R.' surname='Varga'/>
    <author fullname='N. Bahadur' initials='N.' surname='Bahadur'/>
    <author fullname='H. Ananthakrishnan' initials='H.' surname='Ananthakrishnan'/>
    <author fullname='X. Liu' initials='X.' surname='Liu'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>This document defines an abstract (generic, or base) YANG data model for network/service topologies and inventories. The data model serves as a base model that is augmented with technology-specific details in other, more specific topology and inventory data models.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8345'/>
  <seriesInfo name='DOI' value='10.17487/RFC8345'/>
</reference>

<reference anchor='RFC8800' target='https://www.rfc-editor.org/info/rfc8800'>
  <front>
    <title>Path Computation Element Communication Protocol (PCEP) Extension for Label Switched Path (LSP) Diversity Constraint Signaling</title>
    <author fullname='S. Litkowski' initials='S.' surname='Litkowski'/>
    <author fullname='S. Sivabalan' initials='S.' surname='Sivabalan'/>
    <author fullname='C. Barth' initials='C.' surname='Barth'/>
    <author fullname='M. Negi' initials='M.' surname='Negi'/>
    <date month='July' year='2020'/>
    <abstract>
      <t>This document introduces a simple mechanism to associate a group of Label Switched Paths (LSPs) via an extension to the Path Computation Element Communication Protocol (PCEP) with the purpose of computing diverse (disjointed) paths for those LSPs. The proposed extension allows a Path Computation Client (PCC) to advertise to a Path Computation Element (PCE) that a particular LSP belongs to a particular Disjoint Association Group; thus, the PCE knows that the LSPs in the same group need to be disjoint from each other.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8800'/>
  <seriesInfo name='DOI' value='10.17487/RFC8800'/>
</reference>

<reference anchor='RFC5541' target='https://www.rfc-editor.org/info/rfc5541'>
  <front>
    <title>Encoding of Objective Functions in the Path Computation Element Communication Protocol (PCEP)</title>
    <author fullname='JL. Le Roux' initials='JL.' surname='Le Roux'/>
    <author fullname='JP. Vasseur' initials='JP.' surname='Vasseur'/>
    <author fullname='Y. Lee' initials='Y.' surname='Lee'/>
    <date month='June' year='2009'/>
    <abstract>
      <t>The computation of one or a set of Traffic Engineering Label Switched Paths (TE LSPs) in MultiProtocol Label Switching (MPLS) and Generalized MPLS (GMPLS) networks is subject to a set of one or more specific optimization criteria, referred to as objective functions (e.g., minimum cost path, widest path, etc.).</t>
      <t>In the Path Computation Element (PCE) architecture, a Path Computation Client (PCC) may want a path to be computed for one or more TE LSPs according to a specific objective function. Thus, the PCC needs to instruct the PCE to use the correct objective function. Furthermore, it is possible that not all PCEs support the same set of objective functions; therefore, it is useful for the PCC to be able to automatically discover the set of objective functions supported by each PCE.</t>
      <t>This document defines extensions to the PCE communication Protocol (PCEP) to allow a PCE to indicate the set of objective functions it supports. Extensions are also defined so that a PCC can indicate in a path computation request the required objective function, and a PCE can report in a path computation reply the objective function that was used for path computation.</t>
      <t>This document defines objective function code types for six objective functions previously listed in the PCE requirements work, and provides the definition of four new metric types that apply to a set of synchronized requests. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5541'/>
  <seriesInfo name='DOI' value='10.17487/RFC5541'/>
</reference>

<reference anchor='RFC5440' target='https://www.rfc-editor.org/info/rfc5440'>
  <front>
    <title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
    <author fullname='JP. Vasseur' initials='JP.' role='editor' surname='Vasseur'/>
    <author fullname='JL. Le Roux' initials='JL.' role='editor' surname='Le Roux'/>
    <date month='March' year='2009'/>
    <abstract>
      <t>This document specifies the Path Computation Element (PCE) Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a PCE, or between two PCEs. Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering. PCEP is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5440'/>
  <seriesInfo name='DOI' value='10.17487/RFC5440'/>
</reference>

<reference anchor='RFC8685' target='https://www.rfc-editor.org/info/rfc8685'>
  <front>
    <title>Path Computation Element Communication Protocol (PCEP) Extensions for the Hierarchical Path Computation Element (H-PCE) Architecture</title>
    <author fullname='F. Zhang' initials='F.' surname='Zhang'/>
    <author fullname='Q. Zhao' initials='Q.' surname='Zhao'/>
    <author fullname='O. Gonzalez de Dios' initials='O.' surname='Gonzalez de Dios'/>
    <author fullname='R. Casellas' initials='R.' surname='Casellas'/>
    <author fullname='D. King' initials='D.' surname='King'/>
    <date month='December' year='2019'/>
    <abstract>
      <t>The Hierarchical Path Computation Element (H-PCE) architecture is defined in RFC 6805. It provides a mechanism to derive an optimum end-to-end path in a multi-domain environment by using a hierarchical relationship between domains to select the optimum sequence of domains and optimum paths across those domains.</t>
      <t>This document defines extensions to the Path Computation Element Communication Protocol (PCEP) to support H-PCE procedures.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8685'/>
  <seriesInfo name='DOI' value='10.17487/RFC8685'/>
</reference>

<reference anchor='RFC5441' target='https://www.rfc-editor.org/info/rfc5441'>
  <front>
    <title>A Backward-Recursive PCE-Based Computation (BRPC) Procedure to Compute Shortest Constrained Inter-Domain Traffic Engineering Label Switched Paths</title>
    <author fullname='JP. Vasseur' initials='JP.' role='editor' surname='Vasseur'/>
    <author fullname='R. Zhang' initials='R.' surname='Zhang'/>
    <author fullname='N. Bitar' initials='N.' surname='Bitar'/>
    <author fullname='JL. Le Roux' initials='JL.' surname='Le Roux'/>
    <date month='April' year='2009'/>
    <abstract>
      <t>The ability to compute shortest constrained Traffic Engineering Label Switched Paths (TE LSPs) in Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) networks across multiple domains has been identified as a key requirement. In this context, a domain is a collection of network elements within a common sphere of address management or path computational responsibility such as an IGP area or an Autonomous Systems. This document specifies a procedure relying on the use of multiple Path Computation Elements (PCEs) to compute such inter-domain shortest constrained paths across a predetermined sequence of domains, using a backward-recursive path computation technique. This technique preserves confidentiality across domains, which is sometimes required when domains are managed by different service providers. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5441'/>
  <seriesInfo name='DOI' value='10.17487/RFC5441'/>
</reference>

<reference anchor='RFC5520' target='https://www.rfc-editor.org/info/rfc5520'>
  <front>
    <title>Preserving Topology Confidentiality in Inter-Domain Path Computation Using a Path-Key-Based Mechanism</title>
    <author fullname='R. Bradford' initials='R.' role='editor' surname='Bradford'/>
    <author fullname='JP. Vasseur' initials='JP.' surname='Vasseur'/>
    <author fullname='A. Farrel' initials='A.' surname='Farrel'/>
    <date month='April' year='2009'/>
    <abstract>
      <t>Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering (TE) Label Switched Paths (LSPs) may be computed by Path Computation Elements (PCEs). Where the TE LSP crosses multiple domains, such as Autonomous Systems (ASes), the path may be computed by multiple PCEs that cooperate, with each responsible for computing a segment of the path. However, in some cases (e.g., when ASes are administered by separate Service Providers), it would break confidentiality rules for a PCE to supply a path segment to a PCE in another domain, thus disclosing AS-internal topology information. This issue may be circumvented by returning a loose hop and by invoking a new path computation from the domain boundary Label Switching Router (LSR) during TE LSP setup as the signaling message enters the second domain, but this technique has several issues including the problem of maintaining path diversity.</t>
      <t>This document defines a mechanism to hide the contents of a segment of a path, called the Confidential Path Segment (CPS). The CPS may be replaced by a path-key that can be conveyed in the PCE Communication Protocol (PCEP) and signaled within in a Resource Reservation Protocol TE (RSVP-TE) explicit route object. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5520'/>
  <seriesInfo name='DOI' value='10.17487/RFC5520'/>
</reference>

<reference anchor='RFC5557' target='https://www.rfc-editor.org/info/rfc5557'>
  <front>
    <title>Path Computation Element Communication Protocol (PCEP) Requirements and Protocol Extensions in Support of Global Concurrent Optimization</title>
    <author fullname='Y. Lee' initials='Y.' surname='Lee'/>
    <author fullname='JL. Le Roux' initials='JL.' surname='Le Roux'/>
    <author fullname='D. King' initials='D.' surname='King'/>
    <author fullname='E. Oki' initials='E.' surname='Oki'/>
    <date month='July' year='2009'/>
    <abstract>
      <t>The Path Computation Element Communication Protocol (PCEP) allows Path Computation Clients (PCCs) to request path computations from Path Computation Elements (PCEs), and lets the PCEs return responses. When computing or reoptimizing the routes of a set of Traffic Engineering Label Switched Paths (TE LSPs) through a network, it may be advantageous to perform bulk path computations in order to avoid blocking problems and to achieve more optimal network-wide solutions. Such bulk optimization is termed Global Concurrent Optimization (GCO). A GCO is able to simultaneously consider the entire topology of the network and the complete set of existing TE LSPs, and their respective constraints, and look to optimize or reoptimize the entire network to satisfy all constraints for all TE LSPs. A GCO may also be applied to some subset of the TE LSPs in a network. The GCO application is primarily a Network Management System (NMS) solution.</t>
      <t>This document provides application-specific requirements and the PCEP extensions in support of GCO applications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5557'/>
  <seriesInfo name='DOI' value='10.17487/RFC5557'/>
</reference>

<reference anchor='RFC8306' target='https://www.rfc-editor.org/info/rfc8306'>
  <front>
    <title>Extensions to the Path Computation Element Communication Protocol (PCEP) for Point-to-Multipoint Traffic Engineering Label Switched Paths</title>
    <author fullname='Q. Zhao' initials='Q.' surname='Zhao'/>
    <author fullname='D. Dhody' initials='D.' role='editor' surname='Dhody'/>
    <author fullname='R. Palleti' initials='R.' surname='Palleti'/>
    <author fullname='D. King' initials='D.' surname='King'/>
    <date month='November' year='2017'/>
    <abstract>
      <t>Point-to-point Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering Label Switched Paths (TE LSPs) may be established using signaling techniques, but their paths may first need to be determined. The Path Computation Element (PCE) has been identified as an appropriate technology for the determination of the paths of point-to-multipoint (P2MP) TE LSPs.</t>
      <t>This document describes extensions to the PCE Communication Protocol (PCEP) to handle requests and responses for the computation of paths for P2MP TE LSPs.</t>
      <t>This document obsoletes RFC 6006.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8306'/>
  <seriesInfo name='DOI' value='10.17487/RFC8306'/>
</reference>

<reference anchor='RFC9012' target='https://www.rfc-editor.org/info/rfc9012'>
  <front>
    <title>The BGP Tunnel Encapsulation Attribute</title>
    <author fullname='K. Patel' initials='K.' surname='Patel'/>
    <author fullname='G. Van de Velde' initials='G.' surname='Van de Velde'/>
    <author fullname='S. Sangli' initials='S.' surname='Sangli'/>
    <author fullname='J. Scudder' initials='J.' surname='Scudder'/>
    <date month='April' year='2021'/>
    <abstract>
      <t>This document defines a BGP path attribute known as the "Tunnel Encapsulation attribute", which can be used with BGP UPDATEs of various Subsequent Address Family Identifiers (SAFIs) to provide information needed to create tunnels and their corresponding encapsulation headers. It provides encodings for a number of tunnel types, along with procedures for choosing between alternate tunnels and routing packets into tunnels.</t>
      <t>This document obsoletes RFC 5512, which provided an earlier definition of the Tunnel Encapsulation attribute. RFC 5512 was never deployed in production. Since RFC 5566 relies on RFC 5512, it is likewise obsoleted. This document updates RFC 5640 by indicating that the Load-Balancing Block sub-TLV may be included in any Tunnel Encapsulation attribute where load balancing is desired.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9012'/>
  <seriesInfo name='DOI' value='10.17487/RFC9012'/>
</reference>

<reference anchor='RFC6242' target='https://www.rfc-editor.org/info/rfc6242'>
  <front>
    <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
    <author fullname='M. Wasserman' initials='M.' surname='Wasserman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6242'/>
  <seriesInfo name='DOI' value='10.17487/RFC6242'/>
</reference>

<reference anchor='RFC8446' target='https://www.rfc-editor.org/info/rfc8446'>
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname='E. Rescorla' initials='E.' surname='Rescorla'/>
    <date month='August' year='2018'/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8446'/>
  <seriesInfo name='DOI' value='10.17487/RFC8446'/>
</reference>

<reference anchor='RFC8341' target='https://www.rfc-editor.org/info/rfc8341'>
  <front>
    <title>Network Configuration Access Control Model</title>
    <author fullname='A. Bierman' initials='A.' surname='Bierman'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
      <t>This document obsoletes RFC 6536.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='91'/>
  <seriesInfo name='RFC' value='8341'/>
  <seriesInfo name='DOI' value='10.17487/RFC8341'/>
</reference>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.ietf-netmod-rfc8407bis' target='https://datatracker.ietf.org/doc/html/draft-ietf-netmod-rfc8407bis-14'>
   <front>
      <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
      <author fullname='Andy Bierman' initials='A.' surname='Bierman'>
         <organization>YumaWorks</organization>
      </author>
      <author fullname='Mohamed Boucadair' initials='M.' surname='Boucadair'>
         <organization>Orange</organization>
      </author>
      <author fullname='Qin Wu' initials='Q.' surname='Wu'>
         <organization>Huawei</organization>
      </author>
      <date day='5' month='July' year='2024'/>
      <abstract>
	 <t>   This memo provides guidelines for authors and reviewers of
   specifications containing YANG modules, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.  The document also updates RFC 6020 by
   clarifying how modules and their revisions are handled by IANA.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-netmod-rfc8407bis-14'/>
   
</reference>

<reference anchor='RFC7471' target='https://www.rfc-editor.org/info/rfc7471'>
  <front>
    <title>OSPF Traffic Engineering (TE) Metric Extensions</title>
    <author fullname='S. Giacalone' initials='S.' surname='Giacalone'/>
    <author fullname='D. Ward' initials='D.' surname='Ward'/>
    <author fullname='J. Drake' initials='J.' surname='Drake'/>
    <author fullname='A. Atlas' initials='A.' surname='Atlas'/>
    <author fullname='S. Previdi' initials='S.' surname='Previdi'/>
    <date month='March' year='2015'/>
    <abstract>
      <t>In certain networks, such as, but not limited to, financial information networks (e.g., stock market data providers), network performance information (e.g., link propagation delay) is becoming critical to data path selection.</t>
      <t>This document describes common extensions to RFC 3630 "Traffic Engineering (TE) Extensions to OSPF Version 2" and RFC 5329 "Traffic Engineering Extensions to OSPF Version 3" to enable network performance information to be distributed in a scalable fashion. The information distributed using OSPF TE Metric Extensions can then be used to make path selection decisions based on network performance.</t>
      <t>Note that this document only covers the mechanisms by which network performance information is distributed. The mechanisms for measuring network performance information or using that information, once distributed, are outside the scope of this document.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7471'/>
  <seriesInfo name='DOI' value='10.17487/RFC7471'/>
</reference>

<reference anchor='RFC8570' target='https://www.rfc-editor.org/info/rfc8570'>
  <front>
    <title>IS-IS Traffic Engineering (TE) Metric Extensions</title>
    <author fullname='L. Ginsberg' initials='L.' role='editor' surname='Ginsberg'/>
    <author fullname='S. Previdi' initials='S.' role='editor' surname='Previdi'/>
    <author fullname='S. Giacalone' initials='S.' surname='Giacalone'/>
    <author fullname='D. Ward' initials='D.' surname='Ward'/>
    <author fullname='J. Drake' initials='J.' surname='Drake'/>
    <author fullname='Q. Wu' initials='Q.' surname='Wu'/>
    <date month='March' year='2019'/>
    <abstract>
      <t>In certain networks, such as, but not limited to, financial information networks (e.g., stock market data providers), network-performance criteria (e.g., latency) are becoming as critical to data-path selection as other metrics.</t>
      <t>This document describes extensions to IS-IS Traffic Engineering Extensions (RFC 5305). These extensions provide a way to distribute and collect network-performance information in a scalable fashion. The information distributed using IS-IS TE Metric Extensions can then be used to make path-selection decisions based on network performance.</t>
      <t>Note that this document only covers the mechanisms with which network-performance information is distributed. The mechanisms for measuring network performance or acting on that information, once distributed, are outside the scope of this document.</t>
      <t>This document obsoletes RFC 7810.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8570'/>
  <seriesInfo name='DOI' value='10.17487/RFC8570'/>
</reference>

<reference anchor='RFC7823' target='https://www.rfc-editor.org/info/rfc7823'>
  <front>
    <title>Performance-Based Path Selection for Explicitly Routed Label Switched Paths (LSPs) Using TE Metric Extensions</title>
    <author fullname='A. Atlas' initials='A.' surname='Atlas'/>
    <author fullname='J. Drake' initials='J.' surname='Drake'/>
    <author fullname='S. Giacalone' initials='S.' surname='Giacalone'/>
    <author fullname='S. Previdi' initials='S.' surname='Previdi'/>
    <date month='May' year='2016'/>
    <abstract>
      <t>In certain networks, it is critical to consider network performance criteria when selecting the path for an explicitly routed RSVP-TE Label Switched Path (LSP). Such performance criteria can include latency, jitter, and loss or other indications such as the conformance to link performance objectives and non-RSVP TE traffic load. This specification describes how a path computation function may use network performance data, such as is advertised via the OSPF and IS-IS TE metric extensions (defined outside the scope of this document) to perform such path selections.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7823'/>
  <seriesInfo name='DOI' value='10.17487/RFC7823'/>
</reference>

<reference anchor='RFC4124' target='https://www.rfc-editor.org/info/rfc4124'>
  <front>
    <title>Protocol Extensions for Support of Diffserv-aware MPLS Traffic Engineering</title>
    <author fullname='F. Le Faucheur' initials='F.' role='editor' surname='Le Faucheur'/>
    <date month='June' year='2005'/>
    <abstract>
      <t>This document specifies the protocol extensions for support of Diffserv-aware MPLS Traffic Engineering (DS-TE). This includes generalization of the semantics of a number of Interior Gateway Protocol (IGP) extensions already defined for existing MPLS Traffic Engineering in RFC 3630, RFC 3784, and additional IGP extensions beyond those. This also includes extensions to RSVP-TE signaling beyond those already specified in RFC 3209 for existing MPLS Traffic Engineering. These extensions address the requirements for DS-TE spelled out in RFC 3564. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4124'/>
  <seriesInfo name='DOI' value='10.17487/RFC4124'/>
</reference>

<reference anchor='RFC6370' target='https://www.rfc-editor.org/info/rfc6370'>
  <front>
    <title>MPLS Transport Profile (MPLS-TP) Identifiers</title>
    <author fullname='M. Bocci' initials='M.' surname='Bocci'/>
    <author fullname='G. Swallow' initials='G.' surname='Swallow'/>
    <author fullname='E. Gray' initials='E.' surname='Gray'/>
    <date month='September' year='2011'/>
    <abstract>
      <t>This document specifies an initial set of identifiers to be used in the Transport Profile of Multiprotocol Label Switching (MPLS-TP). The MPLS-TP requirements (RFC 5654) require that the elements and objects in an MPLS-TP environment are able to be configured and managed without a control plane. In such an environment, many conventions for defining identifiers are possible. This document defines identifiers for MPLS-TP management and Operations, Administration, and Maintenance (OAM) functions compatible with IP/ MPLS conventions.</t>
      <t>This document is a product of a joint Internet Engineering Task Force (IETF) / International Telecommunication Union Telecommunication Standardization Sector (ITU-T) effort to include an MPLS Transport Profile within the IETF MPLS and Pseudowire Emulation Edge-to-Edge (PWE3) architectures to support the capabilities and functionalities of a packet transport network as defined by the ITU-T. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6370'/>
  <seriesInfo name='DOI' value='10.17487/RFC6370'/>
</reference>

<reference anchor='RFC5003' target='https://www.rfc-editor.org/info/rfc5003'>
  <front>
    <title>Attachment Individual Identifier (AII) Types for Aggregation</title>
    <author fullname='C. Metz' initials='C.' surname='Metz'/>
    <author fullname='L. Martini' initials='L.' surname='Martini'/>
    <author fullname='F. Balus' initials='F.' surname='Balus'/>
    <author fullname='J. Sugimoto' initials='J.' surname='Sugimoto'/>
    <date month='September' year='2007'/>
    <abstract>
      <t>The signaling protocols used to establish point-to-point pseudowires include type-length-value (TLV) fields that identify pseudowire endpoints called attachment individual identifiers (AIIs). This document defines AII structures in the form of new AII TLV fields that support AII aggregation for improved scalability and Virtual Private Network (VPN) auto-discovery. It is envisioned that this would be useful in large inter-domain virtual private wire service networks where pseudowires are established between selected local and remote provider edge (PE) nodes based on customer need. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5003'/>
  <seriesInfo name='DOI' value='10.17487/RFC5003'/>
</reference>

<reference anchor='RFC3630' target='https://www.rfc-editor.org/info/rfc3630'>
  <front>
    <title>Traffic Engineering (TE) Extensions to OSPF Version 2</title>
    <author fullname='D. Katz' initials='D.' surname='Katz'/>
    <author fullname='K. Kompella' initials='K.' surname='Kompella'/>
    <author fullname='D. Yeung' initials='D.' surname='Yeung'/>
    <date month='September' year='2003'/>
    <abstract>
      <t>This document describes extensions to the OSPF protocol version 2 to support intra-area Traffic Engineering (TE), using Opaque Link State Advertisements.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='3630'/>
  <seriesInfo name='DOI' value='10.17487/RFC3630'/>
</reference>

<reference anchor='RFC6827' target='https://www.rfc-editor.org/info/rfc6827'>
  <front>
    <title>Automatically Switched Optical Network (ASON) Routing for OSPFv2 Protocols</title>
    <author fullname='A. Malis' initials='A.' role='editor' surname='Malis'/>
    <author fullname='A. Lindem' initials='A.' role='editor' surname='Lindem'/>
    <author fullname='D. Papadimitriou' initials='D.' role='editor' surname='Papadimitriou'/>
    <date month='January' year='2013'/>
    <abstract>
      <t>The ITU-T has defined an architecture and requirements for operating an Automatically Switched Optical Network (ASON).</t>
      <t>The Generalized Multiprotocol Label Switching (GMPLS) protocol suite is designed to provide a control plane for a range of network technologies. These include optical networks such as time division multiplexing (TDM) networks including the Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH), Optical Transport Networks (OTNs), and lambda switching optical networks.</t>
      <t>The requirements for GMPLS routing to satisfy the requirements of ASON routing and an evaluation of existing GMPLS routing protocols are provided in other documents. This document defines extensions to the OSPFv2 Link State Routing Protocol to meet the requirements for routing in an ASON.</t>
      <t>Note that this work is scoped to the requirements and evaluation expressed in RFC 4258 and RFC 4652 and the ITU-T Recommendations that were current when those documents were written. Future extensions or revisions of this work may be necessary if the ITU-T Recommendations are revised or if new requirements are introduced into a revision of RFC 4258. This document obsoletes RFC 5787 and updates RFC 5786. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6827'/>
  <seriesInfo name='DOI' value='10.17487/RFC6827'/>
</reference>

<reference anchor='RFC5305' target='https://www.rfc-editor.org/info/rfc5305'>
  <front>
    <title>IS-IS Extensions for Traffic Engineering</title>
    <author fullname='T. Li' initials='T.' surname='Li'/>
    <author fullname='H. Smit' initials='H.' surname='Smit'/>
    <date month='October' year='2008'/>
    <abstract>
      <t>This document describes extensions to the Intermediate System to Intermediate System (IS-IS) protocol to support Traffic Engineering (TE). This document extends the IS-IS protocol by specifying new information that an Intermediate System (router) can place in Link State Protocol Data Units (LSP). This information describes additional details regarding the state of the network that are useful for traffic engineering computations. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5305'/>
  <seriesInfo name='DOI' value='10.17487/RFC5305'/>
</reference>

<reference anchor='RFC6119' target='https://www.rfc-editor.org/info/rfc6119'>
  <front>
    <title>IPv6 Traffic Engineering in IS-IS</title>
    <author fullname='J. Harrison' initials='J.' surname='Harrison'/>
    <author fullname='J. Berger' initials='J.' surname='Berger'/>
    <author fullname='M. Bartlett' initials='M.' surname='Bartlett'/>
    <date month='February' year='2011'/>
    <abstract>
      <t>This document specifies a method for exchanging IPv6 traffic engineering information using the IS-IS routing protocol. This information enables routers in an IS-IS network to calculate traffic-engineered routes using IPv6 addresses. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6119'/>
  <seriesInfo name='DOI' value='10.17487/RFC6119'/>
</reference>

<reference anchor='RFC4872' target='https://www.rfc-editor.org/info/rfc4872'>
  <front>
    <title>RSVP-TE Extensions in Support of End-to-End Generalized Multi-Protocol Label Switching (GMPLS) Recovery</title>
    <author fullname='J.P. Lang' initials='J.P.' role='editor' surname='Lang'/>
    <author fullname='Y. Rekhter' initials='Y.' role='editor' surname='Rekhter'/>
    <author fullname='D. Papadimitriou' initials='D.' role='editor' surname='Papadimitriou'/>
    <date month='May' year='2007'/>
    <abstract>
      <t>This document describes protocol-specific procedures and extensions for Generalized Multi-Protocol Label Switching (GMPLS) Resource ReSerVation Protocol - Traffic Engineering (RSVP-TE) signaling to support end-to-end Label Switched Path (LSP) recovery that denotes protection and restoration. A generic functional description of GMPLS recovery can be found in a companion document, RFC 4426. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4872'/>
  <seriesInfo name='DOI' value='10.17487/RFC4872'/>
</reference>

<reference anchor='RFC7308' target='https://www.rfc-editor.org/info/rfc7308'>
  <front>
    <title>Extended Administrative Groups in MPLS Traffic Engineering (MPLS-TE)</title>
    <author fullname='E. Osborne' initials='E.' surname='Osborne'/>
    <date month='July' year='2014'/>
    <abstract>
      <t>MPLS Traffic Engineering (MPLS-TE) advertises 32 administrative groups (commonly referred to as "colors" or "link colors") using the Administrative Group sub-TLV. This is defined for OSPFv2 (RFC 3630), OSPFv3 (RFC 5329) and IS-IS (RFC 5305).</t>
      <t>This document adds a sub-TLV to the IGP TE extensions, "Extended Administrative Group". This sub-TLV provides for additional administrative groups (link colors) beyond the current limit of 32.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7308'/>
  <seriesInfo name='DOI' value='10.17487/RFC7308'/>
</reference>

<reference anchor='RFC4203' target='https://www.rfc-editor.org/info/rfc4203'>
  <front>
    <title>OSPF Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)</title>
    <author fullname='K. Kompella' initials='K.' role='editor' surname='Kompella'/>
    <author fullname='Y. Rekhter' initials='Y.' role='editor' surname='Rekhter'/>
    <date month='October' year='2005'/>
    <abstract>
      <t>This document specifies encoding of extensions to the OSPF routing protocol in support of Generalized Multi-Protocol Label Switching (GMPLS). [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4203'/>
  <seriesInfo name='DOI' value='10.17487/RFC4203'/>
</reference>

<reference anchor='RFC5307' target='https://www.rfc-editor.org/info/rfc5307'>
  <front>
    <title>IS-IS Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)</title>
    <author fullname='K. Kompella' initials='K.' role='editor' surname='Kompella'/>
    <author fullname='Y. Rekhter' initials='Y.' role='editor' surname='Rekhter'/>
    <date month='October' year='2008'/>
    <abstract>
      <t>This document specifies encoding of extensions to the IS-IS routing protocol in support of Generalized Multi-Protocol Label Switching (GMPLS). [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5307'/>
  <seriesInfo name='DOI' value='10.17487/RFC5307'/>
</reference>

<reference anchor='RFC3785' target='https://www.rfc-editor.org/info/rfc3785'>
  <front>
    <title>Use of Interior Gateway Protocol (IGP) Metric as a second MPLS Traffic Engineering (TE) Metric</title>
    <author fullname='F. Le Faucheur' initials='F.' surname='Le Faucheur'/>
    <author fullname='R. Uppili' initials='R.' surname='Uppili'/>
    <author fullname='A. Vedrenne' initials='A.' surname='Vedrenne'/>
    <author fullname='P. Merckx' initials='P.' surname='Merckx'/>
    <author fullname='T. Telkamp' initials='T.' surname='Telkamp'/>
    <date month='May' year='2004'/>
    <abstract>
      <t>This document describes a common practice on how the existing metric of Interior Gateway Protocols (IGP) can be used as an alternative metric to the Traffic Engineering (TE) metric for Constraint Based Routing of MultiProtocol Label Switching (MPLS) Traffic Engineering tunnels. This effectively results in the ability to perform Constraint Based Routing with optimization of one metric (e.g., link bandwidth) for some Traffic Engineering tunnels (e.g., Data Trunks) while optimizing another metric (e.g., propagation delay) for some other tunnels with different requirements (e.g., Voice Trunks). No protocol extensions or modifications are required. This text documents current router implementations and deployment practices. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='87'/>
  <seriesInfo name='RFC' value='3785'/>
  <seriesInfo name='DOI' value='10.17487/RFC3785'/>
</reference>

<reference anchor='RFC4427' target='https://www.rfc-editor.org/info/rfc4427'>
  <front>
    <title>Recovery (Protection and Restoration) Terminology for Generalized Multi-Protocol Label Switching (GMPLS)</title>
    <author fullname='E. Mannie' initials='E.' role='editor' surname='Mannie'/>
    <author fullname='D. Papadimitriou' initials='D.' role='editor' surname='Papadimitriou'/>
    <date month='March' year='2006'/>
    <abstract>
      <t>This document defines a common terminology for Generalized Multi-Protocol Label Switching (GMPLS)-based recovery mechanisms (i.e., protection and restoration). The terminology is independent of the underlying transport technologies covered by GMPLS. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4427'/>
  <seriesInfo name='DOI' value='10.17487/RFC4427'/>
</reference>

<reference anchor='RFC6378' target='https://www.rfc-editor.org/info/rfc6378'>
  <front>
    <title>MPLS Transport Profile (MPLS-TP) Linear Protection</title>
    <author fullname='Y. Weingarten' initials='Y.' role='editor' surname='Weingarten'/>
    <author fullname='S. Bryant' initials='S.' surname='Bryant'/>
    <author fullname='E. Osborne' initials='E.' surname='Osborne'/>
    <author fullname='N. Sprecher' initials='N.' surname='Sprecher'/>
    <author fullname='A. Fulignoli' initials='A.' role='editor' surname='Fulignoli'/>
    <date month='October' year='2011'/>
    <abstract>
      <t>This document is a product of a joint Internet Engineering Task Force (IETF) / International Telecommunications Union Telecommunications Standardization Sector (ITU-T) effort to include an MPLS Transport Profile within the IETF MPLS and Pseudowire Emulation Edge-to-Edge (PWE3) architectures to support the capabilities and functionalities of a packet transport network as defined by the ITU-T.</t>
      <t>This document addresses the functionality described in the MPLS-TP Survivability Framework document (RFC 6372) and defines a protocol that may be used to fulfill the function of the Protection State Coordination for linear protection, as described in that document. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6378'/>
  <seriesInfo name='DOI' value='10.17487/RFC6378'/>
</reference>

<reference anchor='RFC3209' target='https://www.rfc-editor.org/info/rfc3209'>
  <front>
    <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
    <author fullname='D. Awduche' initials='D.' surname='Awduche'/>
    <author fullname='L. Berger' initials='L.' surname='Berger'/>
    <author fullname='D. Gan' initials='D.' surname='Gan'/>
    <author fullname='T. Li' initials='T.' surname='Li'/>
    <author fullname='V. Srinivasan' initials='V.' surname='Srinivasan'/>
    <author fullname='G. Swallow' initials='G.' surname='Swallow'/>
    <date month='December' year='2001'/>
    <abstract>
      <t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels. A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='3209'/>
  <seriesInfo name='DOI' value='10.17487/RFC3209'/>
</reference>

<reference anchor='RFC4090' target='https://www.rfc-editor.org/info/rfc4090'>
  <front>
    <title>Fast Reroute Extensions to RSVP-TE for LSP Tunnels</title>
    <author fullname='P. Pan' initials='P.' role='editor' surname='Pan'/>
    <author fullname='G. Swallow' initials='G.' role='editor' surname='Swallow'/>
    <author fullname='A. Atlas' initials='A.' role='editor' surname='Atlas'/>
    <date month='May' year='2005'/>
    <abstract>
      <t>This document defines RSVP-TE extensions to establish backup label-switched path (LSP) tunnels for local repair of LSP tunnels. These mechanisms enable the re-direction of traffic onto backup LSP tunnels in 10s of milliseconds, in the event of a failure.</t>
      <t>Two methods are defined here. The one-to-one backup method creates detour LSPs for each protected LSP at each potential point of local repair. The facility backup method creates a bypass tunnel to protect a potential failure point; by taking advantage of MPLS label stacking, this bypass tunnel can protect a set of LSPs that have similar backup constraints. Both methods can be used to protect links and nodes during network failure. The described behavior and extensions to RSVP allow nodes to implement either method or both and to interoperate in a mixed network. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4090'/>
  <seriesInfo name='DOI' value='10.17487/RFC4090'/>
</reference>

<reference anchor='RFC4736' target='https://www.rfc-editor.org/info/rfc4736'>
  <front>
    <title>Reoptimization of Multiprotocol Label Switching (MPLS) Traffic Engineering (TE) Loosely Routed Label Switched Path (LSP)</title>
    <author fullname='JP. Vasseur' initials='JP.' role='editor' surname='Vasseur'/>
    <author fullname='Y. Ikejiri' initials='Y.' surname='Ikejiri'/>
    <author fullname='R. Zhang' initials='R.' surname='Zhang'/>
    <date month='November' year='2006'/>
    <abstract>
      <t>This document defines a mechanism for the reoptimization of loosely routed MPLS and GMPLS (Generalized Multiprotocol Label Switching) Traffic Engineering (TE) Label Switched Paths (LSPs) signaled with Resource Reservation Protocol Traffic Engineering (RSVP-TE). This document proposes a mechanism that allows a TE LSP head-end Label Switching Router (LSR) to trigger a new path re-evaluation on every hop that has a next hop defined as a loose or abstract hop and a mid-point LSR to signal to the head-end LSR that a better path exists (compared to the current path) or that the TE LSP must be reoptimized (because of maintenance required on the TE LSP path). The proposed mechanism applies to the cases of intra- and inter-domain (Interior Gateway Protocol area (IGP area) or Autonomous System) packet and non-packet TE LSPs following a loosely routed path. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4736'/>
  <seriesInfo name='DOI' value='10.17487/RFC4736'/>
</reference>

<reference anchor='RFC5712' target='https://www.rfc-editor.org/info/rfc5712'>
  <front>
    <title>MPLS Traffic Engineering Soft Preemption</title>
    <author fullname='M. Meyer' initials='M.' role='editor' surname='Meyer'/>
    <author fullname='JP. Vasseur' initials='JP.' role='editor' surname='Vasseur'/>
    <date month='January' year='2010'/>
    <abstract>
      <t>This document specifies Multiprotocol Label Switching (MPLS) Traffic Engineering Soft Preemption, a suite of protocol modifications extending the concept of preemption with the goal of reducing or eliminating traffic disruption of preempted Traffic Engineering Label Switched Paths (TE LSPs). Initially, MPLS RSVP-TE was defined with support for only immediate TE LSP displacement upon preemption. The utilization of a reroute request notification helps more gracefully mitigate the reroute process of preempted TE LSP. For the brief period soft preemption is activated, reservations (though not necessarily traffic levels) are in effect under-provisioned until the TE LSP(s) can be rerouted. For this reason, the feature is primarily, but not exclusively, interesting in MPLS-enabled IP networks with Differentiated Services and Traffic Engineering capabilities. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5712'/>
  <seriesInfo name='DOI' value='10.17487/RFC5712'/>
</reference>

<reference anchor='RFC4920' target='https://www.rfc-editor.org/info/rfc4920'>
  <front>
    <title>Crankback Signaling Extensions for MPLS and GMPLS RSVP-TE</title>
    <author fullname='A. Farrel' initials='A.' role='editor' surname='Farrel'/>
    <author fullname='A. Satyanarayana' initials='A.' surname='Satyanarayana'/>
    <author fullname='A. Iwata' initials='A.' surname='Iwata'/>
    <author fullname='N. Fujita' initials='N.' surname='Fujita'/>
    <author fullname='G. Ash' initials='G.' surname='Ash'/>
    <date month='July' year='2007'/>
    <abstract>
      <t>In a distributed, constraint-based routing environment, the information used to compute a path may be out of date. This means that Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineered (TE) Label Switched Path (LSP) setup requests may be blocked by links or nodes without sufficient resources. Crankback is a scheme whereby setup failure information is returned from the point of failure to allow new setup attempts to be made avoiding the blocked resources. Crankback can also be applied to LSP recovery to indicate the location of the failed link or node.</t>
      <t>This document specifies crankback signaling extensions for use in MPLS signaling using RSVP-TE as defined in "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, and GMPLS signaling as defined in "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description", RFC 3473. These extensions mean that the LSP setup request can be retried on an alternate path that detours around blocked links or nodes. This offers significant improvements in the successful setup and recovery ratios for LSPs, especially in situations where a large number of setup requests are triggered at the same time. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4920'/>
  <seriesInfo name='DOI' value='10.17487/RFC4920'/>
</reference>

<reference anchor='RFC5420' target='https://www.rfc-editor.org/info/rfc5420'>
  <front>
    <title>Encoding of Attributes for MPLS LSP Establishment Using Resource Reservation Protocol Traffic Engineering (RSVP-TE)</title>
    <author fullname='A. Farrel' initials='A.' role='editor' surname='Farrel'/>
    <author fullname='D. Papadimitriou' initials='D.' surname='Papadimitriou'/>
    <author fullname='JP. Vasseur' initials='JP.' surname='Vasseur'/>
    <author fullname='A. Ayyangar' initials='A.' surname='Ayyangar'/>
    <date month='February' year='2009'/>
    <abstract>
      <t>Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) may be established using the Resource Reservation Protocol Traffic Engineering (RSVP-TE) extensions. This protocol includes an object (the SESSION_ATTRIBUTE object) that carries a Flags field used to indicate options and attributes of the LSP. That Flags field has eight bits, allowing for eight options to be set. Recent proposals in many documents that extend RSVP-TE have suggested uses for each of the previously unused bits.</t>
      <t>This document defines a new object for RSVP-TE messages that allows the signaling of further attribute bits and also the carriage of arbitrary attribute parameters to make RSVP-TE easily extensible to support new requirements. Additionally, this document defines a way to record the attributes applied to the LSP on a hop-by-hop basis.</t>
      <t>The object mechanisms defined in this document are equally applicable to Generalized MPLS (GMPLS) Packet Switch Capable (PSC) LSPs and to GMPLS non-PSC LSPs.</t>
      <t>This document replaces and obsoletes the previous version of this work, published as RFC 4420. The only change is in the encoding of the Type-Length-Variable (TLV) data structures. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5420'/>
  <seriesInfo name='DOI' value='10.17487/RFC5420'/>
</reference>

<reference anchor='RFC7570' target='https://www.rfc-editor.org/info/rfc7570'>
  <front>
    <title>Label Switched Path (LSP) Attribute in the Explicit Route Object (ERO)</title>
    <author fullname='C. Margaria' initials='C.' role='editor' surname='Margaria'/>
    <author fullname='G. Martinelli' initials='G.' surname='Martinelli'/>
    <author fullname='S. Balls' initials='S.' surname='Balls'/>
    <author fullname='B. Wright' initials='B.' surname='Wright'/>
    <date month='July' year='2015'/>
    <abstract>
      <t>RFC 5420 extends RSVP-TE to specify or record generic attributes that apply to the whole of the path of a Label Switched Path (LSP). This document defines an extension to the RSVP Explicit Route Object (ERO) and Record Route Object (RRO) to allow them to specify or record generic attributes that apply to a given hop.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7570'/>
  <seriesInfo name='DOI' value='10.17487/RFC7570'/>
</reference>

<reference anchor='RFC4875' target='https://www.rfc-editor.org/info/rfc4875'>
  <front>
    <title>Extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE Label Switched Paths (LSPs)</title>
    <author fullname='R. Aggarwal' initials='R.' role='editor' surname='Aggarwal'/>
    <author fullname='D. Papadimitriou' initials='D.' role='editor' surname='Papadimitriou'/>
    <author fullname='S. Yasukawa' initials='S.' role='editor' surname='Yasukawa'/>
    <date month='May' year='2007'/>
    <abstract>
      <t>This document describes extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) for the set up of Traffic Engineered (TE) point-to-multipoint (P2MP) Label Switched Paths (LSPs) in Multi- Protocol Label Switching (MPLS) and Generalized MPLS (GMPLS) networks. The solution relies on RSVP-TE without requiring a multicast routing protocol in the Service Provider core. Protocol elements and procedures for this solution are described.</t>
      <t>There can be various applications for P2MP TE LSPs such as IP multicast. Specification of how such applications will use a P2MP TE LSP is outside the scope of this document. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4875'/>
  <seriesInfo name='DOI' value='10.17487/RFC4875'/>
</reference>

<reference anchor='RFC5151' target='https://www.rfc-editor.org/info/rfc5151'>
  <front>
    <title>Inter-Domain MPLS and GMPLS Traffic Engineering -- Resource Reservation Protocol-Traffic Engineering (RSVP-TE) Extensions</title>
    <author fullname='A. Farrel' initials='A.' role='editor' surname='Farrel'/>
    <author fullname='A. Ayyangar' initials='A.' surname='Ayyangar'/>
    <author fullname='JP. Vasseur' initials='JP.' surname='Vasseur'/>
    <date month='February' year='2008'/>
    <abstract>
      <t>This document describes procedures and protocol extensions for the use of Resource Reservation Protocol-Traffic Engineering (RSVP-TE) signaling in Multiprotocol Label Switching-Traffic Engineering (MPLS-TE) packet networks and Generalized MPLS (GMPLS) packet and non-packet networks to support the establishment and maintenance of Label Switched Paths that cross domain boundaries.</t>
      <t>For the purpose of this document, a domain is considered to be any collection of network elements within a common realm of address space or path computation responsibility. Examples of such domains include Autonomous Systems, Interior Gateway Protocol (IGP) routing areas, and GMPLS overlay networks. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5151'/>
  <seriesInfo name='DOI' value='10.17487/RFC5151'/>
</reference>

<reference anchor='RFC5150' target='https://www.rfc-editor.org/info/rfc5150'>
  <front>
    <title>Label Switched Path Stitching with Generalized Multiprotocol Label Switching Traffic Engineering (GMPLS TE)</title>
    <author fullname='A. Ayyangar' initials='A.' surname='Ayyangar'/>
    <author fullname='K. Kompella' initials='K.' surname='Kompella'/>
    <author fullname='JP. Vasseur' initials='JP.' surname='Vasseur'/>
    <author fullname='A. Farrel' initials='A.' surname='Farrel'/>
    <date month='February' year='2008'/>
    <abstract>
      <t>In certain scenarios, there may be a need to combine several Generalized Multiprotocol Label Switching (GMPLS) Label Switched Paths (LSPs) such that a single end-to-end (e2e) LSP is realized and all traffic from one constituent LSP is switched onto the next LSP. We will refer to this as "LSP stitching", the key requirement being that a constituent LSP not be allocated to more than one e2e LSP. The constituent LSPs will be referred to as "LSP segments" (S-LSPs).</t>
      <t>This document describes extensions to the existing GMPLS signaling protocol (Resource Reservation Protocol-Traffic Engineering (RSVP-TE)) to establish e2e LSPs created from S-LSPs, and describes how the LSPs can be managed using the GMPLS signaling and routing protocols.</t>
      <t>It may be possible to configure a GMPLS node to switch the traffic from an LSP for which it is the egress, to another LSP for which it is the ingress, without requiring any signaling or routing extensions whatsoever and such that the operation is completely transparent to other nodes. This will also result in LSP stitching in the data plane. However, this document does not cover this scenario of LSP stitching. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5150'/>
  <seriesInfo name='DOI' value='10.17487/RFC5150'/>
</reference>

<reference anchor='RFC6001' target='https://www.rfc-editor.org/info/rfc6001'>
  <front>
    <title>Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN)</title>
    <author fullname='D. Papadimitriou' initials='D.' surname='Papadimitriou'/>
    <author fullname='M. Vigoureux' initials='M.' surname='Vigoureux'/>
    <author fullname='K. Shiomoto' initials='K.' surname='Shiomoto'/>
    <author fullname='D. Brungard' initials='D.' surname='Brungard'/>
    <author fullname='JL. Le Roux' initials='JL.' surname='Le Roux'/>
    <date month='October' year='2010'/>
    <abstract>
      <t>There are specific requirements for the support of networks comprising Label Switching Routers (LSRs) participating in different data plane switching layers controlled by a single Generalized Multi-Protocol Label Switching (GMPLS) control plane instance, referred to as GMPLS Multi-Layer Networks / Multi-Region Networks (MLN/MRN).</t>
      <t>This document defines extensions to GMPLS routing and signaling protocols so as to support the operation of GMPLS Multi-Layer / Multi-Region Networks. It covers the elements of a single GMPLS control plane instance controlling multiple Label Switched Path (LSP) regions or layers within a single Traffic Engineering (TE) domain. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6001'/>
  <seriesInfo name='DOI' value='10.17487/RFC6001'/>
</reference>

<reference anchor='RFC6790' target='https://www.rfc-editor.org/info/rfc6790'>
  <front>
    <title>The Use of Entropy Labels in MPLS Forwarding</title>
    <author fullname='K. Kompella' initials='K.' surname='Kompella'/>
    <author fullname='J. Drake' initials='J.' surname='Drake'/>
    <author fullname='S. Amante' initials='S.' surname='Amante'/>
    <author fullname='W. Henderickx' initials='W.' surname='Henderickx'/>
    <author fullname='L. Yong' initials='L.' surname='Yong'/>
    <date month='November' year='2012'/>
    <abstract>
      <t>Load balancing is a powerful tool for engineering traffic across a network. This memo suggests ways of improving load balancing across MPLS networks using the concept of "entropy labels". It defines the concept, describes why entropy labels are useful, enumerates properties of entropy labels that allow maximal benefit, and shows how they can be signaled and used for various applications. This document updates RFCs 3031, 3107, 3209, and 5036. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6790'/>
  <seriesInfo name='DOI' value='10.17487/RFC6790'/>
</reference>

<reference anchor='RFC7260' target='https://www.rfc-editor.org/info/rfc7260'>
  <front>
    <title>GMPLS RSVP-TE Extensions for Operations, Administration, and Maintenance (OAM) Configuration</title>
    <author fullname='A. Takacs' initials='A.' surname='Takacs'/>
    <author fullname='D. Fedyk' initials='D.' surname='Fedyk'/>
    <author fullname='J. He' initials='J.' surname='He'/>
    <date month='June' year='2014'/>
    <abstract>
      <t>Operations, Administration, and Maintenance (OAM) is an integral part of transport connections; hence, it is required that OAM functions be activated/deactivated in sync with connection commissioning/ decommissioning, in order to avoid spurious alarms and ensure consistent operation. In certain technologies, OAM entities are inherently established once the connection is set up, while other technologies require extra configuration to establish and configure OAM entities. This document specifies extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) to support the establishment and configuration of OAM entities along with Label Switched Path signaling.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7260'/>
  <seriesInfo name='DOI' value='10.17487/RFC7260'/>
</reference>

<reference anchor='RFC8001' target='https://www.rfc-editor.org/info/rfc8001'>
  <front>
    <title>RSVP-TE Extensions for Collecting Shared Risk Link Group (SRLG) Information</title>
    <author fullname='F. Zhang' initials='F.' role='editor' surname='Zhang'/>
    <author fullname='O. Gonzalez de Dios' initials='O.' role='editor' surname='Gonzalez de Dios'/>
    <author fullname='C. Margaria' initials='C.' surname='Margaria'/>
    <author fullname='M. Hartley' initials='M.' surname='Hartley'/>
    <author fullname='Z. Ali' initials='Z.' surname='Ali'/>
    <date month='January' year='2017'/>
    <abstract>
      <t>This document provides extensions for Resource Reservation Protocol - Traffic Engineering (RSVP-TE), including GMPLS, to support automatic collection of Shared Risk Link Group (SRLG) information for the TE link formed by a Label Switched Path (LSP).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8001'/>
  <seriesInfo name='DOI' value='10.17487/RFC8001'/>
</reference>

<reference anchor='RFC8149' target='https://www.rfc-editor.org/info/rfc8149'>
  <front>
    <title>RSVP Extensions for Reoptimization of Loosely Routed Point-to-Multipoint Traffic Engineering Label Switched Paths (LSPs)</title>
    <author fullname='T. Saad' initials='T.' role='editor' surname='Saad'/>
    <author fullname='R. Gandhi' initials='R.' role='editor' surname='Gandhi'/>
    <author fullname='Z. Ali' initials='Z.' surname='Ali'/>
    <author fullname='R. Venator' initials='R.' surname='Venator'/>
    <author fullname='Y. Kamite' initials='Y.' surname='Kamite'/>
    <date month='April' year='2017'/>
    <abstract>
      <t>The reoptimization of a Point-to-Multipoint (P2MP) Traffic Engineering (TE) Label Switched Path (LSP) may be triggered based on the need to reoptimize an individual source-to-leaf (S2L) sub-LSP or a set of S2L sub-LSPs, both using the Sub-Group-based reoptimization method, or the entire P2MP-TE LSP tree using the Make-Before-Break (MBB) method. This document discusses the application of the existing mechanisms for path reoptimization of loosely routed Point-to-Point (P2P) TE LSPs to the P2MP-TE LSPs, identifies issues in doing so, and defines procedures to address them. When reoptimizing a large number of S2L sub-LSPs in a tree using the Sub-Group-based reoptimization method, the S2L sub-LSP descriptor list may need to be semantically fragmented. This document defines the notion of a fragment identifier to help recipient nodes unambiguously reconstruct the fragmented S2L sub-LSP descriptor list.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8149'/>
  <seriesInfo name='DOI' value='10.17487/RFC8149'/>
</reference>

<reference anchor='RFC8169' target='https://www.rfc-editor.org/info/rfc8169'>
  <front>
    <title>Residence Time Measurement in MPLS Networks</title>
    <author fullname='G. Mirsky' initials='G.' surname='Mirsky'/>
    <author fullname='S. Ruffini' initials='S.' surname='Ruffini'/>
    <author fullname='E. Gray' initials='E.' surname='Gray'/>
    <author fullname='J. Drake' initials='J.' surname='Drake'/>
    <author fullname='S. Bryant' initials='S.' surname='Bryant'/>
    <author fullname='A. Vainshtein' initials='A.' surname='Vainshtein'/>
    <date month='May' year='2017'/>
    <abstract>
      <t>This document specifies a new Generic Associated Channel (G-ACh) for Residence Time Measurement (RTM) and describes how it can be used by time synchronization protocols within an MPLS domain.</t>
      <t>Residence time is the variable part of the propagation delay of timing and synchronization messages; knowing this delay for each message allows for a more accurate determination of the delay to be taken into account when applying the value included in a Precision Time Protocol event message.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8169'/>
  <seriesInfo name='DOI' value='10.17487/RFC8169'/>
</reference>

<reference anchor='RFC6780' target='https://www.rfc-editor.org/info/rfc6780'>
  <front>
    <title>RSVP ASSOCIATION Object Extensions</title>
    <author fullname='L. Berger' initials='L.' surname='Berger'/>
    <author fullname='F. Le Faucheur' initials='F.' surname='Le Faucheur'/>
    <author fullname='A. Narayanan' initials='A.' surname='Narayanan'/>
    <date month='October' year='2012'/>
    <abstract>
      <t>The RSVP ASSOCIATION object was defined in the context of GMPLS-controlled Label Switched Paths (LSPs). In this context, the object is used to associate recovery LSPs with the LSP they are protecting. This object also has broader applicability as a mechanism to associate RSVP state. This document defines how the ASSOCIATION object can be more generally applied. This document also defines Extended ASSOCIATION objects that, in particular, can be used in the context of the MPLS Transport Profile (MPLS-TP). This document updates RFC 2205, RFC 3209, and RFC 3473. It also generalizes the definition of the Association ID field defined in RFC 4872. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6780'/>
  <seriesInfo name='DOI' value='10.17487/RFC6780'/>
</reference>

<reference anchor='RFC4873' target='https://www.rfc-editor.org/info/rfc4873'>
  <front>
    <title>GMPLS Segment Recovery</title>
    <author fullname='L. Berger' initials='L.' surname='Berger'/>
    <author fullname='I. Bryskin' initials='I.' surname='Bryskin'/>
    <author fullname='D. Papadimitriou' initials='D.' surname='Papadimitriou'/>
    <author fullname='A. Farrel' initials='A.' surname='Farrel'/>
    <date month='May' year='2007'/>
    <abstract>
      <t>This document describes protocol specific procedures for GMPLS (Generalized Multi-Protocol Label Switching) RSVP-TE (Resource ReserVation Protocol - Traffic Engineering) signaling extensions to support label switched path (LSP) segment protection and restoration. These extensions are intended to complement and be consistent with the RSVP-TE Extensions for End-to-End GMPLS Recovery (RFC 4872). Implications and interactions with fast reroute are also addressed. This document also updates the handling of NOTIFY_REQUEST objects. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4873'/>
  <seriesInfo name='DOI' value='10.17487/RFC4873'/>
</reference>

<reference anchor='RFC3471' target='https://www.rfc-editor.org/info/rfc3471'>
  <front>
    <title>Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description</title>
    <author fullname='L. Berger' initials='L.' role='editor' surname='Berger'/>
    <date month='January' year='2003'/>
    <abstract>
      <t>This document describes extensions to Multi-Protocol Label Switching (MPLS) signaling required to support Generalized MPLS. Generalized MPLS extends the MPLS control plane to encompass time-division (e.g., Synchronous Optical Network and Synchronous Digital Hierarchy, SONET/SDH), wavelength (optical lambdas) and spatial switching (e.g., incoming port or fiber to outgoing port or fiber). This document presents a functional description of the extensions. Protocol specific formats and mechanisms, and technology specific details are specified in separate documents. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='3471'/>
  <seriesInfo name='DOI' value='10.17487/RFC3471'/>
</reference>

<reference anchor='RFC2702' target='https://www.rfc-editor.org/info/rfc2702'>
  <front>
    <title>Requirements for Traffic Engineering Over MPLS</title>
    <author fullname='D. Awduche' initials='D.' surname='Awduche'/>
    <author fullname='J. Malcolm' initials='J.' surname='Malcolm'/>
    <author fullname='J. Agogbua' initials='J.' surname='Agogbua'/>
    <author fullname='M. O&apos;Dell' initials='M.' surname='O&apos;Dell'/>
    <author fullname='J. McManus' initials='J.' surname='McManus'/>
    <date month='September' year='1999'/>
    <abstract>
      <t>This document presents a set of requirements for Traffic Engineering over Multiprotocol Label Switching (MPLS). It identifies the functional capabilities required to implement policies that facilitate efficient and reliable network operations in an MPLS domain. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2702'/>
  <seriesInfo name='DOI' value='10.17487/RFC2702'/>
</reference>

<reference anchor='RFC8233' target='https://www.rfc-editor.org/info/rfc8233'>
  <front>
    <title>Extensions to the Path Computation Element Communication Protocol (PCEP) to Compute Service-Aware Label Switched Paths (LSPs)</title>
    <author fullname='D. Dhody' initials='D.' surname='Dhody'/>
    <author fullname='Q. Wu' initials='Q.' surname='Wu'/>
    <author fullname='V. Manral' initials='V.' surname='Manral'/>
    <author fullname='Z. Ali' initials='Z.' surname='Ali'/>
    <author fullname='K. Kumaki' initials='K.' surname='Kumaki'/>
    <date month='September' year='2017'/>
    <abstract>
      <t>In certain networks, such as, but not limited to, financial information networks (e.g., stock market data providers), network performance criteria (e.g., latency) are becoming as critical to data path selection as other metrics and constraints. These metrics are associated with the Service Level Agreement (SLA) between customers and service providers. The link bandwidth utilization (the total bandwidth of a link in actual use for the forwarding) is another important factor to consider during path computation.</t>
      <t>IGP Traffic Engineering (TE) Metric Extensions describe mechanisms with which network performance information is distributed via OSPF and IS-IS, respectively. The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests. This document describes the extension to PCEP to carry latency, delay variation, packet loss, and link bandwidth utilization as constraints for end-to-end path computation.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8233'/>
  <seriesInfo name='DOI' value='10.17487/RFC8233'/>
</reference>


<reference anchor='I-D.ietf-pce-sid-algo' target='https://datatracker.ietf.org/doc/html/draft-ietf-pce-sid-algo-12'>
   <front>
      <title>Carrying SR-Algorithm information in PCE-based Networks.</title>
      <author fullname='Samuel Sidor' initials='S.' surname='Sidor'>
         <organization>Cisco Systems, Inc.</organization>
      </author>
      <author fullname='Alex Tokar' initials='A.' surname='Tokar'>
         <organization>Cisco Systems, Inc.</organization>
      </author>
      <author fullname='Shaofu Peng' initials='S.' surname='Peng'>
         <organization>ZTE Corporation</organization>
      </author>
      <author fullname='Shuping Peng' initials='S.' surname='Peng'>
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname='Andrew Stone' initials='A.' surname='Stone'>
         <organization>Nokia</organization>
      </author>
      <date day='23' month='July' year='2024'/>
      <abstract>
	 <t>   The SR-Algorithm associated with a Segment-ID (SID) defines the path
   computation algorithm used by Interior Gateway Protocols (IGPs).
   This information is available to controllers such as the Path
   Computation Element (PCE) via topology learning.  This document
   proposes an approach for informing headend routers regarding the SR-
   Algorithm associated with each SID used in PCE-computed paths, as
   well as signalling a specific SR-Algorithm as a constraint to the
   PCE.


	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-pce-sid-algo-12'/>
   
</reference>

<reference anchor='RFC3477' target='https://www.rfc-editor.org/info/rfc3477'>
  <front>
    <title>Signalling Unnumbered Links in Resource ReSerVation Protocol - Traffic Engineering (RSVP-TE)</title>
    <author fullname='K. Kompella' initials='K.' surname='Kompella'/>
    <author fullname='Y. Rekhter' initials='Y.' surname='Rekhter'/>
    <date month='January' year='2003'/>
    <abstract>
      <t>Current signalling used by Multi-Protocol Label Switching Traffic Engineering (MPLS TE) does not provide support for unnumbered links. This document defines procedures and extensions to Resource ReSerVation Protocol (RSVP) for Label Switched Path (LSP) Tunnels (RSVP-TE), one of the MPLS TE signalling protocols, that are needed in order to support unnumbered links. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='3477'/>
  <seriesInfo name='DOI' value='10.17487/RFC3477'/>
</reference>

<reference anchor='RFC4125' target='https://www.rfc-editor.org/info/rfc4125'>
  <front>
    <title>Maximum Allocation Bandwidth Constraints Model for Diffserv-aware MPLS Traffic Engineering</title>
    <author fullname='F. Le Faucheur' initials='F.' surname='Le Faucheur'/>
    <author fullname='W. Lai' initials='W.' surname='Lai'/>
    <date month='June' year='2005'/>
    <abstract>
      <t>This document provides specifications for one Bandwidth Constraints Model for Diffserv-aware MPLS Traffic Engineering, which is referred to as the Maximum Allocation Model. This memo defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4125'/>
  <seriesInfo name='DOI' value='10.17487/RFC4125'/>
</reference>

<reference anchor='RFC4126' target='https://www.rfc-editor.org/info/rfc4126'>
  <front>
    <title>Max Allocation with Reservation Bandwidth Constraints Model for Diffserv-aware MPLS Traffic Engineering &amp; Performance Comparisons</title>
    <author fullname='J. Ash' initials='J.' surname='Ash'/>
    <date month='June' year='2005'/>
    <abstract>
      <t>This document complements the Diffserv-aware MPLS Traffic Engineering (DS-TE) requirements document by giving a functional specification for the Maximum Allocation with Reservation (MAR) Bandwidth Constraints Model. Assumptions, applicability, and examples of the operation of the MAR Bandwidth Constraints Model are presented. MAR performance is analyzed relative to the criteria for selecting a Bandwidth Constraints Model, in order to provide guidance to user implementation of the model in their networks. This memo defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4126'/>
  <seriesInfo name='DOI' value='10.17487/RFC4126'/>
</reference>

<reference anchor='RFC4127' target='https://www.rfc-editor.org/info/rfc4127'>
  <front>
    <title>Russian Dolls Bandwidth Constraints Model for Diffserv-aware MPLS Traffic Engineering</title>
    <author fullname='F. Le Faucheur' initials='F.' role='editor' surname='Le Faucheur'/>
    <date month='June' year='2005'/>
    <abstract>
      <t>This document provides specifications for one Bandwidth Constraints Model for Diffserv-aware MPLS Traffic Engineering, which is referred to as the Russian Dolls Model. This memo defines an Experimental Protocol for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4127'/>
  <seriesInfo name='DOI' value='10.17487/RFC4127'/>
</reference>

<reference anchor='RFC2697' target='https://www.rfc-editor.org/info/rfc2697'>
  <front>
    <title>A Single Rate Three Color Marker</title>
    <author fullname='J. Heinanen' initials='J.' surname='Heinanen'/>
    <author fullname='R. Guerin' initials='R.' surname='Guerin'/>
    <date month='September' year='1999'/>
    <abstract>
      <t>This document defines a Single Rate Three Color Marker (srTCM), which can be used as component in a Diffserv traffic conditioner. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2697'/>
  <seriesInfo name='DOI' value='10.17487/RFC2697'/>
</reference>

<reference anchor='RFC2698' target='https://www.rfc-editor.org/info/rfc2698'>
  <front>
    <title>A Two Rate Three Color Marker</title>
    <author fullname='J. Heinanen' initials='J.' surname='Heinanen'/>
    <author fullname='R. Guerin' initials='R.' surname='Guerin'/>
    <date month='September' year='1999'/>
    <abstract>
      <t>This document defines a Two Rate Three Color Marker (trTCM), which can be used as a component in a Diffserv traffic conditioner. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2698'/>
  <seriesInfo name='DOI' value='10.17487/RFC2698'/>
</reference>

<reference anchor='RFC4115' target='https://www.rfc-editor.org/info/rfc4115'>
  <front>
    <title>A Differentiated Service Two-Rate, Three-Color Marker with Efficient Handling of in-Profile Traffic</title>
    <author fullname='O. Aboul-Magd' initials='O.' surname='Aboul-Magd'/>
    <author fullname='S. Rabie' initials='S.' surname='Rabie'/>
    <date month='July' year='2005'/>
    <abstract>
      <t>This document describes a two-rate, three-color marker that has been in use for data services including Frame Relay services. This marker can be used for metering per-flow traffic in the emerging IP and L2 VPN services. The marker defined here is different from previously defined markers in the handling of the in-profile traffic. Furthermore, this marker doesn't impose peak-rate shaping requirements on customer edge (CE) devices. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4115'/>
  <seriesInfo name='DOI' value='10.17487/RFC4115'/>
</reference>


<reference anchor='I-D.ietf-teas-yang-te-mpls' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-yang-te-mpls-04'>
   <front>
      <title>A YANG Data Model for MPLS Traffic Engineering Tunnels</title>
      <author fullname='Tarek Saad' initials='T.' surname='Saad'>
         <organization>Cisco Systems Inc</organization>
      </author>
      <author fullname='Rakesh Gandhi' initials='R.' surname='Gandhi'>
         <organization>Cisco Systems Inc</organization>
      </author>
      <author fullname='Xufeng Liu' initials='X.' surname='Liu'>
         <organization>IBM Corporation</organization>
      </author>
      <author fullname='Vishnu Pavan Beeram' initials='V. P.' surname='Beeram'>
         <organization>Juniper Networks</organization>
      </author>
      <author fullname='Igor Bryskin' initials='I.' surname='Bryskin'>
         <organization>Individual</organization>
      </author>
      <date day='26' month='May' year='2023'/>
      <abstract>
	 <t>   This document defines a YANG data model for the configuration and
   management of Multiprotocol Label Switching (MPLS) Traffic
   Engineering (TE) tunnels, Label Switched Paths (LSPs) and interfaces.
   The model augments the TE generic YANG model for MPLS packet
   dataplane technology.

   This model covers data for configuration, operational state, remote
   procedural calls, and event notifications.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-yang-te-mpls-04'/>
   
</reference>

<reference anchor='RFC9522' target='https://www.rfc-editor.org/info/rfc9522'>
  <front>
    <title>Overview and Principles of Internet Traffic Engineering</title>
    <author fullname='A. Farrel' initials='A.' role='editor' surname='Farrel'/>
    <date month='January' year='2024'/>
    <abstract>
      <t>This document describes the principles of traffic engineering (TE) in the Internet. The document is intended to promote better understanding of the issues surrounding traffic engineering in IP networks and the networks that support IP networking and to provide a common basis for the development of traffic-engineering capabilities for the Internet. The principles, architectures, and methodologies for performance evaluation and performance optimization of operational networks are also discussed.</t>
      <t>This work was first published as RFC 3272 in May 2002. This document obsoletes RFC 3272 by making a complete update to bring the text in line with best current practices for Internet traffic engineering and to include references to the latest relevant work in the IETF.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9522'/>
  <seriesInfo name='DOI' value='10.17487/RFC9522'/>
</reference>

<reference anchor='RFC4202' target='https://www.rfc-editor.org/info/rfc4202'>
  <front>
    <title>Routing Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)</title>
    <author fullname='K. Kompella' initials='K.' role='editor' surname='Kompella'/>
    <author fullname='Y. Rekhter' initials='Y.' role='editor' surname='Rekhter'/>
    <date month='October' year='2005'/>
    <abstract>
      <t>This document specifies routing extensions in support of carrying link state information for Generalized Multi-Protocol Label Switching (GMPLS). This document enhances the routing extensions required to support MPLS Traffic Engineering (TE). [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4202'/>
  <seriesInfo name='DOI' value='10.17487/RFC4202'/>
</reference>

<reference anchor='RFC4328' target='https://www.rfc-editor.org/info/rfc4328'>
  <front>
    <title>Generalized Multi-Protocol Label Switching (GMPLS) Signaling Extensions for G.709 Optical Transport Networks Control</title>
    <author fullname='D. Papadimitriou' initials='D.' role='editor' surname='Papadimitriou'/>
    <date month='January' year='2006'/>
    <abstract>
      <t>This document is a companion to the Generalized Multi-Protocol Label Switching (GMPLS) signaling documents. It describes the technology-specific information needed to extend GMPLS signaling to control Optical Transport Networks (OTN); it also includes the so-called pre-OTN developments. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4328'/>
  <seriesInfo name='DOI' value='10.17487/RFC4328'/>
</reference>

<reference anchor='RFC4561' target='https://www.rfc-editor.org/info/rfc4561'>
  <front>
    <title>Definition of a Record Route Object (RRO) Node-Id Sub-Object</title>
    <author fullname='J.-P. Vasseur' initials='J.-P.' role='editor' surname='Vasseur'/>
    <author fullname='Z. Ali' initials='Z.' surname='Ali'/>
    <author fullname='S. Sivabalan' initials='S.' surname='Sivabalan'/>
    <date month='June' year='2006'/>
    <abstract>
      <t>In the context of MPLS TE Fast Reroute, the Merge Point (MP) address is required at the Point of Local Repair (PLR) in order to select a backup tunnel intersecting a fast reroutable Traffic Engineering Label Switched Path (TE LSP) on a downstream Label Switching Router (LSR). However, existing protocol mechanisms are not sufficient to find an MP address in multi-domain routing networks where a domain is defined as an Interior Gateway Protocol (IGP) area or an Autonomous System (AS). Hence, the current MPLS Fast Reroute mechanism cannot be used in order to protect inter-domain TE LSPs from a failure of an Area Border Router (ABR) or Autonomous System Border Router (ASBR). This document specifies the use of existing Record Route Object (RRO) IPv4 and IPv6 sub-objects (with a new flag defined) thus defining the node-id sub-object in order to solve this issue. The MPLS Fast Reroute mechanism mentioned in this document refers to the "Facility backup" MPLS TE Fast Reroute method. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4561'/>
  <seriesInfo name='DOI' value='10.17487/RFC4561'/>
</reference>

<reference anchor='RFC4657' target='https://www.rfc-editor.org/info/rfc4657'>
  <front>
    <title>Path Computation Element (PCE) Communication Protocol Generic Requirements</title>
    <author fullname='J. Ash' initials='J.' role='editor' surname='Ash'/>
    <author fullname='J.L. Le Roux' initials='J.L.' role='editor' surname='Le Roux'/>
    <date month='September' year='2006'/>
    <abstract>
      <t>The PCE model is described in the "PCE Architecture" document and facilitates path computation requests from Path Computation Clients (PCCs) to Path Computation Elements (PCEs). This document specifies generic requirements for a communication protocol between PCCs and PCEs, and also between PCEs where cooperation between PCEs is desirable. Subsequent documents will specify application-specific requirements for the PCE communication protocol. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4657'/>
  <seriesInfo name='DOI' value='10.17487/RFC4657'/>
</reference>

<reference anchor='RFC6004' target='https://www.rfc-editor.org/info/rfc6004'>
  <front>
    <title>Generalized MPLS (GMPLS) Support for Metro Ethernet Forum and G.8011 Ethernet Service Switching</title>
    <author fullname='L. Berger' initials='L.' surname='Berger'/>
    <author fullname='D. Fedyk' initials='D.' surname='Fedyk'/>
    <date month='October' year='2010'/>
  </front>
  <seriesInfo name='RFC' value='6004'/>
  <seriesInfo name='DOI' value='10.17487/RFC6004'/>
</reference>

<reference anchor='RFC6511' target='https://www.rfc-editor.org/info/rfc6511'>
  <front>
    <title>Non-Penultimate Hop Popping Behavior and Out-of-Band Mapping for RSVP-TE Label Switched Paths</title>
    <author fullname='Z. Ali' initials='Z.' surname='Ali'/>
    <author fullname='G. Swallow' initials='G.' surname='Swallow'/>
    <author fullname='R. Aggarwal' initials='R.' surname='Aggarwal'/>
    <date month='February' year='2012'/>
    <abstract>
      <t>There are many deployment scenarios that require an egress Label Switching Router (LSR) to receive binding of the Resource Reservation Protocol - Traffic Engineering (RSVP-TE) Label Switched Path (LSP) to an application and a payload identifier using some "out-of-band" (OOB) mechanism. This document defines protocol mechanisms to address this requirement. The procedures described in this document are equally applicable for point-to-point (P2P) and point-to-multipoint (P2MP) LSPs. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6511'/>
  <seriesInfo name='DOI' value='10.17487/RFC6511'/>
</reference>

<reference anchor='RFC7139' target='https://www.rfc-editor.org/info/rfc7139'>
  <front>
    <title>GMPLS Signaling Extensions for Control of Evolving G.709 Optical Transport Networks</title>
    <author fullname='F. Zhang' initials='F.' role='editor' surname='Zhang'/>
    <author fullname='G. Zhang' initials='G.' surname='Zhang'/>
    <author fullname='S. Belotti' initials='S.' surname='Belotti'/>
    <author fullname='D. Ceccarelli' initials='D.' surname='Ceccarelli'/>
    <author fullname='K. Pithewan' initials='K.' surname='Pithewan'/>
    <date month='March' year='2014'/>
    <abstract>
      <t>ITU-T Recommendation G.709 [G709-2012] introduced new Optical channel Data Unit (ODU) containers (ODU0, ODU4, ODU2e, and ODUflex) and enhanced Optical Transport Network (OTN) flexibility.</t>
      <t>This document updates the ODU-related portions of RFC 4328 to provide extensions to GMPLS signaling to control the full set of OTN features, including ODU0, ODU4, ODU2e, and ODUflex.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7139'/>
  <seriesInfo name='DOI' value='10.17487/RFC7139'/>
</reference>

<reference anchor='RFC7551' target='https://www.rfc-editor.org/info/rfc7551'>
  <front>
    <title>RSVP-TE Extensions for Associated Bidirectional Label Switched Paths (LSPs)</title>
    <author fullname='F. Zhang' initials='F.' role='editor' surname='Zhang'/>
    <author fullname='R. Jing' initials='R.' surname='Jing'/>
    <author fullname='R. Gandhi' initials='R.' role='editor' surname='Gandhi'/>
    <date month='May' year='2015'/>
    <abstract>
      <t>This document describes Resource Reservation Protocol (RSVP) extensions to bind two point-to-point unidirectional Label Switched Paths (LSPs) into an associated bidirectional LSP. The association is achieved by defining new Association Types for use in ASSOCIATION and in Extended ASSOCIATION Objects. One of these types enables independent provisioning of the associated bidirectional LSPs on both sides, while the other enables single-sided provisioning. The REVERSE_LSP Object is also defined to enable a single endpoint to trigger creation of the reverse LSP and to specify parameters of the reverse LSP in the single-sided provisioning case.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7551'/>
  <seriesInfo name='DOI' value='10.17487/RFC7551'/>
</reference>

<reference anchor='RFC7571' target='https://www.rfc-editor.org/info/rfc7571'>
  <front>
    <title>GMPLS RSVP-TE Extensions for Lock Instruct and Loopback</title>
    <author fullname='J. Dong' initials='J.' surname='Dong'/>
    <author fullname='M. Chen' initials='M.' surname='Chen'/>
    <author fullname='Z. Li' initials='Z.' surname='Li'/>
    <author fullname='D. Ceccarelli' initials='D.' surname='Ceccarelli'/>
    <date month='July' year='2015'/>
    <abstract>
      <t>This document specifies extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) to support Lock Instruct (LI) and Loopback (LB) mechanisms for Label Switched Paths (LSPs). These mechanisms are applicable to technologies that use Generalized MPLS (GMPLS) for the control plane.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7571'/>
  <seriesInfo name='DOI' value='10.17487/RFC7571'/>
</reference>

<reference anchor='RFC7579' target='https://www.rfc-editor.org/info/rfc7579'>
  <front>
    <title>General Network Element Constraint Encoding for GMPLS-Controlled Networks</title>
    <author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'/>
    <author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'/>
    <author fullname='D. Li' initials='D.' surname='Li'/>
    <author fullname='W. Imajuku' initials='W.' surname='Imajuku'/>
    <author fullname='J. Han' initials='J.' surname='Han'/>
    <date month='June' year='2015'/>
    <abstract>
      <t>Generalized Multiprotocol Label Switching (GMPLS) can be used to control a wide variety of technologies. In some of these technologies, network elements and links may impose additional routing constraints such as asymmetric switch connectivity, non-local label assignment, and label range limitations on links.</t>
      <t>This document provides efficient, protocol-agnostic encodings for general information elements representing connectivity and label constraints as well as label availability. It is intended that protocol-specific documents will reference this memo to describe how information is carried for specific uses.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7579'/>
  <seriesInfo name='DOI' value='10.17487/RFC7579'/>
</reference>

<reference anchor='RFC3688' target='https://www.rfc-editor.org/info/rfc3688'>
  <front>
    <title>The IETF XML Registry</title>
    <author fullname='M. Mealling' initials='M.' surname='Mealling'/>
    <date month='January' year='2004'/>
    <abstract>
      <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='81'/>
  <seriesInfo name='RFC' value='3688'/>
  <seriesInfo name='DOI' value='10.17487/RFC3688'/>
</reference>

<reference anchor='RFC9314' target='https://www.rfc-editor.org/info/rfc9314'>
  <front>
    <title>YANG Data Model for Bidirectional Forwarding Detection (BFD)</title>
    <author fullname='M. Jethanandani' initials='M.' role='editor' surname='Jethanandani'/>
    <author fullname='R. Rahman' initials='R.' role='editor' surname='Rahman'/>
    <author fullname='L. Zheng' initials='L.' role='editor' surname='Zheng'/>
    <author fullname='S. Pallagatti' initials='S.' surname='Pallagatti'/>
    <author fullname='G. Mirsky' initials='G.' surname='Mirsky'/>
    <date month='September' year='2022'/>
    <abstract>
      <t>This document defines a YANG data model that can be used to configure and manage Bidirectional Forwarding Detection (BFD).</t>
      <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA) (RFC 8342). This document updates "YANG Data Model for Bidirectional Forwarding Detection (BFD)" (RFC 9127).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9314'/>
  <seriesInfo name='DOI' value='10.17487/RFC9314'/>
</reference>




    </references>


<section anchor="changes-bis"><name>Changes from RFC 8776</name>

<t>This version adds new common data types, identities, and groupings to the YANG modules. It also updates some of the existing data types, identities, and groupings in the YANG modules and fixes few bugs in <xref target="RFC8776"/>.</t>

<t>The following new identities have been added to the 'ietf-te-types' module:</t>

<t><list style="symbols">
  <t>lsp-provisioning-error-reason;</t>
  <t>association-type-diversity;</t>
  <t>tunnel-admin-state-auto;</t>
  <t>lsp-restoration-restore-none;</t>
  <t>restoration-scheme-rerouting;</t>
  <t>path-metric-optimization-type;</t>
  <t>link-path-metric-type;</t>
  <t>link-metric-type and its derived identities;</t>
  <t>path-computation-error-reason and its derived identities;</t>
  <t>protocol-origin-type and its derived identities;</t>
  <t>svec-objective-function-type and its derived identities;</t>
  <t>svec-metric-type and its derived identities.</t>
</list></t>

<t>The following new data types have been added to the 'ietf-te-types' module:</t>

<t><list style="symbols">
  <t>path-type;</t>
  <t>te-gen-node-id.</t>
</list></t>

<t>The following new groupings have been added to the 'ietf-te-types' module:</t>

<t><list style="symbols">
  <t>encoding-and-switching-type;</t>
  <t>te-generic-node-id.</t>
</list></t>

<t>The following new identities have been added to the 'ietf-te-packet-types' module:</t>

<t><list style="symbols">
  <t>bandwidth-profile-type;</t>
  <t>link-metric-delay-variation;</t>
  <t>link-metric-loss;</t>
  <t>path-metric-delay-variation;</t>
  <t>path-metric-loss.</t>
</list></t>

<t>The following new groupings have been added to the 'ietf-te-packet-types' module:</t>

<t><list style="symbols">
  <t>te-packet-path-bandwidth;</t>
  <t>te-packet-link-bandwidth.</t>
</list></t>

<t>The following identities, already defined in <xref target="RFC8776"/>, have been updated in the 'ietf-te-types' module:</t>

<t><list style="symbols">
  <t>objective-function-type (editorial);</t>
  <t>action-exercise (bug fix);</t>
  <t>path-metric-type:  <vspace blankLines='1'/>
new base identities have been added;</t>
  <t>path-metric-te (bug fix);</t>
  <t>path-metric-igp (bug fix);</t>
  <t>path-metric-hop (bug fix);</t>
  <t>path-metric-delay-average (bug fix);</t>
  <t>path-metric-delay-minimum (bug fix);</t>
  <t>path-metric-residual-bandwidth (bug fix);</t>
  <t>path-metric-optimize-includes (bug fix);</t>
  <t>path-metric-optimize-excludes (bug fix);</t>
  <t>te-optimization-criterion (editorial).</t>
</list></t>

<t>The following data type, already defined in <xref target="RFC8776"/>, has been updated in the 'ietf-te-types' module:</t>

<t><list style="symbols">
  <t>te-node-id;  <vspace blankLines='1'/>
The data type has been changed to be a union.</t>
</list></t>

<t>The following groupings, already defined in <xref target="RFC8776"/>, have been updated in the 'ietf-te-types' module:</t>

<t><list style="symbols">
  <t>explicit-route-hop  <vspace blankLines='1'/>
The following new leaves have been added to the 'explicit-route-hop' grouping:  <list style="symbols">
      <t>node-id-uri;</t>
      <t>link-tp-id-uri;</t>
    </list>
The following leaves, already defined in <xref target="RFC8776"/>, have been updated in the 'explicit-route-hop':  <list style="symbols">
      <t>node-id;</t>
      <t>link-tp-id.      <vspace blankLines='1'/>
The mandatory true statements for the node-id and link-tp-id have been replaced by must statements that requires at least the presence of:      <list style="symbols">
          <t>node-id or node-id-uri;</t>
          <t>link-tp-id or link-tp-id-uri.</t>
        </list></t>
    </list></t>
  <t>explicit-route-hop  <vspace blankLines='1'/>
The following new leaves have been added to the 'explicit-route-hop' grouping:  <list style="symbols">
      <t>node-id-uri;</t>
      <t>link-tp-id-uri;</t>
    </list>
The following leaves, already defined in <xref target="RFC8776"/>, have been updated in the 'explicit-route-hop':  <list style="symbols">
      <t>node-id;</t>
      <t>link-tp-id.      <vspace blankLines='1'/>
The mandatory true statements for the node-id and link-tp-id have been replaced by must statements that requires at least the presence of:      <list style="symbols">
          <t>node-id or node-id-uri;</t>
          <t>link-tp-id or link-tp-id-uri.</t>
        </list></t>
    </list></t>
  <t>optimization-metric-entry:  <vspace blankLines='1'/>
The following leaves, already defined in <xref target="RFC8776"/>, have been updated in the 'optimization-metric-entry':  <list style="symbols">
      <t>metric-type;      <vspace blankLines='1'/>
The base identity has been updated without impacting the set of derived identities that are allowed.</t>
    </list></t>
  <t>tunnel-constraints;  <vspace blankLines='1'/>
The following new leaf have been added to the 'tunnel-constraints' grouping:  <list style="symbols">
      <t>network-id;</t>
    </list></t>
  <t>path-constraints-route-objects:  <vspace blankLines='1'/>
The following container, already defined in <xref target="RFC8776"/>, has been updated in the 'path-constraints-route-objects':  <list style="symbols">
      <t>explicit-route-objects-always;      <vspace blankLines='1'/>
The container has been renamed as 'explicit-route-objects'. This change is not affecting any IETF standard YANG models since this grouping has not yet been used by any YANG model defined in existing IETF RFCs.</t>
    </list></t>
  <t>generic-path-metric-bounds:  <vspace blankLines='1'/>
The following leaves, already defined in <xref target="RFC8776"/>, have been updated in the 'optimization-metric-entry':  <list style="symbols">
      <t>metric-type;      <vspace blankLines='1'/>
The base identity has been updated to:      <list style="symbols">
          <t>increase the set of derived identities that are allowed and;</t>
          <t>remove from this set the 'path-metric-optimize-includes' and the 'path-metric-optimize-excludes' identities (bug fixing)</t>
        </list></t>
    </list></t>
  <t>generic-path-optimization  <vspace blankLines='1'/>
The following new leaf have been added to the 'generic-path-optimization' grouping:  <list style="symbols">
      <t>tiebreaker;</t>
    </list>
The following container, already defined in <xref target="RFC8776"/>, has been deprecated:  <list style="symbols">
      <t>tiebreakers.</t>
    </list></t>
</list></t>

<t>The following identities, already defined in <xref target="RFC8776"/>, have been obsoletes in the 'ietf-te-types' module for bug fixing:</t>

<t><list style="symbols">
  <t>of-minimize-agg-bandwidth-consumption;</t>
  <t>of-minimize-load-most-loaded-link;</t>
  <t>of-minimize-cost-path-set;</t>
  <t>lsp-protection-reroute-extra;</t>
  <t>lsp-protection-reroute.</t>
</list></t>

<section anchor="te-yang-diff"><name>TE Types YANG Diffs</name>

<t>RFC Editor: please remove this appendix before publication.</t>

<t>This section provides the diff between the YANG module in section 3.1 of <xref target="RFC8776"/> and the YANG model revision in <xref target="te-yang-code"/>.</t>

<t>The intention of this appendix is to facilitate focusing the review of the YANG model in <xref target="te-yang-code"/> to the changes compared with the YANG model in <xref target="RFC8776"/>.</t>

<t>This diff has been generated using the following UNIX commands to compare the YANG module revisions in section 3.1 of <xref target="RFC8776"/> and in <xref target="te-yang-code"/>:</t>

<figure><artwork><![CDATA[
diff ietf-te-types@2020-06-10.yang ietf-te-types.yang 
     > model-diff.txt
sed 's/^/    /' model-diff.txt > model-diff-spaces.txt
sed 's/^    >   /    >   /' model-diff-spaces.txt 
    > model-updates.txt
]]></artwork></figure>

<t>The output (model-updates.txt) is reported here:</t>

<figure><artwork><![CDATA[
21a22,33
>   import ietf-network {
>     prefix "nw";
>     reference
>       "RFC 8345: A YANG Data Model for Network Topologies";
>   }
> 
>   import ietf-network-topology {
>     prefix "nt";
>     reference
>       "RFC 8345: A YANG Data Model for Network Topologies";
>   }
> 
30c42
<                <mailto:tsaad@juniper.net>
---
>                <mailto:tsaad.net@gmail.com>
55c67
<      Copyright (c) 2020 IETF Trust and the persons identified as
---
>      Copyright (c) 2024 IETF Trust and the persons identified as
60c72
<      the license terms contained in, the Simplified BSD License set
---
>      the license terms contained in, the Revised BSD License set
65,66c77,166
<      This version of this YANG module is part of RFC 8776; see the
<      RFC itself for full legal notices.";
---
>      This version of this YANG module is part of RFC XXXX
>      (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
>      for full legal notices.";
>   revision 2024-07-23 {
>     description
>       "This revision adds the following new identities:
>       - lsp-provisioning-error-reason;
>       - association-type-diversity;
>       - tunnel-admin-state-auto;
>       - lsp-restoration-restore-none;
>       - restoration-scheme-rerouting;
>       - path-metric-optimization-type;
>       - link-path-metric-type;
>       - link-metric-type and its derived identities;
>       - path-computation-error-reason and its derived identities;
>       - protocol-origin-type and its derived identities;
>       - svec-objective-function-type and its derived identities;
>       - svec-metric-type and its derived identities.
> 
>       This revision adds the following new data types:
>       - path-type;
>       - te-gen-node-id.
> 
>       This revision adds the following new groupings:
>       - encoding-and-switching-type;
>       - te-generic-node-id.
> 
>       This revision updates the following identities:
>       - objective-function-type;
>       - action-exercise;
>       - path-metric-type;
>       - path-metric-te;
>       - path-metric-igp;
>       - path-metric-hop;
>       - path-metric-delay-average;
>       - path-metric-delay-minimum;
>       - path-metric-residual-bandwidth;
>       - path-metric-optimize-includes;
>       - path-metric-optimize-excludes;
>       - te-optimization-criterion.
> 
>       This revision updates the following data types:
>       - te-node-id.
> 
>       This revision updates the following groupings:
>       - explicit-route-hop:
>         - adds the following leaves:
>           - node-id-uri;
>           - link-tp-id-uri;
>         - updates the following leaves:
>           - node-id;
>           - link-tp-id;
>       - record-route-state:
>         - adds the following leaves:
>           - node-id-uri;
>           - link-tp-id-uri;
>         - updates the following leaves:
>           - node-id;
>           - link-tp-id;
>       - optimization-metric-entry:
>         - updates the following leaves:
>           - metric-type;
>       - tunnel-constraints;
>         - adds the following leaves:
>           - network-id;
>       - path-constraints-route-objects:
>         - updates the following containers:
>           - explicit-route-objects-always;
>       - generic-path-metric-bounds:
>         - updates the following leaves:
>           - metric-type;
>       - generic-path-optimization
>         - adds the following leaves:
>           - tiebreaker;
>         - deprecate the following containers:
>           - tiebreakers.
> 
>       This revision obsoletes the following identities:
>       - of-minimize-agg-bandwidth-consumption;
>       - of-minimize-load-most-loaded-link;
>       - of-minimize-cost-path-set;
>       - lsp-protection-reroute-extra;
>       - lsp-protection-reroute.
> 
>       This revision provides also few editorial changes.";
>     reference
>       "RFC XXXX: Common YANG Data Types for Traffic Engineering";
>   }
>   // RFC Editor: replace XXXX with actual RFC number, update date
>   // information and remove this note
70c170
<       "Latest revision of TE types.";
---
>       "Initial Version of TE types.";
86a187
> 
92c193
<        Version 2
---
>                  Version 2
95c196
<        Engineering (MPLS-TE)";
---
>                  Engineering (MPLS-TE)";
111a213
> 
117c219
<        Engineering (MPLS-TE)";
---
>                  Engineering (MPLS-TE)";
157,158c259,260
<        Routed Label Switched Paths (LSPs) Using TE Metric
<        Extensions
---
>                  Routed Label Switched Paths (LSPs) Using TE Metric
>                  Extensions
168c270
<        Multi-Protocol Label Switching (GMPLS)
---
>                  Multi-Protocol Label Switching (GMPLS)
170c272
<        Multi-Protocol Label Switching (GMPLS)";
---
>                  Multi-Protocol Label Switching (GMPLS)";
193c295
<            Traffic Engineering Networks";
---
>                      Traffic Engineering Networks";
244,245c346,347
<        ITU-T Recommendation G.709: Interfaces for the
<        optical transport network";
---
>        ITU-T G.709: Interfaces for the optical transport network -
>                     Edition 6.0 (06/2020)";
256c358
<        MPLS Traffic Engineering, Section 4.3.1";
---
>                  MPLS Traffic Engineering, Section 4.3.1";
263a366
> 
264a368
> 
269c373
<        Aggregation
---
>                  Aggregation
288c392
<        Section 4.3.3";
---
>                  Section 4.3.3";
306c410
<        Version 2";
---
>                  Version 2";
349c453
<        second MPLS Traffic Engineering (TE) Metric";
---
>                  second MPLS Traffic Engineering (TE) Metric";
351a456,458
>   // CHANGE NOTE: The typedef te-node-id below has been
>   // updated in this module revision
>   // RFC Editor: remove the note above and this note
353c460,463
<     type yang:dotted-quad;
---
>     type union {
>       type yang:dotted-quad;
>       type inet:ipv6-address-no-zone;
>     }
357,358c467,471
<        The identifier is represented as 4 octets in dotted-quad
<        notation.
---
> 
>        The identifier is represented either as 4 octets in
>        dotted-quad notation, or as 16 octets in full, mixed,
>        shortened, or shortened-mixed IPv6 address notation.
> 
362,363c475,478
<        Router ID TLV described in Section 4.3 of RFC 5305, or the
<        TE Router ID TLV described in Section 3.2.1 of RFC 6119.
---
>        Router ID TLV described in Section 4.3 of RFC 5305, the TE
>        Router ID TLV described in Section 3.2.1 of RFC 6119, or the
>        IPv6 TE Router ID TLV described in Section 4.1 of RFC 6119.
> 
368c483
<        Version 2, Section 2.4.1
---
>                  Version 2, Section 2.4.1
370c485
<        Section 4.3
---
>                  Section 4.3
373c488
<        Routing for OSPFv2 Protocols, Section 3";
---
>                  Routing for OSPFv2 Protocols, Section 3";
412c527,528
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
472c588,589
<        for Generalized Multi-Protocol Label Switching (GMPLS)
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)
519a637
> 
537a656
> 
542c661
<        Version 2
---
>                  Version 2
545a665,705
>   // CHANGE NOTE: The typedef path-type below has been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   typedef path-type {
>     type enumeration {
>       enum primary-path {
>         description
>           "Indicates that the TE path is a primary path.";
>       }
>       enum secondary-path {
>         description
>           "Indicates that the TE path is a secondary path.";
>       }
>       enum primary-reverse-path {
>         description
>           "Indicates that the TE path is a primary reverse path.";
>       }
>       enum secondary-reverse-path {
>         description
>           "Indicates that the TE path is a secondary reverse path.";
>       }
>     }
>     description
>       "The type of TE path, indicating whether a path is a primary, 
>        or a reverse primary, or a secondary, or a reverse secondary 
>        path.";
>   }
> 
>   // CHANGE NOTE: The typedef te-gen-node-id below has been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   typedef te-gen-node-id {
>     type union {
>       type te-node-id;
>       type inet:ip-address;
>       type nw:node-id;
>     }
>     description
>       "Generic type that identifies a node in a TE topology.";
>   }
> 
553,554c713,714
<        Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE
<        Label Switched Paths (LSPs)";
---
>                  Traffic Engineering (RSVP-TE) for
>                  Point-to-Multipoint TE Label Switched Paths (LSPs)";
570c730
<        Engineering (MPLS-TE)";
---
>                  Engineering (MPLS-TE)";
606a767,774
>   // CHANGE NOTE: The base identity lsp-provisioning-error-reason 
>   // has been added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity lsp-provisioning-error-reason {
>     description
>       "Base identity for LSP provisioning errors.";
>   }
> 
618c786
<        Section 4.7.1";
---
>                  Section 4.7.1";
636c804
<        Section 4.7.1";
---
>                  Section 4.7.1";
664,665c832,833
<        (MPLS) Traffic Engineering (TE) Loosely Routed Label Switched
<        Path (LSP)";
---
>                  (MPLS) Traffic Engineering (TE) Loosely Routed Label
>                  Switched Path (LSP)";
690c858
<        RSVP-TE
---
>                  RSVP-TE
692,693c860,861
<        Using Resource Reservation Protocol Traffic Engineering
<        (RSVP-TE)
---
>                  Using Resource Reservation Protocol Traffic
>                  Engineering (RSVP-TE)
695c863
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
711c879
<        RSVP-TE
---
>                  RSVP-TE
713,714c881,882
<        Using Resource Reservation Protocol Traffic Engineering
<        (RSVP-TE)
---
>                  Using Resource Reservation Protocol Traffic
>                  Engineering (RSVP-TE)
716c884
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
727c895
<        RSVP-TE
---
>                  RSVP-TE
729,730c897,898
<        Using Resource Reservation Protocol Traffic Engineering
<        (RSVP-TE)
---
>                  Using Resource Reservation Protocol
>                  Traffic Engineering (RSVP-TE)
732c900
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
741,742c909,910
<        Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE
<        Label Switched Paths (LSPs)
---
>                  Traffic Engineering (RSVP-TE) for
>                  Point-to-Multipoint TE Label Switched Paths (LSPs)
744c912
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
753,754c921,922
<        Resource Reservation Protocol-Traffic Engineering (RSVP-TE)
<        Extensions
---
>                  Resource Reservation Protocol-Traffic Engineering
>                  (RSVP-TE) Extensions
756c924
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
765c933,934
<        Multiprotocol Label Switching Traffic Engineering (GMPLS TE)
---
>                  Multiprotocol Label Switching Traffic Engineering
>                  (GMPLS TE)
767c936
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
777c946
<        Multi-Layer and Multi-Region Networks (MLN/MRN)
---
>                  Multi-Layer and Multi-Region Networks (MLN/MRN)
779c948
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
789c958
<        Mapping for RSVP-TE Label Switched Paths
---
>                  Mapping for RSVP-TE Label Switched Paths
791c960
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
801c970
<        Mapping for RSVP-TE Label Switched Paths
---
>                  Mapping for RSVP-TE Label Switched Paths
803c972
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
813c982
<        Route Object (ERO)";
---
>                  Route Object (ERO)";
823c992,993
<        Administration, and Maintenance (OAM) Configuration";
---
>                  Administration, and Maintenance (OAM)
>                  Configuration";
833c1003,1004
<        Administration, and Maintenance (OAM) Configuration";
---
>                  Administration, and Maintenance (OAM)
>                  Configuration";
842c1013
<        Route Object (ERO)
---
>                  Route Object (ERO)
844c1015
<        Link Group (SRLG) Information";
---
>                  Link Group (SRLG) Information";
855c1026
<        Loopback";
---
>                  Loopback";
864,865c1035,1036
<        Point-to-Multipoint Traffic Engineering Label Switched Paths
<        (LSPs)";
---
>                  Point-to-Multipoint Traffic Engineering Label
>                  Switched Paths (LSPs)";
887c1058,1059
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
896c1068,1069
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
905c1078,1079
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
914c1088,1089
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
923c1098,1099
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
945c1121,1122
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery
967c1144
<        Label Switched Paths (LSPs)";
---
>                  Label Switched Paths (LSPs)";
980c1157,1171
<        Label Switched Paths (LSPs)";
---
>                  Label Switched Paths (LSPs)";
>   }
> 
>   // CHANGE NOTE: The identity association-type-diversity below has 
>   // been added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity association-type-diversity {
>     base association-type;
>     description
>       "Association Type diversity used to associate LSPs whose 
>        paths are to be diverse from each other.";
>     reference
>       "RFC 8800: Path Computation Element Communication Protocol 
>                  (PCEP) Extension for Label Switched Path (LSP)
>                  Diversity Constraint Signaling";
982a1174,1177
>   // CHANGE NOTE: The description of the base identity 
>   // objective-function-type has been updated 
>   // in this module revision
>   // RFC Editor: remove the note above and this note
985c1180
<       "Base objective function type.";
---
>       "Base identity for path objective function types.";
994c1189
<        Computation Element Communication Protocol (PCEP)";
---
>                  Computation Element Communication Protocol (PCEP)";
1004c1199
<        Computation Element Communication Protocol (PCEP)";
---
>                  Computation Element Communication Protocol (PCEP)";
1013c1208
<        Computation Element Communication Protocol (PCEP)";
---
>                  Computation Element Communication Protocol (PCEP)";
1015a1211,1213
>   // CHANGE NOTE: The identity of-minimize-agg-bandwidth-consumption
>   // below has been obsoleted in this module revision
>   // RFC Editor: remove the note above and this note
1017a1216
>     status obsolete;
1020c1219,1223
<        consumption.";
---
>        consumption.
>       
>        This identity has been obsoleted: the
>        'svec-of-minimize-agg-bandwidth-consumption' identity SHOULD
>        be used instead.";
1023c1226
<        Computation Element Communication Protocol (PCEP)";
---
>                  Computation Element Communication Protocol (PCEP)";
1025a1229,1231
>   // CHANGE NOTE: The identity of-minimize-load-most-loaded-link
>   // below has been obsoleted in this module revision
>   // RFC Editor: remove the note above and this note
1027a1234
>     status obsolete;
1030c1237,1241
<        is carrying the highest load.";
---
>        is carrying the highest load.
>       
>        This identity has been obsoleted: the
>        'svec-of-minimize-load-most-loaded-link' identity SHOULD
>        be used instead.";
1033c1244
<        Computation Element Communication Protocol (PCEP)";
---
>                  Computation Element Communication Protocol (PCEP)";
1035a1247,1249
>   // CHANGE NOTE: The identity of-minimize-cost-path-set
>   // below has been obsoleted in this module revision
>   // RFC Editor: remove the note above and this note
1037a1252
>     status obsolete;
1039c1254,1258
<       "Objective function for minimizing the cost on a path set.";
---
>       "Objective function for minimizing the cost on a path set.
>       
>        This identity has been obsoleted: the
>        'svec-of-minimize-cost-path-set' identity SHOULD
>        be used instead.";
1042c1261
<        Computation Element Communication Protocol (PCEP)";
---
>                  Computation Element Communication Protocol (PCEP)";
1049a1269,1271
>   // CHANGE NOTE: The reference of the identity path-locally-computed
>   // below has been updated in this module revision
>   // RFC Editor: remove the note above and this note
1056,1057c1278,1279
<       "RFC 3272: Overview and Principles of Internet Traffic
<        Engineering, Section 5.4";
---
>       "RFC 9522: Overview and Principles of Internet Traffic
>                  Engineering, Section 4.4";
1059a1282,1285
>   // CHANGE NOTE: The reference of the identity 
>   // path-externally-queried below has been updated
>   // in this module revision
>   // RFC Editor: remove the note above and this note
1071,1072c1297,1298
<       "RFC 3272: Overview and Principles of Internet Traffic
<        Engineering
---
>       "RFC 9522: Overview and Principles of Internet Traffic
>                  Engineering
1074c1300
<        Protocol Generic Requirements";
---
>                  Protocol Generic Requirements";
1076a1303,1306
>   // CHANGE NOTE: The reference of the identity 
>   // path-explicitly-defined below has been updated
>   // in this module revision
>   // RFC Editor: remove the note above and this note
1085,1086c1315,1316
<        RFC 3272: Overview and Principles of Internet Traffic
<        Engineering";
---
>        RFC 9522: Overview and Principles of Internet Traffic
>                  Engineering";
1102c1332
<        Protocol Generic Requirements";
---
>                  Protocol Generic Requirements";
1112c1342
<        Protocol Generic Requirements";
---
>                  Protocol Generic Requirements";
1123c1353
<        Protocol Generic Requirements";
---
>                  Protocol Generic Requirements";
1145,1146c1375,1376
<        Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE
<        Label Switched Paths (LSPs)";
---
>                  Traffic Engineering (RSVP-TE) for
>                  Point-to-Multipoint TE Label Switched Paths (LSPs)";
1216a1447,1458
>   // CHANGE NOTE: The identity tunnel-admin-state-auto below
>   // has been added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity tunnel-admin-state-auto {
>     base tunnel-admin-state-type;
>     description
>       "Tunnel administrative auto state. The administrative status
>        in state datastore transitions to 'tunnel-admin-up' when the
>        tunnel used by the client layer, and to 'tunnel-admin-down'
>        when it is not used by the client layer.";
>   }
> 
1305c1547
<        Section 2.5";
---
>                  Section 2.5";
1314c1556
<        Section 2.5";
---
>                  Section 2.5";
1321a1564,1572
>     // CHANGE NOTE: The identity lsp-restoration-restore-none 
>     // below has been added in this module revision
>     // RFC Editor: remove the note above and this note
>     identity lsp-restoration-restore-none {
>       base lsp-restoration-type;
>       description
>         "No LSP affected by a failure is restored.";
>     }
> 
1339a1591,1606
>     // CHANGE NOTE: The identity restoration-scheme-rerouting 
>     // below has been added in this module revision
>     // RFC Editor: remove the note above and this note
>     identity restoration-scheme-rerouting {
>       base restoration-scheme-type;
>       description
>         "Restoration LSP is computed after the failure detection.
>         
>          This restoration scheme is also known as
>          'Full LSP Re-routing.'";
>       reference
>         "RFC 4427: Recovery (Protection and Restoration) Terminology
>                    for Generalized Multi-Protocol Label Switching
>                    (GMPLS)";
>     }
> 
1346c1613,1614
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1355c1623,1624
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1364c1633,1634
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1372c1642,1643
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
1381c1652,1653
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
1383a1656,1658
>   // CHANGE NOTE: The identity lsp-protection-reroute-extra
>   // below has been obsoleted in this module revision
>   // RFC Editor: remove the note above and this note
1385a1661
>     status obsolete;
1387c1663,1667
<       "'(Full) Rerouting' LSP protection type.";
---
>       "'(Full) Rerouting' LSP protection type.
>       
>        This identity has been obsoleted: the
>        'restoration-scheme-rerouting' identity SHOULD be used
>        instead.";
1390c1670,1671
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
1392a1674,1676
>   // CHANGE NOTE: The identity lsp-protection-reroute
>   // below has been obsoleted in this module revision
>   // RFC Editor: remove the note above and this note
1394a1679
>     status obsolete;
1396c1681,1685
<       "'Rerouting without Extra-Traffic' LSP protection type.";
---
>       "'Rerouting without Extra-Traffic' LSP protection type.
>       
>        This identity has been obsoleted: the
>        'restoration-scheme-rerouting' identity SHOULD be used
>        instead.";
1399c1688,1689
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
1408c1698,1699
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
1417c1708,1709
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
1426c1718,1719
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
1435c1728,1729
<        Generalized Multi-Protocol Label Switching (GMPLS) Recovery";
---
>                  Generalized Multi-Protocol Label Switching (GMPLS)
>                  Recovery";
1444c1738,1739
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1466c1761,1762
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1475c1771,1772
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1484c1781,1782
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1494c1792,1793
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1504c1803,1804
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1513c1813,1814
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1522c1823,1824
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1532c1834,1835
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1542c1845,1846
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1559c1863,1864
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1568c1873,1874
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1579c1885,1886
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1589c1896,1897
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1601c1909,1910
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1613c1922,1923
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1626c1936,1937
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1628a1940,1943
>   // CHANGE NOTE: The description and reference of the 
>   // identity action-exercise have been updated in this module 
>   // revision
>   // RFC Editor: remove the note above and this note
1632,1633c1947,1949
<       "An action that starts testing whether or not APS communication
<        is operating correctly.  It is of lower priority than any
---
>       "An action that starts testing whether or not Automatic 
>        Protection Switching (APS) communication is operating 
>        correctly.  It is of lower priority than any
1636,1637c1952,1953
<       "RFC 4427: Recovery (Protection and Restoration) Terminology
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>       "ITU-T G.808.1: Generic protection switching - Linear trail and
>                       subnetwork protection - Edition 4.0 (05/2014)";
1648c1964,1965
<        for Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                  for Generalized Multi-Protocol Label Switching
>                  (GMPLS)";
1656c1973
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1665c1982
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1674c1991
<        Forum and G.8011 Ethernet Service Switching";
---
>                  Forum and G.8011 Ethernet Service Switching";
1683c2000
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1692c2009
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1701c2018,2019
<        Control of Evolving G.709 Optical Transport Networks";
---
>                  Control of Evolving G.709 Optical Transport
>                  Networks";
1710c2028,2029
<        Switching Capable (DCSC) and Channel Set Label Extensions";
---
>                  Switching Capable (DCSC) and Channel Set Label
>                  Extensions";
1719c2038
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1728c2047
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1736c2055
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1745c2064
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1754c2073
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1763c2082
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1772c2091
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1781c2100
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1790c2109
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1799c2118
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1808c2127
<        Signaling Functional Description";
---
>                  Signaling Functional Description";
1817,1818c2136,2137
<        Signaling Extensions for G.709 Optical Transport Networks
<        Control";
---
>                  Signaling Extensions for G.709 Optical Transport
>                  Networks Control";
1827,1828c2146,2147
<        Signaling Extensions for G.709 Optical Transport Networks
<        Control";
---
>                  Signaling Extensions for G.709 Optical Transport
>                  Networks Control";
1837c2156,2157
<        Ethernet Forum and G.8011 Ethernet Service Switching";
---
>                  Ethernet Forum and G.8011 Ethernet Service
>                  Switching";
1905c2225
<        Protocol-Traffic Engineering (RSVP-TE)";
---
>                  Protocol-Traffic Engineering (RSVP-TE)";
1914c2234
<        Protocol-Traffic Engineering (RSVP-TE)";
---
>                  Protocol-Traffic Engineering (RSVP-TE)";
1917c2237,2240
<   identity path-metric-type {
---
>   // CHANGE NOTE: The path-metric-optimization-type base identity
>   // has been added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity path-metric-optimization-type {
1919c2242,2243
<       "Base identity for the path metric type.";
---
>       "Base identity used to define the path metric optimization
>        types.";
1922,1923c2246,2249
<   identity path-metric-te {
<     base path-metric-type;
---
>   // CHANGE NOTE: The link-path-metric-type base identity
>   // has been added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity link-path-metric-type {
1925,1928c2251,2257
<       "TE path metric.";
<     reference
<       "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a
<        second MPLS Traffic Engineering (TE) Metric";
---
>       "Base identity used to define the link and the path metric
>        types.
>       
>        The unit of the path metric value is interpreted in the
>        context of the path metric type and the derived identities
>        SHOULD describe the unit of the path metric types they
>        define.";
1931,1938c2260,2268
<   identity path-metric-igp {
<     base path-metric-type;
<     description
<       "IGP path metric.";
<     reference
<       "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a
<        second MPLS Traffic Engineering (TE) Metric";
<   }
---
>     // CHANGE NOTE: The link-metric-type base identity
>     // and its derived identities
>     // have been added in this module revision
>     // RFC Editor: remove the note above and this note
>     identity link-metric-type {
>       base link-path-metric-type;
>       description
>         "Base identity for the link metric types.";
>     }
1940,1944c2270,2279
<   identity path-metric-hop {
<     base path-metric-type;
<     description
<       "Hop path metric.";
<   }
---
>       identity link-metric-te {
>         base link-metric-type;
>         description
>           "Traffic Engineering (TE) Link Metric.";
>         reference
>           "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
>                      Version 2, Section 2.5.5
>            RFC 5305: IS-IS Extensions for Traffic Engineering,
>                      Section 3.7";
>       }
1946,1952c2281,2289
<   identity path-metric-delay-average {
<     base path-metric-type;
<     description
<       "Average unidirectional link delay.";
<     reference
<       "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions";
<   }
---
>       identity link-metric-igp {
>         base link-metric-type;
>         description
>           "Interior Gateway Protocol (IGP) Link Metric.";
>         reference
>           "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric
>                      as a second MPLS Traffic Engineering (TE)
>                      Metric";
>       }
1954,1960c2291,2301
<   identity path-metric-delay-minimum {
<     base path-metric-type;
<     description
<       "Minimum unidirectional link delay.";
<     reference
<       "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions";
<   }
---
>       identity link-metric-delay-average {
>         base link-metric-type;
>         description
>           "Unidirectional Link Delay, measured in units of
>            microseconds.";
>         reference
>           "RFC 7471: OSPF Traffic Engineering (TE) Metric
>                      Extensions, Section 4.1        
>            RFC 8570: IS-IS Traffic Engineering (TE) Metric
>                      Extensions, Section 4.1";
>       }
1962,1972c2303,2313
<   identity path-metric-residual-bandwidth {
<     base path-metric-type;
<     description
<       "Unidirectional Residual Bandwidth, which is defined to be
<        Maximum Bandwidth (RFC 3630) minus the bandwidth currently
<        allocated to LSPs.";
<     reference
<       "RFC 3630: Traffic Engineering (TE) Extensions to OSPF
<        Version 2
<        RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions";
<   }
---
>       identity link-metric-delay-minimum {
>         base link-metric-type;
>         description
>           "Minimum unidirectional Link Delay, measured in units of
>            microseconds.";
>         reference
>           "RFC 7471: OSPF Traffic Engineering (TE) Metric
>                      Extensions, Section 4.2
>            RFC 8570: IS-IS Traffic Engineering (TE) Metric
>                      Extensions, Section 4.2";
>       }
1974,1979c2315,2325
<   identity path-metric-optimize-includes {
<     base path-metric-type;
<     description
<       "A metric that optimizes the number of included resources
<        specified in a set.";
<   }
---
>       identity link-metric-delay-maximum {
>         base link-metric-type;
>         description
>           "Maximum unidirectional Link Delay, measured in units of
>            microseconds.";
>         reference
>           "RFC 7471: OSPF Traffic Engineering (TE) Metric
>                      Extensions, Section 4.2
>            RFC 8570: IS-IS Traffic Engineering (TE) Metric
>                      Extensions, Section 4.2";
>       }
1981,1986c2327,2461
<   identity path-metric-optimize-excludes {
<     base path-metric-type;
<     description
<       "A metric that optimizes to a maximum the number of excluded
<        resources specified in a set.";
<   }
---
>       identity link-metric-residual-bandwidth {
>         base link-metric-type;
>         description
>           "Unidirectional Residual Bandwidth, measured in units of
>            bytes per second.
>           
>            It is defined to be Maximum Bandwidth minus the bandwidth
>            currently allocated to LSPs.";
>         reference
>           "RFC 7471: OSPF Traffic Engineering (TE) Metric
>                      Extensions, Section 4.5
>            RFC 8570: IS-IS Traffic Engineering (TE) Metric
>                      Extensions, Section 4.5";
>       }
> 
>     // CHANGE NOTE: The base and the description of the
>     // path-metric-type identity
>     // has been updated in this module revision
>     // RFC Editor: remove the note above and this note
>     identity path-metric-type {
>       base link-path-metric-type;
>       base path-metric-optimization-type;
>       description
>         "Base identity for the path metric types.";
>     }
> 
>       // CHANGE NOTE: The description and the reference of the
>       // path-metric-te identity have been updated
>       // in this module revision
>       // RFC Editor: remove the note above and this note
>       identity path-metric-te {
>         base path-metric-type;
>         description
>           "Traffic Engineering (TE) Path Metric.";
>         reference
>           "RFC 5440: Path Computation Element (PCE) Communication
>                      Protocol (PCEP), Section 7.8";
>       }
> 
>       // CHANGE NOTE: The description and the reference of the
>       // path-metric-igp identity have been updated 
>       // in this module revision
>       // RFC Editor: remove the note above and this note
>       identity path-metric-igp {
>         base path-metric-type;
>         description
>           "Interior Gateway Protocol (IGP) Path Metric.";
>         reference
>           "RFC 5440: Path Computation Element (PCE) Communication
>                      Protocol (PCEP), section 7.8";
>       }
> 
>       // CHANGE NOTE: The description and the reference of the
>       // path-metric-hop identity have been updated
>       // in this module revision
>       // RFC Editor: remove the note above and this note
>       identity path-metric-hop {
>         base path-metric-type;
>         description
>           "Hop Count Path Metric.";
>         reference
>           "RFC 5440: Path Computation Element (PCE) Communication
>                      Protocol (PCEP), Section 7.8";
>       }
> 
>       // CHANGE NOTE: The description and the reference of the
>       // path-metric-delay-average identity have been updated
>       // in this module revision
>       // RFC Editor: remove the note above and this note
>       identity path-metric-delay-average {
>         base path-metric-type;
>         description
>           "The Path Delay Metric, measured in units of
>            microseconds.";
>         reference
>           "RFC8233: Extensions to the Path Computation Element
>                     Communication Protocol (PCEP) to Compute
>                     Service-Aware Label Switched Paths (LSPs),
>                     Section 3.1.1";
>       }
> 
>       // CHANGE NOTE: The description and the reference of the
>       // path-metric-delay-minimum identity have been updated
>       // in this module revision
>       // RFC Editor: remove the note above and this note
>       identity path-metric-delay-minimum {
>         base path-metric-type;
>         description
>           "The Path Min Delay Metric, measured in units of
>            microseconds.";
>         reference
>           "RFC YYYY: Carrying SR-Algorithm information in PCE-based
>                      Networks, Section 3.5.1";
>       }
>       // RFC Editor: replace YYYY with actual RFC number assigned to 
>       // [I-D.ietf-pce-sid-algo] and remove this note
> 
>       // CHANGE NOTE: The description and the reference of the
>       // path-metric-residual-bandwidth identity have been updated
>       // in this module revision
>       // RFC Editor: remove the note above and this note
>       identity path-metric-residual-bandwidth {
>         base path-metric-type;
>         description
>           "The Path Residual Bandwidth, defined as the minimum Link
>            Residual Bandwidth all the links along the path.
> 
>            The Path Residual Bandwidth can be seen as the path
>            metric associated with the Maximum residual Bandwidth Path
>            (MBP) objective function.";
>         reference
>           "RFC 5541: Encoding of Objective Functions in the Path
>                      Computation Element Communication Protocol
>                      (PCEP)";
>       }
> 
>     // CHANGE NOTE: The base of the path-metric-optimize-includes
>     // identity has been updated in this module revision
>     // RFC Editor: remove the note above and this note
>     identity path-metric-optimize-includes {
>       base path-metric-optimization-type;
>       description
>         "A metric that optimizes the number of included resources
>          specified in a set.";
>     }
> 
>     // CHANGE NOTE: The base of the path-metric-optimize-excludes
>     // identity has been updated in this module revision
>     // RFC Editor: remove the note above and this note
>     identity path-metric-optimize-excludes {
>       base path-metric-optimization-type;
>       description
>         "A metric that optimizes to a maximum the number of excluded
>          resources specified in a set.";
>     }
1996c2471,2472
<       "Min-Fill LSP path placement.";
---
>       "Min-Fill LSP path placement: selects the path with most
>        available bandwidth (load balance LSPs over more links).";
2002c2478,2479
<       "Max-Fill LSP path placement.";
---
>       "Max-Fill LSP path placement: selects the path with less
>        available bandwidth (packing more LSPs over few links).";
2049a2527,2530
>   // CHANGE NOTE: The reference of the identity 
>   // te-optimization-criterion below has been updated
>   // in this module revision
>   // RFC Editor: remove the note above and this note
2054,2055c2535,2536
<       "RFC 3272: Overview and Principles of Internet Traffic
<        Engineering";
---
>       "RFC 9522: Overview and Principles of Internet Traffic
>                  Engineering";
2070c2551
<        Computation Element Communication Protocol (PCEP)";
---
>                  Computation Element Communication Protocol (PCEP)";
2079c2560
<        Computation Element Communication Protocol (PCEP)";
---
>                  Computation Element Communication Protocol (PCEP)";
2110a2592,3043
>   // CHANGE NOTE: The base identity path-computation-error-reason 
>   // and its derived identities below have been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity path-computation-error-reason {
>     description
>       "Base identity for path computation error reasons.";
>   }
> 
>     identity path-computation-error-path-not-found {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because of an unspecified 
>          reason.";
>       reference
>         "RFC 5440: Path Computation Element (PCE) Communication
>                    Protocol (PCEP), Section 7.5";
>     }
> 
>     identity path-computation-error-no-topology {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because there is no topology
>          with the provided topology-identifier.";
>     }
> 
>     identity path-computation-error-no-dependent-server {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because one or more dependent
>          path computation servers are unavailable.
> 
>          The dependent path computation server could be
>          a Backward-Recursive Path Computation (BRPC) downstream
>          PCE or a child PCE.";
>       reference
>         "RFC 5441: A Backward-Recursive PCE-Based Computation (BRPC)
>                    Procedure to Compute Shortest Constrained
>                    Inter-Domain Traffic Engineering Label Switched
>                    Paths
>          RFC 8685: Path Computation Element Communication Protocol
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture";
>     }
> 
>     identity path-computation-error-pce-unavailable {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because PCE is not available.
>         
>          It corresponds to bit 31 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 5440: Path Computation Element (PCE) Communication
>                    Protocol (PCEP)
>          
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-no-inclusion-hop {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because there is no
>          node or link provided by one or more inclusion hops.";
>     }
> 
>     identity path-computation-error-destination-unknown-in-domain {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because the destination node is
>          unknown in indicated destination domain.
>         
>          It corresponds to bit 19 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 8685: Path Computation Element Communication Protocol
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture
>          
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-no-resource {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because there is no
>          available resource in one or more domains.
>         
>          It corresponds to bit 20 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 8685: Path Computation Element Communication Protocol
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-child-pce-unresponsive {
>       base path-computation-error-no-dependent-server;
>       description
>         "Path computation has failed because child PCE is not
>          responsive.
>         
>          It corresponds to bit 21 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 8685: Path Computation Element Communication Protocol
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-destination-domain-unknown {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because the destination domain
>          was unknown.
>         
>          It corresponds to bit 22 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 8685: Path Computation Element Communication Protocol
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-p2mp {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because of P2MP reachability
>          problem.
>         
>          It corresponds to bit 24 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 8306: Extensions to the Path Computation Element
>                    Communication Protocol (PCEP) for
>                    Point-to-Multipoint Traffic Engineering Label
>                    Switched Paths
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-no-gco-migration {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because of no Global Concurrent
>          Optimization (GCO) migration path found.
>         
>          It corresponds to bit 26 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 5557: Path Computation Element Communication Protocol
>                    (PCEP) Requirements and Protocol Extensions in
>                    Support of Global Concurrent Optimization
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-no-gco-solution {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because of no GCO solution
>          found.
>         
>          It corresponds to bit 25 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 5557: Path Computation Element Communication Protocol
>                    (PCEP) Requirements and Protocol Extensions in
>                    Support of Global Concurrent Optimization
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-pks-expansion {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because of Path-Key Subobject
>          (PKS)  expansion failure.
>         
>          It corresponds to bit 27 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 5520: Preserving Topology Confidentiality in
>                    Inter-Domain Path Computation Using a
>                    Path-Key-Based Mechanism
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-brpc-chain-unavailable {
>       base path-computation-error-no-dependent-server;
>       description
>         "Path computation has failed because PCE BRPC chain
>          unavailable.
>         
>          It corresponds to bit 28 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 5441: A Backward-Recursive PCE-Based Computation (BRPC)
>                    Procedure to Compute Shortest Constrained
>                    Inter-Domain Traffic Engineering Label Switched
>                    Paths
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-source-unknown {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because source node is 
>          unknown.
>         
>          It corresponds to bit 29 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 5440: Path Computation Element (PCE) Communication
>                    Protocol (PCEP);
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-destination-unknown {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because destination node is
>          unknown.
>         
>          It corresponds to bit 30 of the Flags field of the 
>          NO-PATH-VECTOR TLV.";
>       reference
>         "RFC 5440: Path Computation Element (PCE) Communication
>         Protocol (PCEP);
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>     identity path-computation-error-no-server {
>       base path-computation-error-reason;
>       description
>         "Path computation has failed because path computation
>          server is unavailable.";
>       reference
>         "RFC 5440: Path Computation Element (PCE) Communication
>                    Protocol (PCEP);
>         
>          https://www.iana.org/assignments/pcep
>          /pcep.xhtml#no-path-vector-tlv";
>     }
> 
>   // CHANGE NOTE: The base identity protocol-origin-type and 
>   // its derived identities below have been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity protocol-origin-type {
>     description
>       "Base identity for protocol origin type.";
>   }
> 
>     identity protocol-origin-api {
>       base protocol-origin-type;
>       description
>         "Protocol origin is via Application Programming Interface
>          (API).";
>     }
> 
>     identity protocol-origin-pcep {
>       base protocol-origin-type;
>       description
>         "Protocol origin is Path Computation Engine Protocol 
>          (PCEP).";
>       reference
>         "RFC 5440: Path Computation Element (PCE) Communication
>                    Protocol (PCEP)";
>     }
> 
>     identity protocol-origin-bgp {
>       base protocol-origin-type;
>       description
>         "Protocol origin is Border Gateway Protocol (BGP).";
>       reference
>         "RFC 9012: The BGP Tunnel Encapsulation Attribute";
>     }
> 
>   // CHANGE NOTE: The base identity svec-objective-function-type 
>   // and its derived identities below have been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity svec-objective-function-type {
>     description
>       "Base identity for SVEC objective function type.";
>     reference
>       "RFC 5541: Encoding of Objective Functions in the Path
>                  Computation Element Communication Protocol (PCEP)";
>   }
> 
>     identity svec-of-minimize-agg-bandwidth-consumption {
>       base svec-objective-function-type;
>       description
>         "Objective function for minimizing aggregate bandwidth 
>          consumption (MBC).";
>       reference
>         "RFC 5541: Encoding of Objective Functions in the Path
>                    Computation Element Communication Protocol
>                    (PCEP)";
>     }
> 
>     identity svec-of-minimize-load-most-loaded-link {
>       base svec-objective-function-type;
>       description
>         "Objective function for minimizing the load on the link that 
>          is carrying the highest load (MLL).";
>       reference
>         "RFC 5541: Encoding of Objective Functions in the Path
>                    Computation Element Communication Protocol
>                    (PCEP)";
>     }
> 
>     identity svec-of-minimize-cost-path-set {
>       base svec-objective-function-type;
>       description
>         "Objective function for minimizing the cost on a path set 
>          (MCC).";
>       reference
>         "RFC 5541: Encoding of Objective Functions in the Path
>                    Computation Element Communication Protocol
>                    (PCEP)";
>     }
> 
>     identity svec-of-minimize-common-transit-domain {
>       base svec-objective-function-type;
>       description
>         "Objective function for minimizing the number of common 
>          transit domains (MCTD).";
>       reference
>         "RFC 8685: Path Computation Element Communication Protocol 
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture.";
>     }
> 
>     identity svec-of-minimize-shared-link {
>       base svec-objective-function-type;
>       description
>         "Objective function for minimizing the number of shared 
>          links (MSL).";
>       reference
>         "RFC 8685: Path Computation Element Communication Protocol 
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture.";
>     }
> 
>     identity svec-of-minimize-shared-srlg {
>       base svec-objective-function-type;
>       description
>         "Objective function for minimizing the number of shared 
>          Shared Risk Link Groups (SRLG) (MSS).";
>       reference
>         "RFC 8685: Path Computation Element Communication Protocol 
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture.";
>     }
> 
>     identity svec-of-minimize-shared-nodes {
>       base svec-objective-function-type;
>       description
>         "Objective function for minimizing the number of shared 
>          nodes (MSN).";
>       reference
>         "RFC 8685: Path Computation Element Communication Protocol
>                    (PCEP) Extensions for the Hierarchical Path
>                    Computation Element (H-PCE) Architecture.";
>     }
> 
>   // CHANGE NOTE: The base identity svec-metric-type and 
>   // its derived identities below have been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity svec-metric-type {
>     description
>       "Base identity for SVEC metric type.";
>     reference
>       "RFC 5541: Encoding of Objective Functions in the Path
>                  Computation Element Communication Protocol (PCEP)";
>   }
> 
>     identity svec-metric-cumulative-te {
>       base svec-metric-type;
>       description
>         "Cumulative TE cost.";
>       reference
>         "RFC 5541: Encoding of Objective Functions in the Path
>                    Computation Element Communication Protocol
>                    (PCEP)";
>     }
> 
>     identity svec-metric-cumulative-igp {
>       base svec-metric-type;
>       description
>         "Cumulative IGP cost.";
>       reference
>         "RFC 5541: Encoding of Objective Functions in the Path
>                    Computation Element Communication Protocol
>                    (PCEP)";
>     }
> 
>     identity svec-metric-cumulative-hop {
>       base svec-metric-type;
>       description
>         "Cumulative Hop path metric.";
>       reference
>         "RFC 5541: Encoding of Objective Functions in the Path
>                    Computation Element Communication Protocol
>                    (PCEP)";
>     }
> 
>     identity svec-metric-aggregate-bandwidth-consumption {
>       base svec-metric-type;
>       description
>         "Aggregate bandwidth consumption.";
>       reference
>         "RFC 5541: Encoding of Objective Functions in the Path
>                    Computation Element Communication Protocol
>                    (PCEP)";
>     }
> 
>     identity svec-metric-load-of-the-most-loaded-link {
>       base svec-metric-type;
>       description
>         "Load of the most loaded link.";
>       reference
>         "RFC 5541: Encoding of Objective Functions in the Path
>                    Computation Element Communication Protocol
>                    (PCEP)";
>     }
> 
2223,2224c3156,3157
<        Routed Label Switched Paths (LSPs) Using TE Metric
<        Extensions
---
>                  Routed Label Switched Paths (LSPs) Using TE Metric
>                  Extensions
2248,2249c3181,3182
<        Routed Label Switched Paths (LSPs) Using TE Metric
<        Extensions
---
>                  Routed Label Switched Paths (LSPs) Using TE Metric
>                  Extensions
2273,2274c3206,3207
<        Routed Label Switched Paths (LSPs) Using TE Metric
<        Extensions
---
>                  Routed Label Switched Paths (LSPs) Using TE Metric
>                  Extensions
2286c3219
<          Version 2";
---
>                    Version 2";
2350c3283
<          Version 2";
---
>                    Version 2";
2405,2406c3338,3339
<          Routed Label Switched Paths (LSPs) Using TE Metric
<          Extensions
---
>                    Routed Label Switched Paths (LSPs) Using TE Metric
>                    Extensions
2416c3349
<          Networks";
---
>                    Networks";
2437,2438c3370,3371
<          Routed Label Switched Paths (LSPs) Using TE Metric
<          Extensions
---
>                    Routed Label Switched Paths (LSPs) Using TE Metric
>                    Extensions
2472c3405
<            Extensions, Section 6";
---
>                      Extensions, Section 6";
2506a3440,3442
>   // CHANGE NOTE: The explicit-route-hop grouping below has been
>   // updated in this module revision
>   // RFC Editor: remove the note above and this note
2514a3451,3459
>           must "node-id-uri or node-id" {
>             description
>               "At least one node identifier MUST be present.";
>           }
>           leaf node-id-uri {
>             type nw:node-id;
>             description
>               "The identifier of a node in the topology.";
>           }
2517d3461
<             mandatory true;
2531c3475
<              Section 4.3, EXPLICIT_ROUTE in RSVP-TE
---
>                        Section 4.3, EXPLICIT_ROUTE in RSVP-TE
2533c3477,3478
<              ReSerVation Protocol - Traffic Engineering (RSVP-TE)";
---
>                        ReSerVation Protocol - Traffic Engineering
>                        (RSVP-TE)";
2560c3505
<              Section 4.3, EXPLICIT_ROUTE in RSVP-TE
---
>                        Section 4.3, EXPLICIT_ROUTE in RSVP-TE
2562c3507,3508
<              ReSerVation Protocol - Traffic Engineering (RSVP-TE)";
---
>                        ReSerVation Protocol - Traffic Engineering
>                        (RSVP-TE)";
2566a3513,3523
>           must "(link-tp-id-uri or link-tp-id) and " +
>                 "(node-id-uri or node-id)" {
>             description
>               "At least one node identifier and at least one Link 
>               Termination Point (LTP) identifier MUST be present.";
>           }
>           leaf link-tp-id-uri {
>             type nt:tp-id;
>             description
>               "Link Termination Point (LTP) identifier.";
>           }
2569d3525
<             mandatory true;
2574a3531,3535
>           leaf node-id-uri {
>             type nw:node-id;
>             description
>               "The identifier of a node in the topology.";
>           }
2577d3537
<             mandatory true;
2597c3557
<              Section 4.3, EXPLICIT_ROUTE in RSVP-TE
---
>                        Section 4.3, EXPLICIT_ROUTE in RSVP-TE
2599c3559,3560
<              ReSerVation Protocol - Traffic Engineering (RSVP-TE)";
---
>                        ReSerVation Protocol - Traffic Engineering
>                        (RSVP-TE)";
2631a3593,3595
>   // CHANGE NOTE: The explicit-route-hop grouping below has been
>   // updated in this module revision
>   // RFC Editor: remove the note above and this note
2646a3611,3614
>           must "node-id-uri or node-id" {
>             description
>               "At least one node identifier MUST be present.";
>           }
2648a3617,3621
>           leaf node-id-uri {
>             type nw:node-id;
>             description
>               "The identifier of a node in the topology.";
>           }
2651d3623
<             mandatory true;
2662c3634
<                Tunnels
---
>                          Tunnels
2664c3636
<                Node-Id Sub-Object";
---
>                          Node-Id Sub-Object";
2687c3659
<                Tunnels
---
>                          Tunnels
2689c3661
<                Node-Id Sub-Object";
---
>                          Node-Id Sub-Object";
2696a3669,3679
>           must "(link-tp-id-uri or link-tp-id) and " +
>               "(node-id-uri or node-id)" {
>             description
>               "At least one node identifier and at least one Link 
>               Termination Point (LTP) identifier MUST be present.";
>           }
>           leaf link-tp-id-uri {
>             type nt:tp-id;
>             description
>               "Link Termination Point (LTP) identifier.";
>           }
2699d3681
<             mandatory true;
2704a3687,3691
>           leaf node-id-uri {
>             type nw:node-id;
>             description
>               "The identifier of a node in the topology.";
>           }
2717c3704
<                Tunnels
---
>                          Tunnels
2719c3706
<                Node-Id Sub-Object";
---
>                          Node-Id Sub-Object";
2725c3712,3713
<              ReSerVation Protocol - Traffic Engineering (RSVP-TE)";
---
>                        ReSerVation Protocol - Traffic Engineering
>                        (RSVP-TE)";
2742c3730
<                Tunnels
---
>                          Tunnels
2744c3732
<                Node-Id Sub-Object";
---
>                          Node-Id Sub-Object";
2842a3831,3841
> 
>          In case the restriction is 'inclusive', the bit-position is
>          set if the corresponding mapped label is available.
>          In this case, if the range-bitmap is not present, all the
>          labels in the range are available.
> 
>          In case the restriction is 'exclusive', the bit-position is
>          set if the corresponding mapped label is not available.
>          In this case, if the range-bitmap is not present, all the
>          labels in the range are not available.
> 
2876c3875
<            for GMPLS-Controlled Networks";
---
>                      for GMPLS-Controlled Networks";
2881a3881,3883
>   // CHANGE NOTE: The grouping optimization-metric-entry below has
>   // been updated in this module revision
>   // RFC Editor: remove the note above and this note
2887c3889
<         base path-metric-type;
---
>         base path-metric-optimization-type;
2933c3935,3936
<          Generalized Multi-Protocol Label Switching (GMPLS)";
---
>                    Generalized Multi-Protocol Label Switching
>                    (GMPLS)";
2964a3968,3970
>   // CHANGE NOTE: The grouping tunnel-constraints below has
>   // been updated in this module revision
>   // RFC Editor: remove the note above and this note
2968a3975,3979
>     leaf network-id {
>       type nw:network-id;
>       description
>         "The network topology identifier.";
>     }
2972a3984,3986
>   // CHANGE NOTE: The grouping path-constraints-route-objects below
>   // has been updated in this module revision
>   // RFC Editor: remove the note above and this note
2977c3991
<     container explicit-route-objects-always {
---
>     container explicit-route-objects {
2979c3993
<         "Container for the 'exclude route' object list.";
---
>         "Container for the explicit route object lists.";
3101a4116,4118
>   // CHANGE NOTE: The grouping generic-path-metric-bounds below
>   // has been updated in this module revision
>   // RFC Editor: remove the note above and this note
3107c4124
<         "TE path metric bounds container.";
---
>         "Top-level container for the list of path metric bounds.";
3111c4128,4136
<           "List of TE path metric bounds.";
---
>           "List of path metric bounds, which can apply to link and
>            path metrics.
>           
>            TE paths which have at least one path metric which
>            exceeds the specified bounds MUST NOT be selected.
>           
>            TE paths that traverse TE links which have at least one
>            link metric which exceeds the specified bounds MUST NOT
>            be selected.";
3114c4139
<             base path-metric-type;
---
>             base link-path-metric-type;
3124,3126c4149,4155
<             "Upper bound on the end-to-end TE path metric.  A zero
<              indicates an unbounded upper limit for the specific
<              'metric-type'.";
---
>             "Upper bound on the specified 'metric-type'.
>             
>              A zero indicates an unbounded upper limit for the
>              specificied 'metric-type'.
>             
>              The unit of is interpreted in the context of the
>              'metric-type' identity.";
3131a4161,4163
>   // CHANGE NOTE: The grouping generic-path-metric-bounds below
>   // has been updated in this module revision
>   // RFC Editor: remove the note above and this note
3152a4185
>             status deprecated;
3154c4187,4190
<               "Container for the list of tiebreakers.";
---
>               "Container for the list of tiebreakers.
>               
>                This container has been deprecated by the tiebreaker
>                leaf.";
3156a4193
>               status deprecated;
3164a4202
>                 status deprecated;
3189a4228,4236
>     leaf tiebreaker {
>       type identityref {
>         base path-tiebreaker-type;
>       }
>       default "te-types:path-tiebreaker-random";
>       description
>         "The tiebreaker criteria to apply on an equally favored set
>          of paths, in order to pick the best.";
>     }
3376a4424,4484
>     }
>   }
> 
>   // NOTE: The grouping encoding-and-switching-type below has been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   grouping encoding-and-switching-type {
>     description
>       "Common grouping to define the LSP encoding and
>        switching types";
>     leaf encoding {
>       type identityref {
>         base te-types:lsp-encoding-types;
>       }
>       description
>         "LSP encoding type.";
>       reference
>         "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS)
>                    Architecture";
>     }
>     leaf switching-type {
>       type identityref {
>         base te-types:switching-capabilities;
>       }
>       description
>         "LSP switching type.";
>       reference
>         "RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS)
>                    Architecture";
>     }
>   }
> 
>   // CHANGE NOTE: The typedef te-gen-node-id below has been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   grouping te-generic-node-id {
>     description
>       "A reusable grouping for a TE generic node identifier.";
>     leaf id {
>       type te-gen-node-id;
>       description
>         "The identifier of the node. Can be represented as IP
>          address or dotted quad address or as an URI.";
>     }
>     leaf type {
>       type enumeration {
>         enum ip {
>           description
>             "IP address representation of the node identifier.";
>         }
>         enum te-id {
>           description
>             "TE identifier of the node";
>         }
>         enum node-id {
>           description
>             "URI representation of the node identifier.";
>         }
>       }
>       description
>         "Type of node identifier representation.";
]]></artwork></figure>

</section>
<section anchor="packet-te-types-yang-diffs"><name>Packet TE Types YANG Diffs</name>

<t>RFC Editor: please remove this appendix before publication.</t>

<t>This section provides the diff between the YANG module in section 3.2 of <xref target="RFC8776"/> and the YANG model revision in <xref target="pkt-yang-code"/>.</t>

<t>The intention of this appendix is to facilitate focusing the review of the YANG model in <xref target="pkt-yang-code"/> to the changes compared with the YANG model in <xref target="RFC8776"/>.</t>

<t>This diff has been generated using the following UNIX commands to compare the YANG module revisions in section 3.2 of <xref target="RFC8776"/> and in <xref target="pkt-yang-code"/>:</t>

<figure><artwork><![CDATA[
diff ietf-te-packet-types@2020-06-10.yang ietf-te-packet-types.yang 
     > model-diff.txt
sed 's/^/    /' model-diff.txt > model-diff-spaces.txt
sed 's/^    >   /    >   /' model-diff-spaces.txt 
    > model-updates.txt
]]></artwork></figure>

<t>The output (model-updates.txt) is reported here:</t>

<figure><artwork><![CDATA[
6c6,10
<   /* Import TE generic types */
---
>   import ietf-yang-types {
>     prefix yang;
>     reference
>       "RFC 6991: Common YANG Data Types";
>   }
11c15
<       "RFC 8776: Common YANG Data Types for Traffic Engineering";
---
>       "RFC XXXX: Common YANG Data Types for Traffic Engineering";
12a17,18
>   // RFC Editor: replace XXXX with actual RFC number
>   // and remove this note
22c28
<                <mailto:tsaad@juniper.net>
---
>                <mailto:tsaad.net@gmail.com>
37,39c43,53
<      data type definitions specific to MPLS TE.  The model fully
<      conforms to the Network Management Datastore Architecture
<      (NMDA).
---
>      data type definitions specific to Packet Traffic Enginnering
>      (TE).
>      
>      The model fully conforms to the Network Management Datastore
>      Architecture (NMDA).
> 
>      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 (RFC 2119) (RFC 8174) when, and only when,
>      they appear in all capitals, as shown here.
41c55
<      Copyright (c) 2020 IETF Trust and the persons identified as
---
>      Copyright (c) 2024 IETF Trust and the persons identified as
46c60
<      the license terms contained in, the Simplified BSD License set
---
>      the license terms contained in, the Revised BSD License set
51,52c65,86
<      This version of this YANG module is part of RFC 8776; see the
<      RFC itself for full legal notices.";
---
>      This version of this YANG module is part of RFC XXXX
>      (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
>      for full legal notices.";
>   revision 2024-07-23 {
>     description
>       "This revision adds the following new identities:
>        - bandwidth-profile-type;
>        - link-metric-delay-variation;
>        - link-metric-loss;
>        - path-metric-delay-variation;
>        - path-metric-loss.
> 
>       This revision adds the following new groupings:
>        - te-packet-path-bandwidth;
>        - te-packet-link-bandwidth.
>        
>       This revision provides also few editorial changes.";
>     reference
>       "RFC XXXX: Common YANG Data Types for Traffic Engineering";
>   }
>   // RFC Editor: replace XXXX with actual RFC number, update date
>   // information and remove this note
61c95,201
<   /**
---
>   /*
>    * Identities
>    */
> 
>   // CHANGE NOTE: The base identity bandwidth-profile-type and 
>   // its derived identities below have been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   identity bandwidth-profile-type {
>     description
>       "Bandwidth Profile Types";
>   }
> 
>     identity mef-10 {
>       base bandwidth-profile-type;
>       description
>         "MEF 10 Bandwidth Profile";
>       reference
>         "MEF 10.3: Ethernet Services Attributes Phase 3";
>     }
> 
>     identity rfc-2697 {
>       base bandwidth-profile-type;
>       description
>         "RFC 2697 Bandwidth Profile";
>       reference
>         "RFC 2697: A Single Rate Three Color Marker";
>     }
> 
>     identity rfc-2698 {
>       base bandwidth-profile-type;
>       description
>         "RFC 2698 Bandwidth Profile";
>       reference
>         "RFC 2698: A Two Rate Three Color Marker";
>     }
> 
>     identity rfc-4115 {
>       base bandwidth-profile-type;
>       description
>         "RFC 4115 Bandwidth Profile";
>       reference
>         "RFC 4115: A Differentiated Service Two-Rate, Three-Color 
>                    Marker with Efficient Handling of in-Profile
>                    Traffic";
>     }
> 
>     // CHANGE NOTE: The identity link-metric-delay-variation
>     // below has been added in this module revision
>     // RFC Editor: remove the note above and this note
>     identity link-metric-delay-variation {
>       base te-types:link-metric-type;
>       description
>         "The Unidirectional Delay Variation Metric,
>          measured in units of microseconds.";
>       reference
>         "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions,
>                    Section 4.3
>          RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions,
>                    Section 4.3";
>     }
> 
>     // CHANGE NOTE: The identity link-metric-loss below has 
>     // been added in this module revision
>     // RFC Editor: remove the note above and this note
>     identity link-metric-loss {
>       base te-types:link-metric-type;
>       description
>         "The Unidirectional Link Loss Metric,
>          measured in units of 0.000003%.";
>       reference
>         "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions,
>                    Section 4.4
>          RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions,
>                    Section 4.4";
>     }
> 
>     // CHANGE NOTE: The identity path-metric-delay-variation
>     // below has been added in this module revision
>     // RFC Editor: remove the note above and this note
>     identity path-metric-delay-variation {
>       base te-types:path-metric-type;
>       description
>         "The Path Delay Variation Metric,
>          measured in units of microseconds.";
>       reference
>         "RFC 8233: Extensions to the Path Computation Element
>                    Communication Protocol (PCEP) to Compute
>                    Service-Aware Label Switched Paths (LSPs),
>                    Section 3.1.2";
>     }
> 
>     // CHANGE NOTE: The identity path-metric-loss below has 
>     // been added in this module revision
>     // RFC Editor: remove the note above and this note
>     identity path-metric-loss {
>       base te-types:path-metric-type;
>       description
>         "The Path Loss Metric, measured in units of 0.000003%.";
>       reference
>         "RFC 8233: Extensions to the Path Computation Element
>                    Communication Protocol (PCEP) to Compute
>                    Service-Aware Label Switched Paths (LSPs),
>                    Section 3.1.3";
>     }
> 
>   /*
91c231
<        MPLS Traffic Engineering";
---
>                  MPLS Traffic Engineering";
102c242
<        MPLS Traffic Engineering";
---
>                  MPLS Traffic Engineering";
149c289
<        MPLS Traffic Engineering";
---
>                  MPLS Traffic Engineering";
177,178c317,318
<        Constraints Model for Diffserv-aware MPLS Traffic Engineering
<        & Performance Comparisons";
---
>                  Constraints Model for Diffserv-aware MPLS Traffic
>                  Engineering & Performance Comparisons";
180a321,324
>   /*
>    * Groupings
>    */
> 
220c364
<              Statement, Section 4.2";
---
>                        Statement, Section 4.2";
229c373
<              Extensions
---
>                        Extensions
231,232c375,376
<              Explicitly Routed Label Switched Paths (LSPs) Using
<              TE Metric Extensions
---
>                        Explicitly Routed Label Switched Paths (LSPs)
>                        Using TE Metric Extensions
234c378
<              Extensions";
---
>                        Extensions";
247c391
<              Extensions, Section 4.4";
---
>                        Extensions, Section 4.4";
256c400
<              Extensions
---
>                        Extensions
258,259c402,403
<              Explicitly Routed Label Switched Paths (LSPs) Using
<              TE Metric Extensions
---
>                        Explicitly Routed Label Switched Paths (LSPs)
>                        Using TE Metric Extensions
261c405
<              Extensions";
---
>                        Extensions";
283c427
<              Extensions
---
>                        Extensions
285,286c429,430
<              Explicitly Routed Label Switched Paths (LSPs) Using
<              TE Metric Extensions
---
>                        Explicitly Routed Label Switched Paths (LSPs)
>                        Using TE Metric Extensions
288c432
<              Extensions";
---
>                        Extensions";
305c449
<              Extensions
---
>                        Extensions
307,308c451,452
<              Explicitly Routed Label Switched Paths (LSPs) Using
<              TE Metric Extensions
---
>                        Explicitly Routed Label Switched Paths (LSPs)
>                        Using TE Metric Extensions
310c454
<              Extensions";
---
>                        Extensions";
321c465
<              Statement, Section 4.2";
---
>                        Statement, Section 4.2";
330c474
<              Extensions
---
>                        Extensions
332,333c476,477
<              Explicitly Routed Label Switched Paths (LSPs) Using
<              TE Metric Extensions
---
>                        Explicitly Routed Label Switched Paths (LSPs) 
>                        Using TE Metric Extensions
335c479
<              Extensions";
---
>                        Extensions";
358,363c502,508
<           "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions
<            RFC 7823: Performance-Based Path Selection for
<            Explicitly Routed Label Switched Paths (LSPs) Using
<            TE Metric Extensions
<            RFC 8570: IS-IS Traffic Engineering (TE) Metric
<            Extensions";
---
>             "RFC 7471: OSPF Traffic Engineering (TE) Metric
>                        Extensions
>              RFC 7823: Performance-Based Path Selection for
>                        Explicitly Routed Label Switched Paths (LSPs)
>                        Using TE Metric Extensions
>              RFC 8570: IS-IS Traffic Engineering (TE) Metric
>                        Extensions";
407a553,599
>   // CHANGE NOTE: The grouping 
>   // one-way-performance-metrics-gauge-packet has been added in
>   // this module revision
>   // RFC Editor: remove the note above and this note
>   grouping one-way-performance-metrics-gauge-packet {
>     description
>       "One-way packet PM throttle grouping.
> 
>        This grouping is used to report the same metrics defined in
>        the one-way-performance-metrics-packet grouping, using gauges
>        instead of uint32 data types and referencing IPPM RFCs
>        instead of IGP-TE RFCs.";
>     leaf one-way-min-delay {
>       type yang:gauge64;
>       description
>         "One-way minimum delay or latency in microseconds.";
>     }
>     leaf one-way-max-delay {
>       type yang:gauge64;
>       description
>         "One-way maximum delay or latency in microseconds.";
>       reference
>         "RFC 7679: A One-Way Delay Metric for IP Performance
>                    Metrics (IPPM)";
>     }
>     leaf one-way-delay-variation {
>       type yang:gauge64;
>       description
>         "One-way delay variation in microseconds.";
>       reference
>         "RFC 3393: IP Packet Delay Variation Metric for IP
>                    Performance Metrics (IPPM)";
>     }
>     leaf one-way-packet-loss {
>       type decimal64 {
>         fraction-digits 5;
>         range "0..100";
>       }
>       description
>         "The ratio of packets dropped to packets transmitted between
>          two endpoints.";
>       reference
>         "RFC 7680: A One-Way Loss Metric for IP Performance
>                    Metrics (IPPM)";
>     }
>   }
> 
447a640,683
>   // CHANGE NOTE: The grouping 
>   // two-way-performance-metrics-gauge-packet has been added in
>   // this module revision
>   // RFC Editor: remove the note above and this note
>   grouping two-way-performance-metrics-gauge-packet {
>     description
>       "Two-way packet PM throttle grouping.
> 
>        This grouping is used to report the same metrics defined in
>        the two-way-performance-metrics-packet grouping, using gauges
>        instead of uint32 data types and referencing IPPM RFCs
>        instead of IGP-TE RFCs.";
>     leaf two-way-min-delay {
>       type yang:gauge64;
>       description
>         "Two-way minimum delay or latency in microseconds.";
>       reference
>         "RFC 2681: A Round-trip Delay Metric for IPPM";
>     }
>     leaf two-way-max-delay {
>       type yang:gauge64;
>       description
>         "Two-way maximum delay or latency in microseconds.";
>       reference
>         "RFC 2681: A Round-trip Delay Metric for IPPM";
>     }
>     leaf two-way-delay-variation {
>       type yang:gauge64;
>       description
>         "Two-way delay variation in microseconds.";
>       reference
>         "RFC 5481: Packet Delay Variation Applicability Statement";
>     }
>     leaf two-way-packet-loss {
>       type decimal64 {
>         fraction-digits 5;
>         range "0..100";
>       }
>       description
>         "The ratio of packets dropped to packets transmitted between
>          two endpoints.";
>     }
>   }
> 
472a709,780
>     }
>   }
> 
>   // CHANGE NOTE: The te-packet-path-bandwidth below has been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   grouping te-packet-path-bandwidth {
>     description
>       "Path bandwidth for Packet. ";
>     leaf bandwidth-profile-name {
>       type string;
>       description
>         "Name of Bandwidth Profile.";
>     }
>     leaf bandwidth-profile-type {
>       type identityref {
>         base bandwidth-profile-type;
>       }
>       description
>         "Type of Bandwidth Profile.";
>     }
>     leaf cir {
>       type uint64;
>       units "bits/second";
>       mandatory true;
>       description
>         "Committed Information Rate (CIR).";
>     }
>     leaf cbs {
>       type uint64;
>       units "bits/second";
>       mandatory true;
>       description
>         "Committed Burst Size (CBS).";
>     }
>     leaf eir {
>       type uint64;
>       units "bits/second";
>       description
>         "Excess Information Rate (EIR).";
>     }
>     leaf ebs {
>       type uint64;
>       units "bytes";
>       description
>         "Excess Burst Size (EBS).";
>     }
>     leaf pir {
>       type uint64;
>       units "bits/second";
>       description
>         "Peak Information Rate (PIR).";
>     }
>     leaf pbs {
>       type uint64;
>       units "bytes";
>       description
>         "Peak Burst Size (PBS).";
>     }
>   }
> 
>   // CHANGE NOTE: The te-packet-path-bandwidth below has been
>   // added in this module revision
>   // RFC Editor: remove the note above and this note
>   grouping te-packet-link-bandwidth {
>     description
>       "Link Bandwidth for Packet. ";
>     leaf packet-bandwidth {
>       type uint64;
>       units "bits/second";
>       description
>         "Available bandwith value.";
]]></artwork></figure>

</section>
</section>
<section anchor="options"><name>Option Considered for updating RFC8776</name>

<t>RFC Editor: please remove this appendix before publication.</t>

<t>The concern is how to be able to update the ietf-te-types YANG module published in <xref target="RFC8776"/> without delaying too much the progress of the mature WG documents.</t>

<t>Three possible options have been identified to address this concern.</t>

<t>One option is to keep these definitions in the YANG modules where they have initially been defined: other YANG modules can still import them. The drawback of this approach is that it defeating the value of common YANG modules like ietf-te-types since common definitions will be spread around multiple specific YANG modules.</t>

<t>A second option is to define them in a new common YANG module (e.g., ietf-te-types-ext). The drawback of this approach is that it will increase the number of YANG modules providing tiny updates to the ietf-te-types YANG module.</t>

<t>A third option is to develop a revision of the ietf-te-types YANG module within an RFC8776-bis. The drawback of this approach is that the process for developing a big RFC8776-bis just for a tiny update is too high. Moreover, as suggested during IETF 113 Netmod WG discussion, a new revision of the ietf-te-packet-types YANG module, which is also defined in <xref target="RFC8776"/> but it does not need to be revised, needs to be published just to change its reference to RFC8776-bis (see <xref target="RFC9314"/>).</t>

<t>A fourth option, considered in the -00 WG version, was to:</t>

<t><list style="symbols">
  <t>describe within the document only the updates to the ietf-te-types YANG module proposed by this document;</t>
  <t>include the whole updated YANG model within the main body;</t>
  <t>add some notes, to be removed before publication, within updated YANG model to focus the review only to the updates to the ietf-te-types YANG module proposed by this document.</t>
</list></t>

<t>Based on the feedbacks from IETF 114 discussion, this version has been restructured to become an RFC8776-bis, with some notes, to be removed before publication, to focus the review only to the updates to the ietf-te-types YANG module proposed by this document.</t>

<t>During the Netmod WG session at IETF 114, an alternative process has been introduced:</t>

<t>https://datatracker.ietf.org/meeting/114/materials/slides-114-netmod-ad-topic-managing-the-evolution-of-ietf-yang-modules-00.pdf</t>

<t>Future updates of this document could align with the proposed approach.</t>

</section>
<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors would like to thank 
Robert Wilton, Lou Berger, Mahesh Jethanandani and Jeff Haas
for their valuable input to the discussion
about the process to follow to provide tiny updates to a YANG module already published as an RFC.</t>

<t>This document was prepared using kramdown.</t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="V. P." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </contact>
    <contact initials="R." surname="Gandhi" fullname="Rakesh Gandhi">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>rgandhi@cisco.com</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
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
XXRyqG3kvs4mGHqFo9IMqcCbDOWVJd38LunfvKTPzMnLb3NAps7M0zOMzEa3
4VUylhJGyAe2OODCTFaWZvt5pdkaumu65Nh9xxGEumtnniaw1hapTgqSz/D/
2qNTHXDq9yG3VdgB6E2U6pPkhrV53wDBn6bau3F6BZboKJ2yPLYGZz4K57za
7rujj5hOz4kgoVxy+rKybrjPG3tyHO8JLP15/Pd5khEYOTvqZaoiqKFiqaw+
F/MZqTEKlDfmpDYHW64AeTqeb5L8H33UOEoNnjxOsJ3vgo2fb16wZ59zPf4y
CwkzNkGs8TH9P+IHYP0VvT3aYMru2X9c7GlahTZCAVdyZWH3nlnYTTxBACzw
dg34EJf8zBlk65pOWIieXLdo1g7OGqrzKUfIYZeHwxjNDv5OY/Agp0neOHjc
Fkm+ymaRDjSQLedKR11PH2bBAAseqmoEzwaPVMfRrdPQIsv+c5+G/fHOlLdF
I2jIemMCMCyCzk6Wmlx8bNTleY+OnvIcuJEhsS0SpzjjfHGxW+JUc+UrCM97
jPN40ftW5A2AbshlNPlaWIMXDM8kr63y323OAhnocZmZN6BIswRWeL0sy14D
sul3mFVErH51mU8thVbvBvGzmtEdyISzRK1fCqSXUSsJS+DOXRJqh7PZWNjq
32ThZII+G3HqrkNFluDu4dnJ3nJXdCTMUUaficSm9hK/tFJHxXYX9XODTMVj
OH3VLBLzRIx+k2ag8IqaMW/eLc3NYGiY1PbAy9rlnDQYPJ5G4SyfjylnD4si
S65gs7IGk5aDgdTL1Fmdp85Sq1C3UZufntFJzMom7gK8J0V2cdPUtU7tmlOL
V87iWWyPKQevaZ0HTNEMb26qPHfwcKb5fDJrjUt3TcASKvaxyWycCIYUiTbd
3GTxDeibkOjX4JeI7e7pm6OlDdsak8HXGGtexiY25hNzPHVMCCV/xSOdXE19
0bkkVQgw9TSdVg08SLJugxWg+hGvzoGP3iY3txirIa/vnr5//32KY1BSmF3i
/OZx8fJTi+jg1IZ044I4Nf2O06Pv2kmmbjLBecC+hknRdWH7WaewyoynCDYn
kGHML6nihF6+XXZGV7pdpKpRUp+R57petNS2oDH1+W2YbYw5riacotVkMi0b
s3t6sbTJ/T7LIz3PxjfbMMsX9PvzJP9Ma6+/y9L5DOb94vz9uz2c/ovv07/8
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
/X9XFCFNdp0EAA==

-->

</rfc>

