| 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"> | ||||
| <front> | ||||
| <title abbrev="PCE-YANG">A YANG Data Model for Path Computation Element Comm | ||||
| unications Protocol (PCEP)</title> | ||||
| <front> | ||||
| <title abbrev="YANG Data Model for PCEP">A YANG Data Model for the Path Comp | ||||
| utation 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="August" year="2025"/> | ||||
| <area>RTG</area> | ||||
| <workgroup>pce</workgroup> | ||||
| <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>Path Computation Request (PCReq) message</t> | |||
| notifications of specific states related to the use of a PCE in the | </li> | |||
| context of Multiprotocol Label Switching (MPLS) and Generalized MPLS | <li> | |||
| (GMPLS) Traffic Engineering (TE). <xref target='RFC8231'/> | <t>Path Computation Reply (PCRep) message</t> | |||
| specifies extensions to PCEP to enable stateful control of MPLS TE LSPs. | </li> | |||
| <xref target='RFC8664'/> and <xref target='RFC9603'/> extend PCEP to | <li> | |||
| support Segment Routing in MPLS and IPv6 respectively.</t> | <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 defines a YANG 1.1 <xref target="RFC7950"/> data model | <t>This document uses the following terms defined in <xref | |||
| for the management of PCEP speakers. It is important to | target="RFC7420" format="default"/>:</t> | |||
| establish a common data model for how PCEP speakers are identified, | <dl spacing="normal"> | |||
| configured, and monitored. The data model includes configuration data | <dt>PCEP entity:</dt><dd>a local PCEP speaker</dd> | |||
| and state data.</t> | <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> | ||||
| <t>This document contains a specification of the PCEP YANG module, | <t>Further, this document uses the following terms defined in <xref target="R | |||
| "ietf-pcep" which provides the PCEP <xref target="RFC5440"/> data | FC8051"/>:</t> | |||
| model. Further, this document also includes the PCEP statistics YANG | <ul> | |||
| module "ietf-pcep-stats" which provides statistics, counters and | <li>Stateful PCE</li> | |||
| telemetry data.</t> | <li>Passive Stateful PCE</li> | |||
| <li>Active Stateful PCE</li> | ||||
| <li>Delegation</li> | ||||
| </ul> | ||||
| <t>The YANG modules in this document conform to the Network Management Datast | <t>In addition, this document uses the following terms defined in <xref targe | |||
| ore | t="RFC8231"/>:</t> | |||
| Architecture (NMDA) <xref target="RFC8342"/>. | <ul> | |||
| The origin of the data is indicated as per the origin metadata | <li>Revocation</li> | |||
| annotation.</t> | <li>Redelegation</li> | |||
| <li>Path Computation LSP State Report (PCRpt) message</li> | ||||
| <li>Path Computation LSP Update Request (PCUpd) message</li> | ||||
| <li>PLSP-ID (a PCEP-specific identifier for the LSP)</li> | ||||
| <li>Stateful PCE Request Parameter (SRP)</li> | ||||
| </ul> | ||||
| </section> | <t>This document also uses the following terms defined in <xref target="RFC82 | |||
| <section title="Requirements Language" toc="default"> | 81" format="default"/>:</t> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | <ul spacing="normal"> | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | <li> | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | <t>PCE-initiated LSP</t></li> | |||
| described in BCP 14 <xref target="RFC2119" /> <xref target="RFC8174"/> whe | <li> | |||
| n, and only when, they | <t>Path Computation LSP Initiate (PCInitiate) message</t> | |||
| appear in all capitals, as shown here.</t> | </li> | |||
| </section> | </ul> | |||
| <section title="Terminology and Notation" toc="default"> | ||||
| <t> | ||||
| This document uses the terminology defined in <xref target="RFC4655"/> | ||||
| and <xref target="RFC5440"/>. In particular, it uses the following | ||||
| acronyms. | ||||
| <list style='symbols'> | ||||
| <t> | ||||
| Path Computation Request message (PCReq). | ||||
| </t> | ||||
| <t> | ||||
| Path Computation Reply message (PCRep). | ||||
| </t> | ||||
| <t> | ||||
| Notification message (PCNtf). | ||||
| </t> | ||||
| <t> | ||||
| Error message (PCErr). | ||||
| </t> | ||||
| <t> | ||||
| Request Parameters object (RP). | ||||
| </t> | ||||
| <t> | ||||
| Synchronization Vector object (SVEC). | ||||
| </t> | ||||
| <t> | ||||
| Explicit Route object (ERO). | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| This document also uses the following terms defined in | ||||
| <xref target="RFC7420"/>: | ||||
| <list style='symbols'> | ||||
| <t> | ||||
| PCEP entity: a local PCEP speaker. | ||||
| </t> | ||||
| <t> | ||||
| PCEP peer: to refer to a remote PCEP speaker. | ||||
| </t> | ||||
| <t>PCEP speaker: where it is not necessary to distinguish between lo | ||||
| cal | ||||
| and remote. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| Further, this document also uses the following terms defined in | ||||
| <xref target='RFC8231'/> : | ||||
| <list style='symbols'> | ||||
| <t> | ||||
| Stateful PCE, Passive Stateful PCE, Active Stateful PCE | ||||
| </t> | ||||
| <t> | ||||
| Delegation, Revocation, Redelegation | ||||
| </t> | ||||
| <t>LSP State Report, Path Computation Report message (PCRpt).</t> | ||||
| <t>LSP State Update, Path Computation Update message (PCUpd).</t> | ||||
| <t>PLSP-ID: a PCEP-specific identifier for the LSP.</t> | ||||
| <t>SRP: Stateful PCE Request Parameters</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| <xref target='RFC8281'/> : | ||||
| <list style='symbols'> | ||||
| <t>PCE-initiated LSP, Path Computation LSP Initiate Message (PCIniti | ||||
| ate).</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| <xref target='RFC8408'/> : | ||||
| <list style='symbols'> | ||||
| <t>Path Setup Type (PST).</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <t>Last, this document uses the following terms, which are defined in the | |||
| <xref target='RFC8664'/> : | RFCs indicated below:</t> | |||
| <list style='symbols'> | ||||
| <t>Segment Routing (SR).</t> | ||||
| </list> | <ul spacing="normal"> | |||
| </t> | <li> | |||
| <t> | <t>Path Setup Type (PST) <xref target="RFC8408" format="default"/></t> | |||
| <xref target='RFC5541'/> : | </li> | |||
| <list style='symbols'> | ||||
| <t>Objective Function (OF).</t> | ||||
| </list> | <li> | |||
| </t> | <t>Segment Routing (SR) <xref target="RFC8664" format="default"/></t> | |||
| <t> | </li> | |||
| <xref target='RFC8697'/> : | ||||
| <list style='symbols'> | ||||
| <t>Association.</t> | ||||
| </list> | <li> | |||
| </t> | <t>Objective Function (OF) <xref target="RFC5541" format="default"/></ | |||
| <t> | t> | |||
| <xref target='RFC6241'/> : | </li> | |||
| <list style='symbols'> | ||||
| <t>Configuration data.</t> | ||||
| <t>State data.</t> | ||||
| </list> | <li> | |||
| </t> | <t>Association <xref target="RFC8697" 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>Configuration data <xref target="RFC6241" format="default"/></t> | |||
| document. The meaning of the symbols in these diagrams is defined in <xre | </li> | |||
| f target="RFC8340"/>. | <li> | |||
| </t> | <t>State data <xref target="RFC6241" format="default"/></t> | |||
| <!-- | </li> | |||
| <list style="symbols"> | </ul> | |||
| <t>Brackets "[" and "]" enclose list keys.</t> | <section anchor="sec.tree-symbols" toc="default" numbered="true"> | |||
| <t>Abbreviations before data node names: "rw" means | <name>Tree Diagrams</name> | |||
| configuration (read-write) and "ro" state data | ||||
| (read-only).</t> | <t>Simplified graphical representations of the data model are used in | |||
| <t>Symbols after data node names: "?" means an optional node, "!" | this document. The meaning of the symbols in these diagrams is | |||
| means a presence container, and "*" denotes a list and leaf-list.</t> | defined in <xref target="RFC8340" format="default"/>. | |||
| </t> | ||||
| <t>Parentheses enclose choice and case nodes, and case nodes | ||||
| are also marked with a colon (":").</t> | ||||
| <t>Ellipsis ("...") stands for contents of subtrees that are | ||||
| not shown.</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"> | ||||
| <texttable anchor="tab.prefixes" title="Prefixes and corresponding YANG mo | <name>Prefixes and Corresponding YANG Modules</name> | |||
| dules" suppress-title="false" align="center" style="full"> | <thead> | |||
| <ttcol align="left">Prefix</ttcol> | <tr> | |||
| <ttcol align="left">YANG module</ttcol> | <th align="left">Prefix</th> | |||
| <ttcol align="left">Reference</ttcol> | <th align="left">YANG module</th> | |||
| <c>yang</c><c>ietf-yang-types</c><c><xref target="RFC6991" pageno="false | <th align="left">Reference</th> | |||
| " format="default"/></c> | </tr> | |||
| <c>inet</c><c>ietf-inet-types</c><c><xref target="RFC6991" pageno="false | </thead> | |||
| " format="default"/></c> | <tbody> | |||
| <!--<c>te</c><c>ietf-te</c><c><xref target="I-D.ietf-teas-yang-te" pagen | <tr> | |||
| o="false" format="default"/></c>--> | <td align="left">yang</td> | |||
| <c>te-types</c><c>ietf-te-types</c><c><xref target="RFC8776" pageno="fal | <td align="left">ietf-yang-types</td> | |||
| se" format="default"/></c> | <td align="left"> | |||
| <c>key-chain</c><c>ietf-key-chain</c><c><xref target="RFC8177" pageno="f | <xref target="RFC6991" format="default"/></td> | |||
| alse" format="default"/></c> | </tr> | |||
| <c>nacm</c><c>ietf-netconf-acm</c><c><xref target="RFC8341" pageno="fals | <tr> | |||
| e" format="default"/></c> | <td align="left">inet</td> | |||
| <c>tlss</c><c>ietf-tls-server</c><c><xref target="RFC9645" pageno="false | <td align="left">ietf-inet-types</td> | |||
| " format="default"/></c> | <td align="left"> | |||
| <c>tlsc</c><c>ietf-tls-client</c><c><xref target="RFC9645" pageno="false | <xref target="RFC6991" format="default"/></td> | |||
| " format="default"/></c> | </tr> | |||
| <c>ospf</c><c>ietf-ospf</c><c><xref target="RFC9129" pageno="false" form | <tr> | |||
| at="default"/></c> | <td align="left">te-types</td> | |||
| <c>isis</c><c>ietf-isis</c><c><xref target="RFC9130" pageno="false" form | <td align="left">ietf-te-types</td> | |||
| at="default"/></c> | <td align="left"> | |||
| </texttable> | <xref target="RFC8776" format="default"/></td> | |||
| </section> | </tr> | |||
| <section title="References in the Model" toc="default"> | <tr> | |||
| <t>Following documents are referenced in the model defined in this documen | <td align="left">key-chain</td> | |||
| t - </t> | <td align="left">ietf-key-chain</td> | |||
| <texttable anchor="tab.ref" title="References in the YANG modules" suppr | <td align="left"> | |||
| ess-title="false" align="center" style="full"> | <xref target="RFC8177" format="default"/></td> | |||
| <ttcol align="left">Documents</ttcol> | </tr> | |||
| <ttcol align="left">Reference</ttcol> | <tr> | |||
| <!--<c>RSVP-TE: Extensions to RSVP for LSP Tunnels</c><c><xref target="R | <td align="left">nacm</td> | |||
| FC3209" pageno="false" format="default"/></c>--> | <td align="left">ietf-netconf-acm</td> | |||
| <c>OSPF Protocol Extensions for Path Computation Element (PCE) Discovery | <td align="left"> | |||
| </c><c><xref target="RFC5088" pageno="false" format="default"/></c> | <xref target="RFC8341" format="default"/></td> | |||
| <c>IS-IS Protocol Extensions for Path Computation Element (PCE) Discover | </tr> | |||
| y</c><c><xref target="RFC5089" pageno="false" format="default"/></c> | <tr> | |||
| <c>Path Computation Element (PCE) Communication Protocol (PCEP)</c><c><x | <td align="left">tlss</td> | |||
| ref target="RFC5440" pageno="false" format="default"/></c> | <td align="left">ietf-tls-server</td> | |||
| <c>Preserving Topology Confidentiality in Inter-Domain Path Computation | <td align="left"> | |||
| Using a Path-Key-Based Mechanism</c><c><xref target="RFC5520" pageno="false" for | <xref target="RFC9645" format="default"/></td> | |||
| mat="default"/></c> | </tr> | |||
| <c>Encoding of Objective Functions in the Path Computation Element Commu | <tr> | |||
| nication Protocol (PCEP)</c><c><xref target="RFC5541" pageno="false" format="def | <td align="left">tlsc</td> | |||
| ault"/></c> | <td align="left">ietf-tls-client</td> | |||
| <c>Path Computation Element Communication Protocol (PCEP) Requirements a | <td align="left"> | |||
| nd Protocol Extensions in Support of Global Concurrent Optimization</c><c><xref | <xref target="RFC9645" format="default"/></td> | |||
| target="RFC5557" pageno="false" format="default"/></c> | </tr> | |||
| <c>Common YANG Data Types</c><c><xref target="RFC6991" pageno="false" fo | <tr> | |||
| rmat="default"/></c> | <td align="left">ospf</td> | |||
| <c>YANG Data Model for Key Chains</c><c><xref target="RFC8177" pageno="f | <td align="left">ietf-ospf</td> | |||
| alse" format="default"/></c> | <td align="left"> | |||
| <c>Path Computation Element Communication Protocol (PCEP) Extensions for | <xref target="RFC9129" format="default"/></td> | |||
| Stateful PCE</c><c><xref target="RFC8231" pageno="false" format="default"/></c> | </tr> | |||
| <c>Optimizations of Label Switched Path State Synchronization Procedures | <tr> | |||
| for a Stateful PCE</c><c><xref target="RFC8232" pageno="false" format="default" | <td align="left">isis</td> | |||
| /></c> | <td align="left">ietf-isis</td> | |||
| <c>PCEPS: Usage of TLS to Provide a Secure Transport for the Path Comput | <td align="left"> | |||
| ation Element Communication Protocol (PCEP)</c><c><xref target="RFC8253" pageno= | <xref target="RFC9130" format="default"/></td> | |||
| "false" format="default"/></c> | </tr> | |||
| <c>Path Computation Element Communication Protocol (PCEP) Extensions for | </tbody> | |||
| PCE-Initiated LSP Setup in a Stateful PCE Model</c><c><xref target="RFC8281" pa | </table> | |||
| geno="false" format="default"/></c> | </section> | |||
| <c>Extensions to the Path Computation Element Communication Protocol (PC | <section toc="default" numbered="true"> | |||
| EP) for Point-to-Multipoint Traffic Engineering Label Switched Paths</c><c><xref | <name>References in the YANG Data Model</name> | |||
| target="RFC8306" pageno="false" format="default"/></c> | <t>The following table lists the documents that are referenced in the | |||
| <c>Network Configuration Access Control Model</c><c><xref target="RFC834 | YANG data model defined in this document.</t> | |||
| 1" pageno="false" format="default"/></c> | <table anchor="tab.ref" align="center"> | |||
| <c>Conveying Path Setup Type in PCE Communication Protocol (PCEP) Messag | <name>References in the YANG Data Model</name> | |||
| es</c><c><xref target="RFC8408" pageno="false" format="default"/></c> | <thead> | |||
| <tr> | ||||
| <c>Traffic Engineering Common YANG Types</c><c><xref target="RFC8776" pa | <th align="left">Documents</th> | |||
| geno="false" format="default"/></c> | <th align="left">Reference</th> | |||
| <c>YANG Groupings for TLS Clients and TLS Servers</c><c><xref target="RF | </tr> | |||
| C9645" pageno="false" format="default"/></c> | </thead> | |||
| <c>PCEP Extensions for Segment Routing</c><c><xref target="RFC8664" page | <tbody> | |||
| no="false" format="default"/></c> | <tr> | |||
| <c>PCEP Extensions for Establishing Relationships Between Sets of LSPs</ | <td align="left">OSPF Protocol Extensions for Path Computation Ele | |||
| c><c><xref target="RFC8697" pageno="false" format="default"/></c> | ment (PCE) Discovery</td> | |||
| <c>YANG Data Model for OSPF Protocol</c><c><xref target="RFC9129" pageno | <td align="left"> | |||
| ="false" format="default"/></c> | <xref target="RFC5088" format="default"/></td> | |||
| <c>YANG Data Model for IS-IS Protocol</c><c><xref target="RFC9130" pagen | </tr> | |||
| o="false" format="default"/></c> | <tr> | |||
| <c>PCEP extensions for GMPLS</c><c><xref target="RFC8779" pageno="false" | <td align="left">IS-IS Protocol Extensions for Path Computation El | |||
| format="default"/></c> | ement (PCE) Discovery</td> | |||
| <c>ASSOCIATION Type Field in Path Computation Element Protocol (PCEP) Nu | <td align="left"> | |||
| mbers</c><c><xref target="IANA-PCEP"/></c> | <xref target="RFC5089" format="default"/></td> | |||
| <c>Path Computation Element (PCE) Capability Flags in Interior Gateway P | </tr> | |||
| rotocol (IGP) Parameters</c><c><xref target="IANA-IGP"/></c> | <tr> | |||
| <c>Path Computation Element Communication Protocol (PCEP) Extension for | <td align="left">Path Computation Element (PCE) Communication Prot | |||
| Flow Specification</c><c><xref target="RFC9168" pageno="false" format="default"/ | ocol (PCEP)</td> | |||
| ></c> | <td align="left"> | |||
| <c>Path Computation Element Communication Protocol (PCEP) Extens | <xref target="RFC5440" format="default"/></td> | |||
| ions for the Hierarchical Path Computation Element (H-PCE) Architecture</c><c><x | </tr> | |||
| ref target="RFC8685" pageno="false" format="default"/></c> | <tr> | |||
| <c>Hierarchical Stateful Path Computation Element (PCE)</c><c><xref targ | <td align="left">Preserving Topology Confidentiality in Inter-Doma | |||
| et="RFC8751" pageno="false" format="default"/></c> | in Path Computation Using a Path-Key-Based Mechanism</td> | |||
| <c>IGP Extension for Path Computation Element Communication Protocol (PC | <td align="left"> | |||
| EP) Security Capability Support in PCE Discovery (PCED)</c><c><xref target="RFC9 | <xref target="RFC5520" format="default"/></td> | |||
| 353" pageno="false" format="default"/></c> | </tr> | |||
| <c>Stateful Path Computation Element (PCE) Protocol Extensions for Usage | <tr> | |||
| with Point-to-Multipoint TE Label Switched Paths (LSPs)</c><c><xref target="RFC | <td align="left">Encoding of Objective Functions in the Path Compu | |||
| 8623" pageno="false" format="default"/></c> | tation Element Communication Protocol (PCEP)</td> | |||
| <c>The TCP Authentication Option</c><c><xref target="RFC5925" pa | <td align="left"> | |||
| geno="false" format="default"/></c> | <xref target="RFC5541" format="default"/></td> | |||
| <c>Path Computation Element Communication Protocol (PCEP) Extens | </tr> | |||
| ions for Associating Working and Protection Label Switched Paths (LSPs) with Sta | <tr> | |||
| teful PCE</c><c><xref target="RFC8745" pageno="false" format="default"/></c> | <td align="left">Path Computation Element Communication Protocol ( | |||
| <c>Path Computation Element Communication Protocol (PCEP) Extens | PCEP) Requirements and Protocol Extensions in Support of Global Concurrent Optim | |||
| ion for Label Switched Path (LSP) Diversity Constraint Signaling</c><c><xref tar | ization</td> | |||
| get="RFC8800" pageno="false" format="default"/></c> | <td align="left"> | |||
| <c>Path Computation Element Communication Protocol (PCEP) Extens | <xref target="RFC5557" format="default"/></td> | |||
| ions for Establishing Relationships between Sets of Label Switched Paths and Vir | </tr> | |||
| tual Networks</c><c><xref target="RFC9358" pageno="false" format="default"/></c> | <tr> | |||
| <c>Extensions to the Path Computation Element Communication Prot | <td align="left">Common YANG Data Types</td> | |||
| ocol (PCEP) for Inter-Layer MPLS and GMPLS Traffic Engineering</c><c><xref targe | <td align="left"> | |||
| t="RFC8282" pageno="false" format="default"/></c> | <xref target="RFC6991" format="default"/></td> | |||
| <c>Path Computation Element Communication Protocol (PCEP) Extens | </tr> | |||
| ion for Associating Policies and Label Switched Paths (LSPs)</c><c><xref target= | <tr> | |||
| "RFC9005" pageno="false" format="default"/></c> | <td align="left">YANG Data Model for Key Chains</td> | |||
| </texttable> | <td align="left"> | |||
| <xref target="RFC8177" format="default"/></td> | ||||
| </section> | </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> | |||
| <section toc="default" anchor="sec.data-tree" numbered="true"> | ||||
| <section title="The Design of PCEP Data Model" toc="default" anchor="sec.dat | <name>The Design of PCEP Data Model</name> | |||
| a-tree"> | <t>The PCEP YANG module defined in this document has all the common | |||
| <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 523 ¶ | |||
| +--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 564 ¶ | |||
| +---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 693 ¶ | |||
| | +--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 610 ¶ | skipping to change at line 777 ¶ | |||
| | +--ro id leafref | | +--ro id leafref | |||
| | +--ro source leafref | | +--ro source leafref | |||
| | +--ro global-source leafref | | +--ro global-source leafref | |||
| | +--ro extended-id leafref | | +--ro extended-id leafref | |||
| +--ro path-keys {path-key}? | +--ro path-keys {path-key}? | |||
| | +--ro path-key* [key] | | +--ro path-key* [key] | |||
| | +--ro key uint16 | | +--ro key uint16 | |||
| | +--ro cps | | +--ro cps | |||
| | | +--ro explicit-route-objects* [index] | | | +--ro explicit-route-objects* [index] | |||
| | | +--ro index uint32 | | | +--ro index uint32 | |||
| | | +--ro (type)? | ||||
| | | +--:(numbered-node-hop) | ||||
| | | | +--ro numbered-node-hop | ||||
| | | | +--ro node-id te-node-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | +--:(numbered-link-hop) | ||||
| | | | +--ro numbered-link-hop | ||||
| | | | +--ro link-tp-id te-tp-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | | +--ro direction? te-link-direction | ||||
| | | +--:(unnumbered-link-hop) | ||||
| | | | +--ro unnumbered-link-hop | ||||
| | | | +--ro link-tp-id te-tp-id | ||||
| | | | +--ro node-id te-node-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | | +--ro direction? te-link-direction | ||||
| | | +--:(as-number) | ||||
| | | | +--ro as-number-hop | ||||
| | | | +--ro as-number inet:as-number | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | +--:(label) | ||||
| | | +--ro label-hop | ||||
| | | +--ro te-label | ||||
| | | ... | ||||
| | +--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 state o | ||||
| f | ||||
| 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 | ||||
| operational state of these peers as well as the remote PCE peer which were | ||||
| 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 | |||
| | +--rw domain* [type domain] | | +--rw domain* [type domain] | |||
| | +--rw type identityref | | +--rw type identityref | |||
| | +--rw domain domain | | +--rw domain domain | |||
| +--rw capabilities | +--rw capabilities | |||
| | +--rw capability? bits | | +--rw capability? bits | |||
| | +--rw pce-initiated? boolean {pce-initiated}? | | +--rw pce-initiated? boolean | |||
| | | {pce-initiated}? | ||||
| | +--rw include-db-ver? boolean | | +--rw include-db-ver? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-resync? boolean | | +--rw trigger-resync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-initial-sync? boolean | | +--rw trigger-initial-sync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw incremental-sync? boolean | | +--rw incremental-sync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw sr-mpls {sr-mpls}? | | +--rw sr-mpls {sr-mpls}? | |||
| | | +--rw enabled? boolean | | | +--rw enabled? boolean | |||
| skipping to change at line 702 ¶ | skipping to change at line 890 ¶ | |||
| | +--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) | |||
| | | +--rw crypto-algorithm identityref | | | +--rw crypto-algorithm identityref | |||
| | | +--rw (key-string-style)? | | | +--rw (key-string-style)? | |||
| | | +--:(keystring) | | | +--:(keystring) | |||
| | | | +--rw keystring? string | | | | +--rw keystring? string | |||
| | | +--:(hexadecimal) {key-chain:hex-key-string}? | | | +--:(hexadecimal) | |||
| | | +--rw hexadecimal-string? yang:hex-string | | | {key-chain:hex-key-string}? | |||
| | | +--rw hexadecimal-string? | ||||
| | | yang:hex-string | ||||
| | +--:(auth-tls) {tls}? | | +--:(auth-tls) {tls}? | |||
| | +--rw (role)? | | +--rw (role)? | |||
| | +--:(server) | | +--:(server) | |||
| | | +--rw tls-server | | | +--rw tls-server | |||
| | | ... | | | ... | |||
| | +--:(client) | | +--:(client) | |||
| | +--rw tls-client | | +--rw tls-client | |||
| | ... | | ... | |||
| +--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 | |||
| +--ro role? -> ../../../role | +--ro role? | |||
| | -> ../../../role | ||||
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp | |||
| +--ro state? sess-state | +--ro state? sess-state | |||
| +--ro session-creation? yang:timestamp | +--ro session-creation? yang:timestamp | |||
| +--ro connect-retry? yang:counter32 | +--ro connect-retry? yang:counter32 | |||
| +--ro local-id? uint8 | +--ro local-id? uint8 | |||
| +--ro remote-id? uint8 | +--ro remote-id? uint8 | |||
| +--ro keepalive-timer? uint8 | +--ro keepalive-timer? uint8 | |||
| +--ro peer-keepalive-timer? uint8 | +--ro peer-keepalive-timer? uint8 | |||
| +--ro dead-timer? uint8 | +--ro dead-timer? uint8 | |||
| +--ro peer-dead-timer? uint8 | +--ro peer-dead-timer? uint8 | |||
| skipping to change at line 809 ¶ | skipping to change at line 999 ¶ | |||
| | +--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 1045 ¶ | |||
| | | -> /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 1238 ¶ | |||
| | +--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 title="Advanced PCE Features" toc="default"> | ||||
| <t>This document contains a specification of the base PCEP YANG module, | ||||
| "ietf-pcep" which provides the basic PCEP <xref target="RFC5440"/> data | ||||
| model.</t> | ||||
| <t>This document further handles advanced PCE features like - | ||||
| <list style="symbols"> | ||||
| <t>Capability and Scope</t> | ||||
| <t>Domain information (local/neighbor) </t> | ||||
| <t>Path-Key</t> | ||||
| <t>Objective Function (OF)</t> | ||||
| <t>Global Concurrent Optimization (GCO)</t> | ||||
| <t>P2MP</t> | ||||
| <t>GMPLS</t> | ||||
| <t>Inter-Layer</t> | ||||
| <t>Stateful PCE</t> | ||||
| <t>Segment Routing (SR) for MPLS data plane</t> | ||||
| <t>Authentication including PCEPS (TLS)</t> | ||||
| <t>Hierarchical PCE (H-PCE)</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Segment Routing in the IPv6 data plane is out of the scope of this documen | ||||
| t. Refer <xref target="I-D.ietf-pce-pcep-srv6-yang"/> for the PCEP-SRv6 YANG mod | ||||
| ule.</t> | ||||
| <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"> | ||||
| <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 | ||||
| > | ||||
| <section title="The PCE-Initiated LSP" toc="default"> | ||||
| <t>The TE Model at <xref target="I-D.ietf-teas-yang-te"/> should | ||||
| 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) | ||||
| also marks the LSPs which are PCE-initiated.</t> | ||||
| </section> | ||||
| <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 | ||||
| path setup type. The lsp-id filed is currently a leafref to the TE model <xref | ||||
| target="I-D.ietf-teas-yang-te"/>. Need to a confirm if this is problematic. </t> | ||||
| </section> | </section> | |||
| <section toc="default" numbered="true"> | ||||
| <name>Advanced PCE Features</name> | ||||
| <t>This document contains a specification of the base PCEP YANG module, | ||||
| "ietf-pcep", which provides the basic PCEP <xref target="RFC5440" | ||||
| format="default"/> data model.</t> | ||||
| <t>This document further handles advanced PCE features such as:</t> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>Capability and scope</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>Domain information (local/neighbor) </t> | ||||
| </li> | ||||
| <li> | ||||
| <t>Path-key</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>Objective Function (OF)</t> | ||||
| </li> | ||||
| <li> | ||||
| <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> | ||||
| </section>--> | <section toc="default" numbered="true"> | |||
| <section title="Other Considerations" toc="default"> | <name>Stateful PCE's LSP-DB</name> | |||
| <section title="PCEP over TLS (PCEPS)" toc="default" anchor="tls"> | <t>In the operational datastore of stateful PCE, the list of LSP state | |||
| <t><xref target="RFC8253"/> describes the use of TLSv1.2 | is maintained in the LSP-DB. The key is the PLSP-ID, the PCC's IP | |||
| <xref target="RFC5246"/> | address, and the LSP-ID.</t> | |||
| or later in PCEP. Further, <xref target="I-D.ietf-pce-pceps-tls13"/> specify | <t>The PCEP data model contains the operational state of LSPs | |||
| how to protect PCEP messages with TLS 1.3 <xref target="RFC8446"/> by disall | (/pcep/entity/lsp-db/lsp/) with PCEP-specific attributes. The generic | |||
| owing | TE attributes of the LSP are defined in <xref | |||
| the use of early data (0-RTT) and listing the cipher suites that need to be | target="I-D.ietf-teas-yang-te" format="default"/>. A reference to the | |||
| supported with TLS 1.3.</t> | LSP state in the TE model is maintained.</t> | |||
| <!--<t>The peer acting as the PCEP client must act as the TLS client. | </section> | |||
| The TLS client actively opens the TLS connection and the TLS server | </section> | |||
| passively listens for the incoming TLS connections. The well-known | ||||
| TCP port number 4189 is used by PCEP servers to listen for TCP | ||||
| connections established by PCEP over TLS clients. The TLS client | ||||
| sends the TLS ClientHello message to begin the TLS handshake. | ||||
| The TLS server sends a CertificateRequest in order to request a | ||||
| certificate from the TLS client. Once the TLS handshake has | ||||
| finished, the client and the server begin to exchange PCEP | ||||
| messages. Client and server identity verification is done before the | ||||
| PCEP open message is sent. This means that the identity | ||||
| 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 | <section toc="default" numbered="true"> | |||
| server (PCE). The role within the context of a PCEP session is determined | <name>Other Considerations</name> | |||
| by the relationship it has with its peer (the | ||||
| same holds good for TLS as well).</t> | ||||
| <t>The YANG module uses the TLS grouping in <xref target="RFC9645"/>. | <section toc="default" anchor="tls" numbered="true"> | |||
| Note that any TLS version can be configured but <xref target="RFC9645"/> | <name>PCEP over TLS (PCEPS)</name> | |||
| 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> | <t><xref target="RFC8253" format="default"/> describes the use of | |||
| TLS 1.2 <xref target="RFC5246" format="default"/> or later in | ||||
| 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 PCC acting as the TLS client opens the TLS connection, and the | ||||
| PCE acting as the TLS server listens for incoming connections as per the | ||||
| TLS specifications (<xref target="RFC8446" format="default"/> and | ||||
| <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> | |||
| <section toc="default" numbered="true"> | ||||
| <section title="PCEP YANG Modules" toc="default"> | <name>PCEP YANG Modules</name> | |||
| <section title="ietf-pcep module" toc="default"> | <section toc="default" numbered="true"> | |||
| <t>RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | <name>ietf-pcep Module</name> | |||
| actual RFC number and all occurrences of the revision date below with | <sourcecode name="ietf-pcep@2025-07-24.yang" type="yang" markers="true"> | |||
| the date of RFC publication (and remove this note).</t> | <![CDATA[ | |||
| <figure title="" suppress-title="false" align="left" alt="" width="" height= | ||||
| ""> | ||||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" widt | ||||
| h="" height=""> | ||||
| <![CDATA[ | ||||
| <CODE BEGINS> file "ietf-pcep@2025-01-27.yang" | ||||
| 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 1369 ¶ | |||
| "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), | Element (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 1528 ¶ | |||
| 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 1589 ¶ | |||
| 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 1662 ¶ | |||
| 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 1699 ¶ | |||
| "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 1740 ¶ | |||
| 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 1801 ¶ | |||
| 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 1847 ¶ | |||
| 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 2163 ¶ | |||
| "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 2219 ¶ | |||
| 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 2358 ¶ | |||
| 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 2622 ¶ | |||
| 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 2705 ¶ | |||
| - 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 2829 ¶ | |||
| 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 3011 ¶ | |||
| 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 3070 ¶ | |||
| 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 3258 ¶ | |||
| 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 3361 ¶ | |||
| } | } | |||
| 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 3435 ¶ | |||
| 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 3488 ¶ | |||
| 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-key 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-key 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 3649 ¶ | |||
| 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 3702 ¶ | |||
| 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 3780 ¶ | |||
| "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 4049 ¶ | |||
| 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 4103 ¶ | |||
| 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 4135 ¶ | |||
| 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 4157 ¶ | |||
| /* | /* | |||
| * 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 4214 ¶ | |||
| <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 4311 ¶ | |||
| } | } | |||
| 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 4335 ¶ | |||
| "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 4375 ¶ | |||
| 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 4428 ¶ | |||
| 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 4458 ¶ | |||
| 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 4493 ¶ | |||
| 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 4765 ¶ | |||
| 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 4789 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| /* | /* | |||
| * 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>This section is modeled after the template described in <xref | |||
| <t>The ietf-pcep and ietf-pcep-stats YANG modules define data models that are | target="I-D.ietf-netmod-rfc8407bis" sectionFormat="of" section="3.7.1"/>.< | |||
| designed to be accessed via YANG-based management protocols, such as | /t> | |||
| NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These | <t>The "ietf-pcep" and "ietf-pcep-stats" YANG modules define data models | |||
| protocols have to use a secure transport layer (e.g., SSH <xref target="RFC62 | that are designed to be accessed via YANG-based management protocols, | |||
| 42"/>, TLS <xref target="RFC8446"/>, and | such as NETCONF <xref target="RFC6241" format="default"/> and RESTCONF | |||
| QUIC <xref target="RFC9000"/>) and have to use mutual authentication.</t> | <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 NETCONF access control model <xref target="RFC8341"/> provides | <t>The Network Configuration Access Control Model (NACM) <xref | |||
| the means to restrict access for particular NETCONF or RESTCONF users to a | target="RFC8341"/> provides the means to restrict access for particular | |||
| pre-configured subset of all available NETCONF or RESTCONF protocol | NETCONF or RESTCONF users to a preconfigured subset of all available | |||
| operations and content.</t> | NETCONF or RESTCONF protocol operations and content.</t> | |||
| <t>There are a number of data nodes defined in the ietf-pcep YANG module | <t><strong>The "ietf-pcep" YANG module:</strong></t> | |||
| which 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: | ||||
| <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 | <t>There are a number of data nodes defined in the "ietf-pcep" YANG module | |||
| PCEP session between the local entity and the peers. This may | that are writable/creatable/deletable (i.e., "config true", which is the | |||
| lead to the inability to compute new paths, and stateful operations on | default). All writable data nodes are likely to be reasonably sensitive | |||
| the delegated as well as PCE-initiated LSPs.</t> | 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> | ||||
| <t>Some of the readable data nodes in this YANG module may be considered | <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> | ||||
| <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. Specifically, the following | notification) to these data nodes. Specifically, the following | |||
| subtrees and data nodes have particular sensitivities/ | subtrees and data nodes have particular sensitivities/ | |||
| vulnerabilities: | vulnerabilities: | |||
| </t> | ||||
| <list> | <ul spacing="normal"> | |||
| <t>/pcep/lsp-db - All the LSPs in the network. Unauthorized access to | <li>/pcep/lsp-db: All the LSPs in the network. Unauthorized access to | |||
| this could provide all path and network usage information.</t> | this could provide all path and network usage information.</li> | |||
| <t>/pcep/path-keys/ - The Confidential Path Segments (CPS) are hidden | <li>/pcep/path-keys/: The Confidential Path Segments (CPS) are hidden | |||
| using path-keys. Unauthorized access to this could leak confidential | using path-keys. Unauthorized access to this could leak confidential | |||
| path information. | path information.</li> | |||
| </t> | </ul> | |||
| </list></t> | ||||
| <t>Some of the RPC 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 operations have particular sensitivities/vulnerabilities: | ||||
| <list> | ||||
| <t>trigger-resync - trigger resynchronization with the PCE. Unauthorized acces | ||||
| s to | ||||
| this could force a PCEP session into continuous state synchronization. </t | ||||
| > | ||||
| </list></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> | ||||
| <t>This YANG module uses groupings from other YANG modules that | <ul spacing="normal"> | |||
| define nodes that may be considered sensitive or vulnerable | <li>trigger-resync: Triggers resynchronization with the | |||
| in network environments. Refer to the Security Considerations | PCE. Unauthorized access to this could force a PCEP session into | |||
| of respective RFCs for information as to which nodes may | continuous state synchronization.</li> | |||
| be considered sensitive or vulnerable in network environments.</t> | </ul> | |||
| <t>The YANG module defines a set of identities, types, and | <t>This YANG module uses groupings from other YANG modules that define | |||
| groupings. These nodes are intended to be reused by other YANG | nodes that may be considered sensitive or vulnerable in network | |||
| modules. The module by itself does not expose any data nodes that | environments. Refer to the Security Considerations of <xref | |||
| are writable, data nodes that contain read-only state, or RPCs. | target="RFC9645"/> and <xref target="RFC8776"/> for information as to | |||
| As such, there are no additional security issues related to | which nodes may be considered sensitive or vulnerable in network | |||
| the YANG module that need to be considered.</t> | environments.</t> | |||
| <t>Modules that use the groupings that are defined in this document | <t>The actual authentication key data (whether locally specified or part | |||
| should identify the corresponding security considerations.</t> | of a key-chain) is sensitive and needs to be kept secret from | |||
| unauthorized parties; compromise of the key data would allow an attacker | ||||
| to forge PCEP traffic that would be accepted as authentic, potentially | ||||
| compromising the TE domain.</t> | ||||
| <t>The model describes several notifications; implementations must | ||||
| rate-limit the generation of these notifications to avoid creating a | ||||
| significant notification load. Otherwise, this notification load may | ||||
| 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> | ||||
| <t>The actual authentication key data (whether locally specified or part | <t><strong>The "ietf-pcep-stats" YANG module:</strong></t> | |||
| of a key-chain) is sensitive and needs to be kept secret from | ||||
| unauthorized parties; compromise of the key data would allow an | ||||
| attacker to forge PCEP traffic that would be accepted as authentic, | ||||
| potentially compromising the TE domain.</t> | ||||
| <t>The model describes several notifications, implementations must | <t>There are no particularly sensitive writable data nodes.</t> | |||
| rate-limit the generation of these notifications to avoid creating | ||||
| a significant notification load. Otherwise, this notification load may | ||||
| 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 | <t>There are no particularly sensitive readable data nodes.</t> | |||
| for PCEP. | ||||
| Further, <xref target="tls"/> describes how to configure TLS1.2 and TLS1.3 f | ||||
| or a PCEP session via this YANG module.</t> | ||||
| <t>Further, this document also includes another YANG module (called ietf-pcep- | <t>Some of the RPC or action operations in this YANG module may be considered | |||
| stats) for maintaining the statistics by augmenting the ietf-pcep YANG module. T | sensitive or vulnerable in some network environments. It is thus important to | |||
| here are no data nodes defined in this module which are writable/creatable/delet | control access to these operations. Specifically, the following operation | |||
| able (i.e., config true). The readable data nodes in this YANG module may be con | has particular sensitivities/vulnerabilities:</t> | |||
| sidered | ||||
| 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 r | ||||
| elated to the current usage patterns of the network.</t> | ||||
| <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>reset-pcep-statistics-all: The RPC is used to reset all PCEP statistics | |||
| important to control access to these operations. Specifically, | across all peers and sessions. An unauthorized reset could impact | |||
| the following operations have particular sensitivities/vulnerabilities: | monitoring.</li> | |||
| <list> | </ul> | |||
| <t>reset-pcep-statistics-all - The RPC is used to reset all PCEP statistics | ||||
| across all peers and sessions. An unauthorized reset could impact monitoring.</t | ||||
| > | ||||
| </list> | ||||
| </t> | ||||
| </section> | </section> | |||
| <section title="IANA Considerations" toc="default"> | <section toc="default" numbered="true"> | |||
| <t>This document requests the IANA to register two URIs in the "IETF XML Reg | <name>IANA Considerations</name> | |||
| istry" | <t>IANA has registered the following URIs in the "IETF XML | |||
| <xref target="RFC3688"/>. | Registry" <xref target="RFC3688" format="default"/>: | |||
| Following the format in RFC 3688, the following registrations are requested - | </t> | |||
| <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 | <dl spacing="compact" newline="false"> | |||
| Registrant Contact: The IESG | <dt>URI:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-pcep</d | |||
| XML: N/A; the requested URI is an XML namespace. | 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> | ||||
| URI: urn:ietf:params:xml:ns:yang:ietf-pcep-stats | <dl spacing="compact" newline="false"> | |||
| Registrant Contact: The IESG | <dt>URI:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-pcep-st | |||
| XML: N/A; the requested URI is an XML namespace. | ats</dd> | |||
| ]]></artwork> | <dt>Registrant Contact:</dt> <dd>The IESG</dd> | |||
| </figure> | <dt>XML:</dt> <dd>N/A; the requested URI is an XML namespa | |||
| </t> | ce.</dd> | |||
| <t>This document requests the IANA to register two YANG modules in the "YANG | </dl> | |||
| Module Names" | ||||
| registry <xref target="RFC6020"/>, as follows - | ||||
| <figure title="" suppress-title="false" align="left" alt="" width="" height= | ||||
| ""> | ||||
| <artwork xml:space="preserve" name="" type="" align="left" alt="" widt | ||||
| h="" height=""><![CDATA[ | ||||
| Name: ietf-pcep | ||||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep | ||||
| Prefix: pcep | ||||
| Reference: [This.I-D] | ||||
| Name: ietf-pcep-stats | <t>IANA has registered the following YANG modules in the | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep-stats | "YANG Module Names" registry <xref target="RFC6020" format="default"/>: | |||
| Prefix: pcep-stats | </t> | |||
| Reference: [This.I-D] | ||||
| ]]></artwork> | <dl spacing="compact" newline="false"> | |||
| </figure> | <dt>Name:</dt> <dd>ietf-pcep</dd> | |||
| </t> | <dt>Namespace:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-pcep</dd> | |||
| </section> | <dt>Prefix:</dt> <dd>pcep</dd> | |||
| <section anchor="Imp" title="Implementation Status"> | <dt>Reference:</dt> <dd>RFC 9826</dd> | |||
| <t>[Note to the RFC Editor - remove this section before publication, as well as | </dl> | |||
| 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 | <dl spacing="compact" newline="false"> | |||
| rking | <dt>Name:</dt> <dd>ietf-pcep-stats</dd> | |||
| groups to assign due consideration to documents that have the | <dt>Namespace:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-pcep-stats</d | |||
| benefit of running code, which may serve as evidence of valuable | d> | |||
| experimentation and feedback that have made the implemented | <dt>Prefix:</dt> <dd>pcep-stats</dd> | |||
| protocols more mature. It is up to the individual working groups | <dt>Reference:</dt> <dd>RFC 9826</dd> | |||
| to use this information as they see fit".</t> | </dl> | |||
| <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> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | <displayreference target="I-D.ietf-netmod-rfc8407bis" to="YANG-GUIDELINES"/> | |||
| <?rfc include="reference.RFC.2119.xml" ?> | <displayreference target="I-D.ietf-pce-pcep-srv6-yang" to="YANG-PCEP-SRV6"/> | |||
| <!--<?rfc include="reference.RFC.3209.xml" ?>--> | <displayreference target="I-D.ietf-pce-pceps-tls13" to="PCEPS-UPDATE"/> | |||
| <?rfc include="reference.RFC.3688.xml" ?> | <displayreference target="I-D.ietf-teas-yang-te" to="YANG-TE"/> | |||
| <?rfc include="reference.RFC.5088.xml" ?> | ||||
| <?rfc include="reference.RFC.5089.xml" ?> | ||||
| <?rfc include="reference.RFC.5440.xml" ?> | ||||
| <?rfc include="reference.RFC.5520.xml" ?> | ||||
| <?rfc include="reference.RFC.5541.xml" ?> | ||||
| <?rfc include="reference.RFC.5557.xml" ?> | ||||
| <?rfc include="reference.RFC.6020.xml" ?> | <references> | |||
| <?rfc include="reference.RFC.6241.xml" ?> | <name>References</name> | |||
| <?rfc include="reference.RFC.6242.xml" ?> | <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.6991.xml" ?> | </references> | |||
| <?rfc include="reference.RFC.7950.xml" ?> | <references> | |||
| <?rfc include="reference.RFC.8177.xml" ?> | <name>Informative References</name> | |||
| <?rfc include="reference.RFC.8040.xml" ?> | ||||
| <?rfc include="reference.RFC.8174.xml"?> | ||||
| <?rfc include="reference.RFC.8231.xml"?> | ||||
| <?rfc include="reference.RFC.8232.xml"?> | ||||
| <?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"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
| 655.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
| 246.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 420.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 051.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.83 | ||||
| 42.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 751.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 603.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-netmod-rfc8407bis.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-pce-pceps-tls13.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-pce-pcep-srv6-yang.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
| ietf-teas-yang-te.xml"/> | ||||
| <?rfc include="reference.RFC.9645.xml"?> | <reference anchor="IANA-PCEP" target="https://www.iana.org/assignments/p | |||
| <?rfc include="reference.RFC.8697.xml"?> | cep"> | |||
| <?rfc include="reference.RFC.8664.xml"?> | <front> | |||
| <?rfc include="reference.RFC.9130.xml"?> | <title>ASSOCIATION Type Field</title> | |||
| <?rfc include="reference.RFC.9129.xml"?> | <author> | |||
| <?rfc include="reference.RFC.8779.xml"?> | <organization>IANA</organization> | |||
| <?rfc include="reference.RFC.9168.xml"?> | </author> | |||
| </front> | ||||
| </reference> | ||||
| <?rfc include="reference.RFC.8685.xml"?> | <reference anchor="IANA-IGP" target="https://www.iana.org/assignments/ig | |||
| <?rfc include="reference.RFC.8282.xml"?> | p-parameters"> | |||
| <?rfc include="reference.RFC.9353.xml"?> | <front> | |||
| <?rfc include="reference.RFC.5925.xml"?> | <title>Path Computation Element (PCE) Capability Flags</title> | |||
| <?rfc include="reference.RFC.8623.xml"?> | <author> | |||
| <?rfc include="reference.RFC.8745.xml"?> | <organization>IANA</organization> | |||
| <?rfc include="reference.RFC.8800.xml"?> | </author> | |||
| <?rfc include="reference.RFC.9000.xml"?> | </front> | |||
| <?rfc include="reference.RFC.9005.xml"?> | </reference> | |||
| <?rfc include="reference.RFC.9358.xml"?> | ||||
| </references> | ||||
| </references> | </references> | |||
| <references title="Informative References"> | <section toc="default" anchor="sec.full.data-tree" numbered="true"> | |||
| <name>The Full PCEP Data Model</name> | ||||
| <?rfc include="reference.RFC.4655.xml" ?> | <t>The module "ietf-pcep" defines the basic components of a PCE | |||
| <?rfc include="reference.RFC.5246.xml" ?> | speaker. The tree depth in the tree is set to 10.</t> | |||
| <?rfc include="reference.RFC.7420.xml" ?> | ||||
| <?rfc include="reference.RFC.7942.xml" ?> | ||||
| <?rfc include="reference.RFC.8342.xml"?> | ||||
| <?rfc include="reference.RFC.8751.xml"?> | ||||
| <?rfc include="reference.RFC.9603.xml"?> | ||||
| <?rfc include="reference.I-D.ietf-pce-pceps-tls13"?> | ||||
| <?rfc include="reference.I-D.ietf-pce-pcep-srv6-yang"?> | ||||
| <?rfc include="reference.I-D.ietf-teas-yang-te"?> | ||||
| <reference anchor="IANA-PCEP" target="https://www.iana.org/assignments/pce | ||||
| p/pcep.xhtml#association-type-field"> | ||||
| <front> | ||||
| <title>ASSOCIATION Type Field in Path Computation Element Protocol (PCEP) Nu | ||||
| mbers</title> | ||||
| <author/> | ||||
| <date/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="IANA-IGP" target="https://www.iana.org/assignments/igp- | ||||
| parameters/igp-parameters.xhtml#pce-capability-flags"> | ||||
| <front> | ||||
| <title>Path Computation Element (PCE) Capability | ||||
| Flags in Interior Gateway Protocol (IGP) Parameters</title> | ||||
| <author/> | ||||
| <date/> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | <sourcecode name="" type="yangtree"><![CDATA[ | |||
| <section title="The Full PCEP Data Model" toc="default" anchor="sec.full.data-tr | ||||
| ee"> | ||||
| <t>The module, "ietf-pcep", defines the basic components of a PCE speaker. T | ||||
| he tree depth in the tree is set to 10. | ||||
| <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 5051 ¶ | skipping to change at line 5234 ¶ | |||
| | +--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 5135 ¶ | skipping to change at line 5318 ¶ | |||
| | +--ro id leafref | | +--ro id leafref | |||
| | +--ro source leafref | | +--ro source leafref | |||
| | +--ro global-source leafref | | +--ro global-source leafref | |||
| | +--ro extended-id leafref | | +--ro extended-id leafref | |||
| +--ro path-keys {path-key}? | +--ro path-keys {path-key}? | |||
| | +--ro path-key* [key] | | +--ro path-key* [key] | |||
| | +--ro key uint16 | | +--ro key uint16 | |||
| | +--ro cps | | +--ro cps | |||
| | | +--ro explicit-route-objects* [index] | | | +--ro explicit-route-objects* [index] | |||
| | | +--ro index uint32 | | | +--ro index uint32 | |||
| | | +--ro (type)? | ||||
| | | +--:(numbered-node-hop) | ||||
| | | | +--ro numbered-node-hop | ||||
| | | | +--ro node-id te-node-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | +--:(numbered-link-hop) | ||||
| | | | +--ro numbered-link-hop | ||||
| | | | +--ro link-tp-id te-tp-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | | +--ro direction? te-link-direction | ||||
| | | +--:(unnumbered-link-hop) | ||||
| | | | +--ro unnumbered-link-hop | ||||
| | | | +--ro link-tp-id te-tp-id | ||||
| | | | +--ro node-id te-node-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | | +--ro direction? te-link-direction | ||||
| | | +--:(as-number) | ||||
| | | | +--ro as-number-hop | ||||
| | | | +--ro as-number inet:as-number | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | +--:(label) | ||||
| | | +--ro label-hop | ||||
| | | +--ro te-label | ||||
| | | ... | ||||
| | +--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] | |||
| +--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 | |||
| | +--rw domain* [type domain] | | +--rw domain* [type domain] | |||
| | +--rw type identityref | | +--rw type identityref | |||
| | +--rw domain domain | | +--rw domain domain | |||
| +--rw capabilities | +--rw capabilities | |||
| | +--rw capability? bits | | +--rw capability? bits | |||
| | +--rw pce-initiated? boolean {pce-initiated}? | | +--rw pce-initiated? boolean | |||
| | | {pce-initiated}? | ||||
| | +--rw include-db-ver? boolean | | +--rw include-db-ver? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-resync? boolean | | +--rw trigger-resync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-initial-sync? boolean | | +--rw trigger-initial-sync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw incremental-sync? boolean | | +--rw incremental-sync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw sr-mpls {sr-mpls}? | | +--rw sr-mpls {sr-mpls}? | |||
| | | +--rw enabled? boolean | | | +--rw enabled? boolean | |||
| skipping to change at line 5181 ¶ | skipping to change at line 5389 ¶ | |||
| | +--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) | |||
| | | +--rw crypto-algorithm identityref | | | +--rw crypto-algorithm identityref | |||
| | | +--rw (key-string-style)? | | | +--rw (key-string-style)? | |||
| | | +--:(keystring) | | | +--:(keystring) | |||
| | | | +--rw keystring? string | | | | +--rw keystring? string | |||
| | | +--:(hexadecimal) {key-chain:hex-key-string}? | | | +--:(hexadecimal) | |||
| | | +--rw hexadecimal-string? yang:hex-string | | | {key-chain:hex-key-string}? | |||
| | | +--rw hexadecimal-string? | ||||
| | | yang:hex-string | ||||
| | +--:(auth-tls) {tls}? | | +--:(auth-tls) {tls}? | |||
| | +--rw (role)? | | +--rw (role)? | |||
| | +--:(server) | | +--:(server) | |||
| | | +--rw tls-server | | | +--rw tls-server | |||
| | | ... | | | ... | |||
| | +--:(client) | | +--:(client) | |||
| | +--rw tls-client | | +--rw tls-client | |||
| | ... | | ... | |||
| +--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] | |||
| +--ro initiator initiator | +--ro initiator initiator | |||
| +--ro role? -> ../../../role | +--ro role? | |||
| | -> ../../../role | ||||
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp | |||
| +--ro state? sess-state | +--ro state? sess-state | |||
| +--ro session-creation? yang:timestamp | +--ro session-creation? yang:timestamp | |||
| +--ro connect-retry? yang:counter32 | +--ro connect-retry? yang:counter32 | |||
| +--ro local-id? uint8 | +--ro local-id? uint8 | |||
| +--ro remote-id? uint8 | +--ro remote-id? uint8 | |||
| +--ro keepalive-timer? uint8 | +--ro keepalive-timer? uint8 | |||
| +--ro peer-keepalive-timer? uint8 | +--ro peer-keepalive-timer? uint8 | |||
| +--ro dead-timer? uint8 | +--ro dead-timer? uint8 | |||
| +--ro peer-dead-timer? uint8 | +--ro peer-dead-timer? uint8 | |||
| skipping to change at line 5288 ¶ | skipping to change at line 5499 ¶ | |||
| | | -> /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> | ||||
| <section title="Example" toc="default"> | <t>The example below provides an overview of PCEP peer session | |||
| <t>The example below provides an overview of PCEP peer session information a | information and LSP-DB in the "ietf-pcep" module.</t> | |||
| nd LSP-DB in the YANG Module. | ||||
| <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 5577 ¶ | |||
| | | | | | | |||
| +-------+ | | | +-------+ | | | |||
| | | | | | | | | | | |||
| | 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 5691 ¶ | |||
| "role": "pcc" | "role": "pcc" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| </t> | ||||
| <t>Similarly a PCEP session with IPv6 address between PCE (2001:db8::3) an | ||||
| d a PCC (2001:db8::4) could also be setup.</t> | ||||
| </section> | ||||
| <section title="Design Objectives" toc="default"> | ||||
| <t>This section describes some of the design objectives for the model: | ||||
| <list style="symbols"> | ||||
| <t>In the case of existing implementations, it needs to map | ||||
| the data model defined in this document to their proprietary | ||||
| data model. To facilitate such mappings, the data model | ||||
| should be simple.</t> | ||||
| <t>The data model should be suitable for new implementations to use | ||||
| as is.</t> | ||||
| <t>Mapping to the PCEP MIB Module <xref target="RFC7420"/> should be clear.< | ||||
| /t> | ||||
| <t>The data model should allow for static configurations of peers.</t> | ||||
| <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 which | ||||
| augments the base data model.</t> | ||||
| <t>It should be fairly straightforward to augment the base data model | ||||
| for advanced PCE features.</t> | ||||
| </list> | ||||
| </t> | ||||
| </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 | ||||
| r Entity" suppress-title="false" align="center" style="full"> | ||||
| <ttcol align="left">YANG Data Nodes</ttcol> | ||||
| <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> | ||||
| <c>init-back-off-timer</c><c>pcePcepEntityInitBackoffTimer</c> | ||||
| <c>max-back-off-timer</c><c>pcePcepEntityMaxBackoffTimer</c> | ||||
| <c>open-wait-timer</c><c>pcePcepEntityOpenWaitTimer</c> | ||||
| <c>keep-wait-timer</c><c>pcePcepEntityKeepWaitTimer</c> | ||||
| <c>keepalive-timer</c><c>pcePcepEntityKeepAliveTimer</c> | ||||
| <c>dead-timer</c><c>pcePcepEntityDeadTimer</c> | ||||
| <c>allow-negotiation</c><c>pcePcepEntityAllowNegotiation</c> | ||||
| <c>max-keepalive-timer</c><c>pcePcepEntityMaxKeepAliveTimer</c> | ||||
| <c>max-dead-timer</c><c>pcePcepEntityMaxDeadTimer</c> | ||||
| <c>min-keepalive-timer</c><c>pcePcepEntityMinKeepAliveTimer</c> | ||||
| <c>min-dead-timer</c><c>pcePcepEntityMinDeadTimer</c> | ||||
| <c>sync-timer</c><c>pcePcepEntitySyncTimer</c> | ||||
| <c>request-timer</c><c>pcePcepEntityRequestTimer</c> | ||||
| <c>max-sessions</c><c>pcePcepEntityMaxSessions</c> | ||||
| <c>max-unknown-reqs</c><c>pcePcepEntityMaxUnknownReqs</c> | ||||
| <c>max-unknown-msgs</c><c>pcePcepEntityMaxUnknownMsgs</c> | ||||
| </texttable> | ||||
| <texttable anchor="tab.mib.peer" title="Relationship with PCEP MIB for P | ||||
| eer" suppress-title="false" align="center" style="full"> | ||||
| <ttcol align="left">YANG Data Nodes in /pcep/entity/peers/peer</ttcol> | ||||
| <ttcol align="left">PCEP MIB Objects</ttcol> | ||||
| <c>addr</c><c>pcePcepPeerAddrType,pcePcepPeerAddr</c> | ||||
| <c>role</c><c>pcePcepPeerRole</c> | ||||
| <c>discontinuity-time</c><c>pcePcepPeerDiscontinuityTime</c> | ||||
| <c>initiate-session</c><c>pcePcepPeerInitiateSession</c> | ||||
| <c>session-exists</c><c>pcePcepPeerSessionExists</c> | ||||
| <c>sess-setup-ok</c><c>pcePcepPeerNumSessSetupOK</c> | ||||
| <c>sess-setup-fail</c><c>pcePcepPeerNumSessSetupFail</c> | ||||
| <c>session-up-time</c><c>pcePcepPeerSessionUpTime</c> | ||||
| <c>session-fail-time</c><c>pcePcepPeerSessionFailTime</c> | ||||
| <c>session-fail-up-time</c><c>pcePcepPeerSessionFailUpTime</c> | ||||
| <c>/stats/rsp-time-avg</c><c>pcePcepPeerAvgRspTime</c> | ||||
| <c>/stats/rsp-time-lwm</c><c>pcePcepPeerLWMRspTime</c> | ||||
| <c>/stats/rsp-time-hwm</c><c>pcePcepPeerHWMRspTime</c> | ||||
| <c>/stats/pcreq-sent</c><c>pcePcepPeerNumPCReqSent</c> | ||||
| <c>/stats/pcreq-rcvd</c><c>pcePcepPeerNumPCReqRcvd</c> | ||||
| <c>/stats/pcrep-sent</c><c>pcePcepPeerNumPCRepSent</c> | ||||
| <c>/stats/pcrep-rcvd</c><c>pcePcepPeerNumPCRepRcvd</c> | ||||
| <c>/stats/pcerr-sent</c><c>pcePcepPeerNumPCErrSent</c> | ||||
| <c>/stats/pcerr-rcvd</c><c>pcePcepPeerNumPCErrRcvd</c> | ||||
| <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> | ||||
| <c>/stats/svec/svec-req-sent</c><c>pcePcepPeerNumSvecReqSent</c> | ||||
| <c>/stats/req-sent-pend-rep</c><c>pcePcepPeerNumReqSentPendRep</c> | ||||
| <c>/stats/req-sent-ero-rcvd</c><c>pcePcepPeerNumReqSentEroRcvd</c> | ||||
| <c>/stats/req-sent-nopath-rcvd</c><c>pcePcepPeerNumReqSentNoPathRcvd</c> | ||||
| <c>/stats/req-sent-cancel-rcvd</c><c>pcePcepPeerNumReqSentCancelRcvd</c> | ||||
| <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> | ||||
| <c>/stats/svec/svec-rcvd</c><c>pcePcepPeerNumSvecRcvd</c> | ||||
| <c>/stats/svec/svec-req-rcvd</c><c>pcePcepPeerNumSvecReqRcvd</c> | ||||
| <c>/stats/req-rcvd-pend-rep</c><c>pcePcepPeerNumReqRcvdPendRep</c> | ||||
| <c>/stats/req-rcvd-ero-sent</c><c>pcePcepPeerNumReqRcvdEroSent</c> | ||||
| <c>/stats/req-rcvd-nopath-sent</c><c>pcePcepPeerNumReqRcvdNoPathSent</c> | ||||
| <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 | ||||
| r Session" suppress-title="false" align="center" style="full"> | ||||
| <ttcol align="left">YANG Data Nodes in /pcep/entity/peers/peer/sessions/ | ||||
| session</ttcol> | ||||
| <ttcol align="left">PCEP MIB Objects</ttcol> | ||||
| <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> | ||||
| <c>/stats/rsp-time-avg</c><c>pcePcepSessAvgRspTime</c> | ||||
| <c>/stats/rsp-time-lwm</c><c>pcePcepSessLWMRspTime</c> | ||||
| <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> | ||||
| <c>/stats/svec/svec-sent</c><c>pcePcepSessNumSvecSent</c> | ||||
| <c>/stats/svec/svec-req-sent</c><c>pcePcepSessNumSvecReqSent</c> | ||||
| <c>/stats/req-sent-pend-rep</c><c>pcePcepSessNumReqSentPendRep</c> | ||||
| <c>/stats/req-sent-ero-rcvd</c><c>pcePcepSessNumReqSentEroRcvd</c> | ||||
| <c>/stats/req-sent-nopath-rcvd</c><c>pcePcepSessNumReqSentNoPathRcvd</c> | ||||
| <c>/stats/req-sent-cancel-rcvd</c><c>pcePcepSessNumReqSentCancelRcvd</c> | ||||
| <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 | ||||
| Notification" suppress-title="false" align="center" style="full"> | ||||
| <ttcol align="left">YANG notifications</ttcol> | ||||
| <ttcol align="left">PCEP MIB NOTIFICATIONS</ttcol> | ||||
| <c>pcep-session-up</c><c>pcePcepSessUp</c> | ||||
| <c>pcep-session-down</c><c>pcePcepSessDown</c> | ||||
| <c>pcep-session-local-overload</c><c>pcePcepSessLocalOverload</c> | ||||
| <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 | ||||
| Vinod KumarS | ||||
| India | ||||
| EMail: vinods.kumar@gmail.com | ||||
| Zafar Ali | ||||
| Cisco Systems | ||||
| Canada | ||||
| EMail: zali@cisco.com | <t>Similarly, a PCEP session with an IPv6 address between a PCE (2001:db8: | |||
| :3) | ||||
| and a PCC (2001:db8::4) could also be set up.</t> | ||||
| </section> | ||||
| Xufeng Liu | <section toc="default" numbered="true"> | |||
| <name>Design Objectives</name> | ||||
| <t>This section describes some of the design objectives for the model:</t> | ||||
| <ul spacing="normal"> | ||||
| EMail: xufeng.liu.ietf@gmail.com | <li> | |||
| <t>Existing implementations need to map the data | ||||
| model defined in this document to their proprietary data model. To | ||||
| facilitate such mappings, the data model should be simple.</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>The data model should be suitable for new implementations to use | ||||
| as is.</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>Mapping to the PCEP MIB module <xref target="RFC7420" format="defau | ||||
| 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> | ||||
| </li> | ||||
| </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> | ||||
| Young Lee | <section toc="default" numbered="false"> | |||
| Samsung | <name>Acknowledgements</name> | |||
| <t>The initial draft version of this document was based on the PCEP MIB | ||||
| <xref target="RFC7420"/>. The authors of this document would like to | ||||
| thank the authors of <xref target="RFC7420"/>.</t> | ||||
| <t>Thanks to <contact fullname="Martin | ||||
| Bjorklund"/> and <contact fullname="Tom Petch"/> for the detailed | ||||
| review. Thanks to <contact fullname="Mahesh Jethanandani"/> and <contact | ||||
| fullname="Jan Lindblad"/> 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> | ||||
| EMail: younglee.tx@gmail.com | <section toc="default" numbered="false"> | |||
| <name>Contributors</name> | ||||
| Udayasree Palle | <contact fullname="Rohit Pobbathi"> | |||
| <organization>Nokia Networks</organization> | ||||
| <address> | ||||
| <postal><country>India</country></postal> | ||||
| <email>rohit.pobbathi_ashok@nokia.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| EMail: udayasreereddy@gmail.com | <contact fullname="Vinod KumarS"> | |||
| <organization></organization> | ||||
| <address> | ||||
| <postal><country>India</country></postal> | ||||
| <email>vinods.kumar@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| Xian Zhang | <contact fullname="Zafar Ali"> | |||
| Huawei Technologies | <organization>Cisco Systems</organization> | |||
| Bantian, Longgang District | <address> | |||
| Shenzhen 518129 | <postal><country>Canada</country></postal> | |||
| P.R.China | <email>zali@cisco.com</email> | |||
| </address> | ||||
| </contact> | ||||
| EMail: zhang.xian@huawei.com | <contact fullname="Xufeng Liu"> | |||
| <organization></organization> | ||||
| <address> | ||||
| <email>xufeng.liu.ietf@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| Avantika | <contact fullname="Young Lee"> | |||
| ECI Telecom | <organization>Samsung</organization> | |||
| India | <address> | |||
| <email>younglee.tx@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| EMail: avantika.srm@gmail.com | <contact fullname="Udayasree Palle"> | |||
| <organization></organization> | ||||
| <address> | ||||
| <email>udayasreereddy@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| Shashikanth | <contact fullname="Xian Zhang"> | |||
| India | <organization>Huawei Technologies</organization> | |||
| <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> | ||||
| EMail: shashivh@gmail.com | <contact fullname="Avantika"> | |||
| <organization>Ciena</organization> | ||||
| <address> | ||||
| <postal><country>India</country></postal> | ||||
| <email>avantika.srm@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| ]]></artwork> | <contact fullname="Shashikanth"> | |||
| </figure> | <organization></organization> | |||
| </t> | <address> | |||
| <postal><country>India</country></postal> | ||||
| <email>shashivh@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 432 change blocks. | ||||
| 1504 lines changed or deleted | 2129 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||