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 " "> | |||
<?rfc tocdepth="4"?> | <!ENTITY zwsp "​"> | |||
<?rfc tocindent="yes"?> | <!ENTITY nbhy "‑"> | |||
<?rfc symrefs="yes" ?> | <!ENTITY wj "⁠"> | |||
<?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 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. |