rfc9826xml2.original.xml   rfc9826.xml 
<?xml version="1.0" encoding="us-ascii"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[]>
<?rfc toc="yes" ?> <!DOCTYPE rfc [
<?rfc tocompact="yes"?> <!ENTITY nbsp "&#160;">
<?rfc tocdepth="4"?> <!ENTITY zwsp "&#8203;">
<?rfc tocindent="yes"?> <!ENTITY nbhy "&#8209;">
<?rfc symrefs="yes" ?> <!ENTITY wj "&#8288;">
<?rfc sortrefs="yes"?> ]>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" category="std"
<?rfc compact="yes" ?> docName="draft-ietf-pce-pcep-yang-30" number="9826" consensus="true" obsoletes=
<?rfc iprnotified="Yes" ?> "" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4"
<?rfc strict="no" ?> symRefs="true" sortRefs="true" version="3">
<rfc ipr="trust200902" category="std" docName="draft-ietf-pce-pcep-yang-30" obso
letes="" updates="" submissionType="IETF" xml:lang="en"> <!-- [rfced] FYI - We updated the abbreviated title (appears in the header of
<front> this document's PDF output) as follows.
<title abbrev="PCE-YANG">A YANG Data Model for Path Computation Element Comm
unications Protocol (PCEP)</title>
Original:
PCE-YANG
Updated:
YANG Data Model for PCEP
-->
<front>
<title abbrev="PCE-YANG">A YANG Data Model for the Path Computation Element
Communication Protocol (PCEP)</title>
<seriesInfo name="RFC" value="9826"/>
<author initials="D" surname="Dhody" fullname="Dhruv Dhody" role="editor"> <author initials="D" surname="Dhody" fullname="Dhruv Dhody" role="editor">
<organization>Huawei</organization> <organization>Huawei</organization>
<address> <address>
<postal> <postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country>India</country> <country>India</country>
</postal> </postal>
<email>dhruv.ietf@gmail.com</email> <email>dhruv.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Vishnu Pavan Beeram" initials="V." surname="Beeram"> <author fullname="Vishnu Pavan Beeram" initials="V." surname="Beeram">
<organization>Juniper Networks</organization> <organization>Juniper Networks</organization>
<address> <address>
<postal> <postal>
<street></street>
<city></city>
<code></code>
<country>India</country> <country>India</country>
</postal> </postal>
<email> vbeeram@juniper.net </email> <email> vbeeram@juniper.net </email>
</address> </address>
</author> </author>
<author fullname="Jonathan Hardwick" initials="J." surname="Hardwick"> <author fullname="Jonathan Hardwick" initials="J." surname="Hardwick">
<organization></organization> <organization/>
<address> <address>
<postal> <postal>
<street></street> <country>United Kingdom</country>
<city></city>
<code></code>
<country>UK</country>
</postal> </postal>
<email>jonathan.e.hardwick@gmail.com</email> <email>jonathan.e.hardwick@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Jeff Tantsura" initials="J." surname="Tantsura"> <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
<organization>Nvidia</organization> <organization>Nvidia</organization>
<address> <address>
<postal> <postal>
<street></street> <country>United States of America</country>
<city></city>
<region></region>
<code></code>
<country>USA</country>
</postal> </postal>
<email>jefftant.ietf@gmail.com</email> <email>jefftant.ietf@gmail.com</email>
</address> </address>
</author> </author>
<date month="July" year="2025"/>
<area>RTG</area>
<workgroup>pce</workgroup>
<!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on https://www.rfc-editor.org/search. -->
<keyword>example</keyword>
<date />
<area>Routing</area>
<workgroup>PCE Working Group</workgroup>
<abstract> <abstract>
<t>This document defines a YANG data model for the management of <t>This document defines a YANG data model for the management of the
the Path Computation Element communications Protocol (PCEP) for Path Computation Element Communication Protocol (PCEP) for
communications between a Path Computation Client (PCC) and a Path communications between a Path Computation Client (PCC) and a Path
Computation Element (PCE), or between two PCEs.</t> Computation Element (PCE), or between two PCEs.</t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section title="Introduction" toc="default"> <section toc="default" numbered="true">
<t>The Path Computation Element (PCE) defined in <xref target="RFC4655"/> <name>Introduction</name>
is an entity that is capable of computing a network path or route <t>The Path Computation Element (PCE) defined in <xref target="RFC4655"
based on a network graph, and applying computational constraints. format="default"/> is an entity that is capable of computing a network
A Path Computation Client (PCC) may make requests to a PCE for paths path or route based on a network graph and applying computational
to be computed.</t> constraints. A Path Computation Client (PCC) may make requests to a PCE
for paths to be computed.</t>
<t>PCEP is the communication protocol between a PCC and PCE; it is
defined in <xref target="RFC5440" format="default"/>. PCEP 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 (TE). <xref target="RFC8231"
format="default"/> specifies extensions to PCEP to enable stateful
control of MPLS-TE Label Switched Paths (LSPs). <xref target="RFC8664" fo
rmat="default"/> and
<xref target="RFC9603" format="default"/> extend PCEP to support Segment
Routing in MPLS and IPv6, respectively.</t>
<t>This document defines a YANG 1.1 <xref target="RFC7950"
format="default"/> data model for the management of PCEP speakers. It is
important to establish a common data model for how PCEP speakers are
identified, configured, and monitored. The data model includes
configuration data and state data.</t>
<t>This document contains a specification of the PCEP YANG module
"ietf-pcep", which provides the PCEP <xref target="RFC5440"
format="default"/> data model. Further, this document also includes the
PCEP statistics YANG module "ietf-pcep-stats", which provides statistics,
counters, and telemetry data.</t>
<t>The YANG modules in this document conform to the Network Management
Datastore Architecture (NMDA) <xref target="RFC8342" format="default"/>.
The origin of the data is indicated as per the origin metadata
annotation.</t>
</section>
<section toc="default" numbered="true">
<name>Requirements Language</name>
<t>
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>
",
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be
interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref
target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.
</t>
</section>
<section toc="default" numbered="true">
<name>Terminology and Notation</name>
<t>This document uses the terminology defined in <xref target="RFC4655"
format="default"/> and <xref target="RFC5440" format="default"/>. In
particular, it uses the following:</t>
<t>PCEP is the communication protocol between a PCC and PCE and is <ul spacing="normal">
defined in <xref target="RFC5440"/>. PCEP interactions include path <li>
computation requests and path computation replies as well as <t>
notifications of specific states related to the use of a PCE in the Path Computation Request (PCReq) message
context of Multiprotocol Label Switching (MPLS) and Generalized MPLS </t>
(GMPLS) Traffic Engineering (TE). <xref target='RFC8231'/> </li>
specifies extensions to PCEP to enable stateful control of MPLS TE LSPs. <li>
<xref target='RFC8664'/> and <xref target='RFC9603'/> extend PCEP to <t>
support Segment Routing in MPLS and IPv6 respectively.</t> Path Computation Reply (PCRep) message
</t>
</li>
<li>
<t>
Path Computation Notification (PCNtf) message
</t>
</li>
<li>
<t>Path Computation Error (PCErr) message
</t>
</li>
<li>
<t>
Request Parameters (RP) object
</t>
</li>
<li>
<t>
Synchronization Vector (SVEC) object
</t>
</li>
<li>
<t>
Explicit Route Object (ERO)
</t>
</li>
</ul>
<t>
This document uses the following terms defined in
<xref target="RFC7420" format="default"/>:
</t>
<dl spacing="normal">
<dt>PCEP entity:</dt><dd>a local PCEP speaker</dd>
<dt>PCEP peer:</dt><dd>a remote PCEP speaker</dd>
<dt>PCEP speaker:</dt><dd>term used when it is not necessary to distingu
ish
between local and remote.</dd>
</dl>
<!-- [rfced] We have a few questions about the text below in Section 3.
<t>This document defines a YANG 1.1 <xref target="RFC7950"/> data model a) It seems that some of the terms in the list below are defined in RFC 8051
for the management of PCEP speakers. It is important to rather than in RFC 8231 (specifically, Stateful PCE, Passive Stateful PCE,
establish a common data model for how PCEP speakers are identified, Active Stateful PCE, and Delegation). If you agree, we will create a separate
configured, and monitored. The data model includes configuration data list for these as shown below and add a normative reference to RFC 8051.
and state data.</t>
<t>This document contains a specification of the PCEP YANG module, b) In the first two bullets, more than one term appears in a single bullet
"ietf-pcep" which provides the PCEP <xref target="RFC5440"/> data item. If no objections, we will separate these into separate bullets as shown
model. Further, this document also includes the PCEP statistics YANG below.
module "ietf-pcep-stats" which provides statistics, counters and
telemetry data.</t>
<t>The YANG modules in this document conform to the Network Management Datast c) Note that we updated the third and fourth bullets (regarding PCRpt and
ore PCUpd) as shown below per Sections 6.1 and 6.2 of RFC 8231. Let us know any
Architecture (NMDA) <xref target="RFC8342"/>. concerns.
The origin of the data is indicated as per the origin metadata
annotation.</t>
</section> Original:
<section title="Requirements Language" toc="default"> Further, this document also uses the following terms defined in
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL [RFC8231] :
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as * Stateful PCE, Passive Stateful PCE, Active Stateful PCE
described in BCP 14 <xref target="RFC2119" /> <xref target="RFC8174"/> whe
n, and only when, they * Delegation, Revocation, Redelegation
appear in all capitals, as shown here.</t>
</section> * LSP State Report, Path Computation Report message (PCRpt).
<section title="Terminology and Notation" toc="default">
<t> * LSP State Update, Path Computation Update message (PCUpd).
This document uses the terminology defined in <xref target="RFC4655"/>
and <xref target="RFC5440"/>. In particular, it uses the following * PLSP-ID: a PCEP-specific identifier for the LSP.
acronyms.
<list style='symbols'> * SRP: Stateful PCE Request Parameters
<t>
Path Computation Request message (PCReq). Perhaps:
</t> Further, this document uses the following terms defined in [RFC8051]:
<t>
Path Computation Reply message (PCRep). * Stateful PCE
</t>
<t> * Passive Stateful PCE
Notification message (PCNtf).
</t> * Active Stateful PCE
<t>
Error message (PCErr). * Delegation
</t>
<t> In addition, this document uses the following terms defined in [RFC8231]:
Request Parameters object (RP).
</t> * Revocation
<t>
Synchronization Vector object (SVEC). * Redelegation
</t>
<t> * Path Computation LSP State Report (PCRpt) message
Explicit Route object (ERO).
</t> * Path Computation LSP Update Request (PCUpd) message
</list>
</t> * PLSP-ID (a PCEP-specific identifier for the LSP)
<t>
This document also uses the following terms defined in * Stateful PCE Request Parameter (SRP)
<xref target="RFC7420"/>: -->
<list style='symbols'>
<t> <!-- [rfced] We have condensed this text in Section 3 as follows. Please let
PCEP entity: a local PCEP speaker. us know any concerns.
</t>
<t> Original:
PCEP peer: to refer to a remote PCEP speaker.
</t> [RFC8408] :
<t>PCEP speaker: where it is not necessary to distinguish between lo
cal * Path Setup Type (PST).
and remote.
</t> [RFC8664] :
</list>
</t> * Segment Routing (SR).
<t>
Further, this document also uses the following terms defined in [RFC5541] :
<xref target='RFC8231'/> :
<list style='symbols'> * Objective Function (OF).
<t>
[RFC8697] :
* Association.
[RFC6241] :
* Configuration data.
* State data.
Updated:
Last, this document uses the following terms, which are defined in the RFCs
indicated below:
* Path Setup Type (PST) [RFC8408]
* Segment Routing (SR) [RFC8664]
* Objective Function (OF) [RFC5541]
* Association [RFC8697]
* Configuration data [RFC6241]
* State data [RFC6241]
-->
<!-- [rfced] In Section 3, may we order the items in each list alphabetically?
Or do you prefer the current order?
-->
<t>
Further, this document uses the following terms defined in
<xref target="RFC8231" format="default"/>:
</t>
<ul spacing="normal">
<li>
<t>
Stateful PCE, Passive Stateful PCE, Active Stateful PCE Stateful PCE, Passive Stateful PCE, Active Stateful PCE
</t> </t>
<t> </li>
<li>
<t>
Delegation, Revocation, Redelegation Delegation, Revocation, Redelegation
</t> </t>
<t>LSP State Report, Path Computation Report message (PCRpt).</t> </li>
<t>LSP State Update, Path Computation Update message (PCUpd).</t> <li>
<t>PLSP-ID: a PCEP-specific identifier for the LSP.</t> <t>Path Computation LSP State Report (PCRpt) message</t>
<t>SRP: Stateful PCE Request Parameters</t> </li>
</list> <li>
</t> <t>Path Computation LSP Update Request (PCUpd) message</t>
<t> </li>
<xref target='RFC8281'/> : <li>
<list style='symbols'> <t>PLSP-ID (a PCEP-specific identifier for the LSP)</t>
<t>PCE-initiated LSP, Path Computation LSP Initiate Message (PCIniti </li>
ate).</t> <li>
</list> <t>Stateful PCE Request Parameter (SRP)</t>
</t> </li>
<t> </ul>
<xref target='RFC8408'/> :
<list style='symbols'>
<t>Path Setup Type (PST).</t>
</list>
</t>
<t> <t>This document also uses the following terms defined in
<xref target='RFC8664'/> : <xref target="RFC8281" format="default"/>:
<list style='symbols'> </t>
<t>Segment Routing (SR).</t> <ul spacing="normal">
<li>
<t>PCE-initiated LSP</t></li>
<li>
<t>Path Computation LSP Initiate (PCInitiate) message</t>
</li>
</ul>
</list> <t>Last, this document uses the following terms, which are defined in the
</t> RFCs indicated below:</t>
<t>
<xref target='RFC5541'/> :
<list style='symbols'>
<t>Objective Function (OF).</t>
</list> <ul spacing="normal">
</t> <li>
<t> <t>Path Setup Type (PST) <xref target="RFC8408" format="default"/></t>
<xref target='RFC8697'/> : </li>
<list style='symbols'>
<t>Association.</t>
</list> <li>
</t> <t>Segment Routing (SR) <xref target="RFC8664" format="default"/></t>
<t> </li>
<xref target='RFC6241'/> :
<list style='symbols'>
<t>Configuration data.</t>
<t>State data.</t>
</list> <li>
</t> <t>Objective Function (OF) <xref target="RFC5541" format="default"/></
t>
</li>
<section anchor="sec.tree-symbols" title="Tree Diagrams" toc="default"> <li>
<t>A simplified graphical representation of the data model is used in this <t>Association <xref target="RFC8697" format="default"/></t>
document. The meaning of the symbols in these diagrams is defined in <xre </li>
f target="RFC8340"/>.
</t> <li>
<!-- <t>Configuration data <xref target="RFC6241" format="default"/></t>
</li>
<li>
<t>State data <xref target="RFC6241" format="default"/></t>
</li>
</ul>
<section anchor="sec.tree-symbols" toc="default" numbered="true">
<name>Tree Diagrams</name>
<!-- [rfced] Because there are multiple tree diagrams used in this document,
should plural "representations...are" rather than singular
"representation...is" be used in this sentence?
Original:
A simplified graphical representation of the data model is used in
this document. The meaning of the symbols in these diagrams is
defined in [RFC8340].
Perhaps:
Simplified graphical representations of the data model are used in
this document. The meaning of the symbols in these diagrams is
defined in [RFC8340].
-->
<t>A simplified graphical representation of the data model is used in th
is
document. The meaning of the symbols in these diagrams is defined in <xre
f target="RFC8340" format="default"/>.
</t>
<!--
<list style="symbols"> <list style="symbols">
<t>Brackets "[" and "]" enclose list keys.</t> <t>Brackets "[" and "]" enclose list keys.</t>
<t>Abbreviations before data node names: "rw" means <t>Abbreviations before data node names: "rw" means
configuration (read-write) and "ro" state data configuration (read-write) and "ro" state data
(read-only).</t> (read-only).</t>
<t>Symbols after data node names: "?" means an optional node, "!" <t>Symbols after data node names: "?" means an optional node, "!"
means a presence container, and "*" denotes a list and leaf-list.</t> means a presence container, and "*" denotes a list and leaf-list.</t>
<t>Parentheses enclose choice and case nodes, and case nodes <t>Parentheses enclose choice and case nodes, and case nodes
are also marked with a colon (":").</t> are also marked with a colon (":").</t>
<t>Ellipsis ("...") stands for contents of subtrees that are <t>Ellipsis ("...") stands for contents of subtrees that are
not shown.</t> not shown.</t>
</list></t>--> </list></t>-->
</section> </section>
<section title="Prefixes in Data Node Names" toc="default"> <section toc="default" numbered="true">
<t>In this document, the names of data nodes and other data <name>Prefixes in Data Node Names</name>
<t>In this document, the names of data nodes and other data
model objects are often used without a prefix, as long as it is clear model objects are often used without a prefix, as long as it is clear
from the context in which YANG module each name is defined. from the context in which YANG module each name is defined.
Otherwise, names are prefixed using the standard prefix associated Otherwise, names are prefixed using the standard prefix associated
with the corresponding YANG module, as shown in <xref target="tab.prefixes" p with the corresponding YANG module, as shown in <xref target="tab.prefixes" f
ageno="false" format="default"/>.</t> ormat="default"/>.</t>
<table anchor="tab.prefixes" align="center">
<name>Prefixes and Corresponding YANG Modules</name>
<thead>
<tr>
<th align="left">Prefix</th>
<th align="left">YANG module</th>
<th align="left">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">yang</td>
<td align="left">ietf-yang-types</td>
<td align="left">
<xref target="RFC6991" format="default"/></td>
</tr>
<tr>
<td align="left">inet</td>
<td align="left">ietf-inet-types</td>
<td align="left">
<xref target="RFC6991" format="default"/></td>
</tr>
<tr>
<td align="left">te-types</td>
<td align="left">ietf-te-types</td>
<td align="left">
<xref target="RFC8776" format="default"/></td>
</tr>
<tr>
<td align="left">key-chain</td>
<td align="left">ietf-key-chain</td>
<td align="left">
<xref target="RFC8177" format="default"/></td>
</tr>
<tr>
<td align="left">nacm</td>
<td align="left">ietf-netconf-acm</td>
<td align="left">
<xref target="RFC8341" format="default"/></td>
</tr>
<tr>
<td align="left">tlss</td>
<td align="left">ietf-tls-server</td>
<td align="left">
<xref target="RFC9645" format="default"/></td>
</tr>
<tr>
<td align="left">tlsc</td>
<td align="left">ietf-tls-client</td>
<td align="left">
<xref target="RFC9645" format="default"/></td>
</tr>
<tr>
<td align="left">ospf</td>
<td align="left">ietf-ospf</td>
<td align="left">
<xref target="RFC9129" format="default"/></td>
</tr>
<tr>
<td align="left">isis</td>
<td align="left">ietf-isis</td>
<td align="left">
<xref target="RFC9130" format="default"/></td>
</tr>
</tbody>
</table>
</section>
<section toc="default" numbered="true">
<name>References in the Model</name>
<texttable anchor="tab.prefixes" title="Prefixes and corresponding YANG mo <!-- [rfced] The title and first sentence in Section 3.3 use "model", but the
dules" suppress-title="false" align="center" style="full"> title of Table 2 uses "YANG modules". Should all three read "YANG
<ttcol align="left">Prefix</ttcol> modules"? Let us know if any updates would be helpful.
<ttcol align="left">YANG module</ttcol>
<ttcol align="left">Reference</ttcol>
<c>yang</c><c>ietf-yang-types</c><c><xref target="RFC6991" pageno="false
" format="default"/></c>
<c>inet</c><c>ietf-inet-types</c><c><xref target="RFC6991" pageno="false
" format="default"/></c>
<!--<c>te</c><c>ietf-te</c><c><xref target="I-D.ietf-teas-yang-te" pagen
o="false" format="default"/></c>-->
<c>te-types</c><c>ietf-te-types</c><c><xref target="RFC8776" pageno="fal
se" format="default"/></c>
<c>key-chain</c><c>ietf-key-chain</c><c><xref target="RFC8177" pageno="f
alse" format="default"/></c>
<c>nacm</c><c>ietf-netconf-acm</c><c><xref target="RFC8341" pageno="fals
e" format="default"/></c>
<c>tlss</c><c>ietf-tls-server</c><c><xref target="RFC9645" pageno="false
" format="default"/></c>
<c>tlsc</c><c>ietf-tls-client</c><c><xref target="RFC9645" pageno="false
" format="default"/></c>
<c>ospf</c><c>ietf-ospf</c><c><xref target="RFC9129" pageno="false" form
at="default"/></c>
<c>isis</c><c>ietf-isis</c><c><xref target="RFC9130" pageno="false" form
at="default"/></c>
</texttable>
</section>
<section title="References in the Model" toc="default">
<t>Following documents are referenced in the model defined in this documen
t - </t>
<texttable anchor="tab.ref" title="References in the YANG modules" suppr
ess-title="false" align="center" style="full">
<ttcol align="left">Documents</ttcol>
<ttcol align="left">Reference</ttcol>
<!--<c>RSVP-TE: Extensions to RSVP for LSP Tunnels</c><c><xref target="R
FC3209" pageno="false" format="default"/></c>-->
<c>OSPF Protocol Extensions for Path Computation Element (PCE) Discovery
</c><c><xref target="RFC5088" pageno="false" format="default"/></c>
<c>IS-IS Protocol Extensions for Path Computation Element (PCE) Discover
y</c><c><xref target="RFC5089" pageno="false" format="default"/></c>
<c>Path Computation Element (PCE) Communication Protocol (PCEP)</c><c><x
ref target="RFC5440" pageno="false" format="default"/></c>
<c>Preserving Topology Confidentiality in Inter-Domain Path Computation
Using a Path-Key-Based Mechanism</c><c><xref target="RFC5520" pageno="false" for
mat="default"/></c>
<c>Encoding of Objective Functions in the Path Computation Element Commu
nication Protocol (PCEP)</c><c><xref target="RFC5541" pageno="false" format="def
ault"/></c>
<c>Path Computation Element Communication Protocol (PCEP) Requirements a
nd Protocol Extensions in Support of Global Concurrent Optimization</c><c><xref
target="RFC5557" pageno="false" format="default"/></c>
<c>Common YANG Data Types</c><c><xref target="RFC6991" pageno="false" fo
rmat="default"/></c>
<c>YANG Data Model for Key Chains</c><c><xref target="RFC8177" pageno="f
alse" format="default"/></c>
<c>Path Computation Element Communication Protocol (PCEP) Extensions for
Stateful PCE</c><c><xref target="RFC8231" pageno="false" format="default"/></c>
<c>Optimizations of Label Switched Path State Synchronization Procedures
for a Stateful PCE</c><c><xref target="RFC8232" pageno="false" format="default"
/></c>
<c>PCEPS: Usage of TLS to Provide a Secure Transport for the Path Comput
ation Element Communication Protocol (PCEP)</c><c><xref target="RFC8253" pageno=
"false" format="default"/></c>
<c>Path Computation Element Communication Protocol (PCEP) Extensions for
PCE-Initiated LSP Setup in a Stateful PCE Model</c><c><xref target="RFC8281" pa
geno="false" format="default"/></c>
<c>Extensions to the Path Computation Element Communication Protocol (PC
EP) for Point-to-Multipoint Traffic Engineering Label Switched Paths</c><c><xref
target="RFC8306" pageno="false" format="default"/></c>
<c>Network Configuration Access Control Model</c><c><xref target="RFC834
1" pageno="false" format="default"/></c>
<c>Conveying Path Setup Type in PCE Communication Protocol (PCEP) Messag
es</c><c><xref target="RFC8408" pageno="false" format="default"/></c>
<c>Traffic Engineering Common YANG Types</c><c><xref target="RFC8776" pa Original:
geno="false" format="default"/></c> 3.3. References in the Model
<c>YANG Groupings for TLS Clients and TLS Servers</c><c><xref target="RF
C9645" pageno="false" format="default"/></c>
<c>PCEP Extensions for Segment Routing</c><c><xref target="RFC8664" page
no="false" format="default"/></c>
<c>PCEP Extensions for Establishing Relationships Between Sets of LSPs</
c><c><xref target="RFC8697" pageno="false" format="default"/></c>
<c>YANG Data Model for OSPF Protocol</c><c><xref target="RFC9129" pageno
="false" format="default"/></c>
<c>YANG Data Model for IS-IS Protocol</c><c><xref target="RFC9130" pagen
o="false" format="default"/></c>
<c>PCEP extensions for GMPLS</c><c><xref target="RFC8779" pageno="false"
format="default"/></c>
<c>ASSOCIATION Type Field in Path Computation Element Protocol (PCEP) Nu
mbers</c><c><xref target="IANA-PCEP"/></c>
<c>Path Computation Element (PCE) Capability Flags in Interior Gateway P
rotocol (IGP) Parameters</c><c><xref target="IANA-IGP"/></c>
<c>Path Computation Element Communication Protocol (PCEP) Extension for
Flow Specification</c><c><xref target="RFC9168" pageno="false" format="default"/
></c>
<c>Path Computation Element Communication Protocol (PCEP) Extens
ions for the Hierarchical Path Computation Element (H-PCE) Architecture</c><c><x
ref target="RFC8685" pageno="false" format="default"/></c>
<c>Hierarchical Stateful Path Computation Element (PCE)</c><c><xref targ
et="RFC8751" pageno="false" format="default"/></c>
<c>IGP Extension for Path Computation Element Communication Protocol (PC
EP) Security Capability Support in PCE Discovery (PCED)</c><c><xref target="RFC9
353" pageno="false" format="default"/></c>
<c>Stateful Path Computation Element (PCE) Protocol Extensions for Usage
with Point-to-Multipoint TE Label Switched Paths (LSPs)</c><c><xref target="RFC
8623" pageno="false" format="default"/></c>
<c>The TCP Authentication Option</c><c><xref target="RFC5925" pa
geno="false" format="default"/></c>
<c>Path Computation Element Communication Protocol (PCEP) Extens
ions for Associating Working and Protection Label Switched Paths (LSPs) with Sta
teful PCE</c><c><xref target="RFC8745" pageno="false" format="default"/></c>
<c>Path Computation Element Communication Protocol (PCEP) Extens
ion for Label Switched Path (LSP) Diversity Constraint Signaling</c><c><xref tar
get="RFC8800" pageno="false" format="default"/></c>
<c>Path Computation Element Communication Protocol (PCEP) Extens
ions for Establishing Relationships between Sets of Label Switched Paths and Vir
tual Networks</c><c><xref target="RFC9358" pageno="false" format="default"/></c>
<c>Extensions to the Path Computation Element Communication Prot
ocol (PCEP) for Inter-Layer MPLS and GMPLS Traffic Engineering</c><c><xref targe
t="RFC8282" pageno="false" format="default"/></c>
<c>Path Computation Element Communication Protocol (PCEP) Extens
ion for Associating Policies and Label Switched Paths (LSPs)</c><c><xref target=
"RFC9005" pageno="false" format="default"/></c>
</texttable>
</section> Following documents are referenced in the model defined in this
</section> document -
...
Table 2: References in the YANG modules
<section title="The Design of PCEP Data Model" toc="default" anchor="sec.dat Perhaps:
a-tree"> 3.3. References in the YANG Modules
<t>The PCEP YANG module defined in this document has all the common The following table lists the documents that are referenced in the YANG
modules defined this document.
...
Table 2: References in the YANG Modules
-->
<t>The following documents are referenced in the model defined in this document.
</t>
<table anchor="tab.ref" align="center">
<name>References in the YANG Modules</name>
<thead>
<tr>
<th align="left">Documents</th>
<th align="left">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">OSPF Protocol Extensions for Path Computation Ele
ment (PCE) Discovery</td>
<td align="left">
<xref target="RFC5088" format="default"/></td>
</tr>
<tr>
<td align="left">IS-IS Protocol Extensions for Path Computation El
ement (PCE) Discovery</td>
<td align="left">
<xref target="RFC5089" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element (PCE) Communication Prot
ocol (PCEP)</td>
<td align="left">
<xref target="RFC5440" format="default"/></td>
</tr>
<tr>
<td align="left">Preserving Topology Confidentiality in Inter-Doma
in Path Computation Using a Path-Key-Based Mechanism</td>
<td align="left">
<xref target="RFC5520" format="default"/></td>
</tr>
<tr>
<td align="left">Encoding of Objective Functions in the Path Compu
tation Element Communication Protocol (PCEP)</td>
<td align="left">
<xref target="RFC5541" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Requirements and Protocol Extensions in Support of Global Concurrent Optim
ization</td>
<td align="left">
<xref target="RFC5557" format="default"/></td>
</tr>
<tr>
<td align="left">Common YANG Data Types</td>
<td align="left">
<xref target="RFC6991" format="default"/></td>
</tr>
<tr>
<td align="left">YANG Data Model for Key Chains</td>
<td align="left">
<xref target="RFC8177" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extensions for Stateful PCE</td>
<td align="left">
<xref target="RFC8231" format="default"/></td>
</tr>
<tr>
<td align="left">Optimizations of Label Switched Path State Synchr
onization Procedures for a Stateful PCE</td>
<td align="left">
<xref target="RFC8232" format="default"/></td>
</tr>
<tr>
<td align="left">PCEPS: Usage of TLS to Provide a Secure Transport
for the Path Computation Element Communication Protocol (PCEP)</td>
<td align="left">
<xref target="RFC8253" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful PCE Model</td>
<td align="left">
<xref target="RFC8281" format="default"/></td>
</tr>
<tr>
<td align="left">Extensions to the Path Computation Element Commun
ication Protocol (PCEP) for Point-to-Multipoint Traffic Engineering Label Switch
ed Paths</td>
<td align="left">
<xref target="RFC8306" format="default"/></td>
</tr>
<tr>
<td align="left">Network Configuration Access Control Model</td>
<td align="left">
<xref target="RFC8341" format="default"/></td>
</tr>
<tr>
<td align="left">Conveying Path Setup Type in PCE Communication Pr
otocol (PCEP) Messages</td>
<td align="left">
<xref target="RFC8408" format="default"/></td>
</tr>
<tr>
<td align="left">Common YANG Data Types for Traffic Engineering</t
d>
<td align="left">
<xref target="RFC8776" format="default"/></td>
</tr>
<tr>
<td align="left">YANG Groupings for TLS Clients and TLS Servers</t
d>
<td align="left">
<xref target="RFC9645" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extensions for Segment Routing</td>
<td align="left">
<xref target="RFC8664" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extensions for Establishing Relationships between Sets of Label Switched P
aths (LSPs)</td>
<td align="left">
<xref target="RFC8697" format="default"/></td>
</tr>
<tr>
<td align="left">YANG Data Model for the OSPF Protocol</td>
<td align="left">
<xref target="RFC9129" format="default"/></td>
</tr>
<tr>
<td align="left">YANG Data Model for the IS-IS Protocol</td>
<td align="left">
<xref target="RFC9130" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication
Protocol (PCEP) Extensions for GMPLS</td>
<td align="left">
<xref target="RFC8779" format="default"/></td>
</tr>
<tr>
<td align="left">"ASSOCIATION Type Field" registry (in the "Path C
omputation Element Protocol (PCEP) Numbers" registry group)</td>
<td align="left">
<xref target="IANA-PCEP" format="default"/></td>
</tr>
<tr>
<td align="left">"Path Computation Element (PCE) Capability Flags"
registry (in the "Interior Gateway Protocol (IGP) Parameters" registry group)</
td>
<td align="left">
<xref target="IANA-IGP" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extension for Flow Specification</td>
<td align="left">
<xref target="RFC9168" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extensions for the Hierarchical Path Computation Element (H-PCE) Architect
ure</td>
<td align="left">
<xref target="RFC8685" format="default"/></td>
</tr>
<tr>
<td align="left">Hierarchical Stateful Path Computation Element (P
CE)</td>
<td align="left">
<xref target="RFC8751" format="default"/></td>
</tr>
<tr>
<td align="left">IGP Extension for Path Computation Element Commun
ication Protocol (PCEP) Security Capability Support in PCE Discovery (PCED)</td>
<td align="left">
<xref target="RFC9353" format="default"/></td>
</tr>
<tr>
<td align="left">Stateful Path Computation Element (PCE) Protocol
Extensions for Usage with Point-to-Multipoint TE Label Switched Paths (LSPs)</td
>
<td align="left">
<xref target="RFC8623" format="default"/></td>
</tr>
<tr>
<td align="left">The TCP Authentication Option</td>
<td align="left">
<xref target="RFC5925" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extensions for Associating Working and Protection Label Switched Paths (LS
Ps) with Stateful PCE</td>
<td align="left">
<xref target="RFC8745" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extension for Label Switched Path (LSP) Diversity Constraint Signaling</td
>
<td align="left">
<xref target="RFC8800" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extensions for Establishing Relationships between Sets of Label Switched P
aths and Virtual Networks</td>
<td align="left">
<xref target="RFC9358" format="default"/></td>
</tr>
<tr>
<td align="left">Extensions to the Path Computation Element Commun
ication Protocol (PCEP) for Inter-Layer MPLS and GMPLS Traffic Engineering</td>
<td align="left">
<xref target="RFC8282" format="default"/></td>
</tr>
<tr>
<td align="left">Path Computation Element Communication Protocol (
PCEP) Extension for Associating Policies and Label Switched Paths (LSPs)</td>
<td align="left">
<xref target="RFC9005" format="default"/></td>
</tr>
</tbody>
</table>
</section>
</section>
<section toc="default" anchor="sec.data-tree" numbered="true">
<name>The Design of PCEP Data Model</name>
<t>The PCEP YANG module defined in this document has all the common
building blocks for PCEP, which are listed below and further detailed in the subsequent subsections. building blocks for PCEP, which are listed below and further detailed in the subsequent subsections.
<list style='symbols'> </t>
<t>The local PCEP entity</t> <ul spacing="normal">
<t>The PCEP peer</t> <li>
<t>The PCEP session</t> <t>The local PCEP entity</t>
<t>Notifications</t> </li>
<t>RPC</t> <li>
</list> <t>The PCEP peer</t>
<figure title="" suppress-title="true" align="left" alt="" width="" height=""> </li>
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt <li>
h="" height=""><![CDATA[ <t>The PCEP session</t>
</li>
<li>
<t>Notifications</t>
</li>
<li>
<t>RPC</t>
</li>
</ul>
<sourcecode name="" type="yangtree"><![CDATA[
module: ietf-pcep module: ietf-pcep
+--rw pcep! +--rw pcep!
+--rw entity +--rw entity
+--rw addr* inet:ip-address-no-zone +--rw addr* inet:ip-address-no-zone
+--rw enabled? boolean +--rw enabled? boolean
+--rw role role +--rw role role
+--rw description? string +--rw description? string
+--rw speaker-entity-id? string {sync-opt}? +--rw speaker-entity-id? string {sync-opt}?
+--rw admin-status? boolean +--rw admin-status? boolean
+--ro index? uint32 +--ro index? uint32
skipping to change at line 357 skipping to change at line 718
+--rw domains +--rw domains
| +--rw domain* [type domain] | +--rw domain* [type domain]
| +--... | +--...
+--rw capabilities +--rw capabilities
| +--... | +--...
+--rw auth +--rw auth
| +--... | +--...
+--rw pce-info +--rw pce-info
| +--rw scope | +--rw scope
| | +--... | | +--...
| +--rw neighbour-domains | +--rw neighbor-domains
| | +--... | | +--...
| +--rw path-key {path-key}? | +--rw path-key {path-key}?
| +--... | +--...
+--... +--...
+--ro lsp-db {stateful}? +--ro lsp-db {stateful}?
| +--ro db-ver? uint64 {sync-opt}? | +--ro db-ver? uint64 {sync-opt}?
| +--ro association-list* | +--ro association-list*
| | [type id source global-source extended-id] | | [type id source global-source extended-id]
| | {association}? | | {association}?
| | +--... | | +--...
skipping to change at line 398 skipping to change at line 759
+---n pcep-session-down +---n pcep-session-down
| +--... | +--...
+---n pcep-session-local-overload +---n pcep-session-local-overload
| +--... | +--...
+---n pcep-session-local-overload-clear +---n pcep-session-local-overload-clear
| +--... | +--...
+---n pcep-session-peer-overload +---n pcep-session-peer-overload
| +--... | +--...
+---n pcep-session-peer-overload-clear +---n pcep-session-peer-overload-clear
+--... +--...
]]></sourcecode>
]]></artwork> <section toc="default" numbered="true">
</figure> <name>The Entity</name>
</t> <t>The PCEP YANG module may contain status information for the local
PCEP entity.</t>
<t>The entity has an IP address (using ietf-inet-types <xref
target="RFC6991" format="default"/>) and a "role" leaf (the local
entity PCEP role) as mandatory. </t>
<t>Note that the PCEP MIB module <xref target="RFC7420"
format="default"/> uses an entity list and a system-generated entity
index as a primary index to the read-only entity table.</t>
<t>The local PCEP entity contains various information related to this
entity such as its domain, capabilities, security parameters, etc. When
the local entity is PCE, it could also have path-key and the LSP Databas
e (LSP-DB)
information.</t>
<t>Note that the timer names in YANG use hyphens as compared to
<xref target="RFC5440" format="default"/> (for example, DeadTimer in
the protocol specification is called dead-timer in YANG).</t>
<section title="The Entity" toc="default"> <sourcecode name="" type="yangtree"><![CDATA[
<t>The PCEP YANG module may contain status information for the
local PCEP entity.</t>
<t>The entity has an IP address
(using ietf-inet-types <xref target="RFC6991"/>) and a "role"
leaf (the local entity PCEP role) as mandatory. </t>
<t>Note that, the PCEP MIB module <xref target="RFC7420"/> uses an
entity list and a system-generated entity index as a primary index
to the read-only entity table.</t>
<t>The local PCEP entity contains various information related to this entity
such as its domain, capabilities, security parameters etc. When the local entit
y is PCE, it could also have path-key and the LSP-DB information.</t>
<t>Note that the timer names in the YANG use hyphens as compared to <xref ta
rget="RFC5440"/>
(for example, DeadTimer in the protocol specification is called
dead-timer in YANG).</t>
<figure title="" suppress-title="true" align="left" alt="" width="" height="">
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
module: ietf-pcep module: ietf-pcep
+--rw pcep! +--rw pcep!
+--rw entity +--rw entity
+--rw addr* inet:ip-address-no-zone +--rw addr* inet:ip-address-no-zone
+--rw enabled? boolean +--rw enabled? boolean
+--rw role role +--rw role role
+--rw description? string +--rw description? string
+--rw speaker-entity-id? string {sync-opt}? +--rw speaker-entity-id? string {sync-opt}?
+--rw admin-status? boolean +--rw admin-status? boolean
+--ro index? uint32 +--ro index? uint32
skipping to change at line 526 skipping to change at line 888
| +--rw peer-allowed-to-send? empty | +--rw peer-allowed-to-send? empty
| +--rw test-peer-aliveness! | +--rw test-peer-aliveness!
| ... | ...
+--rw pce-info +--rw pce-info
| +--rw scope | +--rw scope
| | +--rw path-scope? bits | | +--rw path-scope? bits
| | +--rw intra-area-pref? uint8 | | +--rw intra-area-pref? uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-area-pref? uint8
| | +--rw inter-as-pref? uint8 | | +--rw inter-as-pref? uint8
| | +--rw inter-layer-pref? uint8 | | +--rw inter-layer-pref? uint8
| +--rw neighbour-domains | +--rw neighbor-domains
| | +--rw domain* [type domain] | | +--rw domain* [type domain]
| | +--rw type identityref | | +--rw type identityref
| | +--rw domain domain | | +--rw domain domain
| +--rw path-key {path-key}? | +--rw path-key {path-key}?
| +--rw enabled? boolean | +--rw enabled? boolean
| +--rw discard-timer? uint32 | +--rw discard-timer? uint32
| +--rw reuse-time? uint32 | +--rw reuse-time? uint32
| +--rw pce-id? inet:ip-address-no-zone | +--rw pce-id? inet:ip-address-no-zone
+--rw connect-timer? uint16 +--rw connect-timer? uint16
+--rw connect-max-retry? uint32 +--rw connect-max-retry? uint32
skipping to change at line 620 skipping to change at line 982
| +--ro pcc-requester? -> /pcep/entity/peers/peer/addr | +--ro pcc-requester? -> /pcep/entity/peers/peer/addr
| +--ro req-id? uint32 | +--ro req-id? uint32
| +--ro retrieved? boolean | +--ro retrieved? boolean
| +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr
| +--ro creation-time? yang:timestamp | +--ro creation-time? yang:timestamp
| +--ro discard-time? uint32 | +--ro discard-time? uint32
| +--ro reuse-time? uint32 | +--ro reuse-time? uint32
+--rw peers +--rw peers
+--rw peer* [addr] +--rw peer* [addr]
+--... +--...
]]></sourcecode>
]]></artwork> <section toc="default" numbered="true">
</figure> <name>The Peer List</name>
<t>
<section title="The Peer List" toc="default"> The peer list contains peer(s) that the local PCEP entity knows
<t> about. A PCEP speaker is identified by its IP address. If there is
The peer list contains peer(s) that the a PCEP speaker in the network that uses multiple IP addresses, then
local PCEP entity knows about. A PCEP speaker is identified by its it looks like multiple distinct peers to the other PCEP speakers in
IP address. If there is a PCEP the network.
speaker in the network that uses multiple IP addresses </t>
then it looks like multiple distinct peers to the other PCEP <t>
speakers in the network. Since PCEP sessions can be ephemeral, the peer list tracks a peer
</t> even when no PCEP session currently exists for that peer. The
<t> statistics contained are an aggregate of the statistics for all
Since PCEP sessions
can be ephemeral, the peer list tracks a peer even when no
PCEP session currently exists for that peer. The statistics contained
are an aggregate of the statistics for all
successive sessions with that peer. successive sessions with that peer.
</t> </t>
<t> <t>
To limit the quantity of information that is stored, an To limit the quantity of information that is stored, an
implementation MAY choose to discard this information implementation <bcp14>MAY</bcp14> choose to discard this information
if and only if no PCEP session exists for the corresponding peer. if and only if no PCEP session exists for the corresponding peer.
</t> </t>
<t>The data model for PCEP peers presented in this document uses a
<t>The data model for PCEP peers presented in this document uses a flat flat list of peers. Each peer in the list is identified by its IP
list of peers. Each peer in the list is identified by its address.</t>
IP address.</t> <!--<t> There is a list for static peer configuration and operational
<!--<t> There is a list for static peer configuration and operational state o state of
f
all peers (i.e.static as well as discovered)("/pcep/entity/peers"). The list all peers (i.e.static as well as discovered)("/pcep/entity/peers"). The list
is used to enable remote PCE configuration at PCC (or PCE) and has the is used to enable remote PCE configuration at PCC (or PCE) and has the
operational state of these peers as well as the remote PCE peer which were operational state of these peers as well as the remote PCE peer which were
discovered and PCC peers that have initiated session.</t>--> discovered and PCC peers that have initiated session.</t>-->
<t>This peer list includes peers that are explicitly configured at the local <t>This peer list includes peers that are explicitly configured at the
PCEP entity as well as peers that are learned dynamically. For example, at a PCC local PCEP entity as well as peers that are learned dynamically. For
, the remote PCE peer to use could be explicitly configured. A PCC could also le example, at a PCC, the remote PCE peer to use could be explicitly
arn a PCE address in the network via the IGP discovery and it will show up in th configured. A PCC could also learn a PCE address in the network via the IGP
is list. When a session is initiated at a PCE, the remote PCC peer information i discovery, and it will show up in this list. When a session is initiated at
s also added by the system to the peer list.</t> a PCE, the remote PCC peer information is also added by the system to the
peer list.</t>
<figure title="" suppress-title="false" align="left" alt="" width="" height=""> <sourcecode name="" type="yangtree"><![CDATA[
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
module: ietf-pcep module: ietf-pcep
+--rw pcep! +--rw pcep!
+--rw entity +--rw entity
+--... +--...
+--rw peers +--rw peers
+--rw peer* [addr] +--rw peer* [addr]
+--rw addr inet:ip-address-no-zone +--rw addr inet:ip-address-no-zone
+--rw role role +--rw role role
+--rw description? string +--rw description? string
+--rw domains +--rw domains
skipping to change at line 702 skipping to change at line 1065
| +--rw stateful? boolean {stateful}? | +--rw stateful? boolean {stateful}?
| +--rw role? hpce-role | +--rw role? hpce-role
+--ro msd? uint8 {sr-mpls}? +--ro msd? uint8 {sr-mpls}?
+--rw pce-info +--rw pce-info
| +--rw scope | +--rw scope
| | +--rw path-scope? bits | | +--rw path-scope? bits
| | +--rw intra-area-pref? uint8 | | +--rw intra-area-pref? uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-area-pref? uint8
| | +--rw inter-as-pref? uint8 | | +--rw inter-as-pref? uint8
| | +--rw inter-layer-pref? uint8 | | +--rw inter-layer-pref? uint8
| +--rw neighbour-domains | +--rw neighbor-domains
| +--rw domain* [type domain] | +--rw domain* [type domain]
| +--rw type identityref | +--rw type identityref
| +--rw domain domain | +--rw domain domain
+--rw delegation-pref uint8 {stateful}? +--rw delegation-pref uint8 {stateful}?
+--rw auth +--rw auth
| +--rw (auth-type-selection)? | +--rw (auth-type-selection)?
| +--:(auth-key-chain) | +--:(auth-key-chain)
| | +--rw key-chain? | | +--rw key-chain?
| | key-chain:key-chain-ref | | key-chain:key-chain-ref
| +--:(auth-key) | +--:(auth-key)
skipping to change at line 736 skipping to change at line 1099
| ... | ...
+--ro discontinuity-time? yang:timestamp +--ro discontinuity-time? yang:timestamp
+--ro initiate-session? boolean +--ro initiate-session? boolean
+--ro session-exists? boolean +--ro session-exists? boolean
+--ro session-up-time? yang:timestamp +--ro session-up-time? yang:timestamp
+--ro session-fail-time? yang:timestamp +--ro session-fail-time? yang:timestamp
+--ro session-fail-up-time? yang:timestamp +--ro session-fail-up-time? yang:timestamp
+--ro sessions +--ro sessions
+--ro session* [initiator] +--ro session* [initiator]
+--... +--...
]]></sourcecode>
]]></artwork> <section toc="default" numbered="true">
</figure> <name>The Session List</name>
<t>
<section title="The Session List" toc="default">
<t>
The session list contains PCEP sessions that the The session list contains PCEP sessions that the
PCEP entity (PCE or PCC) is currently participating in. PCEP entity (PCE or PCC) is currently participating in.
The statistics in The statistics in
session are semantically different from those in session are semantically different from those in
peer since the former applies to the current session only, peer since the former applies to the current session only,
whereas the latter is the aggregate for all sessions that have whereas the latter is the aggregate for all sessions that have
existed to that peer. existed to that peer.
</t> </t>
<t> <t>
Although <xref target="RFC5440"/> forbids more than one Although <xref target="RFC5440" format="default"/> forbids more than o
ne
active PCEP session between a given pair of PCEP entities active PCEP session between a given pair of PCEP entities
at any given time, there is a window during the session at any given time, there is a window during the session
establishment where two sessions may exist for a given pair, establishment where two sessions may exist for a given pair,
one representing a session initiated by the local PCEP one representing a session initiated by the local PCEP
entity and the other representing a session initiated by entity and the other representing a session initiated by
the peer. When one of these sessions reaches the active state, the peer. When one of these sessions reaches the active state,
then the other is discarded. then the other is discarded.
</t> </t>
<t>The data model for the PCEP session presented in this document uses a flat <t>The data model for the PCEP session presented in this document us
es a flat
list of sessions. Each session in the list is identified by its list of sessions. Each session in the list is identified by its
initiator. This index allows two sessions to exist transiently for a initiator. This index allows two sessions to exist transiently for a
given peer, as discussed above.</t> given peer, as discussed above.</t>
<figure title="" suppress-title="true" align="left" alt="" width="" he
ight=""> <sourcecode name="" type="yangtree"><![CDATA[
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
module: ietf-pcep module: ietf-pcep
+--rw pcep! +--rw pcep!
+--rw entity +--rw entity
+--... +--...
+--rw peers +--rw peers
+--rw peer* [addr] +--rw peer* [addr]
+--... +--...
+--ro sessions +--ro sessions
+--ro session* [initiator] +--ro session* [initiator]
+--ro initiator initiator +--ro initiator initiator
skipping to change at line 809 skipping to change at line 1171
| +--ro objective-function* [of] | +--ro objective-function* [of]
| +--ro of identityref | +--ro of identityref
+--ro pst-list +--ro pst-list
| +--ro path-setup-type* [pst] | +--ro path-setup-type* [pst]
| +--ro pst identityref | +--ro pst identityref
+--ro assoc-type-list {association}? +--ro assoc-type-list {association}?
| +--ro assoc-type* [at] | +--ro assoc-type* [at]
| +--ro at identityref | +--ro at identityref
+--ro speaker-entity-id? string +--ro speaker-entity-id? string
{sync-opt}? {sync-opt}?
]]></sourcecode>
]]></artwork> </section>
</figure>
</section>
</section> </section>
</section> </section>
<section toc="default" numbered="true">
<section title="Notifications" toc="default"> <name>Notifications</name>
<t>This YANG model defines a list of notifications to inform clients of <t>This YANG data model defines a list of notifications to inform client
s of
important events detected during the protocol operation. The important events detected during the protocol operation. The
notifications defined cover the PCEP MIB <xref target="RFC7420"/> notificatio notifications defined cover the PCEP MIB <xref target="RFC7420" format="defau
ns.</t> lt"/> notifications.</t>
<figure title="" suppress-title="true" align="left" alt="" width="" he
ight=""> <sourcecode name="" type="yangtree"><![CDATA[
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
notifications: notifications:
+---n pcep-session-up +---n pcep-session-up
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? leafref | +--ro session-initiator? leafref
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp
| +--ro state? sess-state | +--ro state? sess-state
+---n pcep-session-down +---n pcep-session-down
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? initiator | +--ro session-initiator? initiator
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp
skipping to change at line 856 skipping to change at line 1217
| | -> /pcep/entity/peers/peer/addr | | -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? leafref | +--ro session-initiator? leafref
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean
| +--ro peer-overloaded-timestamp? yang:timestamp | +--ro peer-overloaded-timestamp? yang:timestamp
| +--ro peer-overload-time? uint32 | +--ro peer-overload-time? uint32
+---n pcep-session-peer-overload-clear +---n pcep-session-peer-overload-clear
+--ro peer-addr? +--ro peer-addr?
| -> /pcep/entity/peers/peer/addr | -> /pcep/entity/peers/peer/addr
+--ro peer-overloaded? boolean +--ro peer-overloaded? boolean
+--ro peer-overloaded-clear-timestamp? yang:timestamp +--ro peer-overloaded-clear-timestamp? yang:timestamp
]]></sourcecode>
]]></artwork> </section>
</figure> <section toc="default" numbered="true">
</section> <name>RPC</name>
<section title="RPC" toc="default"> <t>This YANG data model defines an RPC to trigger state resynchronizatio
<t>This YANG model defines a RPC to trigger state resynchronize at the PCE f n at the
or sanity check with a particular PCC.</t> PCE for a sanity check with a particular PCC.</t>
<figure title="" suppress-title="true" align="left" alt="" width="" he
ight=""> <sourcecode name="" type="yangtree"><![CDATA[
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
rpcs: rpcs:
+---x trigger-resync {stateful,sync-opt}? +---x trigger-resync {stateful,sync-opt}?
+---w input +---w input
+---w pcc -> /pcep/entity/peers/peer/addr +---w pcc -> /pcep/entity/peers/peer/addr
]]></artwork> ]]></sourcecode>
</figure>
</section>
</section> </section>
</section>
<section title="The Design of PCEP Statistics Data Model" toc="default" anch <section toc="default" anchor="sec.data-tree-stat" numbered="true">
or="sec.data-tree-stat"> <name>The Design of PCEP Statistics Data Model</name>
<t>The module "ietf-pcep-stats", augments the ietf-pcep module to in <t>The "ietf-pcep-stats" module augments the "ietf-pcep" module to
clude statistics at the PCEP peer and session level. It also includes an RPC t include statistics at the PCEP peer and session level. It also includes
o reset all PCEP statistics across all peers and sessions through mechanis an RPC to reset all PCEP statistics across all peers and sessions
ms such as walking a list of pointers to those peer and session stats.</t> through mechanisms such as walking a list of pointers to those peer and
session statistics.</t>
<t>If this mechanism is not supported, implementations must reset PCEP sta
tistics by invoking the action 'reset-statistics' for each peer and session.
</t>
<t>If this mechanism is not supported, implementations must reset PCEP <sourcecode name="" type="yangtree"><![CDATA[
statistics by invoking the action 'reset-statistics' for each peer and session.
<figure title="" suppress-title="true" align="left" alt="" width="" height="
">
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
module: ietf-pcep-stats module: ietf-pcep-stats
augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer: augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer:
+--ro stats +--ro stats
+--ro discontinuity-time? yang:timestamp +--ro discontinuity-time? yang:timestamp
+--ro pce +--ro pce
| +--ro rsp-time-avg? uint32 | +--ro rsp-time-avg? uint32
| +--ro rsp-time-lwm? uint32 | +--ro rsp-time-lwm? uint32
| +--ro rsp-time-hwm? uint32 | +--ro rsp-time-hwm? uint32
| +--ro pcreq-sent? yang:counter32 | +--ro pcreq-sent? yang:counter32
skipping to change at line 1043 skipping to change at line 1410
| +--ro dup-path-key? yang:counter32 | +--ro dup-path-key? yang:counter32
| +--ro path-key-no-attempt? yang:counter32 | +--ro path-key-no-attempt? yang:counter32
+---x reset-statistics +---x reset-statistics
+---w input +---w input
| +---w reset-at? yang:date-and-time | +---w reset-at? yang:date-and-time
+--ro output +--ro output
+--ro reset-finished-at? yang:date-and-time +--ro reset-finished-at? yang:date-and-time
rpcs: rpcs:
+---x reset-pcep-statistics-all {reset-all}? +---x reset-pcep-statistics-all {reset-all}?
]]></sourcecode>
]]></artwork></figure></t> </section>
</section> <section toc="default" numbered="true">
<section title="Advanced PCE Features" toc="default"> <name>Advanced PCE Features</name>
<t>This document contains a specification of the base PCEP YANG module, <t>This document contains a specification of the base PCEP YANG module,
"ietf-pcep" which provides the basic PCEP <xref target="RFC5440"/> data "ietf-pcep", which provides the basic PCEP <xref target="RFC5440"
model.</t> format="default"/> data model.</t>
<t>This document further handles advanced PCE features like - <t>This document further handles advanced PCE features such as:</t>
<list style="symbols"> <ul spacing="normal">
<t>Capability and Scope</t> <li>
<t>Domain information (local/neighbor) </t> <t>Capability and scope</t>
<t>Path-Key</t> </li>
<t>Objective Function (OF)</t> <li>
<t>Global Concurrent Optimization (GCO)</t> <t>Domain information (local/neighbor) </t>
<t>P2MP</t> </li>
<t>GMPLS</t> <li>
<t>Inter-Layer</t> <t>Path-key</t>
<t>Stateful PCE</t> </li>
<t>Segment Routing (SR) for MPLS data plane</t> <li>
<t>Authentication including PCEPS (TLS)</t> <t>Objective Function (OF)</t>
<t>Hierarchical PCE (H-PCE)</t> </li>
</list> <li>
</t> <t>Global Concurrent Optimization (GCO)</t>
</li>
<li>
<t>Point-to-Multipoint (P2MP)</t>
</li>
<li>
<t>GMPLS</t>
</li>
<li>
<t>Inter-layer</t>
</li>
<li>
<t>Stateful PCE</t>
</li>
<li>
<t>Segment Routing (SR) for the MPLS data plane</t>
</li>
<li>
<t>Authentication including PCEPS (TLS)</t>
</li>
<li>
<t>Hierarchical PCE (H-PCE)</t>
</li>
</ul>
<t>Segment Routing in the IPv6 data plane is out of the scope of this
document. Refer to <xref target="I-D.ietf-pce-pcep-srv6-yang"
format="default"/> for the PCEP-SRv6 YANG module.</t>
<t>Segment Routing in the IPv6 data plane is out of the scope of this documen <section toc="default" numbered="true">
t. Refer <xref target="I-D.ietf-pce-pcep-srv6-yang"/> for the PCEP-SRv6 YANG mod <name>Stateful PCE's LSP-DB</name>
ule.</t> <t>In the operational datastore of stateful PCE, the list of LSP state
is maintained in the LSP-DB. The key is the PLSP-ID, the PCC's IP
address, and the LSP-ID.</t>
<t>The PCEP data model contains the operational state of LSPs
(/pcep/entity/lsp-db/lsp/) with PCEP-specific attributes. The generic
TE attributes of the LSP are defined in <xref
target="I-D.ietf-teas-yang-te" format="default"/>. A reference to the
LSP state in the TE model is maintained.</t>
</section>
</section>
<section title="Stateful PCE's LSP-DB" toc="default">
<t>In the operational datastore of stateful PCE, the
list of LSP state are maintained in the LSP-DB. The key is the PLSP-ID, the P
CC's IP address, and the LSP-ID.</t>
<t>The PCEP data model contains the operational state
of LSPs (/pcep/entity/lsp-db/lsp/) with PCEP-specific
attributes. The generic TE attributes of the LSP are defined
in <xref target="I-D.ietf-teas-yang-te"/>. A reference to the LSP
state in the TE model is maintained.</t>
</section></section>
<!--<section title="Open Issues and Next Step" toc="default"> <!--<section title="Open Issues and Next Step" toc="default">
<t>This section is added so that open issues can be tracked. <t>This section is added so that open issues can be tracked.
This section would be removed when the document is ready for publication.</t > This section would be removed when the document is ready for publication.</t >
<section title="The PCE-Initiated LSP" toc="default"> <section title="The PCE-Initiated LSP" toc="default">
<t>The TE Model at <xref target="I-D.ietf-teas-yang-te"/> should <t>The TE Model at <xref target="I-D.ietf-teas-yang-te"/> should
support creating of tunnels at the controller (PCE) and marking support creating of tunnels at the controller (PCE) and marking
them as PCE-Initiated. The LSP-DB in the PCEP Yang (/pcep/entity/lsp-db/lsp/ initiation) them as PCE-Initiated. The LSP-DB in the PCEP Yang (/pcep/entity/lsp-db/lsp/ initiation)
also marks the LSPs which are PCE-initiated.</t> also marks the LSPs which are PCE-initiated.</t>
</section> </section>
<section title="LSP-ID" toc="default"> <section title="LSP-ID" toc="default">
<t>Use of lsp-id as a key in the LSPDB could be an issue for a non-RSVP-TE <t>Use of lsp-id as a key in the LSPDB could be an issue for a
path setup type. The lsp-id filed is currently a leafref to the TE model <xref non-RSVP-TE path setup type. The lsp-id filed is currently a leafref to
target="I-D.ietf-teas-yang-te"/>. Need to a confirm if this is problematic. </t> the TE model <xref target="I-D.ietf-teas-yang-te"/>. Need to a confirm
if this is problematic. </t>
</section> </section>
</section>--> </section>-->
<section title="Other Considerations" toc="default">
<section title="PCEP over TLS (PCEPS)" toc="default" anchor="tls"> <section toc="default" numbered="true">
<t><xref target="RFC8253"/> describes the use of TLSv1.2 <name>Other Considerations</name>
<xref target="RFC5246"/>
or later in PCEP. Further, <xref target="I-D.ietf-pce-pceps-tls13"/> specify <section toc="default" anchor="tls" numbered="true">
how to protect PCEP messages with TLS 1.3 <xref target="RFC8446"/> by disall <name>PCEP over TLS (PCEPS)</name>
owing
the use of early data (0-RTT) and listing the cipher suites that need to be <t><xref target="RFC8253" format="default"/> describes the use of
supported with TLS 1.3.</t> TLS 1.2 <xref target="RFC5246" format="default"/> or later in
<!--<t>The peer acting as the PCEP client must act as the TLS client. PCEP. Further, <xref target="I-D.ietf-pce-pceps-tls13"
format="default"/> specifies how to protect PCEP messages with TLS 1.3
<xref target="RFC8446" format="default"/> by disallowing the use of
early data (0-RTT) and listing the cipher suites that need to be
supported with TLS 1.3.</t>
<!--<t>The peer acting as the PCEP client must act as the TLS client.
The TLS client actively opens the TLS connection and the TLS server The TLS client actively opens the TLS connection and the TLS server
passively listens for the incoming TLS connections. The well-known passively listens for the incoming TLS connections. The well-known
TCP port number 4189 is used by PCEP servers to listen for TCP TCP port number 4189 is used by PCEP servers to listen for TCP
connections established by PCEP over TLS clients. The TLS client connections established by PCEP over TLS clients. The TLS client
sends the TLS ClientHello message to begin the TLS handshake. sends the TLS ClientHello message to begin the TLS handshake.
The TLS server sends a CertificateRequest in order to request a The TLS server sends a CertificateRequest in order to request a
certificate from the TLS client. Once the TLS handshake has certificate from the TLS client. Once the TLS handshake has
finished, the client and the server begin to exchange PCEP finished, the client and the server begin to exchange PCEP
messages. Client and server identity verification is done before the messages. Client and server identity verification is done before the
PCEP open message is sent. This means that the identity PCEP open message is sent. This means that the identity
verification is completed before the PCEP session is started.</t>--> verification is completed before the PCEP session is started.</t>-->
<t>The PCC acting as the TLS client opens the TLS connection and the PCE act ing as the TLS server listens for incoming connections as per TLS specifications (<xref target="RFC8446"/> and <xref target="RFC5246"/>). <xref target="RFC8253" /> specifies the StartTLS procedure in PCEP that initiates the TLS connection be fore exchanging PCEP messages thus the identity verification is completed before the PCEP session is established.</t>
<t>Note that a PCEP speaker could act as both a client (PCC) and a <t>The PCC acting as the TLS client opens the TLS connection, and the
server (PCE). The role within the context of a PCEP session is determined PCE acting as the TLS server listens for incoming connections as per the
by the relationship it has with its peer (the TLS specifications (<xref target="RFC8446" format="default"/> and
same holds good for TLS as well).</t> <xref target="RFC5246" format="default"/>). <xref target="RFC8253"
format="default"/> specifies the StartTLS procedure in PCEP that
initiates the TLS connection before exchanging PCEP messages; thus, the
identity verification is completed before the PCEP session is
established.</t>
<t>Note that a PCEP speaker could act as both a client (PCC) and a
server (PCE). The role within the context of a PCEP session is
determined by the relationship it has with its peer (the same is true
for TLS as well).</t>
<t>The YANG module uses the TLS grouping in <xref target="RFC9645"
format="default"/>. Note that any TLS version can be configured, but
<xref target="RFC9645" format="default"/> recommends the use of TLS
1.3 only. At the time of publication of this document, TLS 1.2 is
still in common use for PCEP and can still be enabled with the feature
"tls12" even though it is marked with status as "deprecated".</t>
</section>
</section>
<section toc="default" numbered="true">
<name>PCEP YANG Modules</name>
<section toc="default" numbered="true">
<name>ietf-pcep Module</name>
<t>The YANG module uses the TLS grouping in <xref target="RFC9645"/>. <!-- [rfced] In the third list item below, is "Path Computation Server (PCE)"
Note that any TLS version can be configured but <xref target="RFC9645"/> meant to read as "Path Computation Element (PCE)"?
recommends the use of TLS 1.3 only.
At the time of publication of this document, TLS 1.2 is still in common use fo
r PCEP and can still be enabled with the feature "tls12" even though it is marke
d with status as "deprecated".</t>
</section> Original:
</section> description
"The role of a PCEP speaker.
Takes one of the following values
- unknown(0): the role is not known,
- pcc(1): the role is of a Path Computation
Client (PCC),
- pce(2): the role is of a Path Computation
Server (PCE),
- pcc-and-pce(3): the role is of both a PCC and
a PCE.";
<section title="PCEP YANG Modules" toc="default"> Perhaps:
<section title="ietf-pcep module" toc="default">
<t>RFC Ed.: In this section, replace all occurrences of 'XXXX' with the description
actual RFC number and all occurrences of the revision date below with "The role of a PCEP speaker.
the date of RFC publication (and remove this note).</t> Takes one of the following values values:
<figure title="" suppress-title="false" align="left" alt="" width="" height= - unknown(0): the role is not known,
""> - pcc(1): the role is of a Path Computation
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt Client (PCC),
h="" height=""> - pce(2): the role is of a Path Computation
<![CDATA[ Element (PCE),
<CODE BEGINS> file "ietf-pcep@2025-01-27.yang" - pcc-and-pce(3): the role is of both a PCC and
a PCE.";
-->
<!-- [rfced] Is "this path-keys" correct in these description clauses? Or
should "this path-keys" be updated to "this path-key" (singular)?
Original:
}
leaf discard-time {
type uint32;
units "minutes";
description
"A time after which this path-keys will be
discarded";
}
leaf reuse-time {
type uint32;
units "minutes";
description
"A time after which this path-keys could be
reused";
-->
<sourcecode name="ietf-pcep@2025-07-24.yang" type="yang" markers="true">
<![CDATA[
module ietf-pcep { module ietf-pcep {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; namespace "urn:ietf:params:xml:ns:yang:ietf-pcep";
prefix pcep; prefix pcep;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
skipping to change at line 1165 skipping to change at line 1623
"RFC 8776: Common YANG Data Types for Traffic Engineering"; "RFC 8776: Common YANG Data Types for Traffic Engineering";
} }
import ietf-key-chain { import ietf-key-chain {
prefix key-chain; prefix key-chain;
reference reference
"RFC 8177: YANG Data Model for Key Chains"; "RFC 8177: YANG Data Model for Key Chains";
} }
import ietf-netconf-acm { import ietf-netconf-acm {
prefix nacm; prefix nacm;
reference reference
"RFC 8341: Network Configuration Protocol (NETCONF) Access "RFC 8341: Network Configuration Access Control Model";
Control Model";
} }
import ietf-tls-server { import ietf-tls-server {
prefix tlss; prefix tlss;
reference reference
"RFC9645: YANG Groupings for TLS Clients and TLS Servers"; "RFC 9645: YANG Groupings for TLS Clients and TLS Servers";
} }
import ietf-tls-client { import ietf-tls-client {
prefix tlsc; prefix tlsc;
reference reference
"RFC9645: YANG Groupings for TLS Clients and TLS Servers"; "RFC 9645: YANG Groupings for TLS Clients and TLS Servers";
} }
import ietf-ospf { import ietf-ospf {
prefix ospf; prefix ospf;
reference reference
"RFC 9129: YANG Data Model for OSPF Protocol"; "RFC 9129: YANG Data Model for the OSPF Protocol";
} }
import ietf-isis { import ietf-isis {
prefix isis; prefix isis;
reference reference
"RFC 9130: YANG Data Model for IS-IS Protocol"; "RFC 9130: YANG Data Model for the IS-IS Protocol";
} }
organization organization
"IETF PCE (Path Computation Element) Working Group"; "IETF PCE (Path Computation Element) Working Group";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/pce/> "WG Web: <https://datatracker.ietf.org/wg/pce/>
WG List: <mailto:pce@ietf.org> WG List: <mailto:pce@ietf.org>
Editor: Dhruv Dhody Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
description description
"The YANG module defines a generic configuration and "The YANG module defines a generic configuration and
operational model for Path Computation Element operational model for the Path Computation Element
Communication Protocol (PCEP). Communication Protocol (PCEP).
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) 2025 IETF Trust and the persons identified as Copyright (c) 2025 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject to
to the license terms contained in, the Revised BSD License the license terms contained in, the Revised BSD License set
set forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC 9826; see the
RFC itself for full legal notices. RFC itself for full legal notices.";
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.";
revision 2025-01-27 { revision 2025-07-24 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC 9826: A YANG Data Model for the Path Computation
Element Communications Protocol (PCEP)"; Element Communication Protocol (PCEP)";
} }
/* /*
* Typedefs * Typedefs
*/ */
typedef role { typedef role {
type enumeration { type enumeration {
enum unknown { enum unknown {
value 0; value 0;
description description
"An unknown role"; "An unknown role.";
} }
enum pcc { enum pcc {
value 1; value 1;
description description
"The role of a Path Computation Client"; "The role of a Path Computation Client (PCC).";
} }
enum pce { enum pce {
value 2; value 2;
description description
"The role of Path Computation Element"; "The role of a Path Computation Element (PCE).";
} }
enum pcc-and-pce { enum pcc-and-pce {
value 3; value 3;
description description
"The role of both Path Computation Client and "The role of both Path Computation Client (PCC) and
Path Computation Element"; Path Computation Element (PCE).";
} }
} }
description description
"The role of a PCEP speaker. "The role of a PCEP speaker.
Takes one of the following values Takes one of the following values:
- unknown(0): the role is not known, - unknown(0): the role is not known,
- pcc(1): the role is of a Path Computation - pcc(1): the role is of a Path Computation
Client (PCC), Client (PCC),
- pce(2): the role is of a Path Computation - pce(2): the role is of a Path Computation
Server (PCE), Server (PCE),
- pcc-and-pce(3): the role is of both a PCC and - pcc-and-pce(3): the role is of both a PCC and
a PCE."; a PCE.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
typedef oper-status { typedef oper-status {
type enumeration { type enumeration {
enum oper-status-up { enum oper-status-up {
value 1; value 1;
description description
"The PCEP entity is active"; "The PCEP entity is active.";
} }
enum oper-status-down { enum oper-status-down {
value 2; value 2;
description description
"The PCEP entity is inactive"; "The PCEP entity is inactive.";
} }
enum oper-status-going-up { enum oper-status-going-up {
value 3; value 3;
description description
"The PCEP entity is activating"; "The PCEP entity is activating.";
} }
enum oper-status-going-down { enum oper-status-going-down {
value 4; value 4;
description description
"The PCEP entity is deactivating"; "The PCEP entity is deactivating.";
} }
enum oper-status-failed { enum oper-status-failed {
value 5; value 5;
description description
"The PCEP entity has failed and will recover "The PCEP entity has failed and will recover
when possible."; when possible.";
} }
enum oper-status-failed-perm { enum oper-status-failed-perm {
value 6; value 6;
description description
"The PCEP entity has failed and will not recover "The PCEP entity has failed and will not recover
without operator intervention"; without operator intervention.";
} }
} }
description description
"The operational status of the PCEP entity. "The operational status of the PCEP entity.
Takes one of the following values: Takes one of the following values:
- oper-status-up(1): Active, - oper-status-up(1): Active,
- oper-status-down(2): Inactive, - oper-status-down(2): Inactive,
- oper-status-going-up(3): Activating, - oper-status-going-up(3): Activating,
- oper-status-going-down(4): Deactivating, - oper-status-going-down(4): Deactivating,
- oper-status-failed(5): Failed, - oper-status-failed(5): Failed,
skipping to change at line 1325 skipping to change at line 1782
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
typedef initiator { typedef initiator {
type enumeration { type enumeration {
enum local { enum local {
value 1; value 1;
description description
"The local PCEP entity initiated the session"; "The local PCEP entity initiated the session.";
} }
enum remote { enum remote {
value 2; value 2;
description description
"The remote PCEP peer initiated the session"; "The remote PCEP peer initiated the session.";
} }
} }
description description
"The initiator of the session, that is, whether the TCP "The initiator of the session, that is, whether the TCP
connection was initiated by the local PCEP entity or connection was initiated by the local PCEP entity or
the remote peer. the remote peer.
Takes one of the following values: Takes one of the following values:
- local(1): Initiated locally, - local(1): Initiated locally,
- remote(2): Initiated remotely."; - remote(2): Initiated remotely.";
} }
skipping to change at line 1386 skipping to change at line 1843
Protocol (PCEP)"; Protocol (PCEP)";
} }
typedef domain { typedef domain {
type union { type union {
type ospf:area-id-type; type ospf:area-id-type;
type isis:area-address; type isis:area-address;
type inet:as-number; type inet:as-number;
} }
description description
"The Domain Information"; "The domain information.";
} }
typedef operational-state { typedef operational-state {
type enumeration { type enumeration {
enum down { enum down {
value 0; value 0;
description description
"not active."; "Not active.";
} }
enum up { enum up {
value 1; value 1;
description description
"signalled."; "Signaled.";
} }
enum active { enum active {
value 2; value 2;
description description
"up and carrying traffic."; "Up and carrying traffic.";
} }
enum going-down { enum going-down {
value 3; value 3;
description description
"LSP is being torn down, resources are "LSP is being torn down; resources are
being released."; being released.";
} }
enum going-up { enum going-up {
value 4; value 4;
description description
"LSP is being signalled."; "LSP is being signaled.";
} }
} }
description description
"The operational status of the LSP"; "The operational status of the LSP.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
typedef sync-state { typedef sync-state {
type enumeration { type enumeration {
enum pending { enum pending {
value 0; value 0;
description description
skipping to change at line 1459 skipping to change at line 1916
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
typedef hpce-role { typedef hpce-role {
type enumeration { type enumeration {
enum unknown { enum unknown {
value 0; value 0;
description description
"An unknown role"; "An unknown role.";
} }
enum child { enum child {
value 1; value 1;
description description
"The PCE is acting as child PCE."; "The PCE is acting as child PCE.";
} }
enum parent { enum parent {
value 2; value 2;
description description
"The PCE is acting as parent PCE."; "The PCE is acting as parent PCE.";
skipping to change at line 1496 skipping to change at line 1953
"Support synchronized path computation."; "Support synchronized path computation.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
feature gmpls { feature gmpls {
description description
"Support GMPLS."; "Support GMPLS.";
reference reference
"RFC 8779: PCEP extensions for GMPLS"; "RFC 8779: Path Computation Element Communication Protocol
(PCEP) Extensions for GMPLS";
} }
feature objective-function { feature objective-function {
description description
"Support OF as per RFC 5541."; "Support OF as per RFC 5541.";
reference reference
"RFC 5541: Encoding of Objective Functions in the Path "RFC 5541: Encoding of Objective Functions in the Path
Computation Element Communication Protocol (PCEP)"; Computation Element Communication Protocol (PCEP)";
} }
skipping to change at line 1536 skipping to change at line 1994
description description
"Support Point-to-Multipoint (P2MP) as per RFC 8306."; "Support Point-to-Multipoint (P2MP) as per RFC 8306.";
reference reference
"RFC 8306: Extensions to the Path Computation Element "RFC 8306: Extensions to the Path Computation Element
Communication Protocol (PCEP) for Point-to-Multipoint Communication Protocol (PCEP) for Point-to-Multipoint
Traffic Engineering Label Switched Paths"; Traffic Engineering Label Switched Paths";
} }
feature stateful { feature stateful {
description description
"Support Stateful PCE as per RFC 8231."; "Support stateful PCE as per RFC 8231.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
feature sync-opt { feature sync-opt {
description description
"Support Stateful state synchronization optimization "Support stateful state synchronization optimization
as per RFC 8232"; as per RFC 8232.";
reference reference
"RFC 8232: Optimizations of Label Switched Path State "RFC 8232: Optimizations of Label Switched Path State
Synchronization Procedures for a Stateful PCE"; Synchronization Procedures for a Stateful PCE";
} }
feature pce-initiated { feature pce-initiated {
description description
"Support PCE-Initiated LSP as per "Support PCE-initiated LSP as per
RFC 8281."; RFC 8281.";
reference reference
"RFC 8281: Path Computation Element Communication Protocol "RFC 8281: Path Computation Element Communication Protocol
(PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful
PCE Model"; PCE Model";
} }
feature tls { feature tls {
description description
"Support PCEP over TLS as per RFC 8253."; "Support PCEP over TLS as per RFC 8253.";
skipping to change at line 1597 skipping to change at line 2055
feature flowspec { feature flowspec {
description description
"Support Flow Specification in PCEP."; "Support Flow Specification in PCEP.";
reference reference
"RFC 9168: Path Computation Element Communication Protocol "RFC 9168: Path Computation Element Communication Protocol
(PCEP) Extension for Flow Specification"; (PCEP) Extension for Flow Specification";
} }
feature h-pce { feature h-pce {
description description
"Support Hierarchical-PCE (H-PCE)."; "Support Hierarchical PCE (H-PCE).";
reference reference
"RFC 8685: Path Computation Element Communication "RFC 8685: Path Computation Element Communication
Protocol (PCEP) Extensions for the Hierarchical Path Protocol (PCEP) Extensions for the Hierarchical Path
Computation Element (H-PCE) Architecture"; Computation Element (H-PCE) Architecture";
} }
feature inter-layer { feature inter-layer {
description description
"Support Inter-layer path computation."; "Support inter-layer path computation.";
reference reference
"RFC 8282: Extensions to the Path Computation "RFC 8282: Extensions to the Path Computation
Element Communication Protocol (PCEP) for Inter- Element Communication Protocol (PCEP) for Inter-
Layer MPLS and GMPLS Traffic Engineering"; Layer MPLS and GMPLS Traffic Engineering";
} }
/* /*
* Identities * Identities
*/ */
identity domain-type { identity domain-type {
description description
"Base Domain Type for PCE"; "Base domain type for PCE.";
} }
identity ospf-area { identity ospf-area {
base domain-type; base domain-type;
description description
"The OSPF area."; "The OSPF area.";
} }
identity isis-area { identity isis-area {
base domain-type; base domain-type;
skipping to change at line 1643 skipping to change at line 2101
identity autonomous-system { identity autonomous-system {
base domain-type; base domain-type;
description description
"The Autonomous System (AS)."; "The Autonomous System (AS).";
} }
identity lsp-error { identity lsp-error {
if-feature "stateful"; if-feature "stateful";
description description
"Base LSP error"; "Base LSP error.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity no-error-lsp-error { identity no-error-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"No error, LSP is fine."; "No error; LSP is fine.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity unknown-lsp-error { identity unknown-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"Unknown reason. LSP Error Code value = 1."; "Unknown reason. LSP Error Code value = 1.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity limit-lsp-error { identity limit-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"Limit reached for PCE-controlled LSPs. LSP Error Code "Limit reached for PCE-controlled LSPs. LSP Error Code
value = 2."; value = 2.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity pending-lsp-error { identity pending-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"Too many pending LSP update requests. LSP Error Code "Too many pending LSP update requests. LSP Error Code
value = 3."; value = 3.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity unacceptable-lsp-error { identity unacceptable-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"Unacceptable parameters. LSP Error Code value = 4."; "Unacceptable parameters. LSP Error Code value = 4.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity internal-lsp-error { identity internal-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"Internal error. LSP Error Code value = 5."; "Internal error. LSP Error Code value = 5.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity admin-lsp-error { identity admin-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"LSP administratively brought down. LSP Error Code value "LSP administratively brought down. LSP Error Code value
= 6."; = 6.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity preempted-lsp-error { identity preempted-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"LSP preempted. LSP Error Code value = 7."; "LSP preempted. LSP Error Code value = 7.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity rsvp-lsp-error { identity rsvp-lsp-error {
if-feature "stateful"; if-feature "stateful";
base lsp-error; base lsp-error;
description description
"RSVP signaling error. LSP Error Code value = 8."; "RSVP signaling error. LSP Error Code value = 8.";
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
identity path-protection { identity path-protection {
base te-types:association-type; base te-types:association-type;
description description
"Path Protection Association"; "Path Protection Association.";
reference reference
"RFC 8745: Path Computation Element Communication Protocol "RFC 8745: Path Computation Element Communication Protocol
(PCEP) Extensions for Associating Working and Protection (PCEP) Extensions for Associating Working and Protection
Label Switched Paths (LSPs) with Stateful PCE"; Label Switched Paths (LSPs) with Stateful PCE";
} }
identity disjoint { identity disjoint {
base te-types:association-type; base te-types:association-type;
description description
"Disjoint Association"; "Disjoint Association.";
reference reference
"RFC 8800: Path Computation Element Communication Protocol "RFC 8800: Path Computation Element Communication Protocol
(PCEP) Extension for Label Switched Path (LSP) Diversity (PCEP) Extension for Label Switched Path (LSP) Diversity
Constraint Signaling"; Constraint Signaling";
} }
identity policy { identity policy {
base te-types:association-type; base te-types:association-type;
description description
"Policy Association"; "Policy Association.";
reference reference
"RFC 9005: Path Computation Element Communication Protocol "RFC 9005: Path Computation Element Communication Protocol
(PCEP) Extension for Associating Policies and Label Switched (PCEP) Extension for Associating Policies and Label Switched
Paths (LSPs)"; Paths (LSPs)";
} }
identity virtual-network { identity virtual-network {
base te-types:association-type; base te-types:association-type;
description description
"Virtual Network (VN) Association"; "Virtual Network (VN) Association.";
reference reference
"RFC 9358: Path Computation Element Communication Protocol "RFC 9358: Path Computation Element Communication Protocol
(PCEP) Extensions for Establishing Relationships between (PCEP) Extensions for Establishing Relationships between
Sets of Label Switched Paths and Virtual Networks"; Sets of Label Switched Paths and Virtual Networks";
} }
/* /*
* Groupings * Groupings
*/ */
grouping domain { grouping domain {
description description
"This grouping specifies a Domain where the "This grouping specifies a domain where the
PCEP speaker has topology visibility."; PCEP speaker has topology visibility.";
leaf type { leaf type {
type identityref { type identityref {
base domain-type; base domain-type;
} }
description description
"The domain type."; "The domain type.";
} }
leaf domain { leaf domain {
type domain; type domain;
description description
"The domain Information."; "The domain information.";
} }
} }
grouping domain-info { grouping domain-info {
description description
"This grouping specifies all information which "This grouping specifies all information that
may be relevant to both PCC and PCE. may be relevant to both PCC and PCE.
This information corresponds to PCE auto-discovery This information corresponds to PCE auto-discovery
information. information.
The scope relates to either a local entity or a peer."; The scope relates to either a local entity or a peer.";
container domains { container domains {
description description
"The domain for the local PCEP entity or a peer."; "The domain for the local PCEP entity or a peer.";
list domain { list domain {
key "type domain"; key "type domain";
description description
skipping to change at line 1959 skipping to change at line 2417
"Support for PCE-initiated LSP for P2MP."; "Support for PCE-initiated LSP for P2MP.";
reference reference
"RFC 8623: Stateful Path Computation Element "RFC 8623: Stateful Path Computation Element
(PCE) Protocol Extensions for Usage with (PCE) Protocol Extensions for Usage with
Point-to-Multipoint TE Label Switched Paths Point-to-Multipoint TE Label Switched Paths
(LSPs)"; (LSPs)";
} }
bit flowspec { bit flowspec {
if-feature "flowspec"; if-feature "flowspec";
description description
"Support for Flow specification."; "Support for Flow Specification.";
reference reference
"RFC 9168: Path Computation Element Communication "RFC 9168: Path Computation Element Communication
Protocol (PCEP) Extension for Flow Specification"; Protocol (PCEP) Extension for Flow Specification";
} }
bit tcp-ao { bit tcp-ao {
description description
"Support for The TCP Authentication Option "Support for the TCP Authentication Option
(TCP-AO)"; (TCP-AO).";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP) Communication Protocol (PCEP)
RFC 5925: The TCP Authentication Option"; RFC 5925: The TCP Authentication Option";
} }
bit tls { bit tls {
if-feature "tls"; if-feature "tls";
description description
"Support for TLS"; "Support for TLS.";
reference reference
"RFC 8253: PCEPS: Usage of TLS to Provide a "RFC 8253: PCEPS: Usage of TLS to Provide a
Secure Transport for the Path Computation Secure Transport for the Path Computation
Element Communication Protocol (PCEP)"; Element Communication Protocol (PCEP)";
} }
} }
description description
"The bits string indicating the capabilities"; "The bits string indicating the capabilities.";
reference reference
"IANA IGP: Path Computation Element (PCE) Capability "IANA IGP: Path Computation Element (PCE) Capability
Flags in Interior Gateway Protocol (IGP) Parameters Flags in Interior Gateway Protocol (IGP) Parameters
RFC 5088: OSPF Protocol Extensions for Path RFC 5088: OSPF Protocol Extensions for Path
Computation Element (PCE) Discovery Computation Element (PCE) Discovery
RFC 5089: IS-IS Protocol Extensions for Path RFC 5089: IS-IS Protocol Extensions for Path
Computation Element (PCE) Discovery Computation Element (PCE) Discovery
RFC 9353: IGP Extension for Path Computation Element RFC 9353: IGP Extension for Path Computation Element
Communication Protocol (PCEP) Security Capability Communication Protocol (PCEP) Security Capability
Support in PCE Discovery (PCED)"; Support in PCE Discovery (PCED)";
skipping to change at line 2015 skipping to change at line 2473
Protocol (PCEP) Extensions for PCE-Initiated LSP Protocol (PCEP) Extensions for PCE-Initiated LSP
Setup in a Stateful PCE Model"; Setup in a Stateful PCE Model";
} }
leaf include-db-ver { leaf include-db-ver {
if-feature "stateful"; if-feature "stateful";
if-feature "sync-opt"; if-feature "sync-opt";
type boolean; type boolean;
default "true"; default "true";
description description
"Support inclusion of LSP-DB-VERSION "Support inclusion of LSP-DB-VERSION
in LSP object"; in LSP object.";
reference reference
"RFC 8232: Optimizations of Label Switched Path State "RFC 8232: Optimizations of Label Switched Path State
Synchronization Procedures for a Stateful PCE"; Synchronization Procedures for a Stateful PCE";
} }
leaf trigger-resync { leaf trigger-resync {
if-feature "stateful"; if-feature "stateful";
if-feature "sync-opt"; if-feature "sync-opt";
type boolean; type boolean;
default "true"; default "true";
description description
"Support PCE-triggered re-synchronization"; "Support PCE-triggered resynchronization.";
reference reference
"RFC 8232: Optimizations of Label Switched Path State "RFC 8232: Optimizations of Label Switched Path State
Synchronization Procedures for a Stateful PCE"; Synchronization Procedures for a Stateful PCE";
} }
leaf trigger-initial-sync { leaf trigger-initial-sync {
if-feature "stateful"; if-feature "stateful";
if-feature "sync-opt"; if-feature "sync-opt";
type boolean; type boolean;
default "true"; default "true";
description description
"PCE-triggered initial synchronization"; "PCE-triggered initial synchronization.";
reference reference
"RFC 8232: Optimizations of Label Switched Path State "RFC 8232: Optimizations of Label Switched Path State
Synchronization Procedures for a Stateful PCE"; Synchronization Procedures for a Stateful PCE";
} }
leaf incremental-sync { leaf incremental-sync {
if-feature "stateful"; if-feature "stateful";
if-feature "sync-opt"; if-feature "sync-opt";
type boolean; type boolean;
default "true"; default "true";
description description
"Support incremental (delta) sync"; "Support incremental (delta) synchronization.";
reference reference
"RFC 8232: Optimizations of Label Switched Path State "RFC 8232: Optimizations of Label Switched Path State
Synchronization Procedures for a Stateful PCE"; Synchronization Procedures for a Stateful PCE";
} }
container sr-mpls { container sr-mpls {
if-feature "sr-mpls"; if-feature "sr-mpls";
description description
"If segment routing for MPLS is supported at the local "If segment routing for MPLS is supported at the local
entity or a peer."; entity or a peer.";
reference reference
"RFC 8664: Path Computation Element Communication Protocol "RFC 8664: Path Computation Element Communication Protocol
(PCEP) Extensions for Segment Routing"; (PCEP) Extensions for Segment Routing";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"Set to true if SR-MPLS is enabled"; "Set to true if SR-MPLS is enabled.";
} }
leaf no-msd-limit { leaf no-msd-limit {
type boolean; type boolean;
default "false"; default "false";
description description
"True indicates no limit on MSD, the "True indicates no limit on Maximum SID Depth (MSD); the
leaf msd is ignored"; leaf msd is ignored.";
} }
leaf nai { leaf nai {
type boolean; type boolean;
default "false"; default "false";
description description
"True indicates the capability to resolve Node or "True indicates the capability to resolve Node or
Adjacency Identifier (NAI) to Segment Adjacency Identifier (NAI) to Segment
Identifier (SID)"; Identifier (SID).";
} }
} }
container stateful-gmpls { container stateful-gmpls {
if-feature "stateful"; if-feature "stateful";
if-feature "gmpls"; if-feature "gmpls";
description description
"If Stateful GMPLS is supported for a local entity "If stateful GMPLS is supported for a local entity
or a peer"; or a peer.";
reference reference
"RFC 8779: Path Computation Element "RFC 8779: Path Computation Element Communication Protocol
Communication Protocol (PCEP) Extensions (PCEP) Extensions for GMPLS";
for Stateful PCE Usage in GMPLS-controlled
Networks";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"Set to true if Stateful GMPLS is enabled"; "Set to true if stateful GMPLS is enabled.";
} }
} }
leaf inter-layer { leaf inter-layer {
if-feature "inter-layer"; if-feature "inter-layer";
type boolean; type boolean;
default "false"; default "false";
description description
"If inter-layer path computation is supported for "If inter-layer path computation is supported for
local entity or a peer"; local entity or a peer.";
reference reference
"RFC 8282: Extensions to the Path Computation "RFC 8282: Extensions to the Path Computation
Element Communication Protocol (PCEP) for Inter- Element Communication Protocol (PCEP) for Inter-
Layer MPLS and GMPLS Traffic Engineering"; Layer MPLS and GMPLS Traffic Engineering";
} }
container h-pce { container h-pce {
if-feature "h-pce"; if-feature "h-pce";
description description
"If Hierarchical PCE (H-PCE) is supported for local "If Hierarchical PCE (H-PCE) is supported for local
entity or a peer"; entity or a peer.";
reference reference
"RFC 8685: Path Computation Element Communication "RFC 8685: Path Computation Element Communication
Protocol (PCEP) Extensions for the Hierarchical Path Protocol (PCEP) Extensions for the Hierarchical Path
Computation Element (H-PCE) Architecture"; Computation Element (H-PCE) Architecture";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"Set to true if H-PCE is enabled"; "Set to true if H-PCE is enabled.";
} }
leaf stateful { leaf stateful {
if-feature "stateful"; if-feature "stateful";
type boolean; type boolean;
default "false"; default "false";
description description
"Set to true if Stateful H-PCE is enabled"; "Set to true if stateful H-PCE is enabled.";
reference reference
"RFC 8751: Hierarchical Stateful Path Computation "RFC 8751: Hierarchical Stateful Path Computation
Element (PCE)"; Element (PCE)";
} }
leaf role { leaf role {
when "../../../role = 'pce'" when "../../../role = 'pce'"
+ "or " + "or "
+ "../../../role = 'pcc-and-pce'" { + "../../../role = 'pcc-and-pce'" {
description description
"These fields are applicable when the role is PCE."; "These fields are applicable when the role is PCE.";
skipping to change at line 2156 skipping to change at line 2612
description description
"The H-PCE role of the PCE."; "The H-PCE role of the PCE.";
} }
} }
} }
leaf msd { leaf msd {
if-feature "sr-mpls"; if-feature "sr-mpls";
type uint8; type uint8;
config false; config false;
description description
"Maximum SID Depth for SR-MPLS i.e. the label stack depth "Maximum SID Depth (MSD) for SR-MPLS (i.e., the label stack
that a PCC is capable of imposing on a packet."; depth that a PCC is capable of imposing on a packet).";
reference reference
"RFC 8664: Path Computation Element Communication Protocol "RFC 8664: Path Computation Element Communication Protocol
(PCEP) Extensions for Segment Routing"; (PCEP) Extensions for Segment Routing";
} }
} }
grouping pce-info { grouping pce-info {
description description
"This grouping specifies all PCE information "This grouping specifies all PCE information
which may be relevant to the PCE selection. that may be relevant to the PCE selection.
This information corresponds to PCE auto-discovery This information corresponds to PCE auto-discovery
information."; information.";
container scope { container scope {
description description
"This container defines PCE path computation scope "This container defines PCE path computation scope
information which may be relevant to PCE selection. information that may be relevant to PCE selection.
This information corresponds to PCE auto-discovery This information corresponds to PCE auto-discovery
information."; information.";
leaf path-scope { leaf path-scope {
type bits { type bits {
bit intra-area-scope { bit intra-area-scope {
description description
"PCE can compute intra-area paths (L bit)."; "PCE can compute intra-area paths (L bit).";
} }
bit inter-area-scope { bit inter-area-scope {
description description
"PCE can compute inter-area paths (R bit)."; "PCE can compute inter-area paths (R bit).";
} }
bit inter-area-scope-default { bit inter-area-scope-default {
description description
"PCE can act as a default PCE for inter-area "PCE can act as a default PCE for inter-area
path computation. (Rd bit)"; path computation (Rd bit).";
} }
bit inter-as-scope { bit inter-as-scope {
description description
"PCE can compute inter-AS paths (S bit)."; "PCE can compute inter-AS paths (S bit).";
} }
bit inter-as-scope-default { bit inter-as-scope-default {
description description
"PCE can act as a default PCE for inter-AS "PCE can act as a default PCE for inter-AS
path computation (Sd bit)."; path computation (Sd bit).";
} }
bit inter-layer-scope { bit inter-layer-scope {
description description
"PCE can compute inter-layer paths (Y bit)."; "PCE can compute inter-layer paths (Y bit).";
} }
} }
description description
"The field corresponding to the path scope bits"; "The field corresponding to the path scope bits.";
} }
leaf intra-area-pref { leaf intra-area-pref {
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
description description
"The PCE's preference for intra-area TE LSP "The PCE's preference for intra-area TE LSP
computation (PrefL field). Where 7 reflects computation (PrefL field), where 7 reflects
the highest preference."; the highest preference.";
} }
leaf inter-area-pref { leaf inter-area-pref {
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
description description
"The PCE's preference for inter-area TE LSP "The PCE's preference for inter-area TE LSP
computation (PrefR field). Where 7 reflects computation (PrefR field), where 7 reflects
the highest preference."; the highest preference.";
} }
leaf inter-as-pref { leaf inter-as-pref {
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
description description
"The PCE's preference for inter-AS TE LSP "The PCE's preference for inter-AS TE LSP
computation (PrefS field). Where 7 reflects computation (PrefS field), where 7 reflects
the highest preference."; the highest preference.";
} }
leaf inter-layer-pref { leaf inter-layer-pref {
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
description description
"The PCE's preference for inter-layer TE LSP "The PCE's preference for inter-layer TE LSP
computation (PrefY field). Where 7 reflects computation (PrefY field), where 7 reflects
the highest preference."; the highest preference.";
} }
reference reference
"RFC 5088: OSPF Protocol Extensions for Path "RFC 5088: OSPF Protocol Extensions for Path
Computation Element (PCE) Discovery Computation Element (PCE) Discovery
RFC 5089: IS-IS Protocol Extensions for Path RFC 5089: IS-IS Protocol Extensions for Path
Computation Element (PCE) Discovery"; Computation Element (PCE) Discovery";
} }
container neighbour-domains { container neighbor-domains {
description description
"The list of neighbour PCE-Domain "The list of neighbor PCE domains
toward which a PCE can compute toward which a PCE can compute
paths"; paths.";
list domain { list domain {
key "type domain"; key "type domain";
description description
"The neighbour domain."; "The neighbor domain.";
uses domain { uses domain {
description description
"The PCE neighbour domain."; "The PCE neighbor domain.";
} }
} }
} }
} }
grouping notification-instance-hdr { grouping notification-instance-hdr {
description description
"This group describes common instance-specific data "This group describes common instance-specific data
for notifications."; for notifications.";
leaf peer-addr { leaf peer-addr {
type leafref { type leafref {
path "/pcep/entity/peers/peer/addr"; path "/pcep/entity/peers/peer/addr";
} }
description description
"Reference to peer address"; "Reference to peer address.";
} }
} }
grouping notification-session-hdr { grouping notification-session-hdr {
description description
"This group describes common session instance-specific "This group describes common session instance-specific
data for notifications."; data for notifications.";
uses notification-instance-hdr; uses notification-instance-hdr;
leaf session-initiator { leaf session-initiator {
type leafref { type leafref {
path "/pcep/entity/peers/peer[addr=current()/../peer-addr]/" path "/pcep/entity/peers/peer[addr=current()/../peer-addr]/"
+ "sessions/session/initiator"; + "sessions/session/initiator";
} }
description description
"Reference to pcep session initiator leaf"; "Reference to pcep session initiator leaf.";
} }
} }
grouping of-list { grouping of-list {
description description
"List of Objective Functions (OF)"; "List of Objective Functions (OF).";
reference reference
"RFC 5541: Encoding of Objective Functions in the Path "RFC 5541: Encoding of Objective Functions in the Path
Computation Element Communication Protocol (PCEP)"; Computation Element Communication Protocol (PCEP)";
list objective-function { list objective-function {
key "of"; key "of";
description description
"The list of authorized OF"; "The list of authorized OF.";
leaf of { leaf of {
type identityref { type identityref {
base te-types:objective-function-type; base te-types:objective-function-type;
} }
description description
"The OF authorized"; "The OF authorized.";
} }
} }
} }
grouping auth { grouping auth {
description description
"The Authentication options"; "The authentication options.";
container auth { container auth {
description description
"The Authentication options"; "The authentication options.";
choice auth-type-selection { choice auth-type-selection {
description description
"Options for expressing authentication "Options for expressing authentication
setting."; setting.";
case auth-key-chain { case auth-key-chain {
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"key-chain name."; "Key-chain name.";
} }
} }
case auth-key { case auth-key {
leaf crypto-algorithm { leaf crypto-algorithm {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
mandatory true; mandatory true;
description description
"Cryptographic algorithm associated "Cryptographic algorithm associated
with key."; with key.";
} }
choice key-string-style { choice key-string-style {
description description
"Key string styles"; "Key string styles.";
case keystring { case keystring {
leaf keystring { leaf keystring {
nacm:default-deny-all; nacm:default-deny-all;
type string; type string;
description description
"Key string in ASCII format."; "Key string in ASCII format.";
} }
} }
case hexadecimal { case hexadecimal {
if-feature "key-chain:hex-key-string"; if-feature "key-chain:hex-key-string";
leaf hexadecimal-string { leaf hexadecimal-string {
nacm:default-deny-all; nacm:default-deny-all;
type yang:hex-string; type yang:hex-string;
description description
"Key in hexadecimal string format. When "Key in hexadecimal string format. When
compared to ASCII, specification in compared to ASCII, specification in
hexadecimal affords greater key entropy hexadecimal affords greater key entropy
with the same number of internal with the same number of internal
key-string octets. Additionally, it key-string octets. Additionally, it
discourages usage of well-known words or discourages usage of well-known words or
numbers."; numbers.";
} }
} }
} }
} }
case auth-tls { case auth-tls {
if-feature "tls"; if-feature "tls";
choice role { choice role {
description description
"The role of the local entity"; "The role of the local entity.";
case server { case server {
container tls-server { container tls-server {
uses tlss:tls-server-grouping { uses tlss:tls-server-grouping {
description description
"Server TLS information."; "Server TLS information.";
} }
description description
"TLS related information"; "TLS-related information.";
} }
} }
case client { case client {
container tls-client { container tls-client {
uses tlsc:tls-client-grouping { uses tlsc:tls-client-grouping {
description description
"Client TLS information."; "Client TLS information.";
} }
description description
"TLS related information"; "TLS-related information.";
} }
} }
} }
} }
} }
} }
} }
/* /*
* Configuration data nodes * Configuration data nodes
skipping to change at line 2420 skipping to change at line 2876
container entity { container entity {
description description
"The configured PCEP entity on the device."; "The configured PCEP entity on the device.";
leaf-list addr { leaf-list addr {
type inet:ip-address-no-zone; type inet:ip-address-no-zone;
min-elements 1; min-elements 1;
ordered-by user; ordered-by user;
description description
"The local Internet address of this PCEP entity. "The local Internet address of this PCEP entity.
If operating as a PCE server, the PCEP entity If operating as a PCE server, the PCEP entity
listens on this address. If operating as a PCC, listens on this address. If operating as a PCC,
the PCEP entity binds outgoing TCP connections the PCEP entity binds outgoing TCP connections
to this address based on the address family. It is to this address based on the address family. It is
possible for the PCEP entity to operate both as a possible for the PCEP entity to operate as both a
PCC and a PCE Server, in which case it uses this PCC and a PCE server, in which case it uses this
address both to listen for incoming TCP connections address both to listen for incoming TCP connections
and to bind outgoing TCP connections."; and to bind outgoing TCP connections.";
} }
leaf enabled { leaf enabled {
type boolean; type boolean;
default "true"; default "true";
description description
"The administrative status of this PCEP "The administrative status of this PCEP
Entity; set to true when UP."; entity; set to true when UP.";
} }
leaf role { leaf role {
type role; type role;
must '(. != "unknown")' { must '(. != "unknown")' {
error-message "The PCEP entity role cannot be unknown"; error-message "The PCEP entity role cannot be unknown";
} }
mandatory true; mandatory true;
description description
"The role that this entity can play. "The role that this entity can play.
Takes one of the following values: Takes one of the following values:
- pcc(1): this PCEP Entity is a PCC, - pcc(1): this PCEP entity is a PCC,
- pce(2): this PCEP Entity is a PCE, - pce(2): this PCEP entity is a PCE,
- pcc-and-pce(3): this PCEP Entity is both - pcc-and-pce(3): this PCEP entity is both
a PCC and a PCE."; a PCC and a PCE.";
} }
leaf description { leaf description {
type string; type string;
description description
"Description of the PCEP entity configured "Description of the PCEP entity configured
by the user"; by the user.";
} }
leaf speaker-entity-id { leaf speaker-entity-id {
if-feature "sync-opt"; if-feature "sync-opt";
type string; type string;
description description
"The Speaker Entity Identifier"; "The Speaker Entity Identifier.";
reference reference
"RFC 8232: Optimizations of Label Switched "RFC 8232: Optimizations of Label Switched
Path State Synchronization Procedures for Path State Synchronization Procedures for
a Stateful PCE"; a Stateful PCE";
} }
leaf admin-status { leaf admin-status {
type boolean; type boolean;
default "true"; default "true";
description description
"The administrative status of this PCEP Entity. "The administrative status of this PCEP entity.
The value true represents admin status as up. The value true represents admin status as up.
This is the desired operational status as This is the desired operational status as
currently set by an operator or by default in currently set by an operator or by default in
the implementation. The value of oper-status the implementation. The value of oper-status
represents the current status of an attempt to represents the current status of an attempt to
reach this desired status."; reach this desired status.";
} }
leaf index { leaf index {
type uint32; type uint32;
config false; config false;
description description
"The index of the operational PECP entity"; "The index of the operational PECP entity.";
} }
leaf oper-status { leaf oper-status {
type oper-status; type oper-status;
config false; config false;
description description
"The operational status of the PCEP entity. "The operational status of the PCEP entity.
Takes one of the following values: Takes one of the following values:
- oper-status-up(1): the PCEP entity is active, - oper-status-up(1): the PCEP entity is active,
- oper-status-down(2): the PCEP entity is inactive, - oper-status-down(2): the PCEP entity is inactive,
- oper-status-going-up(3): the PCEP entity is - oper-status-going-up(3): the PCEP entity is
skipping to change at line 2503 skipping to change at line 2959
- oper-status-going-down(4): the PCEP entity is - oper-status-going-down(4): the PCEP entity is
deactivating, deactivating,
- oper-status-failed(5): the PCEP entity has - oper-status-failed(5): the PCEP entity has
failed and will recover when possible, failed and will recover when possible,
- oper-status-failed-perm(6): the PCEP entity - oper-status-failed-perm(6): the PCEP entity
has failed and will not recover without has failed and will not recover without
operator intervention."; operator intervention.";
} }
uses domain-info { uses domain-info {
description description
"Local PCEP entity information"; "Local PCEP entity information.";
} }
uses auth { uses auth {
description description
"Local authorization and security parameters"; "Local authorization and security parameters.";
} }
container pce-info { container pce-info {
when "../role = 'pce'" when "../role = 'pce'"
+ "or " + "or "
+ "../role = 'pcc-and-pce'" { + "../role = 'pcc-and-pce'" {
description description
"These fields are applicable when the role is PCE."; "These fields are applicable when the role is PCE.";
} }
description description
"The Local PCE Entity PCE information"; "The local PCE entity PCE information.";
uses pce-info { uses pce-info {
description description
"Local PCE information"; "Local PCE information.";
} }
container path-key { container path-key {
if-feature "path-key"; if-feature "path-key";
description description
"Path-Key Configuration"; "Path-key configuration.";
reference reference
"RFC 5520: Preserving Topology Confidentiality in "RFC 5520: Preserving Topology Confidentiality in
Inter-Domain Path Computation Using a Path-Key Inter-Domain Path Computation Using a Path-Key-
-Based Mechanism"; Based Mechanism";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"Enabled or Disabled; set to true when Enabled"; "Enabled or disabled; set to true when enabled.";
} }
leaf discard-timer { leaf discard-timer {
type uint32; type uint32;
units "minutes"; units "minutes";
default "10"; default "10";
description description
"A timer to discard unwanted path-keys"; "A timer to discard unwanted path-keys.";
} }
leaf reuse-time { leaf reuse-time {
type uint32 { type uint32 {
range "30..max"; range "30..max";
} }
units "minutes"; units "minutes";
default "30"; default "30";
description description
"A time after which the path-keys could be reused"; "A time after which the path-keys could be reused.";
} }
leaf pce-id { leaf pce-id {
type inet:ip-address-no-zone; type inet:ip-address-no-zone;
description description
"PCE Address to be used in each Path-Key Subobject "PCE address to be used in each Path-Key Subobject
(PKS), same as local PCE entity IP address"; (PKS), same as local PCE entity IP address.";
} }
} }
} }
leaf connect-timer { leaf connect-timer {
type uint16 { type uint16 {
range "1..max"; range "1..max";
} }
units "seconds"; units "seconds";
default "60"; default "60";
description description
"The time in seconds that the PCEP entity will wait "The time in seconds that the PCEP entity will wait
to establish a TCP connection with a peer. If a to establish a TCP connection with a peer. If a
TCP connection is not established within this time TCP connection is not established within this time,
then PCEP aborts the session setup attempt."; then PCEP aborts the session setup attempt.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
leaf connect-max-retry { leaf connect-max-retry {
type uint32; type uint32;
default "5"; default "5";
description description
"The maximum number of times the system tries to "The maximum number of times the system tries to
skipping to change at line 2627 skipping to change at line 3083
Protocol (PCEP)"; Protocol (PCEP)";
} }
leaf open-wait-timer { leaf open-wait-timer {
type uint16; type uint16;
units "seconds"; units "seconds";
config false; config false;
description description
"The time in seconds that the PCEP entity will wait "The time in seconds that the PCEP entity will wait
to receive an Open message from a peer after the to receive an Open message from a peer after the
TCP connection has come up. TCP connection has come up.
If no Open message is received within this time then If no Open message is received within this time, then
PCEP terminates the TCP connection and deletes the PCEP terminates the TCP connection and deletes the
associated sessions."; associated sessions.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
leaf keep-wait-timer { leaf keep-wait-timer {
type uint16; type uint16;
units "seconds"; units "seconds";
config false; config false;
description description
"The time in seconds that the PCEP entity will wait "The time in seconds that the PCEP entity will wait
to receive a Keepalive or PCErr message from a peer to receive a Keepalive or PCErr message from a peer
during session initialization after receiving an during session initialization after receiving an
Open message. If no Keepalive or PCErr message is Open message. If no Keepalive or PCErr message is
received within this time then PCEP terminates the received within this time, then PCEP terminates the
TCP connection and deletes the associated TCP connection and deletes the associated
sessions."; sessions.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
leaf keepalive-timer { leaf keepalive-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
default "30"; default "30";
description description
"The Keepalive timer that this PCEP "The Keepalive timer that this PCEP
entity will propose in the initial Open message of entity will propose in the initial Open message of
each session it is involved in. This is the each session it is involved in. This is the
maximum time between two consecutive messages sent maximum time between two consecutive messages sent
to a peer. Zero means that the PCEP entity prefers to a peer. Zero means that the PCEP entity prefers
not to send Keepalives at all. not to send Keepalives at all.
Note that the actual Keepalive transmission Note that the actual Keepalive transmission
intervals, in either direction of an active PCEP intervals, in either direction of an active PCEP
session, are determined by negotiation between the session, are determined by negotiation between the
peers as specified by RFC 5440, and so may differ peers as specified by RFC 5440 and thus may differ
from this configured value."; from this configured value.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
leaf dead-timer { leaf dead-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
must '(. > ../keepalive-timer)' { must '(. > ../keepalive-timer)' {
error-message "The DeadTimer must be " error-message "The DeadTimer must be "
+ "larger than the Keepalive timer"; + "larger than the Keepalive timer";
} }
default "120"; default "120";
description description
"The DeadTimer that this PCEP entity will propose "The DeadTimer that this PCEP entity will propose
in the initial Open message of each session it is in the initial Open message of each session it is
involved in. This is the time after which a peer involved in. This is the time after which a peer
should declare a session down if it does not should declare a session down if it does not
receive any PCEP messages. Zero suggests that the receive any PCEP messages. Zero suggests that the
peer does not run a DeadTimer at all."; peer does not run a DeadTimer at all.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
leaf allow-negotiation { leaf allow-negotiation {
type boolean; type boolean;
default "true"; default "true";
description description
"Whether the PCEP entity will permit the negotiation "Whether the PCEP entity will permit the negotiation
of session parameters."; of session parameters.";
} }
leaf max-keepalive-timer { leaf max-keepalive-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
mandatory true; mandatory true;
description description
"The maximum value that this PCEP entity will "The maximum value that this PCEP entity will
accept from a peer for the interval between accept from a peer for the interval between
Keepalive transmissions. Zero means that the PCEP Keepalive transmissions. Zero means that the PCEP
entity will allow no Keepalive transmission at entity will allow no Keepalive transmission at
all."; all.";
} }
leaf max-dead-timer { leaf max-dead-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
mandatory true; mandatory true;
description description
"The maximum value in seconds, that this PCEP "The maximum value in seconds that this PCEP
entity will accept from a peer for the DeadTimer. entity will accept from a peer for the DeadTimer.
Zero means that the PCEP entity will allow not Zero means that the PCEP entity will allow not
running a DeadTimer."; running a DeadTimer.";
} }
leaf min-keepalive-timer { leaf min-keepalive-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
mandatory true; mandatory true;
description description
"The minimum value in seconds, that this PCEP "The minimum value in seconds that this PCEP
entity will accept for the interval between entity will accept for the interval between
Keepalive transmissions. Zero means that the Keepalive transmissions. Zero means that the
PCEP entity insists on no Keepalive PCEP entity insists on no Keepalive
transmission at all."; transmission at all.";
} }
leaf min-dead-timer { leaf min-dead-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
mandatory true; mandatory true;
description description
"The minimum value in seconds, that this PCEP "The minimum value in seconds that this PCEP
entity will accept for the DeadTimer. Zero entity will accept for the DeadTimer. Zero
means that the PCEP entity insists on not means that the PCEP entity insists on not
running a DeadTimer."; running a DeadTimer.";
} }
leaf sync-timer { leaf sync-timer {
if-feature "svec"; if-feature "svec";
type uint16; type uint16;
units "seconds"; units "seconds";
default "60"; default "60";
description description
"The value of SyncTimer in seconds is used in the "The value of SyncTimer in seconds is used in the
case of synchronized path computation request case of synchronized path computation request
using the SVEC object. If after the expiration of using the SVEC object. If after the expiration of
the SyncTimer all the path computation requests the SyncTimer all the path computation requests
have not been received, a protocol error is have not been received, a protocol error is
triggered and the PCE must cancel the whole set triggered, and the PCE must cancel the whole set
of path computation requests. of path computation requests.
Zero means that the PCEP entity does not use the Zero means that the PCEP entity does not use the
SyncTimer."; SyncTimer.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf request-timer { leaf request-timer {
type uint16 { type uint16 {
range "1..max"; range "1..max";
skipping to change at line 2809 skipping to change at line 3265
per minute before terminating the session."; per minute before terminating the session.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf pcep-notification-max-rate { leaf pcep-notification-max-rate {
type uint32; type uint32;
mandatory true; mandatory true;
description description
"This variable indicates the maximum number of "This variable indicates the maximum number of
notifications issued per second. If events notifications issued per second. If events
occur more rapidly, the implementation may occur more rapidly, the implementation may
simply fail to emit these notifications during simply fail to emit these notifications during
that period, or may queue them until an that period or may queue them until an
appropriate time. A value of 0 means no appropriate time. A value of 0 means no
notifications are emitted and all should be notifications are emitted and all should be
discarded (that is, not queued)."; discarded (that is, not queued).";
} }
container stateful-parameter { container stateful-parameter {
if-feature "stateful"; if-feature "stateful";
description description
"The configured stateful PCE parameters"; "The configured stateful PCE parameters.";
leaf state-timeout { leaf state-timeout {
type uint32; type uint32;
units "seconds"; units "seconds";
mandatory true; mandatory true;
description description
"When a PCEP session is terminated, a PCC "When a PCEP session is terminated, a PCC
waits for this time period before flushing waits for this time period before flushing
LSP state associated with that PCEP session LSP state associated with that PCEP session
and reverting to operator-defined default and reverting to operator-defined default
parameters or behaviours. The max value parameters or behaviors. The max value
represents infinity."; represents infinity.";
reference reference
"RFC 8231: Path Computation Element Communication "RFC 8231: Path Computation Element Communication
Protocol (PCEP) Extensions for Stateful PCE"; Protocol (PCEP) Extensions for Stateful PCE";
} }
leaf redelegation-timeout { leaf redelegation-timeout {
when "../../role = 'pcc'" when "../../role = 'pcc'"
+ "or " + "or "
+ "../../role = 'pcc-and-pce'" { + "../../role = 'pcc-and-pce'" {
description description
"This field is applicable when the role is "This field is applicable when the role is
PCC"; PCC.";
} }
type uint32; type uint32;
units "seconds"; units "seconds";
must '(. < ../state-timeout)' { must '(. < ../state-timeout)' {
error-message "The Redelegation Timeout must be " error-message "The Redelegation Timeout must be "
+ "less than the State Timeout"; + "less than the State Timeout";
} }
mandatory true; mandatory true;
description description
"When a PCEP session is terminated, a PCC "When a PCEP session is terminated, a PCC
skipping to change at line 2868 skipping to change at line 3324
reference reference
"RFC 8231: Path Computation Element Communication "RFC 8231: Path Computation Element Communication
Protocol (PCEP) Extensions for Stateful PCE"; Protocol (PCEP) Extensions for Stateful PCE";
} }
leaf rpt-non-pcep-lsp { leaf rpt-non-pcep-lsp {
when "../../role = 'pcc'" when "../../role = 'pcc'"
+ "or " + "or "
+ "../../role = 'pcc-and-pce'" { + "../../role = 'pcc-and-pce'" {
description description
"This field is applicable when the role is "This field is applicable when the role is
PCC"; PCC.";
} }
type boolean; type boolean;
default "true"; default "true";
description description
"If set, a PCC reports LSPs that are not "If set, a PCC reports LSPs that are not
controlled by any PCE (for example, LSPs controlled by any PCE (for example, LSPs
that are statically configured at the that are statically configured at the
PCC). "; PCC).";
} }
reference reference
"RFC 8231: Path Computation Element Communication Protocol "RFC 8231: Path Computation Element Communication Protocol
(PCEP) Extensions for Stateful PCE"; (PCEP) Extensions for Stateful PCE";
} }
container of-list { container of-list {
when "../role = 'pce'" when "../role = 'pce'"
+ "or " + "or "
+ "../role = 'pcc-and-pce'" { + "../role = 'pcc-and-pce'" {
description description
"These fields are applicable when the role is "These fields are applicable when the role is
PCE"; PCE.";
} }
if-feature "objective-function"; if-feature "objective-function";
uses of-list; uses of-list;
description description
"The authorized OF-List at PCE for all peers"; "The authorized OF-List at PCE for all peers.";
} }
container lsp-db { container lsp-db {
if-feature "stateful"; if-feature "stateful";
config false; config false;
description description
"The LSP-DB"; "The LSP-DB.";
leaf db-ver { leaf db-ver {
when "../../role = 'pcc'" when "../../role = 'pcc'"
+ "or " + "or "
+ "../../role = 'pcc-and-pce'" { + "../../role = 'pcc-and-pce'" {
description description
"This field is applicable when the role is "This field is applicable when the role is
PCC"; PCC.";
} }
if-feature "sync-opt"; if-feature "sync-opt";
type uint64; type uint64;
description description
"The LSP State Database Version Number"; "The LSP State Database Version Number.";
} }
list association-list { list association-list {
if-feature "association"; if-feature "association";
key "type id source global-source extended-id"; key "type id source global-source extended-id";
description description
"List of all PCEP associations"; "List of all PCEP associations.";
reference reference
"RFC 8697: Path Computation Element Communication "RFC 8697: Path Computation Element Communication
Protocol (PCEP) Extensions for Establishing Protocol (PCEP) Extensions for Establishing
Relationships between Sets of Label Switched Relationships between Sets of Label Switched
Paths (LSPs)"; Paths (LSPs)";
leaf type { leaf type {
type identityref { type identityref {
base te-types:association-type; base te-types:association-type;
} }
description description
"The PCEP Association Type"; "The PCEP Association Type.";
reference reference
"IANA PCEP: ASSOCIATION Type Field in Path "IANA PCEP: ASSOCIATION Type Field in Path
Computation Element Protocol (PCEP) Numbers Computation Element Protocol (PCEP) Numbers
RFC 8697: Path Computation Element Communication RFC 8697: Path Computation Element Communication
Protocol (PCEP) Extensions for Establishing Protocol (PCEP) Extensions for Establishing
Relationships between Sets of Label Switched Relationships between Sets of Label Switched
Paths (LSPs)"; Paths (LSPs)";
} }
leaf id { leaf id {
type uint16; type uint16;
description description
"PCEP Association ID"; "PCEP Association ID.";
} }
leaf source { leaf source {
type inet:ip-address-no-zone; type inet:ip-address-no-zone;
description description
"PCEP Association Source."; "PCEP Association Source.";
} }
leaf global-source { leaf global-source {
type uint32; type uint32;
description description
"PCEP Global Association Source."; "PCEP Global Association Source.";
} }
leaf extended-id { leaf extended-id {
type string; type string;
description description
"Additional information to support unique "Additional information to support unique
identification (Extended Association ID)."; identification (Extended Association ID).";
} }
list lsp { list lsp {
key "plsp-id pcc-id lsp-id"; key "plsp-id pcc-id lsp-id";
description description
"List of all LSP in this association"; "List of all LSP in this association.";
leaf plsp-id { leaf plsp-id {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "lsp/plsp-id"; + "lsp/plsp-id";
} }
description description
"Reference to PLSP-ID in LSP-DB"; "Reference to PLSP-ID in LSP-DB.";
} }
leaf pcc-id { leaf pcc-id {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "lsp[plsp-id=current()/" + "lsp[plsp-id=current()/"
+ "../plsp-id]/pcc-id"; + "../plsp-id]/pcc-id";
} }
description description
"Reference to PCC-ID in LSP-DB"; "Reference to PCC-ID in LSP-DB.";
} }
leaf lsp-id { leaf lsp-id {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "lsp[plsp-id=current()/../plsp-id]" + "lsp[plsp-id=current()/../plsp-id]"
+ "[pcc-id=current()/../pcc-id]/lsp-id"; + "[pcc-id=current()/../pcc-id]/lsp-id";
} }
description description
"Reference to LSP ID in LSP-DB"; "Reference to LSP-ID in LSP-DB.";
} }
} }
} }
list lsp { list lsp {
key "plsp-id pcc-id lsp-id"; key "plsp-id pcc-id lsp-id";
description description
"List of all LSPs in LSP-DB"; "List of all LSPs in LSP-DB.";
leaf plsp-id { leaf plsp-id {
type uint32 { type uint32 {
range "1..1048575"; range "1..1048575";
} }
description description
"A PCEP-specific identifier for the LSP. A PCC "A PCEP-specific identifier for the LSP. A PCC
creates a unique PLSP-ID for each LSP that is creates a unique PLSP-ID for each LSP that is
constant for the lifetime of a PCEP session. constant for the lifetime of a PCEP session.
PLSP-ID is 20 bits with 0 and 0xFFFFF are PLSP-ID is 20 bits with 0 and 0xFFFFF
reserved"; reserved.";
} }
leaf pcc-id { leaf pcc-id {
type inet:ip-address-no-zone; type inet:ip-address-no-zone;
description description
"The local IP address of the PCC, that "The local IP address of the PCC that
generated the PLSP-ID."; generated the PLSP-ID.";
} }
leaf source { leaf source {
type inet:ip-address-no-zone; type inet:ip-address-no-zone;
description description
"Tunnel sender address extracted from "Tunnel sender address extracted from
LSP-IDENTIFIERS TLV"; LSP-IDENTIFIERS TLV.";
reference reference
"RFC 8231: Path Computation Element "RFC 8231: Path Computation Element
Communication Protocol (PCEP) Extensions Communication Protocol (PCEP) Extensions
for Stateful PCE"; for Stateful PCE";
} }
leaf destination { leaf destination {
type inet:ip-address-no-zone; type inet:ip-address-no-zone;
description description
"Tunnel endpoint address extracted from "Tunnel endpoint address extracted from
LSP-IDENTIFIERS TLV"; LSP-IDENTIFIERS TLV.";
reference reference
"RFC 8231: Path Computation Element "RFC 8231: Path Computation Element
Communication Protocol (PCEP) Extensions Communication Protocol (PCEP) Extensions
for Stateful PCE"; for Stateful PCE";
} }
leaf tunnel-id { leaf tunnel-id {
type uint16; type uint16;
description description
"Tunnel identifier used in the LSP-IDENTIFIERS "Tunnel identifier used in the LSP-IDENTIFIERS
TLV that remains constant over the life TLV that remains constant over the life
skipping to change at line 3056 skipping to change at line 3512
that can be changed to allow a sender to share that can be changed to allow a sender to share
resources with itself."; resources with itself.";
reference reference
"RFC 8231: Path Computation Element "RFC 8231: Path Computation Element
Communication Protocol (PCEP) Extensions Communication Protocol (PCEP) Extensions
for Stateful PCE"; for Stateful PCE";
} }
leaf extended-tunnel-id { leaf extended-tunnel-id {
type inet:ip-address-no-zone; type inet:ip-address-no-zone;
description description
"Extended Tunnel ID of the LSP in LSP-IDENTIFIERS "Extended tunnel ID of the LSP in LSP-IDENTIFIERS
TLV. The all-zeros format is represented as TLV. The all-zeros format is represented as
0.0.0.0 and ::."; 0.0.0.0 and ::.";
reference reference
"RFC 8231: Path Computation Element "RFC 8231: Path Computation Element
Communication Protocol (PCEP) Extensions Communication Protocol (PCEP) Extensions
for Stateful PCE"; for Stateful PCE";
} }
leaf admin-state { leaf admin-state {
type boolean; type boolean;
default "true"; default "true";
description description
"The desired operational state"; "The desired operational state.";
} }
leaf operational-state { leaf operational-state {
type operational-state; type operational-state;
description description
"The operational status of the LSP"; "The operational status of the LSP.";
} }
container delegated { container delegated {
description description
"The delegation related parameters"; "The delegation-related parameters.";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"LSP is delegated or not; set to true when "LSP is delegated or not; set to true when
delegated"; delegated.";
} }
leaf peer { leaf peer {
when '../enabled' { when '../enabled' {
description description
"The LSP must be delegated"; "The LSP must be delegated.";
} }
type leafref { type leafref {
path "/pcep/entity/peers/peer/addr"; path "/pcep/entity/peers/peer/addr";
} }
description description
"At the PCC, the reference to the PCEP peer to "At the PCC, the reference to the PCEP peer to
which LSP is delegated; At the PCE, the which LSP is delegated; at the PCE, the
reference to the PCEP peer which delegated this reference to the PCEP peer that delegated this
LSP"; LSP.";
} }
leaf srp-id { leaf srp-id {
type uint32 { type uint32 {
range "1..4294967294"; range "1..4294967294";
} }
description description
"The last SRP-ID-number associated with this "The last SRP-ID-number associated with this
LSP. The value 0x00000000 and 0xFFFFFFFF LSP. The values 0x00000000 and 0xFFFFFFFF
are reserved."; are reserved.";
} }
} }
container initiation { container initiation {
if-feature "pce-initiated"; if-feature "pce-initiated";
description description
"The PCE initiation related parameters"; "The parameters related to PCE initiation.";
reference reference
"RFC 8281: Path Computation Element Communication "RFC 8281: Path Computation Element Communication
Protocol (PCEP) Extensions for PCE-Initiated LSP Protocol (PCEP) Extensions for PCE-Initiated LSP
Setup in a Stateful PCE Model"; Setup in a Stateful PCE Model";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"Set to true if this LSP is initiated by a PCE"; "Set to true if this LSP is initiated by a PCE.";
} }
leaf peer { leaf peer {
when '../enabled' { when '../enabled' {
description description
"The LSP must be PCE-Initiated"; "The LSP must be PCE-initiated.";
} }
type leafref { type leafref {
path "/pcep/entity/peers/peer/addr"; path "/pcep/entity/peers/peer/addr";
} }
description description
"If the role is PCC, this leaf refers to the PCEP "If the role is PCC, this leaf refers to the PCEP
peer (PCE) that initiated this LSP. If the role peer (PCE) that initiated this LSP. If the role
is PCE, this leaf refers to the PCEP peer (PCC) is PCE, this leaf refers to the PCEP peer (PCC)
where the LSP is initiated"; where the LSP is initiated.";
} }
} }
leaf symbolic-path-name { leaf symbolic-path-name {
type string; type string;
description description
"The symbolic path name associated with the LSP."; "The symbolic path name associated with the LSP.";
reference reference
"RFC 8231: Path Computation Element Communication "RFC 8231: Path Computation Element Communication
Protocol (PCEP) Extensions for Stateful PCE"; Protocol (PCEP) Extensions for Stateful PCE";
} }
skipping to change at line 3159 skipping to change at line 3615
} }
description description
"The last error for the LSP."; "The last error for the LSP.";
} }
leaf pst { leaf pst {
type identityref { type identityref {
base te-types:path-signaling-type; base te-types:path-signaling-type;
} }
default "te-types:path-setup-rsvp"; default "te-types:path-setup-rsvp";
description description
"The Path Setup Type (PST). Note that the "The Path Setup Type (PST). Note that the
te-types model uses the term Path Signaling te-types model uses the term Path Signaling
Type"; Type.";
reference reference
"RFC 8408: Conveying Path Setup Type in PCE "RFC 8408: Conveying Path Setup Type in PCE
Communication Protocol (PCEP) Messages"; Communication Protocol (PCEP) Messages";
} }
list association-list { list association-list {
if-feature "association"; if-feature "association";
key "type id source global-source extended-id"; key "type id source global-source extended-id";
description description
"List of all PCEP associations"; "List of all PCEP associations.";
leaf type { leaf type {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "association-list/type"; + "association-list/type";
} }
description description
"PCEP Association Type"; "PCEP Association Type.";
} }
leaf id { leaf id {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "association-list[type=current()/" + "association-list[type=current()/"
+ "../type]/id"; + "../type]/id";
} }
description description
"PCEP Association ID"; "PCEP Association ID.";
} }
leaf source { leaf source {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "association-list[type=current()/../type]" + "association-list[type=current()/../type]"
+ "[id=current()/../id]/source"; + "[id=current()/../id]/source";
} }
description description
"PCEP Association Source."; "PCEP Association Source.";
} }
skipping to change at line 3233 skipping to change at line 3689
Protocol (PCEP) Extensions for Establishing Protocol (PCEP) Extensions for Establishing
Relationships between Sets of Label Switched Relationships between Sets of Label Switched
Paths (LSPs)"; Paths (LSPs)";
} }
} }
} }
container path-keys { container path-keys {
when "../role = 'pce' or ../role = 'pcc-and-pce'" { when "../role = 'pce' or ../role = 'pcc-and-pce'" {
description description
"These fields are applicable when the role is "These fields are applicable when the role is
PCE"; PCE.";
} }
if-feature "path-key"; if-feature "path-key";
config false; config false;
description description
"The path-keys generated by the PCE"; "The path-keys generated by the PCE.";
reference reference
"RFC 5520: Preserving Topology Confidentiality "RFC 5520: Preserving Topology Confidentiality
in Inter-Domain Path Computation Using a Path- in Inter-Domain Path Computation Using a Path-
Key-Based Mechanism"; Key-Based Mechanism";
list path-key { list path-key {
key "key"; key "key";
description description
"The list of path-keys generated by the PCE"; "The list of path-keys generated by the PCE.";
leaf key { leaf key {
type uint16; type uint16;
description description
"The identifier, or token used to represent "The identifier or token used to represent
the Confidential Path Segment (CPS) within the Confidential Path Segment (CPS) within
the context of the PCE"; the context of the PCE.";
} }
container cps { container cps {
description description
"The Confidential Path Segment (CPS)"; "The Confidential Path Segment (CPS).";
list explicit-route-objects { list explicit-route-objects {
key "index"; key "index";
description description
"List of explicit route objects"; "List of Explicit Route Objects (EROs).";
leaf index { leaf index {
type uint32; type uint32;
description description
"ERO subobject index"; "ERO subobject index.";
} }
uses te-types:explicit-route-hop; uses te-types:explicit-route-hop;
} }
} }
leaf pcc-requester { leaf pcc-requester {
type leafref { type leafref {
path "/pcep/entity/peers/peer/addr"; path "/pcep/entity/peers/peer/addr";
} }
description description
"Reference to PCC peer address that "Reference to PCC peer address that
skipping to change at line 3286 skipping to change at line 3742
to the creation of the path-key."; to the creation of the path-key.";
} }
leaf req-id { leaf req-id {
type uint32; type uint32;
description description
"The request ID of the original PCReq."; "The request ID of the original PCReq.";
} }
leaf retrieved { leaf retrieved {
type boolean; type boolean;
description description
"If path-key has been retrieved yet"; "If path-key has been retrieved yet.";
} }
leaf pcc-retrieved { leaf pcc-retrieved {
when '../retrieved' { when '../retrieved' {
description description
"The Path-key should be retrieved"; "The path-key should be retrieved.";
} }
type leafref { type leafref {
path "/pcep/entity/peers/peer/addr"; path "/pcep/entity/peers/peer/addr";
} }
description description
"Reference to PCC peer address which "Reference to PCC peer address that
retrieved the path-key"; retrieved the path-key.";
} }
leaf creation-time { leaf creation-time {
type yang:timestamp; type yang:timestamp;
description description
"The timestamp value at the time this Path-Key "The timestamp value at the time this path-key
was created."; was created.";
} }
leaf discard-time { leaf discard-time {
type uint32; type uint32;
units "minutes"; units "minutes";
description description
"A time after which this path-keys will be "A time after which this path-keys will be
discarded"; discarded.";
} }
leaf reuse-time { leaf reuse-time {
type uint32; type uint32;
units "minutes"; units "minutes";
description description
"A time after which this path-keys could be "A time after which this path-keys could be
reused"; reused.";
} }
} }
} }
container peers { container peers {
description description
"The list of configured peers for the "The list of configured peers for the
entity (remote PCE)"; entity (remote PCE).";
list peer { list peer {
key "addr"; key "addr";
description description
"The peer configured for the entity. "The peer configured for the entity.
(remote PCE)"; (remote PCE).";
leaf addr { leaf addr {
type inet:ip-address-no-zone; type inet:ip-address-no-zone;
description description
"The local Internet address of this "The local Internet address of this
PCEP peer."; PCEP peer.";
} }
leaf role { leaf role {
type role; type role;
must '(. != "pcc-and-pce")' { must '(. != "pcc-and-pce")' {
error-message error-message
"The PCEP peer cannot be both "The PCEP peer cannot be both
PCE and PCC at the same time"; PCE and PCC at the same time";
} }
mandatory true; mandatory true;
description description
"The role of the PCEP Peer. "The role of the PCEP peer.
Takes one of the following values: Takes one of the following values:
- unknown(0): this PCEP peer role is not - unknown(0): this PCEP peer role is not
known, known,
- pcc(1): this PCEP peer is a PCC, - pcc(1): this PCEP peer is a PCC,
- pce(2): this PCEP peer is a PCE, - pce(2): this PCEP peer is a PCE,
- pcc-and-pce(3): is not allowed as PCEP - pcc-and-pce(3): is not allowed as PCEP
peer cannot be acting as both a PCC and a peer cannot be acting as both a PCC and a
PCE at the sametime."; PCE at the same time.";
} }
leaf description { leaf description {
type string; type string;
description description
"Description of the PCEP peer "Description of the PCEP peer
configured by the user"; configured by the user.";
} }
uses domain-info { uses domain-info {
description description
"PCE Peer information"; "PCE peer information.";
} }
container pce-info { container pce-info {
uses pce-info { uses pce-info {
description description
"Using the PCE Peer information grouping"; "Using the PCE peer information grouping.";
} }
description description
"The PCE Peer information"; "The PCE peer information.";
} }
leaf delegation-pref { leaf delegation-pref {
if-feature "stateful"; if-feature "stateful";
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
mandatory true; mandatory true;
description description
"The PCE peer delegation preference where "The PCE peer delegation preference, where
7 reflects the highest preference"; 7 reflects the highest preference.";
} }
uses auth { uses auth {
description description
"The PCE peer authorization and security "The PCE peer authorization and security
parameters"; parameters.";
} }
leaf discontinuity-time { leaf discontinuity-time {
type yang:timestamp; type yang:timestamp;
config false; config false;
description description
"The timestamp of the time when the information and "The timestamp of the time when the information and
statistics were last reset."; statistics were last reset.";
} }
leaf initiate-session { leaf initiate-session {
type boolean; type boolean;
config false; config false;
description description
"Indicates whether the local PCEP entity initiates "Indicates whether the local PCEP entity initiates
sessions to this peer, or wait for the peer to sessions to this peer or waits for the peer to
initiate a session."; initiate a session.";
} }
leaf session-exists { leaf session-exists {
type boolean; type boolean;
config false; config false;
description description
"Indicates whether a session with "Indicates whether a session with
this peer currently exists."; this peer currently exists.";
} }
leaf session-up-time { leaf session-up-time {
skipping to change at line 3447 skipping to change at line 3903
description description
"This entry represents a single PCEP "This entry represents a single PCEP
session in which the local PCEP entity participates. session in which the local PCEP entity participates.
This entry exists only if the corresponding PCEP This entry exists only if the corresponding PCEP
session has been initialized by some event, such as session has been initialized by some event, such as
manual user configuration, auto-discovery of a peer, manual user configuration, auto-discovery of a peer,
or an incoming TCP connection."; or an incoming TCP connection.";
list session { list session {
key "initiator"; key "initiator";
description description
"The list of sessions, note that for a time being "The list of sessions; note that for a time being
two sessions may exist for a peer"; two sessions may exist for a peer.";
leaf initiator { leaf initiator {
type initiator; type initiator;
description description
"The initiator of the session, that is, whether "The initiator of the session, that is, whether
the TCP connection was initiated by the local the TCP connection was initiated by the local
PCEP entity or the peer. PCEP entity or the peer.
There is a window during session There is a window during session
initialization where two sessions can exist initialization where two sessions can exist
between a pair of PCEP speakers, each between a pair of PCEP speakers, each
initiated by one of the speakers. One of initiated by one of the speakers. One of
these sessions is always discarded before it these sessions is always discarded before it
leaves OpenWait state. However, before it is leaves OpenWait state. However, before it is
discarded, two sessions to the given peer discarded, two sessions to the given peer
appear transiently in this YANG module. The appear transiently in this YANG module. The
sessions are distinguished by who initiated sessions are distinguished by who initiated
them, and so this field is the key."; them, and so this field is the key.";
} }
leaf role { leaf role {
type leafref { type leafref {
path "../../../role"; path "../../../role";
} }
description description
"The peer role."; "The peer role.";
} }
skipping to change at line 3500 skipping to change at line 3956
description description
"The timestamp value at the time this "The timestamp value at the time this
session was created."; session was created.";
} }
leaf connect-retry { leaf connect-retry {
type yang:counter32; type yang:counter32;
description description
"The number of times that the local PCEP "The number of times that the local PCEP
entity has attempted to establish a TCP entity has attempted to establish a TCP
connection for this session without connection for this session without
success. The PCEP entity gives up when success. The PCEP entity gives up when
this reaches connect-max-retry."; this reaches connect-max-retry.";
} }
leaf local-id { leaf local-id {
type uint8; type uint8;
description description
"The value of the PCEP session ID used by "The value of the PCEP session ID used by
the local PCEP entity in the Open message the local PCEP entity in the Open message
for this session. If the state is tcp-pending for this session. If the state is tcp-pending,
then this is the session ID that will be then this is the session ID that will be
used in the Open message. Otherwise, this used in the Open message. Otherwise, this
is the session ID that was sent in the is the session ID that was sent in the
Open message."; Open message.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf remote-id { leaf remote-id {
type uint8; type uint8;
description description
"The value of the PCEP session ID used by the "The value of the PCEP session ID used by the
peer in its Open message for this session. peer in its Open message for this session.
If the state is TCPPending or OpenWait then If the state is TCPPending or OpenWait, then
this leaf is not used and MUST be set to this leaf is not used and MUST be set to
zero."; zero.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf keepalive-timer { leaf keepalive-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
description description
"The agreed maximum interval at which the local "The agreed maximum interval at which the local
PCEP entity transmits PCEP messages on this PCEP PCEP entity transmits PCEP messages on this PCEP
session. Zero means that the local PCEP entity session. Zero means that the local PCEP entity
never sends Keepalives on this session. never sends Keepalives on this session.
This field is used if and only if the state This field is used if and only if the state
is session-up. Otherwise, it is not used and is session-up. Otherwise, it is not used and
MUST be set to zero."; MUST be set to zero.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf peer-keepalive-timer { leaf peer-keepalive-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
description description
"The agreed maximum interval at which the peer "The agreed maximum interval at which the peer
transmits PCEP messages on this PCEP session. transmits PCEP messages on this PCEP session.
Zero means that the peer never sends Keepalives Zero means that the peer never sends Keepalives
on this session. on this session.
This field is used if and only if state is This field is used if and only if state is
session-up. Otherwise, it is not used and MUST session-up. Otherwise, it is not used and MUST
be set to zero."; be set to zero.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf dead-timer { leaf dead-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
description description
"The DeadTimer interval for this PCEP session."; "The DeadTimer interval for this PCEP session.";
skipping to change at line 3578 skipping to change at line 4034
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf peer-dead-timer { leaf peer-dead-timer {
type uint8; type uint8;
units "seconds"; units "seconds";
description description
"The peer's DeadTimer interval for this PCEP "The peer's DeadTimer interval for this PCEP
session. session.
If the state is TCPPending or OpenWait then If the state is TCPPending or OpenWait, then
this leaf is not used and MUST be set to zero."; this leaf is not used and MUST be set to zero.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf ka-hold-time-rem { leaf ka-hold-time-rem {
type uint8; type uint8;
units "seconds"; units "seconds";
description description
"The Keepalive hold time remaining for this "The Keepalive hold time remaining for this
session. session.
If the state is TCPPending or OpenWait then If the state is TCPPending or OpenWait, then
this field is not used and MUST be set to this field is not used and MUST be set to
zero."; zero.";
} }
leaf overloaded { leaf overloaded {
type boolean; type boolean;
description description
"If the local PCEP entity has informed the peer "If the local PCEP entity has informed the peer
that it is currently overloaded, then this is that it is currently overloaded, then this is
set to true. Otherwise, it is set to false."; set to true. Otherwise, it is set to false.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf overloaded-timestamp { leaf overloaded-timestamp {
when '../overloaded' { when '../overloaded' {
description description
"Valid when overloaded"; "Valid when overloaded.";
} }
type yang:timestamp; type yang:timestamp;
description description
"The timestamp value of the time when the "The timestamp value of the time when the
overloaded field was set to true."; overloaded field was set to true.";
} }
leaf overload-time { leaf overload-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"The interval of time that is remaining until the "The interval of time that is remaining until the
local PCEP entity will cease to be overloaded on local PCEP entity will cease to be overloaded on
this session. this session.
This field is only used if overloaded is set to This field is only used if overloaded is set to
true. Otherwise, it is not used and MUST be set true. Otherwise, it is not used and MUST be set
to zero."; to zero.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf peer-overloaded { leaf peer-overloaded {
type boolean; type boolean;
description description
"If the peer has informed the local PCEP entity "If the peer has informed the local PCEP entity
that it is currently overloaded, then this is that it is currently overloaded, then this is
set to true. Otherwise, it is set to false."; set to true. Otherwise, it is set to false.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf peer-overloaded-timestamp { leaf peer-overloaded-timestamp {
when '../peer-overloaded' { when '../peer-overloaded' {
description description
"Valid when Peer is overloaded"; "Valid when peer is overloaded.";
} }
type yang:timestamp; type yang:timestamp;
description description
"The timestamp value of the time when the "The timestamp value of the time when the
peer-overloaded field was set to true."; peer-overloaded field was set to true.";
} }
leaf peer-overload-time { leaf peer-overload-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"The interval of time that is remaining until "The interval of time that is remaining until
the peer will cease to be overloaded. If it the peer will cease to be overloaded. If it
is not known how long the peer will stay in is not known how long the peer will stay in
overloaded state, this leaf is set to zero. overloaded state, this leaf is set to zero.
This field is only used if peer-overloaded This field is only used if peer-overloaded
is set to true. Otherwise, it is not used is set to true. Otherwise, it is not used
and MUST be set to zero."; and MUST be set to zero.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
} }
leaf lspdb-sync { leaf lspdb-sync {
if-feature "stateful"; if-feature "stateful";
type sync-state; type sync-state;
description description
"The LSP-DB state synchronization status."; "The LSP-DB state synchronization status.";
reference reference
"RFC 8231: Path Computation Element Communication "RFC 8231: Path Computation Element Communication
Protocol (PCEP) Extensions for Stateful PCE"; Protocol (PCEP) Extensions for Stateful PCE";
} }
leaf recv-db-ver { leaf recv-db-ver {
when "../role = 'pcc'" when "../role = 'pcc'"
+ "or " + "or "
+ "../role = 'pcc-and-pce'" { + "../role = 'pcc-and-pce'" {
description description
"This field is applicable when the role is "This field is applicable when the role is
PCC"; PCC.";
} }
if-feature "stateful"; if-feature "stateful";
if-feature "sync-opt"; if-feature "sync-opt";
type uint64; type uint64;
description description
"The last received LSP State Database Version "The last received LSP State Database Version
Number"; Number.";
reference reference
"RFC 8231: Path Computation Element Communication "RFC 8231: Path Computation Element Communication
Protocol (PCEP) Extensions for Stateful PCE"; Protocol (PCEP) Extensions for Stateful PCE";
} }
container of-list { container of-list {
when "../role = 'pce'" when "../role = 'pce'"
+ "or " + "or "
+ "../role = 'pcc-and-pce'" { + "../role = 'pcc-and-pce'" {
description description
"These fields are applicable when the role is "These fields are applicable when the role is
PCE"; PCE.";
} }
if-feature "objective-function"; if-feature "objective-function";
uses of-list; uses of-list;
description description
"Indicate the list of supported OF on this "Indicate the list of supported OF on this
session"; session.";
reference reference
"RFC 5541: Encoding of Objective Functions in "RFC 5541: Encoding of Objective Functions in
the Path Computation Element Communication the Path Computation Element Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
container pst-list { container pst-list {
when "../role = 'pce'" when "../role = 'pce'"
+ "or " + "or "
+ "../role = 'pcc-and-pce'" { + "../role = 'pcc-and-pce'" {
description description
"These fields are applicable when the role is "These fields are applicable when the role is
PCE"; PCE.";
} }
description description
"Indicate the list of supported "Indicate the list of supported
PST on this session"; PST on this session.";
reference reference
"RFC 8408: Conveying Path Setup Type in PCE "RFC 8408: Conveying Path Setup Type in PCE
Communication Protocol (PCEP) Messages"; Communication Protocol (PCEP) Messages";
list path-setup-type { list path-setup-type {
key "pst"; key "pst";
description description
"The list of PST"; "The list of PST.";
leaf pst { leaf pst {
type identityref { type identityref {
base te-types:path-signaling-type; base te-types:path-signaling-type;
} }
description description
"The PST supported"; "The PST supported.";
} }
} }
} }
container assoc-type-list { container assoc-type-list {
if-feature "association"; if-feature "association";
description description
"Indicate the list of supported association types "Indicate the list of supported association types
on this session"; on this session.";
reference reference
"RFC 8697: Path Computation Element Communication "RFC 8697: Path Computation Element Communication
Protocol (PCEP) Extensions for Establishing Protocol (PCEP) Extensions for Establishing
Relationships between Sets of Label Switched Relationships between Sets of Label Switched
Paths (LSPs)"; Paths (LSPs)";
list assoc-type { list assoc-type {
key "at"; key "at";
description description
"The list of authorized association types"; "The list of authorized association types.";
leaf at { leaf at {
type identityref { type identityref {
base te-types:association-type; base te-types:association-type;
} }
description description
"The association type authorized"; "The association type authorized.";
} }
} }
} }
leaf speaker-entity-id { leaf speaker-entity-id {
if-feature "sync-opt"; if-feature "sync-opt";
type string; type string;
description description
"The Speaker Entity Identifier"; "The Speaker Entity Identifier.";
reference reference
"RFC 8232: Optimizations of Label Switched "RFC 8232: Optimizations of Label Switched
Path State Synchronization Procedures for Path State Synchronization Procedures for
a Stateful PCE"; a Stateful PCE";
} }
} }
} }
} }
} }
} }
skipping to change at line 3847 skipping to change at line 4303
notification pcep-session-local-overload { notification pcep-session-local-overload {
description description
"This notification is sent when the local PCEP entity "This notification is sent when the local PCEP entity
enters overload state for a peer."; enters overload state for a peer.";
uses notification-session-hdr; uses notification-session-hdr;
leaf overloaded { leaf overloaded {
type boolean; type boolean;
description description
"If the local PCEP entity has informed the peer "If the local PCEP entity has informed the peer
that it is currently overloaded, then this is set that it is currently overloaded, then this is set
to true. Otherwise, it is set to false."; to true. Otherwise, it is set to false.";
} }
leaf overloaded-timestamp { leaf overloaded-timestamp {
type yang:timestamp; type yang:timestamp;
description description
"The timestamp value of the time when the "The timestamp value of the time when the
overloaded field was set to true."; overloaded field was set to true.";
} }
leaf overload-time { leaf overload-time {
type uint32; type uint32;
units "seconds"; units "seconds";
skipping to change at line 3901 skipping to change at line 4357
notification pcep-session-peer-overload { notification pcep-session-peer-overload {
description description
"This notification is sent when a peer enters overload "This notification is sent when a peer enters overload
state."; state.";
uses notification-session-hdr; uses notification-session-hdr;
leaf peer-overloaded { leaf peer-overloaded {
type boolean; type boolean;
description description
"If the peer has informed the local PCEP entity that "If the peer has informed the local PCEP entity that
it is currently overloaded, then this is set to it is currently overloaded, then this is set to
true. Otherwise, it is set to false."; true. Otherwise, it is set to false.";
} }
leaf peer-overloaded-timestamp { leaf peer-overloaded-timestamp {
type yang:timestamp; type yang:timestamp;
description description
"The timestamp value of the time when the "The timestamp value of the time when the
peer-overloaded field was set to true."; peer-overloaded field was set to true.";
} }
leaf peer-overload-time { leaf peer-overload-time {
type uint32; type uint32;
units "seconds"; units "seconds";
skipping to change at line 3933 skipping to change at line 4389
notification pcep-session-peer-overload-clear { notification pcep-session-peer-overload-clear {
description description
"This notification is sent when a peer leaves overload "This notification is sent when a peer leaves overload
state."; state.";
uses notification-instance-hdr; uses notification-instance-hdr;
leaf peer-overloaded { leaf peer-overloaded {
type boolean; type boolean;
description description
"If the peer has informed the local PCEP entity that "If the peer has informed the local PCEP entity that
it is currently overloaded, then this is set to it is currently overloaded, then this is set to
true. Otherwise, it is set to false."; true. Otherwise, it is set to false.";
} }
leaf peer-overloaded-clear-timestamp { leaf peer-overloaded-clear-timestamp {
type yang:timestamp; type yang:timestamp;
description description
"The timestamp value of the time when the "The timestamp value of the time when the
peer-overloaded field was set to false."; peer-overloaded field was set to false.";
} }
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
skipping to change at line 3955 skipping to change at line 4411
/* /*
* RPC * RPC
*/ */
rpc trigger-resync { rpc trigger-resync {
if-feature "stateful"; if-feature "stateful";
if-feature "sync-opt"; if-feature "sync-opt";
nacm:default-deny-all; nacm:default-deny-all;
description description
"Trigger the resynchronization at the PCE"; "Trigger the resynchronization at the PCE.";
reference reference
"RFC 8232: Optimizations of Label Switched Path State "RFC 8232: Optimizations of Label Switched Path State
Synchronization Procedures for a Stateful PCE"; Synchronization Procedures for a Stateful PCE";
input { input {
leaf pcc { leaf pcc {
type leafref { type leafref {
path "/pcep/entity/peers/peer/addr"; path "/pcep/entity/peers/peer/addr";
} }
mandatory true; mandatory true;
description description
"The IP address to identify the PCC. The state "The IP address to identify the PCC. The state
syncronization is re-triggered for all LSPs from synchronization is re-triggered for all LSPs from
the PCC. The rpc on the PCC will be ignored."; the PCC. The rpc on the PCC will be ignored.";
} }
} }
} }
} }
]]></sourcecode>
</section>
<section toc="default" numbered="true">
<name>ietf-pcep-stats Module</name>
<CODE ENDS> <sourcecode name="ietf-pcep-stats@2025-07-24.yang" type="yang" markers="
]]></artwork> true"><![CDATA[
</figure>
</section>
<section title="ietf-pcep-stats module" toc="default">
<figure title="" suppress-title="false" align="left" alt="" width="" heigh
t="">
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height="">
<![CDATA[
<CODE BEGINS> file "ietf-pcep-stats@2025-01-27.yang"
module ietf-pcep-stats { module ietf-pcep-stats {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats";
prefix pcep-stats; prefix pcep-stats;
import ietf-pcep { import ietf-pcep {
prefix pcep; prefix pcep;
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC 9826: A YANG Data Model for the Path Computation
Element Communications Protocol (PCEP)"; Element Communication Protocol (PCEP)";
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
organization organization
"IETF PCE (Path Computation Element) Working Group"; "IETF PCE (Path Computation Element) Working Group";
contact contact
skipping to change at line 4016 skipping to change at line 4468
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
description description
"The YANG module augments the Path Computation Element "The YANG module augments the Path Computation Element
Communication Protocol (PCEP) YANG operational Communication Protocol (PCEP) YANG operational
model with statistics, counters and telemetry data. model with statistics, counters and telemetry data.
Copyright (c) 2025 IETF Trust and the persons identified as Copyright (c) 2025 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject to
to the license terms contained in, the Revised BSD License the license terms contained in, the Revised BSD License set
set forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC 9826; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2025-01-27 { revision 2025-07-24 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC 9826: A YANG Data Model for the Path Computation
Element Communications Protocol (PCEP)"; Element Communication Protocol (PCEP)";
} }
/* /*
* Features * Features
*/ */
feature reset-all { feature reset-all {
description description
"Support resetting of all PCEP statistics."; "Support resetting of all PCEP statistics.";
} }
/* /*
* Groupings * Groupings
*/ */
grouping stats { grouping stats {
description description
"This grouping defines statistics for PCEP. It is used "This grouping defines statistics for PCEP. It is used
for both peer and current sessions. Since this groupings for both peer and current sessions. Since this grouping
include a relative path, care needs to be taken while includes a relative path, care needs to be taken while
using it"; using it.";
leaf discontinuity-time { leaf discontinuity-time {
type yang:timestamp; type yang:timestamp;
description description
"The timestamp value of the time when the "The timestamp value of the time when the
statistics were last reset."; statistics were last reset.";
} }
container pce { container pce {
when "../../pcep:role = 'pce'" when "../../pcep:role = 'pce'"
+ "or " + "or "
+ "../../pcep:role = 'pcc-and-pce'" { + "../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCE"; "Valid for PCEP peer as PCE.";
} }
leaf rsp-time-avg { leaf rsp-time-avg {
type uint32; type uint32;
units "milliseconds"; units "milliseconds";
description description
"The average response time. If an average response time "The average response time. If an average response time
has not been calculated then this leaf has the value has not been calculated, then this leaf has the value
zero."; zero.";
} }
leaf rsp-time-lwm { leaf rsp-time-lwm {
type uint32; type uint32;
units "milliseconds"; units "milliseconds";
description description
"The smallest (low-water mark) response time seen. "The smallest (low-water mark) response time seen.
If no responses have been received then this leaf has If no responses have been received, then this leaf has
the value zero."; the value zero.";
} }
leaf rsp-time-hwm { leaf rsp-time-hwm {
type uint32; type uint32;
units "milliseconds"; units "milliseconds";
description description
"The greatest (high-water mark) response time seen. "The greatest (high-water mark) response time seen.
If no responses have been received then this object If no responses have been received, then this object
has the value zero."; has the value zero.";
} }
leaf pcreq-sent { leaf pcreq-sent {
type yang:counter32; type yang:counter32;
description description
"The number of PCReq messages sent."; "The number of PCReq messages sent.";
} }
leaf pcreq-rcvd { leaf pcreq-rcvd {
type yang:counter32; type yang:counter32;
description description
skipping to change at line 4113 skipping to change at line 4565
} }
leaf pcrep-rcvd { leaf pcrep-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of PCRep messages received."; "The number of PCRep messages received.";
} }
leaf req-sent { leaf req-sent {
type yang:counter32; type yang:counter32;
description description
"The number of requests sent. A request corresponds "The number of requests sent. A request corresponds
1:1 with an RP object in a PCReq message. This might 1:1 with an RP object in a PCReq message. This might
be greater than pcreq-sent because multiple be greater than pcreq-sent because multiple
requests can be batched into a single PCReq requests can be batched into a single PCReq
message."; message.";
} }
leaf req-sent-pend-rep { leaf req-sent-pend-rep {
type yang:counter32; type yang:counter32;
description description
"The number of requests that have been sent for "The number of requests that have been sent for
which a response is still pending."; which a response is still pending.";
} }
skipping to change at line 4137 skipping to change at line 4589
"The number of requests that have been sent for "The number of requests that have been sent for
which a response with an ERO object was received. which a response with an ERO object was received.
Such responses indicate that a path was Such responses indicate that a path was
successfully computed by the peer."; successfully computed by the peer.";
} }
leaf req-sent-nopath-rcvd { leaf req-sent-nopath-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of requests that have been sent for "The number of requests that have been sent for
which a response with a NO-PATH object was which a response with a NO-PATH object was
received. Such responses indicate that the peer received. Such responses indicate that the peer
could not find a path to satisfy the could not find a path to satisfy the
request."; request.";
} }
leaf req-sent-cancel-rcvd { leaf req-sent-cancel-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of requests that were cancelled with "The number of requests that were cancelled with
a PCNtf message. This might be different than a PCNtf message. This might be different than
pcntf-rcvd because not all PCNtf messages are pcntf-rcvd because not all PCNtf messages are
used to cancel requests, and a single PCNtf message used to cancel requests, and a single PCNtf message
can cancel multiple requests."; can cancel multiple requests.";
} }
leaf req-sent-error-rcvd { leaf req-sent-error-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of requests that were rejected with a "The number of requests that were rejected with a
PCErr message. This might be different than PCErr message. This might be different than
pcerr-rcvd because not all PCErr messages are pcerr-rcvd because not all PCErr messages are
used to reject requests, and a single PCErr message used to reject requests, and a single PCErr message
can reject multiple requests."; can reject multiple requests.";
} }
leaf req-sent-timeout { leaf req-sent-timeout {
type yang:counter32; type yang:counter32;
description description
"The number of requests that have been sent to a peer "The number of requests that have been sent to a peer
and have been abandoned because the peer has taken too and have been abandoned because the peer has taken too
long to respond to them."; long to respond to them.";
skipping to change at line 4177 skipping to change at line 4629
type yang:counter32; type yang:counter32;
description description
"The number of requests that were sent to the peer and "The number of requests that were sent to the peer and
explicitly cancelled by the local PCEP entity sending explicitly cancelled by the local PCEP entity sending
a PCNtf."; a PCNtf.";
} }
leaf rep-rcvd-unknown { leaf rep-rcvd-unknown {
type yang:counter32; type yang:counter32;
description description
"The number of responses to unknown requests "The number of responses to unknown requests
received. A response to an unknown request is a received. A response to an unknown request is a
response whose RP object does not contain the response whose RP object does not contain the
request ID of any request that is currently request ID of any request that is currently
outstanding on the session."; outstanding on the session.";
} }
description description
"The stats related to PCE as peer"; "The stats related to PCE as peer.";
} }
leaf pcerr-sent { leaf pcerr-sent {
type yang:counter32; type yang:counter32;
description description
"The number of PCErr messages sent."; "The number of PCErr messages sent.";
} }
leaf pcerr-rcvd { leaf pcerr-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of PCErr messages received."; "The number of PCErr messages received.";
skipping to change at line 4230 skipping to change at line 4682
leaf corrupt-rcvd { leaf corrupt-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of corrupted PCEP messages received."; "The number of corrupted PCEP messages received.";
} }
container pcc { container pcc {
when "../../pcep:role = 'pcc'" when "../../pcep:role = 'pcc'"
+ "or " + "or "
+ "../../pcep:role = 'pcc-and-pce'" { + "../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCC"; "Valid for PCEP peer as PCC.";
} }
leaf req-rcvd { leaf req-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of requests received. A request "The number of requests received. A request
corresponds 1:1 with an RP object in a PCReq corresponds 1:1 with an RP object in a PCReq
message. message.
This might be greater than pcreq-rcvd because This might be greater than pcreq-rcvd because
multiple requests can be batched into a single multiple requests can be batched into a single
PCReq message."; PCReq message.";
skipping to change at line 4260 skipping to change at line 4712
description description
"The number of requests that have been received for "The number of requests that have been received for
which a response with an ERO object was sent. Such which a response with an ERO object was sent. Such
responses indicate that a path was successfully responses indicate that a path was successfully
computed by the local PCEP entity."; computed by the local PCEP entity.";
} }
leaf req-rcvd-nopath-sent { leaf req-rcvd-nopath-sent {
type yang:counter32; type yang:counter32;
description description
"The number of requests that have been received for "The number of requests that have been received for
which a response with a NO-PATH object was sent. Such which a response with a NO-PATH object was sent. Such
responses indicate that the local PCEP entity could responses indicate that the local PCEP entity could
not find a path to satisfy the request."; not find a path to satisfy the request.";
} }
leaf req-rcvd-cancel-sent { leaf req-rcvd-cancel-sent {
type yang:counter32; type yang:counter32;
description description
"The number of requests received that were cancelled "The number of requests received that were cancelled
by the local PCEP entity sending a PCNtf message. by the local PCEP entity sending a PCNtf message.
This might be different than pcntf-sent because This might be different than pcntf-sent because
not all PCNtf messages are used to cancel requests, not all PCNtf messages are used to cancel requests,
skipping to change at line 4295 skipping to change at line 4747
type yang:counter32; type yang:counter32;
description description
"The number of requests that were received from the "The number of requests that were received from the
peer and explicitly cancelled by the peer sending peer and explicitly cancelled by the peer sending
a PCNtf."; a PCNtf.";
} }
leaf req-rcvd-unknown { leaf req-rcvd-unknown {
type yang:counter32; type yang:counter32;
description description
"The number of unknown requests that have been "The number of unknown requests that have been
received. An unknown request is a request received. An unknown request is a request
whose RP object contains a request ID of zero."; whose RP object contains a request ID of zero.";
} }
description description
"The stats related to PCC as peer"; "The stats related to PCC as peer.";
} }
container svec { container svec {
if-feature "pcep:svec"; if-feature "pcep:svec";
description description
"If synchronized path computation is supported"; "If synchronized path computation is supported.";
container pce { container pce {
when "../../../pcep:role = 'pce'" when "../../../pcep:role = 'pce'"
+ "or " + "or "
+ "../../../pcep:role = 'pcc-and-pce'" { + "../../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCE"; "Valid for PCEP peer as PCE.";
} }
leaf svec-sent { leaf svec-sent {
type yang:counter32; type yang:counter32;
description description
"The number of SVEC objects sent in PCReq messages. "The number of SVEC objects sent in PCReq messages.
An SVEC object represents a set of synchronized An SVEC object represents a set of synchronized
requests."; requests.";
} }
leaf svec-req-sent { leaf svec-req-sent {
type yang:counter32; type yang:counter32;
description description
"The number of requests sent that appeared in one "The number of requests sent that appeared in one
or more SVEC objects."; or more SVEC objects.";
} }
description description
"The SVEC stats related to PCE"; "The SVEC stats related to PCE.";
} }
container pcc { container pcc {
when "../../../pcep:role = 'pcc'" when "../../../pcep:role = 'pcc'"
+ "or " + "or "
+ "../../../pcep:role = 'pcc-and-pce'" { + "../../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCC"; "Valid for PCEP peer as PCC.";
} }
leaf svec-rcvd { leaf svec-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of SVEC objects received in PCReq "The number of SVEC objects received in PCReq
messages. An SVEC object represents a set of messages. An SVEC object represents a set of
synchronized requests."; synchronized requests.";
} }
leaf svec-req-rcvd { leaf svec-req-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of requests received that appeared "The number of requests received that appeared
in one or more SVEC objects."; in one or more SVEC objects.";
} }
description description
"The SVEC stats related to PCC as peer"; "The SVEC stats related to PCC as peer.";
} }
} }
container stateful { container stateful {
if-feature "pcep:stateful"; if-feature "pcep:stateful";
description description
"Stateful PCE related statistics"; "Stateful PCE-related statistics.";
container pce { container pce {
when "../../../pcep:role = 'pce'" when "../../../pcep:role = 'pce'"
+ "or " + "or "
+ "../../../pcep:role = 'pcc-and-pce'" { + "../../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCE"; "Valid for PCEP peer as PCE.";
} }
leaf pcrpt-sent { leaf pcrpt-sent {
type yang:counter32; type yang:counter32;
description description
"The number of PCRpt messages sent."; "The number of PCRpt messages sent.";
} }
leaf pcupd-rcvd { leaf pcupd-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of PCUpd messages received."; "The number of PCUpd messages received.";
} }
leaf rpt-sent { leaf rpt-sent {
type yang:counter32; type yang:counter32;
description description
"The number of LSP Reports sent. An LSP report "The number of LSP reports sent. An LSP report
corresponds 1:1 with an LSP object in a PCRpt corresponds 1:1 with an LSP object in a PCRpt
message. This might be greater than message. This might be greater than
pcrpt-sent because multiple reports can pcrpt-sent because multiple reports can
be batched into a single PCRpt message."; be batched into a single PCRpt message.";
} }
leaf upd-rcvd { leaf upd-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of LSP Updates received. An LSP update "The number of LSP updates received. An LSP update
corresponds 1:1 with an LSP object in a PCUpd corresponds 1:1 with an LSP object in a PCUpd
message. message.
This might be greater than pcupd-rcvd because This might be greater than pcupd-rcvd because
multiple updates can be batched into a single multiple updates can be batched into a single
PCUpd message."; PCUpd message.";
} }
leaf upd-rcvd-unknown { leaf upd-rcvd-unknown {
type yang:counter32; type yang:counter32;
description description
"The number of updates to unknown LSPs "The number of updates to unknown LSPs
received. An update to an unknown LSP is a received. An update to an unknown LSP is a
update whose LSP object does not contain the update whose LSP object does not contain the
PLSP-ID of any LSP that is currently PLSP-ID of any LSP that is currently
present."; present.";
} }
leaf upd-rcvd-undelegated { leaf upd-rcvd-undelegated {
type yang:counter32; type yang:counter32;
description description
"The number of updates to not delegated LSPs "The number of updates to not delegated LSPs
received. An update to an undelegated LSP is a received. An update to an undelegated LSP is a
update whose LSP object does not contain the update whose LSP object does not contain the
PLSP-ID of any LSP that is currently PLSP-ID of any LSP that is currently
delegated to the current PCEP session."; delegated to the current PCEP session.";
} }
leaf upd-rcvd-error-sent { leaf upd-rcvd-error-sent {
type yang:counter32; type yang:counter32;
description description
"The number of updates to LSPs received that were "The number of updates to LSPs received that were
responded by the local PCEP entity by sending a responded by the local PCEP entity by sending a
PCErr message."; PCErr message.";
} }
description description
"The stateful stats related to PCE as peer"; "The stateful stats related to PCE as peer";
} }
container pcc { container pcc {
when "../../../pcep:role = 'pcc'" when "../../../pcep:role = 'pcc'"
+ "or " + "or "
+ "../../../pcep:role = 'pcc-and-pce'" { + "../../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCC"; "Valid for PCEP peer as PCC.";
} }
leaf pcrpt-rcvd { leaf pcrpt-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of PCRpt messages received."; "The number of PCRpt messages received.";
} }
leaf pcupd-sent { leaf pcupd-sent {
type yang:counter32; type yang:counter32;
description description
"The number of PCUpd messages sent."; "The number of PCUpd messages sent.";
} }
leaf rpt-rcvd { leaf rpt-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of LSP Reports received. An LSP report "The number of LSP reports received. An LSP report
corresponds 1:1 with an LSP object in a PCRpt corresponds 1:1 with an LSP object in a PCRpt
message. message.
This might be greater than pcrpt-rcvd because This might be greater than pcrpt-rcvd because
multiple reports can be batched into a single multiple reports can be batched into a single
PCRpt message."; PCRpt message.";
} }
leaf rpt-rcvd-error-sent { leaf rpt-rcvd-error-sent {
type yang:counter32; type yang:counter32;
description description
"The number of reports of LSPs received that were "The number of reports of LSPs received that were
responded by the local PCEP entity by sending a responded by the local PCEP entity by sending a
PCErr message."; PCErr message.";
} }
leaf upd-sent { leaf upd-sent {
type yang:counter32; type yang:counter32;
description description
"The number of LSP updates sent. An LSP update "The number of LSP updates sent. An LSP update
corresponds 1:1 with an LSP object in a PCUpd corresponds 1:1 with an LSP object in a PCUpd
message. This might be greater than message. This might be greater than
pcupd-sent because multiple updates can pcupd-sent because multiple updates can
be batched into a single PCUpd message."; be batched into a single PCUpd message.";
} }
description description
"The stateful stats related to PCC as peer"; "The stateful stats related to PCC as peer.";
} }
container initiation { container initiation {
if-feature "pcep:pce-initiated"; if-feature "pcep:pce-initiated";
description description
"PCE-Initiated related statistics"; "PCE-initiated related statistics.";
container pcc { container pcc {
when "../../../../pcep:role = 'pcc'" when "../../../../pcep:role = 'pcc'"
+ "or " + "or "
+ "../../../../pcep:role = 'pcc-and-pce'" { + "../../../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCC"; "Valid for PCEP peer as PCC.";
} }
leaf pcinitiate-sent { leaf pcinitiate-sent {
type yang:counter32; type yang:counter32;
description description
"The number of PCInitiate messages sent."; "The number of PCInitiate messages sent.";
} }
leaf initiate-sent { leaf initiate-sent {
type yang:counter32; type yang:counter32;
description description
"The number of LSP Initiation sent via PCE. "The number of LSP initiations sent via PCE.
An LSP initiation corresponds 1:1 with an LSP An LSP initiation corresponds 1:1 with an LSP
object in a PCInitiate message. This might be object in a PCInitiate message. This might be
greater than pcinitiate-sent because greater than pcinitiate-sent because
multiple initiations can be batched into a multiple initiations can be batched into a
single PCInitiate message."; single PCInitiate message.";
} }
description description
"The initiation stats related to PCC as peer"; "The initiation stats related to PCC as peer.";
} }
container pce { container pce {
when "../../../../pcep:role = 'pce'" when "../../../../pcep:role = 'pce'"
+ "or " + "or "
+ "../../../../pcep:role = 'pcc-and-pce'" { + "../../../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCE"; "Valid for PCEP peer as PCE.";
} }
leaf pcinitiate-rcvd { leaf pcinitiate-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of PCInitiate messages received."; "The number of PCInitiate messages received.";
} }
leaf initiate-rcvd { leaf initiate-rcvd {
type yang:counter32; type yang:counter32;
description description
"The number of LSP Initiation received from "The number of LSP initiations received from
PCE. An LSP initiation corresponds 1:1 with PCE. An LSP initiation corresponds 1:1 with
an LSP object in a PCInitiate message. This an LSP object in a PCInitiate message. This
might be greater than pcinitiate-rcvd might be greater than pcinitiate-rcvd
because multiple initiations can be batched because multiple initiations can be batched
into a single PCInitiate message."; into a single PCInitiate message.";
} }
leaf initiate-rcvd-error-sent { leaf initiate-rcvd-error-sent {
type yang:counter32; type yang:counter32;
description description
"The number of initiations of LSPs received "The number of initiations of LSPs received
that were responded to by the local PCEP entity that were responded to by the local PCEP entity
by sending a PCErr message."; by sending a PCErr message.";
} }
description description
"The initiation stats related to PCE as peer"; "The initiation stats related to PCE as peer.";
} }
} }
} }
container path-key { container path-key {
when "../../pcep:role = 'pcc'" when "../../pcep:role = 'pcc'"
+ "or " + "or "
+ "../../pcep:role = 'pcc-and-pce'" { + "../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCC"; "Valid for PCEP peer as PCC.";
} }
if-feature "pcep:path-key"; if-feature "pcep:path-key";
description description
"If Path-Key is supported"; "If path-key is supported.";
leaf unknown-path-key { leaf unknown-path-key {
type yang:counter32; type yang:counter32;
description description
"The number of attempts to expand an unknown "The number of attempts to expand an unknown
path-key."; path-key.";
} }
leaf exp-path-key { leaf exp-path-key {
type yang:counter32; type yang:counter32;
description description
"The number of attempts to expand an expired "The number of attempts to expand an expired
skipping to change at line 4567 skipping to change at line 5019
leaf path-key-no-attempt { leaf path-key-no-attempt {
type yang:counter32; type yang:counter32;
description description
"The number of expired path-keys with no attempt to "The number of expired path-keys with no attempt to
expand it."; expand it.";
} }
} }
action reset-statistics { action reset-statistics {
description description
"The reset action will clear the statistics at the "The reset action will clear the statistics at the
associated container"; associated container.";
input { input {
leaf reset-at { leaf reset-at {
type yang:date-and-time; type yang:date-and-time;
description description
"The time when the reset was issued."; "The time when the reset was issued.";
} }
} }
output { output {
leaf reset-finished-at { leaf reset-finished-at {
type yang:date-and-time; type yang:date-and-time;
skipping to change at line 4591 skipping to change at line 5043
} }
} }
} }
/* /*
* Augment modules to add statistics * Augment modules to add statistics
*/ */
augment "/pcep:pcep/pcep:entity/pcep:peers/pcep:peer" { augment "/pcep:pcep/pcep:entity/pcep:peers/pcep:peer" {
description description
"Augmenting the statistics"; "Augmenting the statistics.";
container stats { container stats {
config false; config false;
description description
"The container for all statistics at peer level."; "The container for all statistics at peer level.";
uses stats { uses stats {
description description
"Since PCEP sessions can be ephemeral, the peer statistics "Since PCEP sessions can be ephemeral, the peer statistics
tracks a peer even when no PCEP session currently exists tracks a peer even when no PCEP session currently exists
to that peer. The statistics contained are an aggregate of to that peer. The statistics contained are an aggregate
the statistics for all successive sessions to that peer."; of the statistics for all successive sessions to that
peer.";
} }
leaf sess-setup-ok { leaf sess-setup-ok {
type yang:counter32; type yang:counter32;
config false; config false;
description description
"The number of PCEP sessions successfully established with "The number of PCEP sessions successfully established with
the peer, including any current session. This counter is the peer, including any current session. This counter is
incremented each time a session with this peer is incremented each time a session with this peer is
successfully established."; successfully established.";
} }
leaf sess-setup-fail { leaf sess-setup-fail {
type yang:counter32; type yang:counter32;
config false; config false;
description description
"The number of PCEP sessions with the peer "The number of PCEP sessions with the peer
that have been attempted but failed that have been attempted but failed
before being fully established. This before being fully established. This
counter is incremented each time a counter is incremented each time a
session retry to this peer fails."; session retry to this peer fails.";
} }
leaf req-sent-closed { leaf req-sent-closed {
when "../../pcep:role = 'pce'" when "../../pcep:role = 'pce'"
+ "or " + "or "
+ "../../pcep:role = 'pcc-and-pce'" { + "../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCE"; "Valid for PCEP peer as PCE.";
} }
type yang:counter32; type yang:counter32;
description description
"The number of requests that were sent to the peer and "The number of requests that were sent to the peer and
implicitly cancelled when the session they were sent implicitly cancelled when the session they were sent
over was closed."; over was closed.";
} }
leaf req-rcvd-closed { leaf req-rcvd-closed {
when "../../pcep:role = 'pcc'" when "../../pcep:role = 'pcc'"
+ "or " + "or "
+ "../../pcep:role = 'pcc-and-pce'" { + "../../pcep:role = 'pcc-and-pce'" {
description description
"Valid for PCEP Peer as PCC"; "Valid for PCEP peer as PCC.";
} }
type yang:counter32; type yang:counter32;
description description
"The number of requests that were received from the peer "The number of requests that were received from the peer
and implicitly cancelled when the session they were and implicitly cancelled when the session they were
received over was closed."; received over was closed.";
} }
} }
} }
augment "/pcep:pcep/pcep:entity/pcep:peers/pcep:peer/" augment "/pcep:pcep/pcep:entity/pcep:peers/pcep:peer/"
+ "pcep:sessions/pcep:session" { + "pcep:sessions/pcep:session" {
description description
"Augmenting the statistics"; "Augmenting the statistics.";
container stats { container stats {
description description
"The container for all statistics at session level."; "The container for all statistics at session level.";
uses stats { uses stats {
description description
"The statistics contained are for the current sessions to "The statistics contained are for the current sessions to
that peer. These are lost when the session goes down."; that peer. These are lost when the session goes down.";
} }
} }
} }
rpc reset-pcep-statistics-all { rpc reset-pcep-statistics-all {
if-feature "reset-all"; if-feature "reset-all";
description description
"Reset all the PCEP statistics collected across all peers "Reset all the PCEP statistics collected across all peers
and sessions. This RPC is used if the implementation and sessions. This RPC is used if the implementation
supports a mechanism to reset all PCEP statistics across supports a mechanism to reset all PCEP statistics across
all peers and sessions through mechanisms such as by all peers and sessions through mechanisms such as by
walking a list of pointers to those peers and sessions. walking a list of pointers to those peers and sessions.
If this mechanism is not supported, implementations must If this mechanism is not supported, implementations must
reset PCEP statistics individually by invoking the action reset PCEP statistics individually by invoking the action
for each peer and session."; for each peer and session.";
} }
} }
]]></sourcecode>
<CODE ENDS> </section>
]]></artwork> </section>
</figure> <section toc="default" numbered="true">
</section> <name>Security Considerations</name>
</section>
<section title="Security Considerations" toc="default">
<t>The ietf-pcep and ietf-pcep-stats YANG modules define data models that are
designed to be accessed via YANG-based management protocols, such as
NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These
protocols have to use a secure transport layer (e.g., SSH <xref target="RFC62
42"/>, TLS <xref target="RFC8446"/>, and
QUIC <xref target="RFC9000"/>) and have to use mutual authentication.</t>
<t>The NETCONF access control model <xref target="RFC8341"/> provides <!-- [rfced] Security Considerations
the means to restrict access for particular NETCONF or RESTCONF users to a
pre-configured subset of all available NETCONF or RESTCONF protocol
operations and content.</t>
<t>There are a number of data nodes defined in the ietf-pcep YANG module a.) We made some updates to this section to align with the template at
which are <https://wiki.ietf.org/group/ops/yang-security-guidelines>. Please review.
writable/creatable/deletable (i.e., config true, which is the
default). All writable data nodes are likely to be reasonably
sensitive or vulnerable in some network environments. Write
operations (e.g., edit-config) and delete operations to these data
nodes without proper protection or authentication can have a negative
effect on network operations. The following subtrees and data nodes
have particular sensitivities/vulnerabilities:
<list>
<t>/pcep/entity/ - configure local parameters, capabilities etc.</t>
<t>/pcep/entity/peers - configure remote peers to setup PCEP session.</t>
</list></t>
<t>Unauthorized access to the above list can adversely affect the b.) FYI - We added headers to separate the information for each module.
PCEP session between the local entity and the peers. This may
lead to the inability to compute new paths, and stateful operations on
the delegated as well as PCE-initiated LSPs.</t>
<t>Some of the readable data nodes in this YANG module may be considered c.) The document includes "respective RFCs" in this sentence, but the template
sensitive or vulnerable in some network environments. It is thus indicates that the RFCs should be listed. Are any updates needed here?
important to control read access (e.g., via get, get-config, or
notification) to these data nodes. Specifically, the following
subtrees and data nodes have particular sensitivities/
vulnerabilities:
<list> Document:
<t>/pcep/lsp-db - All the LSPs in the network. Unauthorized access to Refer to the Security Considerations of respective
this could provide all path and network usage information.</t> RFCs for information as to which nodes may be considered sensitive or
<t>/pcep/path-keys/ - The Confidential Path Segments (CPS) are hidden vulnerable in network environments.
using path-keys. Unauthorized access to this could leak confidential
path information.
</t>
</list></t>
<t>Some of the RPC operations in this YANG module may be considered Template (https://wiki.ietf.org/group/ops/yang-security-guidelines):
sensitive or vulnerable in some network environments. It is thus Refer to the Security Considerations of [RFC-insert-numbers]
important to control access to these operations. Specifically, for information as to which nodes may be considered sensitive or
the following operations have particular sensitivities/vulnerabilities: vulnerable in network environments.
<list>
<t>trigger-resync - trigger resynchronization with the PCE. Unauthorized acces d.) For the "ietf-pcep-stats" YANG module, the first and last sentence in the
s to the "Readable nodes section" vary from the template. Are any updates needed?
this could force a PCEP session into continuous state synchronization. </t
>
</list></t> Document:
The readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or
notification) to these data nodes. The statistics could provide
information related to the current usage patterns of the network.
<t>This YANG module uses groupings from other YANG modules that Template (https://wiki.ietf.org/group/ops/yang-security-guidelines):
define nodes that may be considered sensitive or vulnerable Some of the readable data nodes in this YANG module may be considered
in network environments. Refer to the Security Considerations sensitive or vulnerable in some network environments. It is thus important
of respective RFCs for information as to which nodes may to control read access (e.g., via get, get-config, or notification) to
be considered sensitive or vulnerable in network environments.</t> these data nodes. Specifically, the following subtrees and data nodes have
particular sensitivities/vulnerabilities:
<t>The YANG module defines a set of identities, types, and e.) For the "ietf-pcep-stats" YANG module, we do not see the "Reusable
groupings. These nodes are intended to be reused by other YANG groupings from other modules section" or "No data nodes section" from the
modules. The module by itself does not expose any data nodes that template. Please confirm that these sections do not apply to this YANG
are writable, data nodes that contain read-only state, or RPCs. module.
As such, there are no additional security issues related to
the YANG module that need to be considered.</t>
<t>Modules that use the groupings that are defined in this document f.) The following paragraphs (pertaining to the "ietf-pcep" YANG module) do
should identify the corresponding security considerations.</t> not appear in the template. Do these paragraphs pertain to any parts of the
template (i.e., need to be bulleted lists under a part of the template)? Or
are these okay as is?
<t>The actual authentication key data (whether locally specified or part Original:
The actual authentication key data (whether locally specified or part
of a key-chain) is sensitive and needs to be kept secret from of a key-chain) is sensitive and needs to be kept secret from
unauthorized parties; compromise of the key data would allow an unauthorized parties; compromise of the key data would allow an
attacker to forge PCEP traffic that would be accepted as authentic, attacker to forge PCEP traffic that would be accepted as authentic,
potentially compromising the TE domain.</t> potentially compromising the TE domain.
<t>The model describes several notifications, implementations must The model describes several notifications, implementations must rate-
rate-limit the generation of these notifications to avoid creating limit the generation of these notifications to avoid creating a
a significant notification load. Otherwise, this notification load may significant notification load. Otherwise, this notification load may
have some side effects on the system stability and may be exploited have some side effects on the system stability and may be exploited
as an attack vector.</t> as an attack vector.
<t>The "auth" container includes various authentication and security options The "auth" container includes various authentication and security
for PCEP. options for PCEP. Further, Section 7.1 describes how to configure
Further, <xref target="tls"/> describes how to configure TLS1.2 and TLS1.3 f TLS1.2 and TLS1.3 for a PCEP session via this YANG module.
or a PCEP session via this YANG module.</t>
<t>Further, this document also includes another YANG module (called ietf-pcep- g.) Note that we will ask the AD to approve the changes to the Security
stats) for maintaining the statistics by augmenting the ietf-pcep YANG module. T Considerations after the questions above have been addressed.
here are no data nodes defined in this module which are writable/creatable/delet -->
able (i.e., config true). The readable data nodes in this YANG module may be con
sidered <!-- DNE: Boilerplate begins -->
<t>This section is modeled after the template described in <xref
target="I-D.ietf-netmod-rfc8407bis" sectionFormat="of" section="3.7"/>.</t
>
<t>The "ietf-pcep" and "ietf-pcep-stats" YANG modules define data models
that are designed to be accessed via YANG-based management protocols,
such as NETCONF <xref target="RFC6241" format="default"/> and RESTCONF
<xref target="RFC8040" format="default"/>. These protocols have to use a
secure transport layer (e.g., SSH <xref target="RFC4252"
format="default"/>, TLS <xref target="RFC8446" format="default"/>, and
QUIC <xref target="RFC9000" format="default"/>) and have to use mutual
authentication.</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><strong>The "ietf-pcep" YANG module:</strong></t>
<t>There are a number of data nodes defined in the "ietf-pcep" YANG module
that are writable/creatable/deletable (i.e., "config true", which is the
default). All writable data nodes are likely to be reasonably sensitive
or vulnerable in some network environments. Write operations (e.g.,
edit-config) and delete operations to these data nodes without proper
protection or authentication can have a negative effect on network
operations. The following subtrees and data nodes have particular
sensitivities/vulnerabilities:</t>
<!-- DNE: Boilerplate ends -->
<ul spacing="normal">
<li>/pcep/entity/: Configures local parameters, capabilities, etc.</li>
<li>/pcep/entity/peers: Configures remote peers to set up a PCEP session
.</li>
</ul>
<t>Unauthorized access to the above list can adversely affect the PCEP
session between the local entity and the peers. This may lead to the
inability to compute new paths, and stateful operations on the delegated
as well as PCE-initiated LSPs.</t>
<!-- DNE: Boilerplate begins -->
<t>Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or important to control read access (e.g., via get, get-config, or
notification) to these data nodes. The statistics could provide information r notification) to these data nodes. Specifically, the following
elated to the current usage patterns of the network.</t> subtrees and data nodes have particular sensitivities/
vulnerabilities:
</t>
<!-- DNE: Boilerplate ends -->
<t>Some of the RPC operations in this YANG module may be considered <ul spacing="normal">
sensitive or vulnerable in some network environments. It is thus <li>/pcep/lsp-db: All the LSPs in the network. Unauthorized access to
important to control access to these operations. Specifically, this could provide all path and network usage information.</li>
the following operations have particular sensitivities/vulnerabilities: <li>/pcep/path-keys/: The Confidential Path Segments (CPS) are hidden
<list> using path-keys. Unauthorized access to this could leak confidential
<t>reset-pcep-statistics-all - The RPC is used to reset all PCEP statistics path information.</li>
across all peers and sessions. An unauthorized reset could impact monitoring.</t </ul>
>
</list>
</t>
</section> <!-- DNE: Boilerplate begins -->
<t>Some of the RPC or action operations in this YANG module may be
considered sensitive or vulnerable in some network environments. It is
thus important to control access to these operations. Specifically, the
following operation has particular sensitivities/ vulnerabilities:
</t>
<!-- DNE: Boilerplate ends -->
<section title="IANA Considerations" toc="default"> <ul spacing="normal">
<t>This document requests the IANA to register two URIs in the "IETF XML Reg <li>trigger-resync: Triggers resynchronization with the
istry" PCE. Unauthorized access to this could force a PCEP session into
<xref target="RFC3688"/>. continuous state synchronization.</li>
Following the format in RFC 3688, the following registrations are requested - </ul>
<figure title="" suppress-title="false" align="left" alt="" width="" height=
"">
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
URI: urn:ietf:params:xml:ns:yang:ietf-pcep <t>This YANG module uses groupings from other YANG modules that define
Registrant Contact: The IESG nodes that may be considered sensitive or vulnerable in network
XML: N/A; the requested URI is an XML namespace. environments. Refer to the Security Considerations of respective RFCs
for information as to which nodes may be considered sensitive or
vulnerable in network environments.</t>
URI: urn:ietf:params:xml:ns:yang:ietf-pcep-stats <t>The YANG module defines a set of identities, types, and
Registrant Contact: The IESG groupings. These nodes are intended to be reused by other YANG
XML: N/A; the requested URI is an XML namespace. modules. The module by itself does not expose any data nodes that are
]]></artwork> writable, data nodes that contain read-only state, or RPCs. As such,
</figure> there are no additional security issues related to the YANG module that
</t> need to be considered.</t>
<t>This document requests the IANA to register two YANG modules in the "YANG <t>Modules that use the groupings that are defined in this document
Module Names" should identify the corresponding security considerations.</t>
registry <xref target="RFC6020"/>, as follows - <t>The actual authentication key data (whether locally specified or part
<figure title="" suppress-title="false" align="left" alt="" width="" height= of a key-chain) is sensitive and needs to be kept secret from
""> unauthorized parties; compromise of the key data would allow an attacker
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt to forge PCEP traffic that would be accepted as authentic, potentially
h="" height=""><![CDATA[ compromising the TE domain.</t>
Name: ietf-pcep <t>The model describes several notifications; implementations must
Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep rate-limit the generation of these notifications to avoid creating a
Prefix: pcep significant notification load. Otherwise, this notification load may
Reference: [This.I-D] have some side effects on the system stability and may be exploited as
an attack vector.</t>
<t>The "auth" container includes various authentication and security
options for PCEP. Further, <xref target="tls" format="default"/>
describes how to configure TLS 1.2 and TLS 1.3 for a PCEP session via this
YANG module.</t>
Name: ietf-pcep-stats <t><strong>The "ietf-pcep-stats" YANG module:</strong></t>
Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep-stats
Prefix: pcep-stats
Reference: [This.I-D]
]]></artwork> <t>This document also includes another YANG module (called
</figure> "ietf-pcep-stats") for maintaining the statistics by augmenting the
</t> "ietf-pcep" YANG module.</t>
</section> <t>There are no particularly sensitive writable data nodes.
<section anchor="Imp" title="Implementation Status"> </t>
<t>[Note to the RFC Editor - remove this section before publication, as well as
remove the reference to RFC 7942.]</t>
<t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of
this Internet-Draft, and is based on a proposal described in
<xref target="RFC7942"/>. The description of implementations in this secti
on is
intended to assist the IETF in its decision processes in
progressing drafts to RFCs. Please note that the listing of any
individual implementation here does not imply endorsement by the
IETF. Furthermore, no effort has been spent to verify the
information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a
catalog of available implementations or their features. Readers
are advised to note that other implementations may exist.</t>
<t>According to <xref target="RFC7942"/>, "this will allow reviewers and wo <t>The readable
rking data nodes in this YANG module may be considered sensitive or vulnerable
groups to assign due consideration to documents that have the in some network environments. It is thus important to control read
benefit of running code, which may serve as evidence of valuable access (e.g., via get, get-config, or notification) to these data
experimentation and feedback that have made the implemented nodes. The statistics could provide information related to the current
protocols more mature. It is up to the individual working groups usage patterns of the network.</t>
to use this information as they see fit".</t> <t>Some of the RPC or action operations in this YANG module may be
considered sensitive or vulnerable in some network environments. It is
thus important to control access to these operations. Specifically, the
following operation has particular sensitivities/vulnerabilities:
</t>
<ul spacing="normal">
<li>reset-pcep-statistics-all: The RPC is used to reset all PCEP
statistics across all peers and sessions. An unauthorized reset could
impact monitoring.</li>
</ul>
<t>Currently, there are no known implementations of the YANG Module as spec
ified.</t>
</section>
<section title="Acknowledgements" toc="default">
<t>The initial document is based on the PCEP MIB <xref target="RFC7420"/>.
The authors of this document would like to thank the authors of the above docum
ent.</t>
<t>Thanks to Martin Bjorklund and Tom Petch for the detailed review. Thank
s to Mahesh Jethanandani and Jan Lindblad for the YANGDOCTOR review. Thanks to S
cott Kelly for the SECDIR review. Thanks to Gyan Mishra and Matthew Bocci for th
e RTGDIR review.</t>
</section> </section>
</middle>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.2119.xml" ?>
<!--<?rfc include="reference.RFC.3209.xml" ?>-->
<?rfc include="reference.RFC.3688.xml" ?>
<?rfc include="reference.RFC.5088.xml" ?>
<?rfc include="reference.RFC.5089.xml" ?>
<?rfc include="reference.RFC.5440.xml" ?> <section toc="default" numbered="true">
<?rfc include="reference.RFC.5520.xml" ?> <name>IANA Considerations</name>
<?rfc include="reference.RFC.5541.xml" ?> <t>IANA has registered the following URIs in the "IETF XML
<?rfc include="reference.RFC.5557.xml" ?> Registry" <xref target="RFC3688" format="default"/>:
</t>
<?rfc include="reference.RFC.6020.xml" ?> <dl spacing="compact" newline="false">
<?rfc include="reference.RFC.6241.xml" ?> <dt>URI:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-pcep</d
<?rfc include="reference.RFC.6242.xml" ?> d>
<dt>Registrant Contact:</dt> <dd>The IESG</dd>
<dt>XML:</dt> <dd>N/A; the requested URI is an XML namespa
ce.</dd>
</dl>
<?rfc include="reference.RFC.6991.xml" ?> <dl spacing="compact" newline="false">
<?rfc include="reference.RFC.7950.xml" ?> <dt>URI:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-pcep-st
<?rfc include="reference.RFC.8177.xml" ?> ats</dd>
<?rfc include="reference.RFC.8040.xml" ?> <dt>Registrant Contact:</dt> <dd>The IESG</dd>
<?rfc include="reference.RFC.8174.xml"?> <dt>XML:</dt> <dd>N/A; the requested URI is an XML namespa
<?rfc include="reference.RFC.8231.xml"?> ce.</dd>
<?rfc include="reference.RFC.8232.xml"?> </dl>
<?rfc include="reference.RFC.8253.xml"?>
<?rfc include="reference.RFC.8281.xml"?>
<?rfc include="reference.RFC.8306.xml"?>
<?rfc include="reference.RFC.8340.xml"?>
<?rfc include="reference.RFC.8341.xml" ?>
<?rfc include="reference.RFC.8408.xml" ?>
<?rfc include="reference.RFC.8446.xml" ?>
<?rfc include="reference.RFC.8776.xml"?> <t>IANA has registered the following YANG modules in the
"YANG Module Names" registry <xref target="RFC6020" format="default"/>:
</t>
<?rfc include="reference.RFC.9645.xml"?> <dl spacing="compact" newline="false">
<?rfc include="reference.RFC.8697.xml"?> <dt>Name:</dt> <dd>ietf-pcep</dd>
<?rfc include="reference.RFC.8664.xml"?> <dt>Namespace:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-pcep</dd>
<?rfc include="reference.RFC.9130.xml"?> <dt>Prefix:</dt> <dd>pcep</dd>
<?rfc include="reference.RFC.9129.xml"?> <dt>Reference:</dt> <dd>RFC 9826</dd>
<?rfc include="reference.RFC.8779.xml"?> </dl>
<?rfc include="reference.RFC.9168.xml"?>
<?rfc include="reference.RFC.8685.xml"?> <dl spacing="compact" newline="false">
<?rfc include="reference.RFC.8282.xml"?> <dt>Name:</dt> <dd>ietf-pcep-stats</dd>
<?rfc include="reference.RFC.9353.xml"?> <dt>Namespace:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-pcep-stats</d
<?rfc include="reference.RFC.5925.xml"?> d>
<?rfc include="reference.RFC.8623.xml"?> <dt>Prefix:</dt> <dd>pcep-stats</dd>
<?rfc include="reference.RFC.8745.xml"?> <dt>Reference:</dt> <dd>RFC 9826</dd>
<?rfc include="reference.RFC.8800.xml"?> </dl>
<?rfc include="reference.RFC.9000.xml"?>
<?rfc include="reference.RFC.9005.xml"?>
<?rfc include="reference.RFC.9358.xml"?>
</references> </section>
<references title="Informative References"> </middle>
<back>
<displayreference target="I-D.ietf-netmod-rfc8407bis" to="YANG-GUIDELINES"/>
<displayreference target="I-D.ietf-pce-pcep-srv6-yang" to="YANG-PCEP-SR"/>
<displayreference target="I-D.ietf-pce-pceps-tls13" to="PCEPS-UPDATE"/>
<displayreference target="I-D.ietf-teas-yang-te" to="YANG-TE"/>
<?rfc include="reference.RFC.4655.xml" ?> <references>
<?rfc include="reference.RFC.5246.xml" ?> <name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.36
88.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
088.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
089.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
440.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
520.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
541.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
557.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
241.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
252.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
991.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
020.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
950.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
177.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
040.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
174.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
231.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
232.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
253.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
281.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
306.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
340.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
341.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
408.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
446.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
776.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
645.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
697.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
664.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
130.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
129.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
779.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
168.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
685.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
282.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
353.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
925.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
623.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
745.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
800.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
000.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
005.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
358.xml"/>
<?rfc include="reference.RFC.7420.xml" ?> </references>
<?rfc include="reference.RFC.7942.xml" ?> <references>
<name>Informative References</name>
<?rfc include="reference.RFC.8342.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
<?rfc include="reference.RFC.8751.xml"?> 655.xml"/>
<?rfc include="reference.RFC.9603.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
<?rfc include="reference.I-D.ietf-pce-pceps-tls13"?> 246.xml"/>
<?rfc include="reference.I-D.ietf-pce-pcep-srv6-yang"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
<?rfc include="reference.I-D.ietf-teas-yang-te"?> 420.xml"/>
<reference anchor="IANA-PCEP" target="https://www.iana.org/assignments/pce <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
p/pcep.xhtml#association-type-field"> 342.xml"/>
<front> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
<title>ASSOCIATION Type Field in Path Computation Element Protocol (PCEP) Nu 751.xml"/>
mbers</title> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
<author/> 603.xml"/>
<date/> <!-- draft-ietf-netmod-rfc8407bis EDIT as of 7/21/25 -->
</front> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.
</reference> ietf-netmod-rfc8407bis.xml"/>
<reference anchor="IANA-IGP" target="https://www.iana.org/assignments/igp- <!-- [I-D.ietf-pce-pceps-tls13]
parameters/igp-parameters.xhtml#pce-capability-flags"> draft-ietf-pce-pceps-tls13-04
<front> IESG State: RFC Ed Queue as of 02/24/25. -->
<title>Path Computation Element (PCE) Capability <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.
Flags in Interior Gateway Protocol (IGP) Parameters</title> ietf-pce-pceps-tls13.xml"/>
<author/> <!-- [I-D.ietf-pce-pcep-srv6-yang]
<date/> draft-ietf-pce-pcep-srv6-yang-06
</front> IESG State: I-D Exists as of 02/24/25. -->
</reference> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.
ietf-pce-pcep-srv6-yang.xml"/>
<!-- [I-D.ietf-teas-yang-te]
draft-ietf-teas-yang-te-37
IESG State: I-D Exists as of 02/24/25. -->
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.
ietf-teas-yang-te.xml"/>
<reference anchor="IANA-PCEP" target="https://www.iana.org/assignments/p
cep">
<front>
<title>ASSOCIATION Type Field</title>
<author>
<organization>IANA</organization>
</author>
</front>
</reference>
<reference anchor="IANA-IGP" target="https://www.iana.org/assignments/ig
p-parameters">
<front>
<title>Path Computation Element (PCE) Capability Flags</title>
<author>
<organization>IANA</organization>
</author>
</front>
</reference>
</references>
</references> </references>
<section title="The Full PCEP Data Model" toc="default" anchor="sec.full.data-tr <section toc="default" anchor="sec.full.data-tree" numbered="true">
ee"> <name>The Full PCEP Data Model</name>
<t>The module, "ietf-pcep", defines the basic components of a PCE speaker. T <t>The module "ietf-pcep" defines the basic components of a PCE
he tree depth in the tree is set to 10. speaker. The tree depth in the tree is set to 10.</t>
<figure title="" suppress-title="true" align="left" alt="" width="" height="
"> <sourcecode name="" type="yangtree"><![CDATA[
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
module: ietf-pcep module: ietf-pcep
+--rw pcep! +--rw pcep!
+--rw entity +--rw entity
+--rw addr* inet:ip-address-no-zone +--rw addr* inet:ip-address-no-zone
+--rw enabled? boolean +--rw enabled? boolean
+--rw role role +--rw role role
+--rw description? string +--rw description? string
+--rw speaker-entity-id? string {sync-opt}? +--rw speaker-entity-id? string {sync-opt}?
+--rw admin-status? boolean +--rw admin-status? boolean
+--ro index? uint32 +--ro index? uint32
skipping to change at line 5051 skipping to change at line 5587
| +--rw peer-allowed-to-send? empty | +--rw peer-allowed-to-send? empty
| +--rw test-peer-aliveness! | +--rw test-peer-aliveness!
| ... | ...
+--rw pce-info +--rw pce-info
| +--rw scope | +--rw scope
| | +--rw path-scope? bits | | +--rw path-scope? bits
| | +--rw intra-area-pref? uint8 | | +--rw intra-area-pref? uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-area-pref? uint8
| | +--rw inter-as-pref? uint8 | | +--rw inter-as-pref? uint8
| | +--rw inter-layer-pref? uint8 | | +--rw inter-layer-pref? uint8
| +--rw neighbour-domains | +--rw neighbor-domains
| | +--rw domain* [type domain] | | +--rw domain* [type domain]
| | +--rw type identityref | | +--rw type identityref
| | +--rw domain domain | | +--rw domain domain
| +--rw path-key {path-key}? | +--rw path-key {path-key}?
| +--rw enabled? boolean | +--rw enabled? boolean
| +--rw discard-timer? uint32 | +--rw discard-timer? uint32
| +--rw reuse-time? uint32 | +--rw reuse-time? uint32
| +--rw pce-id? inet:ip-address-no-zone | +--rw pce-id? inet:ip-address-no-zone
+--rw connect-timer? uint16 +--rw connect-timer? uint16
+--rw connect-max-retry? uint32 +--rw connect-max-retry? uint32
skipping to change at line 5181 skipping to change at line 5717
| +--rw stateful? boolean {stateful}? | +--rw stateful? boolean {stateful}?
| +--rw role? hpce-role | +--rw role? hpce-role
+--ro msd? uint8 {sr-mpls}? +--ro msd? uint8 {sr-mpls}?
+--rw pce-info +--rw pce-info
| +--rw scope | +--rw scope
| | +--rw path-scope? bits | | +--rw path-scope? bits
| | +--rw intra-area-pref? uint8 | | +--rw intra-area-pref? uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-area-pref? uint8
| | +--rw inter-as-pref? uint8 | | +--rw inter-as-pref? uint8
| | +--rw inter-layer-pref? uint8 | | +--rw inter-layer-pref? uint8
| +--rw neighbour-domains | +--rw neighbor-domains
| +--rw domain* [type domain] | +--rw domain* [type domain]
| +--rw type identityref | +--rw type identityref
| +--rw domain domain | +--rw domain domain
+--rw delegation-pref uint8 {stateful}? +--rw delegation-pref uint8 {stateful}?
+--rw auth +--rw auth
| +--rw (auth-type-selection)? | +--rw (auth-type-selection)?
| +--:(auth-key-chain) | +--:(auth-key-chain)
| | +--rw key-chain? | | +--rw key-chain?
| | key-chain:key-chain-ref | | key-chain:key-chain-ref
| +--:(auth-key) | +--:(auth-key)
skipping to change at line 5288 skipping to change at line 5824
| | -> /pcep/entity/peers/peer/addr | | -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? leafref | +--ro session-initiator? leafref
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean
| +--ro peer-overloaded-timestamp? yang:timestamp | +--ro peer-overloaded-timestamp? yang:timestamp
| +--ro peer-overload-time? uint32 | +--ro peer-overload-time? uint32
+---n pcep-session-peer-overload-clear +---n pcep-session-peer-overload-clear
+--ro peer-addr? +--ro peer-addr?
| -> /pcep/entity/peers/peer/addr | -> /pcep/entity/peers/peer/addr
+--ro peer-overloaded? boolean +--ro peer-overloaded? boolean
+--ro peer-overloaded-clear-timestamp? yang:timestamp +--ro peer-overloaded-clear-timestamp? yang:timestamp
]]></sourcecode>
]]></artwork> </section>
</figure> <section toc="default" numbered="true">
</t> <name>Example</name>
</section> <!-- [rfced] Would it be helpful to specify which module is being referred to
in the phrase "in the YANG Module"?
<section title="Example" toc="default"> Original:
<t>The example below provides an overview of PCEP peer session information a The example below provides an overview of PCEP peer session
nd LSP-DB in the YANG Module. information and LSP-DB in the YANG Module.
Perhaps:
The example below provides an overview of PCEP peer session
information and LSP-DB in the "ietf-pcep" module.
-->
<t>The example below provides an overview of PCEP peer session
information and LSP-DB in the YANG module.</t>
<figure anchor="example"> <figure anchor="example">
<name>Example</name> <name>Example</name>
<artset> <artset>
<artwork type="svg" align="left"> <artwork type="svg" align="left" name="" alt="">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="320" v iewBox="0 0 320 416" class="diagram" text-anchor="middle" font-family="monospace " font-size="13px" stroke-linecap="round"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="320" v iewBox="0 0 320 416" class="diagram" text-anchor="middle" font-family="monospace " font-size="13px" stroke-linecap="round">
<path d="M 16,16 L 16,80" fill="none" stroke="black"/> <path d="M 16,16 L 16,80" fill="none" stroke="black"/>
<path d="M 16,144 L 16,208" fill="none" stroke="black"/> <path d="M 16,144 L 16,208" fill="none" stroke="black"/>
<path d="M 16,272 L 16,336" fill="none" stroke="black"/> <path d="M 16,272 L 16,336" fill="none" stroke="black"/>
<path d="M 80,16 L 80,80" fill="none" stroke="black"/> <path d="M 80,16 L 80,80" fill="none" stroke="black"/>
<path d="M 80,144 L 80,208" fill="none" stroke="black"/> <path d="M 80,144 L 80,208" fill="none" stroke="black"/>
<path d="M 80,272 L 80,336" fill="none" stroke="black"/> <path d="M 80,272 L 80,336" fill="none" stroke="black"/>
<path d="M 232,16 L 232,368" fill="none" stroke="black"/> <path d="M 232,16 L 232,368" fill="none" stroke="black"/>
<path d="M 296,16 L 296,368" fill="none" stroke="black"/> <path d="M 296,16 L 296,368" fill="none" stroke="black"/>
<path d="M 16,16 L 80,16" fill="none" stroke="black"/> <path d="M 16,16 L 80,16" fill="none" stroke="black"/>
<path d="M 232,16 L 296,16" fill="none" stroke="black"/> <path d="M 232,16 L 296,16" fill="none" stroke="black"/>
<path d="M 88,48 L 224,48" fill="none" stroke="black"/> <path d="M 88,48 L 224,48" fill="none" stroke="black"/>
<path d="M 16,80 L 80,80" fill="none" stroke="black"/> <path d="M 16,80 L 80,80" fill="none" stroke="black"/>
<path d="M 16,144 L 80,144" fill="none" stroke="black"/> <path d="M 16,144 L 80,144" fill="none" stroke="black"/>
<path d="M 88,176 L 224,176" fill="none" stroke="black"/> <path d="M 88,176 L 224,176" fill="none" stroke="black"/>
<path d="M 16,208 L 80,208" fill="none" stroke="black"/> <path d="M 16,208 L 80,208" fill="none" stroke="black"/>
<path d="M 16,272 L 80,272" fill="none" stroke="black"/> <path d="M 16,272 L 80,272" fill="none" stroke="black"/>
<path d="M 88,304 L 224,304" fill="none" stroke="black"/> <path d="M 88,304 L 224,304" fill="none" stroke="black"/>
<path d="M 16,336 L 80,336" fill="none" stroke="black"/> <path d="M 16,336 L 80,336" fill="none" stroke="black"/>
<path d="M 232,368 L 296,368" fill="none" stroke="black"/> <path d="M 232,368 L 296,368" fill="none" stroke="black"/>
<polygon class="arrowhead" points="232,304 220,298.4 220,309.6" fill="black" tra <polygon class="arrowhead" points="232,304 220,298.4 220,309.6" fi
nsform="rotate(0,224,304)"/> ll="black" transform="rotate(0,224,304)"/>
<polygon class="arrowhead" points="232,176 220,170.4 220,181.6" fill="black" tra <polygon class="arrowhead" points="232,176 220,170.4 220,181.6" fi
nsform="rotate(0,224,176)"/> ll="black" transform="rotate(0,224,176)"/>
<polygon class="arrowhead" points="232,48 220,42.4 220,53.6" fill="black" transf <polygon class="arrowhead" points="232,48 220,42.4 220,53.6" fill=
orm="rotate(0,224,48)"/> "black" transform="rotate(0,224,48)"/>
<polygon class="arrowhead" points="96,304 84,298.4 84,309.6" fill="black" transf <polygon class="arrowhead" points="96,304 84,298.4 84,309.6" fill=
orm="rotate(180,88,304)"/> "black" transform="rotate(180,88,304)"/>
<polygon class="arrowhead" points="96,176 84,170.4 84,181.6" fill="black" transf <polygon class="arrowhead" points="96,176 84,170.4 84,181.6" fill=
orm="rotate(180,88,176)"/> "black" transform="rotate(180,88,176)"/>
<polygon class="arrowhead" points="96,48 84,42.4 84,53.6" fill="black" transform <polygon class="arrowhead" points="96,48 84,42.4 84,53.6" fill="bl
="rotate(180,88,48)"/> ack" transform="rotate(180,88,48)"/>
<g class="text"> <g class="text">
<text x="44" y="52">PCC1</text> <text x="44" y="52">PCC1</text>
<text x="52" y="100">IP:192.0.2.1</text> <text x="52" y="100">IP:192.0.2.1</text>
<text x="264" y="116">PCE</text> <text x="264" y="116">PCE</text>
<text x="44" y="180">PCC2</text> <text x="44" y="180">PCC2</text>
<text x="52" y="228">IP:192.0.2.2</text> <text x="52" y="228">IP:192.0.2.2</text>
<text x="44" y="308">PCC4</text> <text x="44" y="308">PCC4</text>
<text x="60" y="356">IP:2001:db8::4</text> <text x="60" y="356">IP:2001:db8::4</text>
<text x="264" y="388">192.0.2.3</text> <text x="264" y="388">192.0.2.3</text>
<text x="272" y="404">2001:db8::3</text> <text x="272" y="404">2001:db8::3</text>
</g> </g>
</svg> </svg>
</artwork> </artwork>
<artwork type="ascii-art" align="left"><![CDATA[ <artwork type="ascii-art" align="left" name="" alt=""><![CDATA[
+-------+ +-------+ +-------+ +-------+
| | | | | | | |
| PCC1 |<---------------->| | | PCC1 |<---------------->| |
| | | | | | | |
+-------+ | | +-------+ | |
IP:192.0.2.1 | | IP:192.0.2.1 | |
| PCE | | PCE |
| | | |
+-------+ | | +-------+ | |
| | | | | | | |
skipping to change at line 5366 skipping to change at line 5913
| | | |
+-------+ | | +-------+ | |
| | | | | | | |
| PCC4 |<---------------->| | | PCC4 |<---------------->| |
| | | | | | | |
+-------+ | | +-------+ | |
IP:2001:db8::4 | | IP:2001:db8::4 | |
+-------+ +-------+
192.0.2.3 192.0.2.3
2001:db8::3 2001:db8::3
]]></artwork></artset> ]]></artwork>
</artset>
</figure> </figure>
<figure title="" suppress-title="true" align="left" alt="" width="" he
ight=""> <sourcecode name="" type="yang"><![CDATA[
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
at PCE: at PCE:
{ {
"ietf-pcep:pcep": { "ietf-pcep:pcep": {
"entity": { "entity": {
"addr": [ "addr": [
"192.0.2.3", "192.0.2.3",
"2001:db8::3" "2001:db8::3"
], ],
"role": "pce", "role": "pce",
"oper-status": "oper-status-up", "oper-status": "oper-status-up",
skipping to change at line 5479 skipping to change at line 6027
"role": "pcc" "role": "pcc"
} }
] ]
} }
} }
] ]
} }
} }
} }
} }
]]></artwork> ]]></sourcecode>
</figure>
</t> <t>Similarly, a PCEP session with an IPv6 address between a PCE (2001:db8:
<t>Similarly a PCEP session with IPv6 address between PCE (2001:db8::3) an :3)
d a PCC (2001:db8::4) could also be setup.</t> and a PCC (2001:db8::4) could also be set up.</t>
</section> </section>
<section title="Design Objectives" toc="default">
<t>This section describes some of the design objectives for the model: <section toc="default" numbered="true">
<list style="symbols"> <name>Design Objectives</name>
<t>In the case of existing implementations, it needs to map <t>This section describes some of the design objectives for the model:</t>
the data model defined in this document to their proprietary <ul spacing="normal">
data model. To facilitate such mappings, the data model
should be simple.</t> <li>
<t>The data model should be suitable for new implementations to use <t>Existing implementations need to map the data
as is.</t> model defined in this document to their proprietary data model. To
<t>Mapping to the PCEP MIB Module <xref target="RFC7420"/> should be clear.< facilitate such mappings, the data model should be simple.</t>
/t> </li>
<t>The data model should allow for static configurations of peers.</t> <li>
<t>The data model should include read-only counters in order to <t>The data model should be suitable for new implementations to use
gather statistics for sent and received PCEP messages, as is.</t>
received messages with errors, and messages that could not be sent </li>
due to errors. This could be in a separate model which <li>
augments the base data model.</t> <t>Mapping to the PCEP MIB module <xref target="RFC7420" format="defau
<t>It should be fairly straightforward to augment the base data model lt"/> should be clear.</t>
</li>
<li>
<t>The data model should allow for static configurations of peers.</t>
</li>
<li>
<t>The data model should include read-only counters in order to
gather statistics for sent and received PCEP messages, received
messages with errors, and messages that could not be sent due to
errors. This could be in a separate model that augments the base
data model.</t>
</li>
<li>
<t>It should be fairly straightforward to augment the base data model
for advanced PCE features.</t> for advanced PCE features.</t>
</list> </li>
</t> </ul>
</section>
<section toc="default" numbered="true">
<name>Relationship with PCEP MIB</name>
<t>If a node implements the PCEP MIB <xref target="RFC7420" format="defaul
t"/>, data nodes from the
YANG module can be mapped to table entries in the PCEP MIB.</t>
<table anchor="tab.mib" align="center">
<name>High-Level Relationship with PCEP MIB</name>
<thead>
<tr>
<th align="left">YANG Data Nodes</th>
<th align="left">PCEP MIB Objects</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">/pcep/entity</td>
<td align="left">PcePcepEntityEntry</td>
</tr>
<tr>
<td align="left">/pcep/entity/peers/peer</td>
<td align="left">pcePcepPeerEntry</td>
</tr>
<tr>
<td align="left">/pcep/entity/peers/peer/sessions/session</td>
<td align="left">pcePcepSessEntry</td>
</tr>
</tbody>
</table>
<table anchor="tab.mib.entity" align="center">
<name>Relationship with PCEP MIB for Entity</name>
<thead>
<tr>
<th align="left">YANG Data Nodes</th>
<th align="left">PCEP MIB Objects</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">-</td>
<td align="left">pcePcepEntityIndex</td>
</tr>
<tr>
<td align="left">admin-status</td>
<td align="left">pcePcepEntityAdminStatus</td>
</tr>
<tr>
<td align="left">oper-status</td>
<td align="left">pcePcepEntityOperStatus</td>
</tr>
<tr>
<td align="left">addr</td>
<td align="left">pcePcepEntityAddrType, pcePcepEntityAddr</td>
</tr>
<tr>
<td align="left">connect-timer</td>
<td align="left">pcePcepEntityConnectTimer</td>
</tr>
<tr>
<td align="left">connect-max-retry</td>
<td align="left">pcePcepEntityConnectMaxRetry</td>
</tr>
<tr>
<td align="left">init-back-off-timer</td>
<td align="left">pcePcepEntityInitBackoffTimer</td>
</tr>
<tr>
<td align="left">max-back-off-timer</td>
<td align="left">pcePcepEntityMaxBackoffTimer</td>
</tr>
<tr>
<td align="left">open-wait-timer</td>
<td align="left">pcePcepEntityOpenWaitTimer</td>
</tr>
<tr>
<td align="left">keep-wait-timer</td>
<td align="left">pcePcepEntityKeepWaitTimer</td>
</tr>
<tr>
<td align="left">keepalive-timer</td>
<td align="left">pcePcepEntityKeepAliveTimer</td>
</tr>
<tr>
<td align="left">dead-timer</td>
<td align="left">pcePcepEntityDeadTimer</td>
</tr>
<tr>
<td align="left">allow-negotiation</td>
<td align="left">pcePcepEntityAllowNegotiation</td>
</tr>
<tr>
<td align="left">max-keepalive-timer</td>
<td align="left">pcePcepEntityMaxKeepAliveTimer</td>
</tr>
<tr>
<td align="left">max-dead-timer</td>
<td align="left">pcePcepEntityMaxDeadTimer</td>
</tr>
<tr>
<td align="left">min-keepalive-timer</td>
<td align="left">pcePcepEntityMinKeepAliveTimer</td>
</tr>
<tr>
<td align="left">min-dead-timer</td>
<td align="left">pcePcepEntityMinDeadTimer</td>
</tr>
<tr>
<td align="left">sync-timer</td>
<td align="left">pcePcepEntitySyncTimer</td>
</tr>
<tr>
<td align="left">request-timer</td>
<td align="left">pcePcepEntityRequestTimer</td>
</tr>
<tr>
<td align="left">max-sessions</td>
<td align="left">pcePcepEntityMaxSessions</td>
</tr>
<tr>
<td align="left">max-unknown-reqs</td>
<td align="left">pcePcepEntityMaxUnknownReqs</td>
</tr>
<tr>
<td align="left">max-unknown-msgs</td>
<td align="left">pcePcepEntityMaxUnknownMsgs</td>
</tr>
</tbody>
</table>
<table anchor="tab.mib.peer" align="center">
<name>Relationship with PCEP MIB for Peer</name>
<thead>
<tr>
<th align="left">YANG Data Nodes in /pcep/entity/peers/peer</th>
<th align="left">PCEP MIB Objects</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">addr</td>
<td align="left">pcePcepPeerAddrType,pcePcepPeerAddr</td>
</tr>
<tr>
<td align="left">role</td>
<td align="left">pcePcepPeerRole</td>
</tr>
<tr>
<td align="left">discontinuity-time</td>
<td align="left">pcePcepPeerDiscontinuityTime</td>
</tr>
<tr>
<td align="left">initiate-session</td>
<td align="left">pcePcepPeerInitiateSession</td>
</tr>
<tr>
<td align="left">session-exists</td>
<td align="left">pcePcepPeerSessionExists</td>
</tr>
<tr>
<td align="left">sess-setup-ok</td>
<td align="left">pcePcepPeerNumSessSetupOK</td>
</tr>
<tr>
<td align="left">sess-setup-fail</td>
<td align="left">pcePcepPeerNumSessSetupFail</td>
</tr>
<tr>
<td align="left">session-up-time</td>
<td align="left">pcePcepPeerSessionUpTime</td>
</tr>
<tr>
<td align="left">session-fail-time</td>
<td align="left">pcePcepPeerSessionFailTime</td>
</tr>
<tr>
<td align="left">session-fail-up-time</td>
<td align="left">pcePcepPeerSessionFailUpTime</td>
</tr>
<tr>
<td align="left">/stats/rsp-time-avg</td>
<td align="left">pcePcepPeerAvgRspTime</td>
</tr>
<tr>
<td align="left">/stats/rsp-time-lwm</td>
<td align="left">pcePcepPeerLWMRspTime</td>
</tr>
<tr>
<td align="left">/stats/rsp-time-hwm</td>
<td align="left">pcePcepPeerHWMRspTime</td>
</tr>
<tr>
<td align="left">/stats/pcreq-sent</td>
<td align="left">pcePcepPeerNumPCReqSent</td>
</tr>
<tr>
<td align="left">/stats/pcreq-rcvd</td>
<td align="left">pcePcepPeerNumPCReqRcvd</td>
</tr>
<tr>
<td align="left">/stats/pcrep-sent</td>
<td align="left">pcePcepPeerNumPCRepSent</td>
</tr>
<tr>
<td align="left">/stats/pcrep-rcvd</td>
<td align="left">pcePcepPeerNumPCRepRcvd</td>
</tr>
<tr>
<td align="left">/stats/pcerr-sent</td>
<td align="left">pcePcepPeerNumPCErrSent</td>
</tr>
<tr>
<td align="left">/stats/pcerr-rcvd</td>
<td align="left">pcePcepPeerNumPCErrRcvd</td>
</tr>
<tr>
<td align="left">/stats/pcntf-sent</td>
<td align="left">pcePcepPeerNumPCNtfSent</td>
</tr>
<tr>
<td align="left">/stats/pcntf-rcvd</td>
<td align="left">pcePcepPeerNumPCNtfRcvd</td>
</tr>
<tr>
<td align="left">/stats/keepalive-sent</td>
<td align="left">pcePcepPeerNumKeepaliveSent</td>
</tr>
<tr>
<td align="left">/stats/keepalive-rcvd</td>
<td align="left">pcePcepPeerNumKeepaliveRcvd</td>
</tr>
<tr>
<td align="left">/stats/unknown-rcvd</td>
<td align="left">pcePcepPeerNumUnknownRcvd</td>
</tr>
<tr>
<td align="left">/stats/corrupt-rcvd</td>
<td align="left">pcePcepPeerNumCorruptRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent</td>
<td align="left">pcePcepPeerNumReqSent</td>
</tr>
<tr>
<td align="left">/stats/svec/svec-sent</td>
<td align="left">pcePcepPeerNumSvecSent</td>
</tr>
<tr>
<td align="left">/stats/svec/svec-req-sent</td>
<td align="left">pcePcepPeerNumSvecReqSent</td>
</tr>
<tr>
<td align="left">/stats/req-sent-pend-rep</td>
<td align="left">pcePcepPeerNumReqSentPendRep</td>
</tr>
<tr>
<td align="left">/stats/req-sent-ero-rcvd</td>
<td align="left">pcePcepPeerNumReqSentEroRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent-nopath-rcvd</td>
<td align="left">pcePcepPeerNumReqSentNoPathRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent-cancel-rcvd</td>
<td align="left">pcePcepPeerNumReqSentCancelRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent-error-rcvd</td>
<td align="left">pcePcepPeerNumReqSentErrorRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent-timeout</td>
<td align="left">pcePcepPeerNumReqSentTimeout</td>
</tr>
<tr>
<td align="left">/stats/req-sent-cancel-sent</td>
<td align="left">pcePcepPeerNumReqSentCancelSent</td>
</tr>
<tr>
<td align="left">/stats/req-sent-closed</td>
<td align="left">pcePcepPeerNumReqSentClosed</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd</td>
<td align="left">pcePcepPeerNumReqRcvd</td>
</tr>
<tr>
<td align="left">/stats/svec/svec-rcvd</td>
<td align="left">pcePcepPeerNumSvecRcvd</td>
</tr>
<tr>
<td align="left">/stats/svec/svec-req-rcvd</td>
<td align="left">pcePcepPeerNumSvecReqRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-pend-rep</td>
<td align="left">pcePcepPeerNumReqRcvdPendRep</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-ero-sent</td>
<td align="left">pcePcepPeerNumReqRcvdEroSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-nopath-sent</td>
<td align="left">pcePcepPeerNumReqRcvdNoPathSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-cancel-sent</td>
<td align="left">pcePcepPeerNumReqRcvdCancelSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-error-sent</td>
<td align="left">pcePcepPeerNumReqRcvdErrorSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-cancel-rcvd</td>
<td align="left">pcePcepPeerNumReqRcvdCancelRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-closed</td>
<td align="left">pcePcepPeerNumReqRcvdClosed</td>
</tr>
<tr>
<td align="left">/stats/rep-rcvd-unknown</td>
<td align="left">pcePcepPeerNumRepRcvdUnknown</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-unknown</td>
<td align="left">pcePcepPeerNumReqRcvdUnknown</td>
</tr>
</tbody>
</table>
<table anchor="tab.mib.session" align="center">
<name>Relationship with PCEP MIB for Session</name>
<thead>
<tr>
<th align="left">YANG Data Nodes in /pcep/entity/peers/peer/sessions
/session</th>
<th align="left">PCEP MIB Objects</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">initiator</td>
<td align="left">pcePcepSessInitiator</td>
</tr>
<tr>
<td align="left">state-last-change</td>
<td align="left">pcePcepSessStateLastChange</td>
</tr>
<tr>
<td align="left">state</td>
<td align="left">pcePcepSessState</td>
</tr>
<tr>
<td align="left">connect-retry</td>
<td align="left">pcePcepSessConnectRetry</td>
</tr>
<tr>
<td align="left">local-id</td>
<td align="left">pcePcepSessLocalID</td>
</tr>
<tr>
<td align="left">remote-id</td>
<td align="left">pcePcepSessRemoteID</td>
</tr>
<tr>
<td align="left">keepalive-timer</td>
<td align="left">pcePcepSessKeepaliveTimer</td>
</tr>
<tr>
<td align="left">peer-keepalive-timer</td>
<td align="left">pcePcepSessPeerKeepaliveTimer</td>
</tr>
<tr>
<td align="left">dead-timer</td>
<td align="left">pcePcepSessDeadTimer</td>
</tr>
<tr>
<td align="left">peer-dead-timer</td>
<td align="left">pcePcepSessPeerDeadTimer</td>
</tr>
<tr>
<td align="left">ka-hold-time-rem</td>
<td align="left">pcePcepSessKAHoldTimeRem</td>
</tr>
<tr>
<td align="left">overloaded</td>
<td align="left">pcePcepSessOverloaded</td>
</tr>
<tr>
<td align="left">overloaded-timestamp</td>
<td align="left">pcePcepSessOverloadTime</td>
</tr>
<tr>
<td align="left">peer-overloaded</td>
<td align="left">pcePcepSessPeerOverloaded</td>
</tr>
<tr>
<td align="left">peer-overloaded-timestamp</td>
<td align="left">pcePcepSessPeerOverloadTime</td>
</tr>
<tr>
<td align="left">/stats/discontinuity-time</td>
<td align="left">pcePcepSessDiscontinuityTime</td>
</tr>
<tr>
<td align="left">/stats/rsp-time-avg</td>
<td align="left">pcePcepSessAvgRspTime</td>
</tr>
<tr>
<td align="left">/stats/rsp-time-lwm</td>
<td align="left">pcePcepSessLWMRspTime</td>
</tr>
<tr>
<td align="left">/stats/rsp-time-hwm</td>
<td align="left">pcePcepSessHWMRspTime</td>
</tr>
<tr>
<td align="left">/stats/pcreq-sent</td>
<td align="left">pcePcepSessNumPCReqSent</td>
</tr>
<tr>
<td align="left">/stats/pcreq-rcvd</td>
<td align="left">pcePcepSessNumPCReqRcvd</td>
</tr>
<tr>
<td align="left">/stats/pcrep-sent</td>
<td align="left">pcePcepSessNumPCRepSent</td>
</tr>
<tr>
<td align="left">/stats/pcrep-rcvd</td>
<td align="left">pcePcepSessNumPCRepRcvd</td>
</tr>
<tr>
<td align="left">/stats/pcerr-sent</td>
<td align="left">pcePcepSessNumPCErrSent</td>
</tr>
<tr>
<td align="left">/stats/pcerr-rcvd</td>
<td align="left">pcePcepSessNumPCErrRcvd</td>
</tr>
<tr>
<td align="left">/stats/pcntf-sent</td>
<td align="left">pcePcepSessNumPCNtfSent</td>
</tr>
<tr>
<td align="left">/stats/pcntf-rcvd</td>
<td align="left">pcePcepSessNumPCNtfRcvd</td>
</tr>
<tr>
<td align="left">/stats/keepalive-sent</td>
<td align="left">pcePcepSessNumKeepaliveSent</td>
</tr>
<tr>
<td align="left">/stats/keepalive-rcvd</td>
<td align="left">pcePcepSessNumKeepaliveRcvd</td>
</tr>
<tr>
<td align="left">/stats/unknown-rcvd</td>
<td align="left">pcePcepSessNumUnknownRcvd</td>
</tr>
<tr>
<td align="left">/stats/corrupt-rcvd</td>
<td align="left">pcePcepSessNumCorruptRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent</td>
<td align="left">pcePcepSessNumReqSent</td>
</tr>
<tr>
<td align="left">/stats/svec/svec-sent</td>
<td align="left">pcePcepSessNumSvecSent</td>
</tr>
<tr>
<td align="left">/stats/svec/svec-req-sent</td>
<td align="left">pcePcepSessNumSvecReqSent</td>
</tr>
<tr>
<td align="left">/stats/req-sent-pend-rep</td>
<td align="left">pcePcepSessNumReqSentPendRep</td>
</tr>
<tr>
<td align="left">/stats/req-sent-ero-rcvd</td>
<td align="left">pcePcepSessNumReqSentEroRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent-nopath-rcvd</td>
<td align="left">pcePcepSessNumReqSentNoPathRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent-cancel-rcvd</td>
<td align="left">pcePcepSessNumReqSentCancelRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent-error-rcvd</td>
<td align="left">pcePcepSessNumReqSentErrorRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-sent-timeout</td>
<td align="left">pcePcepSessNumReqSentTimeout</td>
</tr>
<tr>
<td align="left">/stats/req-sent-cancel-sent</td>
<td align="left">pcePcepSessNumReqSentCancelSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd</td>
<td align="left">pcePcepSessNumReqRcvd</td>
</tr>
<tr>
<td align="left">/stats/svec/svec-rcvd</td>
<td align="left">pcePcepSessNumSvecRcvd</td>
</tr>
<tr>
<td align="left">/stats/svec/svec-req-rcvd</td>
<td align="left">pcePcepSessNumSvecReqRcvd</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-pend-rep</td>
<td align="left">pcePcepSessNumReqRcvdPendRep</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-ero-sent</td>
<td align="left">pcePcepSessNumReqRcvdEroSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-nopath-sent</td>
<td align="left">pcePcepSessNumReqRcvdNoPathSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-cancel-sent</td>
<td align="left">pcePcepSessNumReqRcvdCancelSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-error-sent</td>
<td align="left">pcePcepSessNumReqRcvdErrorSent</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-cancel-rcvd</td>
<td align="left">pcePcepSessNumReqRcvdCancelRcvd</td>
</tr>
<tr>
<td align="left">/stats/rep-rcvd-unknown</td>
<td align="left">pcePcepSessNumRepRcvdUnknown</td>
</tr>
<tr>
<td align="left">/stats/req-rcvd-unknown</td>
<td align="left">pcePcepSessNumReqRcvdUnknown</td>
</tr>
</tbody>
</table>
<table anchor="tab.mib.not" align="center">
<name>Relationship with PCEP MIB Notification</name>
<thead>
<tr>
<th align="left">YANG notifications</th>
<th align="left">PCEP MIB NOTIFICATIONS</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">pcep-session-up</td>
<td align="left">pcePcepSessUp</td>
</tr>
<tr>
<td align="left">pcep-session-down</td>
<td align="left">pcePcepSessDown</td>
</tr>
<tr>
<td align="left">pcep-session-local-overload</td>
<td align="left">pcePcepSessLocalOverload</td>
</tr>
<tr>
<td align="left">pcep-session-local-overload-clear</td>
<td align="left">pcePcepSessLocalOverloadClear</td>
</tr>
<tr>
<td align="left">pcep-session-peer-overload</td>
<td align="left">pcePcepSessPeerOverload</td>
</tr>
<tr>
<td align="left">pcep-session-peer-overload-clear</td>
<td align="left">pcePcepSessPeerOverloadClear</td>
</tr>
</tbody>
</table>
</section> </section>
<section title="Relationship with PCEP MIB" toc="default">
<t>If a node implements the PCEP-MIB <xref target="RFC7420"/>, data no
des from the
YANG module can be mapped to table entries in the PCEP-MIB.</t>
<texttable anchor="tab.mib" title="High Level Relationship with PCEP MI
B" suppress-title="false" align="center" style="full">
<ttcol align="left">YANG Data Nodes</ttcol>
<ttcol align="left">PCEP MIB Objects</ttcol>
<c>/pcep/entity</c><c>PcePcepEntityEntry</c>
<c>/pcep/entity/peers/peer</c><c>pcePcepPeerEntry</c>
<c>/pcep/entity/peers/peer/sessions/session</c><c>pcePcepSessEntry</c>
</texttable>
<texttable anchor="tab.mib.entity" title="Relationship with PCEP MIB fo <section toc="default" numbered="false">
r Entity" suppress-title="false" align="center" style="full"> <name>Acknowledgements</name>
<ttcol align="left">YANG Data Nodes</ttcol> <!-- [rfced] What is meant by "The initial document" and "above document" here?
<ttcol align="left">PCEP MIB Objects</ttcol>
<c>-</c><c>pcePcepEntityIndex</c>
<c>admin-status</c><c>pcePcepEntityAdminStatus</c>
<c>oper-status</c><c>pcePcepEntityOperStatus</c>
<c>addr</c><c>pcePcepEntityAddrType, pcePcepEntityAddr</c>
<c>connect-timer</c><c>pcePcepEntityConnectTimer</c>
<c>connect-max-retry</c><c>pcePcepEntityConnectMaxRetry</c> Original:
<c>init-back-off-timer</c><c>pcePcepEntityInitBackoffTimer</c> The initial document is based on the PCEP MIB [RFC7420]. The authors
<c>max-back-off-timer</c><c>pcePcepEntityMaxBackoffTimer</c> of this document would like to thank the authors of the above
document.
<c>open-wait-timer</c><c>pcePcepEntityOpenWaitTimer</c> Perhaps:
<c>keep-wait-timer</c><c>pcePcepEntityKeepWaitTimer</c> This document is based on the PCEP MIB [RFC7420]. The authors
<c>keepalive-timer</c><c>pcePcepEntityKeepAliveTimer</c> of this document would like to thank the authors of [RFC7420].
<c>dead-timer</c><c>pcePcepEntityDeadTimer</c> -->
<c>allow-negotiation</c><c>pcePcepEntityAllowNegotiation</c> <t>The initial document is based on the PCEP MIB <xref target="RFC7420"
<c>max-keepalive-timer</c><c>pcePcepEntityMaxKeepAliveTimer</c> format="default"/>. The authors of this document would like to thank the
<c>max-dead-timer</c><c>pcePcepEntityMaxDeadTimer</c> authors of the above document.</t>
<c>min-keepalive-timer</c><c>pcePcepEntityMinKeepAliveTimer</c> <t>Thanks to <contact fullname="Martin Bjorklund"/> and <contact
<c>min-dead-timer</c><c>pcePcepEntityMinDeadTimer</c> fullname="Tom Petch"/> for the detailed review. Thanks to <contact
<c>sync-timer</c><c>pcePcepEntitySyncTimer</c> fullname="Mahesh Jethanandani"/> and <contact fullname="Jan Lindblad"/>
<c>request-timer</c><c>pcePcepEntityRequestTimer</c> for the YANGDOCTOR review. Thanks to <contact fullname="Scott Kelly"/>
for the SECDIR review. Thanks to <contact fullname="Gyan Mishra"/> and
<contact fullname="Matthew Bocci"/> for the RTGDIR review.</t>
</section>
<c>max-sessions</c><c>pcePcepEntityMaxSessions</c> <section toc="default" numbered="false">
<c>max-unknown-reqs</c><c>pcePcepEntityMaxUnknownReqs</c> <name>Contributors</name>
<c>max-unknown-msgs</c><c>pcePcepEntityMaxUnknownMsgs</c>
</texttable>
<texttable anchor="tab.mib.peer" title="Relationship with PCEP MIB for P <contact fullname="Rohit Pobbathi">
eer" suppress-title="false" align="center" style="full"> <organization>Nokia Networks</organization>
<ttcol align="left">YANG Data Nodes in /pcep/entity/peers/peer</ttcol> <address>
<ttcol align="left">PCEP MIB Objects</ttcol> <postal><country>India</country></postal>
<c>addr</c><c>pcePcepPeerAddrType,pcePcepPeerAddr</c> <email>rohit.pobbathi_ashok@nokia.com</email>
<c>role</c><c>pcePcepPeerRole</c> </address>
<c>discontinuity-time</c><c>pcePcepPeerDiscontinuityTime</c> </contact>
<c>initiate-session</c><c>pcePcepPeerInitiateSession</c>
<c>session-exists</c><c>pcePcepPeerSessionExists</c>
<c>sess-setup-ok</c><c>pcePcepPeerNumSessSetupOK</c> <contact fullname="Vinod KumarS">
<c>sess-setup-fail</c><c>pcePcepPeerNumSessSetupFail</c> <organization></organization>
<address>
<postal><country>India</country></postal>
<email>vinods.kumar@gmail.com</email>
</address>
</contact>
<c>session-up-time</c><c>pcePcepPeerSessionUpTime</c> <contact fullname="Zafar Ali">
<c>session-fail-time</c><c>pcePcepPeerSessionFailTime</c> <organization>Cisco Systems</organization>
<c>session-fail-up-time</c><c>pcePcepPeerSessionFailUpTime</c> <address>
<postal><country>Canada</country></postal>
<email>zali@cisco.com</email>
</address>
</contact>
<c>/stats/rsp-time-avg</c><c>pcePcepPeerAvgRspTime</c> <contact fullname="Xufeng Liu">
<c>/stats/rsp-time-lwm</c><c>pcePcepPeerLWMRspTime</c> <organization></organization>
<c>/stats/rsp-time-hwm</c><c>pcePcepPeerHWMRspTime</c> <address>
<email>xufeng.liu.ietf@gmail.com</email>
</address>
</contact>
<c>/stats/pcreq-sent</c><c>pcePcepPeerNumPCReqSent</c> <contact fullname="Young Lee">
<c>/stats/pcreq-rcvd</c><c>pcePcepPeerNumPCReqRcvd</c> <organization>Samsung</organization>
<c>/stats/pcrep-sent</c><c>pcePcepPeerNumPCRepSent</c> <address>
<c>/stats/pcrep-rcvd</c><c>pcePcepPeerNumPCRepRcvd</c> <email>younglee.tx@gmail.com</email>
<c>/stats/pcerr-sent</c><c>pcePcepPeerNumPCErrSent</c> </address>
<c>/stats/pcerr-rcvd</c><c>pcePcepPeerNumPCErrRcvd</c> </contact>
<c>/stats/pcntf-sent</c><c>pcePcepPeerNumPCNtfSent</c>
<c>/stats/pcntf-rcvd</c><c>pcePcepPeerNumPCNtfRcvd</c>
<c>/stats/keepalive-sent</c><c>pcePcepPeerNumKeepaliveSent</c>
<c>/stats/keepalive-rcvd</c><c>pcePcepPeerNumKeepaliveRcvd</c>
<c>/stats/unknown-rcvd</c><c>pcePcepPeerNumUnknownRcvd</c>
<c>/stats/corrupt-rcvd</c><c>pcePcepPeerNumCorruptRcvd</c>
<c>/stats/req-sent</c><c>pcePcepPeerNumReqSent</c>
<c>/stats/svec/svec-sent</c><c>pcePcepPeerNumSvecSent</c> <contact fullname="Udayasree Palle">
<c>/stats/svec/svec-req-sent</c><c>pcePcepPeerNumSvecReqSent</c> <organization></organization>
<c>/stats/req-sent-pend-rep</c><c>pcePcepPeerNumReqSentPendRep</c> <address>
<c>/stats/req-sent-ero-rcvd</c><c>pcePcepPeerNumReqSentEroRcvd</c> <email>udayasreereddy@gmail.com</email>
<c>/stats/req-sent-nopath-rcvd</c><c>pcePcepPeerNumReqSentNoPathRcvd</c> </address>
<c>/stats/req-sent-cancel-rcvd</c><c>pcePcepPeerNumReqSentCancelRcvd</c> </contact>
<c>/stats/req-sent-error-rcvd</c><c>pcePcepPeerNumReqSentErrorRcvd</c>
<c>/stats/req-sent-timeout</c><c>pcePcepPeerNumReqSentTimeout</c>
<c>/stats/req-sent-cancel-sent</c><c>pcePcepPeerNumReqSentCancelSent</c>
<c>/stats/req-sent-closed</c><c>pcePcepPeerNumReqSentClosed</c>
<c>/stats/req-rcvd</c><c>pcePcepPeerNumReqRcvd</c> <contact fullname="Xian Zhang">
<c>/stats/svec/svec-rcvd</c><c>pcePcepPeerNumSvecRcvd</c> <organization>Huawei Technologies</organization>
<c>/stats/svec/svec-req-rcvd</c><c>pcePcepPeerNumSvecReqRcvd</c> <address>
<postal>
<street>Bantian, Longgang District</street>
<city>Shenzhen</city><code>518129</code>
<country>China</country>
</postal>
<email>zhang.xian@huawei.com</email>
</address>
</contact>
<c>/stats/req-rcvd-pend-rep</c><c>pcePcepPeerNumReqRcvdPendRep</c> <!-- [rfced] Only one name is listed for the following individuals in the
<c>/stats/req-rcvd-ero-sent</c><c>pcePcepPeerNumReqRcvdEroSent</c> Contributors section. Is either a surname or first name needed? Or are
<c>/stats/req-rcvd-nopath-sent</c><c>pcePcepPeerNumReqRcvdNoPathSent</c> these okay as is?
<c>/stats/req-rcvd-cancel-sent</c><c>pcePcepPeerNumReqRcvdCancelSent</c>
<c>/stats/req-rcvd-error-sent</c><c>pcePcepPeerNumReqRcvdErrorSent</c>
<c>/stats/req-rcvd-cancel-rcvd</c><c>pcePcepPeerNumReqRcvdCancelRcvd</c>
<c>/stats/req-rcvd-closed</c><c>pcePcepPeerNumReqRcvdClosed</c>
<c>/stats/rep-rcvd-unknown</c><c>pcePcepPeerNumRepRcvdUnknown</c>
<c>/stats/req-rcvd-unknown</c><c>pcePcepPeerNumReqRcvdUnknown</c>
</texttable>
<texttable anchor="tab.mib.session" title="Relationship with PCEP MIB fo Current:
r Session" suppress-title="false" align="center" style="full"> Avantika
<ttcol align="left">YANG Data Nodes in /pcep/entity/peers/peer/sessions/ ECI Telecom
session</ttcol> India
<ttcol align="left">PCEP MIB Objects</ttcol> Email: avantika.srm@gmail.com
<c>initiator</c><c>pcePcepSessInitiator</c>
<c>state-last-change</c><c>pcePcepSessStateLastChange</c>
<c>state</c><c>pcePcepSessState</c>
<c>connect-retry</c><c>pcePcepSessConnectRetry</c>
<c>local-id</c><c>pcePcepSessLocalID</c>
<c>remote-id</c><c>pcePcepSessRemoteID</c>
<c>keepalive-timer</c><c>pcePcepSessKeepaliveTimer</c>
<c>peer-keepalive-timer</c><c>pcePcepSessPeerKeepaliveTimer</c>
<c>dead-timer</c><c>pcePcepSessDeadTimer</c>
<c>peer-dead-timer</c><c>pcePcepSessPeerDeadTimer</c>
<c>ka-hold-time-rem</c><c>pcePcepSessKAHoldTimeRem</c>
<c>overloaded</c><c>pcePcepSessOverloaded</c>
<c>overloaded-timestamp</c><c>pcePcepSessOverloadTime</c>
<c>peer-overloaded</c><c>pcePcepSessPeerOverloaded</c>
<c>peer-overloaded-timestamp</c><c>pcePcepSessPeerOverloadTime</c>
<c>/stats/discontinuity-time</c><c>pcePcepSessDiscontinuityTime</c> Shashikanth
<c>/stats/rsp-time-avg</c><c>pcePcepSessAvgRspTime</c> India
<c>/stats/rsp-time-lwm</c><c>pcePcepSessLWMRspTime</c> Email: shashivh@gmail.com
<c>/stats/rsp-time-hwm</c><c>pcePcepSessHWMRspTime</c> -->
<c>/stats/pcreq-sent</c><c>pcePcepSessNumPCReqSent</c>
<c>/stats/pcreq-rcvd</c><c>pcePcepSessNumPCReqRcvd</c>
<c>/stats/pcrep-sent</c><c>pcePcepSessNumPCRepSent</c>
<c>/stats/pcrep-rcvd</c><c>pcePcepSessNumPCRepRcvd</c>
<c>/stats/pcerr-sent</c><c>pcePcepSessNumPCErrSent</c>
<c>/stats/pcerr-rcvd</c><c>pcePcepSessNumPCErrRcvd</c>
<c>/stats/pcntf-sent</c><c>pcePcepSessNumPCNtfSent</c>
<c>/stats/pcntf-rcvd</c><c>pcePcepSessNumPCNtfRcvd</c>
<c>/stats/keepalive-sent</c><c>pcePcepSessNumKeepaliveSent</c>
<c>/stats/keepalive-rcvd</c><c>pcePcepSessNumKeepaliveRcvd</c>
<c>/stats/unknown-rcvd</c><c>pcePcepSessNumUnknownRcvd</c>
<c>/stats/corrupt-rcvd</c><c>pcePcepSessNumCorruptRcvd</c>
<c>/stats/req-sent</c><c>pcePcepSessNumReqSent</c> <contact fullname="Avantika">
<c>/stats/svec/svec-sent</c><c>pcePcepSessNumSvecSent</c> <organization>ECI Telecom</organization>
<c>/stats/svec/svec-req-sent</c><c>pcePcepSessNumSvecReqSent</c> <address>
<c>/stats/req-sent-pend-rep</c><c>pcePcepSessNumReqSentPendRep</c> <postal><country>India</country></postal>
<c>/stats/req-sent-ero-rcvd</c><c>pcePcepSessNumReqSentEroRcvd</c> <email>avantika.srm@gmail.com</email>
<c>/stats/req-sent-nopath-rcvd</c><c>pcePcepSessNumReqSentNoPathRcvd</c> </address>
<c>/stats/req-sent-cancel-rcvd</c><c>pcePcepSessNumReqSentCancelRcvd</c> </contact>
<c>/stats/req-sent-error-rcvd</c><c>pcePcepSessNumReqSentErrorRcvd</c>
<c>/stats/req-sent-timeout</c><c>pcePcepSessNumReqSentTimeout</c>
<c>/stats/req-sent-cancel-sent</c><c>pcePcepSessNumReqSentCancelSent</c>
<c>/stats/req-rcvd</c><c>pcePcepSessNumReqRcvd</c>
<c>/stats/svec/svec-rcvd</c><c>pcePcepSessNumSvecRcvd</c>
<c>/stats/svec/svec-req-rcvd</c><c>pcePcepSessNumSvecReqRcvd</c>
<c>/stats/req-rcvd-pend-rep</c><c>pcePcepSessNumReqRcvdPendRep</c>
<c>/stats/req-rcvd-ero-sent</c><c>pcePcepSessNumReqRcvdEroSent</c>
<c>/stats/req-rcvd-nopath-sent</c><c>pcePcepSessNumReqRcvdNoPathSent</c>
<c>/stats/req-rcvd-cancel-sent</c><c>pcePcepSessNumReqRcvdCancelSent</c>
<c>/stats/req-rcvd-error-sent</c><c>pcePcepSessNumReqRcvdErrorSent</c>
<c>/stats/req-rcvd-cancel-rcvd</c><c>pcePcepSessNumReqRcvdCancelRcvd</c>
<c>/stats/rep-rcvd-unknown</c><c>pcePcepSessNumRepRcvdUnknown</c>
<c>/stats/req-rcvd-unknown</c><c>pcePcepSessNumReqRcvdUnknown</c>
</texttable>
<texttable anchor="tab.mib.not" title="Relationship with PCEP MIB <contact fullname="Shashikanth">
Notification" suppress-title="false" align="center" style="full"> <organization></organization>
<ttcol align="left">YANG notifications</ttcol> <address>
<ttcol align="left">PCEP MIB NOTIFICATIONS</ttcol> <postal><country>India</country></postal>
<c>pcep-session-up</c><c>pcePcepSessUp</c> <email>shashivh@gmail.com</email>
<c>pcep-session-down</c><c>pcePcepSessDown</c> </address>
<c>pcep-session-local-overload</c><c>pcePcepSessLocalOverload</c> </contact>
<c>pcep-session-local-overload-clear</c><c>pcePcepSessLocalOverloadClear
</c>
<c>pcep-session-peer-overload</c><c>pcePcepSessPeerOverload</c>
<c>pcep-session-peer-overload-clear</c><c>pcePcepSessPeerOverloadClear</
c>
</texttable>
</section>
<section title="Contributor Addresses" toc="default">
<t>
<figure title="" suppress-title="false" align="left" alt="" width="" height=
"">
<artwork xml:space="preserve" name="" type="" align="left" alt="" widt
h="" height=""><![CDATA[
Rohit Pobbathi
Nokia Networks
India
EMail: rohit.pobbathi_ashok@nokia.com </section>
Vinod KumarS </back>
India
EMail: vinods.kumar@gmail.com <!-- [rfced] Some author comments are present in the XML. Please confirm that
no updates related to these comments are outstanding. Note that the
comments will be deleted prior to publication.
-->
Zafar Ali <!-- [rfced] Sourcecode
Cisco Systems
Canada
EMail: zali@cisco.com a) Note that, except for Figure 1, we updated all instances of <artwork> to
either <sourcecode>, <dl> (in IANA Considerations section), or <contact> (in
Contributors section). For the instances now tagged as <sourcecode>, we used
either type="yangtree" or type="yang". Please review to confirm correctness.
Xufeng Liu b) Some lines in the tree diagrams in Section 4.1.1 and Appendix A extend
beyond the margin in the txt output. How may we break these lines so they fit
within the 69-character limit for sourcecode? We can use the line wrapping
described in Section 7 of RFC 8792, but we first want to confirm that this the
best solution here. Perhaps removing some space between items (especially for
the last two lines below) would be another option.
EMail: xufeng.liu.ietf@gmail.com Same four lines in both Section 4.1.1 and Appendix A:
Young Lee rw pce-initiated? boolean {pce-initiated}?
Samsung
EMail: younglee.tx@gmail.com :(hexadecimal) {key-chain:hex-key-string}?
Udayasree Palle rw hexadecimal-string? yang:hex-string
EMail: udayasreereddy@gmail.com ro role? -> ../../../role
Xian Zhang Note: We only included the portion of the line after the double dash in order
Huawei Technologies to include the lines in this xml comment.
Bantian, Longgang District -->
Shenzhen 518129
P.R.China
EMail: zhang.xian@huawei.com <!-- [rfced] We have received guidance from Benoit Claise and the YANG Doctors
that "YANG data model" is preferred (instead of "YANG model"). We have
updated the text to use this form. Please review.
-->
<!-- [rfced] FYI - We see both American and British spellings in this
document; for consistency, we updated to use American spelling. Please note
that our updates include changing "neighbour-domains" to
"neighbor-domains" in the YANG modules and tree diagrams.
Let us know any concerns about these changes in the sourcecode.
-->
Avantika <!-- [rfced] We have added expansions for abbreviations upon first use per
ECI Telecom Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each expansion
India in the document carefully to ensure correctness.
EMail: avantika.srm@gmail.com Label Switched Paths (LSPs)
Point-to-Multipoint (P2MP)
Maximum SID Depth (MSD)
LSP Database (LSP-DB)
Shashikanth -->
India <!-- [rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed. Updates of this nature typically
result in more precise language, which is helpful for readers.
EMail: shashivh@gmail.com For example, please consider whether "sanity" should be updated in the text belo w:
]]></artwork> This YANG model defines a RPC to trigger state resynchronize at the PCE for
</figure> sanity check with a particular PCC. -->
</t>
</section>
</back>
</rfc> </rfc>
 End of changes. 461 change blocks. 
1414 lines changed or deleted 2474 lines changed or added

This html diff was produced by rfcdiff 1.48.