| < draft-ietf-pce-pcep-yang-09.txt | draft-ietf-pce-pcep-yang-10.txt > | |||
|---|---|---|---|---|
| PCE Working Group D. Dhody, Ed. | PCE Working Group D. Dhody, Ed. | |||
| Internet-Draft Huawei Technologies | Internet-Draft Huawei Technologies | |||
| Intended status: Standards Track J. Hardwick | Intended status: Standards Track J. Hardwick | |||
| Expires: April 18, 2019 Metaswitch | Expires: September 25, 2019 Metaswitch | |||
| V. Beeram | V. Beeram | |||
| Juniper Networks | Juniper Networks | |||
| J. Tantsura | J. Tantsura | |||
| October 15, 2018 | March 24, 2019 | |||
| A YANG Data Model for Path Computation Element Communications Protocol | A YANG Data Model for Path Computation Element Communications Protocol | |||
| (PCEP) | (PCEP) | |||
| draft-ietf-pce-pcep-yang-09 | draft-ietf-pce-pcep-yang-10 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model for the management of Path | This document defines a YANG data model for the management of Path | |||
| Computation Element communications Protocol (PCEP) for communications | Computation Element communications Protocol (PCEP) for communications | |||
| between a Path Computation Client (PCC) and a Path Computation | between a Path Computation Client (PCC) and a Path Computation | |||
| Element (PCE), or between two PCEs. The data model includes | Element (PCE), or between two PCEs. The data model includes | |||
| configuration data and state data (status information and counters | configuration and state data. | |||
| for the collection of statistics). | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 18, 2019. | This Internet-Draft will expire on September 25, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 | 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | |||
| 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.3. Refrences in the Model . . . . . . . . . . . . . . . . . 5 | |||
| 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6 | 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 6 | 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 8 | |||
| 5.2. The Full PCEP Data Model . . . . . . . . . . . . . . . . 7 | 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 8 | |||
| 5.3. The Entity . . . . . . . . . . . . . . . . . . . . . . . 22 | 5.2. The Entity . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.4. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 22 | 5.3. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.5. The Session Lists . . . . . . . . . . . . . . . . . . . . 23 | 5.4. The Session Lists . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.6. Notifications . . . . . . . . . . . . . . . . . . . . . . 23 | 5.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.7. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 5.6. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 23 | 5.7. The Full PCEP Data Model . . . . . . . . . . . . . . . . 11 | |||
| 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 28 | 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 17 | |||
| 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 28 | 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 20 | |||
| 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 28 | 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 20 | |||
| 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 29 | 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 21 | |||
| 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 29 | 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 21 | |||
| 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 29 | 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 21 | |||
| 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 29 | 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 21 | |||
| 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 29 | 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 86 | 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 21 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 106 | 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 78 | |||
| 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 107 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 98 | |||
| 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 107 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 99 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 108 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 99 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 108 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 99 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 110 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 99 | |||
| Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 111 | 14.2. Informative References . . . . . . . . . . . . . . . . . 103 | |||
| Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 114 | Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 104 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 115 | Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 107 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 108 | ||||
| 1. Introduction | 1. Introduction | |||
| The Path Computation Element (PCE) defined in [RFC4655] is an entity | The Path Computation Element (PCE) defined in [RFC4655] is an entity | |||
| that is capable of computing a network path or route based on a | that is capable of computing a network path or route based on a | |||
| network graph, and applying computational constraints. A Path | network graph, and applying computational constraints. A Path | |||
| Computation Client (PCC) may make requests to a PCE for paths to be | Computation Client (PCC) may make requests to a PCE for paths to be | |||
| computed. | computed. | |||
| PCEP is the communication protocol between a PCC and PCE and is | PCEP is the communication protocol between a PCC and PCE and is | |||
| defined in [RFC5440]. PCEP interactions include path computation | defined in [RFC5440]. PCEP interactions include path computation | |||
| requests and path computation replies as well as notifications of | requests and path computation replies as well as notifications of | |||
| specific states related to the use of a PCE in the context of | specific states related to the use of a PCE in the context of | |||
| Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) | Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) | |||
| Traffic Engineering (TE). [RFC8231] specifies extensions to PCEP to | Traffic Engineering (TE). [RFC8231] specifies extensions to PCEP to | |||
| enable stateful control of MPLS TE LSPs. | enable stateful control of MPLS TE LSPs. | |||
| This document defines a YANG [RFC7950] data model for the management | This document defines a YANG [RFC7950] data model for the management | |||
| of PCEP speakers. It is important to establish a common data model | of PCEP speakers. It is important to establish a common data model | |||
| for how PCEP speakers are identified, configured, and monitored. The | for how PCEP speakers are identified, configured, and monitored. The | |||
| data model includes configuration data and state data (status | data model includes configuration data and state data. | |||
| information and counters for the collection of statistics). | ||||
| This document contains a specification of the PCEP YANG module, | This document contains a specification of the PCEP YANG module, | |||
| "ietf-pcep" which provides the PCEP [RFC5440] data model. | "ietf-pcep" which provides the PCEP [RFC5440] data model. | |||
| The PCEP operational state is included in the same tree as the PCEP | The PCEP operational state is included in the same tree as the PCEP | |||
| configuration consistent with Network Management Datastore | configuration consistent with Network Management Datastore | |||
| Architecture [RFC8342]. The origin of the data is indicated as per | Architecture [RFC8342]. The origin of the data is indicated as per | |||
| the origin metadata annotation. | the origin metadata annotation. | |||
| 2. Requirements Language | 2. Requirements Language | |||
| skipping to change at page 4, line 42 ¶ | skipping to change at page 4, line 40 ¶ | |||
| (PCInitiate). | (PCInitiate). | |||
| [RFC8408] : | [RFC8408] : | |||
| o Path Setup Type (PST). | o Path Setup Type (PST). | |||
| [I-D.ietf-pce-segment-routing] : | [I-D.ietf-pce-segment-routing] : | |||
| o Segment Routing (SR). | o Segment Routing (SR). | |||
| [RFC6241] : | ||||
| o Configuration data. | ||||
| o State data. | ||||
| 3.1. Tree Diagrams | 3.1. Tree Diagrams | |||
| A simplified graphical representation of the data model is used in | A simplified graphical representation of the data model is used in | |||
| this document. The meaning of the symbols in these diagrams is | this document. The meaning of the symbols in these diagrams is | |||
| defined in [RFC8340]. | defined in [RFC8340]. | |||
| 3.2. Prefixes in Data Node Names | 3.2. Prefixes in Data Node Names | |||
| In this document, names of data nodes and other data model objects | In this document, names of data nodes and other data model objects | |||
| are often used without a prefix, as long as it is clear from the | are often used without a prefix, as long as it is clear from the | |||
| skipping to change at page 5, line 21 ¶ | skipping to change at page 5, line 27 ¶ | |||
| | inet | ietf-inet-types | [RFC6991] | | | inet | ietf-inet-types | [RFC6991] | | |||
| | te | ietf-te | [I-D.ietf-teas-yang-te] | | | te | ietf-te | [I-D.ietf-teas-yang-te] | | |||
| | te-types | ietf-te-types | [I-D.ietf-teas-yang-te] | | | te-types | ietf-te-types | [I-D.ietf-teas-yang-te] | | |||
| | key-chain | ietf-key-chain | [RFC8177] | | | key-chain | ietf-key-chain | [RFC8177] | | |||
| | nacm | ietf-netconf- | [RFC8341] | | | nacm | ietf-netconf- | [RFC8341] | | |||
| | | acm | | | | | acm | | | |||
| | tls- | ietf-tls-server | [I-D.ietf-netconf-tls-client-server | | | tls- | ietf-tls-server | [I-D.ietf-netconf-tls-client-server | | |||
| | server | | ] | | | server | | ] | | |||
| | tls- | ietf-tls-client | [I-D.ietf-netconf-tls-client-server | | | tls- | ietf-tls-client | [I-D.ietf-netconf-tls-client-server | | |||
| | client | | ] | | | client | | ] | | |||
| | ospf | ietf-ospf | [I-D.ietf-ospf-yang] | | ||||
| | isis | ietf-isis | [I-D.ietf-isis-yang-isis-cfg] | | ||||
| +-----------+-----------------+-------------------------------------+ | +-----------+-----------------+-------------------------------------+ | |||
| Table 1: Prefixes and corresponding YANG modules | Table 1: Prefixes and corresponding YANG modules | |||
| 3.3. Refrences in the Model | ||||
| Following documents are refrenced in the model defined in this | ||||
| document - | ||||
| +----------------------------+--------------------------------------+ | ||||
| | Documents | Reference | | ||||
| +----------------------------+--------------------------------------+ | ||||
| | RSVP-TE: Extensions to | [RFC3209] | | ||||
| | RSVP for LSP Tunnels | | | ||||
| | OSPF Protocol Extensions | [RFC5088] | | ||||
| | for Path Computation | | | ||||
| | Element (PCE) Discovery | | | ||||
| | IS-IS Protocol Extensions | [RFC5089] | | ||||
| | for Path Computation | | | ||||
| | Element (PCE) Discovery | | | ||||
| | Path Computation Element | [RFC5440] | | ||||
| | (PCE) Communication | | | ||||
| | Protocol (PCEP) | | | ||||
| | Preserving Topology | [RFC5520] | | ||||
| | Confidentiality in Inter- | | | ||||
| | Domain Path Computation | | | ||||
| | Using a Path-Key-Based | | | ||||
| | Mechanism | | | ||||
| | Encoding of Objective | [RFC5541] | | ||||
| | Functions in the Path | | | ||||
| | Computation Element | | | ||||
| | Communication Protocol | | | ||||
| | (PCEP) | | | ||||
| | Path Computation Element | [RFC5557] | | ||||
| | Communication Protocol | | | ||||
| | (PCEP) Requirements and | | | ||||
| | Protocol Extensions in | | | ||||
| | Support of Global | | | ||||
| | Concurrent Optimization | | | ||||
| | Common YANG Data Types | [RFC6991] | | ||||
| | YANG Data Model for Key | [RFC8177] | | ||||
| | Chains | | | ||||
| | Path Computation Element | [RFC8231] | | ||||
| | Communication Protocol | | | ||||
| | (PCEP) Extensions for | | | ||||
| | Stateful PCE | | | ||||
| | Optimizations of Label | [RFC8232] | | ||||
| | Switched Path State | | | ||||
| | Synchronization Procedures | | | ||||
| | for a Stateful PCE | | | ||||
| | PCEPS: Usage of TLS to | [RFC8253] | | ||||
| | Provide a Secure Transport | | | ||||
| | for the Path Computation | | | ||||
| | Element Communication | | | ||||
| | Protocol (PCEP) | | | ||||
| | Path Computation Element | [RFC8281] | | ||||
| | Communication Protocol | | | ||||
| | (PCEP) Extensions for PCE- | | | ||||
| | Initiated LSP Setup in a | | | ||||
| | Stateful PCE Model | | | ||||
| | Extensions to the Path | [RFC8306] | | ||||
| | Computation Element | | | ||||
| | Communication Protocol | | | ||||
| | (PCEP) for Point-to- | | | ||||
| | Multipoint Traffic | | | ||||
| | Engineering Label Switched | | | ||||
| | Paths | | | ||||
| | Network Configuration | [RFC8341] | | ||||
| | Access Control Model | | | ||||
| | Conveying Path Setup Type | [RFC8408] | | ||||
| | in PCE Communication | | | ||||
| | Protocol (PCEP) Messages | | | ||||
| | Traffic Engineering Common | [I-D.ietf-teas-yang-te-types] | | ||||
| | YANG Types | | | ||||
| | A YANG Data Model for | [I-D.ietf-teas-yang-te] | | ||||
| | Traffic Engineering | | | ||||
| | Tunnels and Interfaces | | | ||||
| | YANG Groupings for TLS | [I-D.ietf-netconf-tls-client-server] | | ||||
| | Clients and TLS Servers | | | ||||
| | PCEP Extensions for | [I-D.ietf-pce-segment-routing] | | ||||
| | Segment Routing | | | ||||
| | PCEP Extensions for | [I-D.ietf-pce-association-group] | | ||||
| | Establishing Relationships | | | ||||
| | Between Sets of LSPs | | | ||||
| | YANG Data Model for OSPF | [I-D.ietf-ospf-yang] | | ||||
| | Protocol | | | ||||
| | YANG Data Model for IS-IS | [I-D.ietf-isis-yang-isis-cfg] | | ||||
| | Protocol | | | ||||
| | PCEP extensions for GMPLS | [I-D.ietf-pce-gmpls-pcep-extensions] | | ||||
| +----------------------------+--------------------------------------+ | ||||
| Table 2: Refrences in the YANG modules | ||||
| 4. Objectives | 4. Objectives | |||
| This section describes some of the design objectives for the model: | This section describes some of the design objectives for the model: | |||
| o In case of existing implementations, it needs to map the data | o In case of existing implementations, it needs to map the data | |||
| model defined in this document to their proprietary native data | model defined in this document to their proprietary native data | |||
| model. To facilitate such mappings, the data model should be | model. To facilitate such mappings, the data model should be | |||
| simple. | simple. | |||
| o The data model should be suitable for new implementations to use | o The data model should be suitable for new implementations to use | |||
| skipping to change at page 7, line 26 ¶ | skipping to change at page 9, line 26 ¶ | |||
| | ... | | ... | |||
| +---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 | |||
| ... | ... | |||
| 5.2. The Full PCEP Data Model | 5.2. The Entity | |||
| The PCEP yang module may contain status information for the local | ||||
| PCEP entity. | ||||
| The entity has an IP address (using ietf-inet-types [RFC6991]) and a | ||||
| "role" leaf (the local entity PCEP role) as mandatory. | ||||
| Note that, the PCEP MIB module [RFC7420] uses an entity list and a | ||||
| system generated entity index as a primary index to the read only | ||||
| entity table. If the device implements the PCEP MIB, the "index" | ||||
| leaf MUST contain the value of the corresponding pcePcepEntityIndex | ||||
| and only one entity is assumed. | ||||
| 5.3. The Peer Lists | ||||
| The peer list contains peer(s) that the local PCEP entity knows | ||||
| about. A PCEP speaker is identified by its IP address. If there is | ||||
| a PCEP speaker in the network that uses multiple IP addresses then it | ||||
| looks like multiple distinct peers to the other PCEP speakers in the | ||||
| network. | ||||
| Since PCEP sessions can be ephemeral, the peer list tracks a peer | ||||
| even when no PCEP session currently exists to that peer. The | ||||
| statistics contained are an aggregate of the statistics for all | ||||
| successive sessions to that peer. | ||||
| To limit the quantity of information that is stored, an | ||||
| implementation MAY choose to discard this information if and only if | ||||
| no PCEP session exists to the corresponding peer. | ||||
| The data model for PCEP peer presented in this document uses a flat | ||||
| list of peers. Each peer in the list is identified by its IP address | ||||
| (addr-type, addr). | ||||
| There is a list for static peer configuration and operational state | ||||
| of 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. | ||||
| 5.4. The Session Lists | ||||
| The session list contains PCEP session that the PCEP entity (PCE or | ||||
| PCC) is currently participating in. The statistics in session are | ||||
| semantically different from those in peer since the former applies to | ||||
| the current session only, whereas the latter is the aggregate for all | ||||
| sessions that have existed to that peer. | ||||
| Although [RFC5440] forbids more than one active PCEP session between | ||||
| a given pair of PCEP entities at any given time, there is a window | ||||
| during session establishment where two sessions may exist for a given | ||||
| pair, one representing a session initiated by the local PCEP entity | ||||
| and the other representing a session initiated by the peer. If | ||||
| either of these sessions reaches active state first, then the other | ||||
| is discarded. | ||||
| The data model for PCEP session presented in this document uses a | ||||
| flat list of sessions. Each session in the list is identified by its | ||||
| initiator. This index allows two sessions to exist transiently for a | ||||
| given peer, as discussed above. | ||||
| 5.5. Notifications | ||||
| This YANG model defines a list of notifications to inform client of | ||||
| important events detected during the protocol operation. The | ||||
| notifications defined cover the PCEP MIB notifications. | ||||
| 5.6. RPC | ||||
| This YANG model defines a RPC to trigger state resynchronization to a | ||||
| particular PCEP peer. | ||||
| 5.7. The Full PCEP Data Model | ||||
| The module, "ietf-pcep", defines the basic components of a PCE | The module, "ietf-pcep", defines the basic components of a PCE | |||
| speaker. | speaker. The tree depth in the tree is set to 10. | |||
| module: ietf-pcep | module: ietf-pcep | |||
| +--rw pcep! | +--rw pcep! | |||
| +--rw entity | +--rw entity | |||
| +--rw addr inet:ip-address | +--rw addr inet:ip-address | |||
| +--rw enabled? boolean | +--rw enabled? boolean | |||
| +--rw role pcep-role | +--rw role pcep-role | |||
| +--rw description? string | +--rw description? string | |||
| +--rw speaker-entity-id? string | +--rw speaker-entity-id? string {sync-opt}? | |||
| | {stateful-sync-opt}? | +--rw admin-status? boolean | |||
| +--rw admin-status? pcep-admin-status | ||||
| +--ro index? uint32 | +--ro index? uint32 | |||
| +--ro oper-status? pcep-oper-status | +--ro oper-status? pcep-oper-status | |||
| +--rw domain | +--rw domain | |||
| | +--rw domain* [domain-type domain] | | +--rw domain* [domain-type domain] | |||
| | +--rw domain-type domain-type | | +--rw domain-type domain-type | |||
| | +--rw domain domain | | +--rw domain domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw gmpls? boolean {gmpls}? | | +--rw capability? bits | |||
| | +--rw bi-dir? boolean | | +--rw pce-initiated? boolean {pce-initiated}? | |||
| | +--rw diverse? boolean | | +--rw include-db-ver? boolean | |||
| | +--rw load-balance? boolean | | | {stateful,sync-opt}? | |||
| | +--rw synchronize? boolean {svec}? | | +--rw trigger-resync? boolean | |||
| | +--rw objective-function? boolean {objective-function}? | | | {stateful,sync-opt}? | |||
| | +--rw add-path-constraint? boolean | | +--rw trigger-initial-sync? boolean | |||
| | +--rw prioritization? boolean | | | {stateful,sync-opt}? | |||
| | +--rw multi-request? boolean | | +--rw incremental-sync? boolean | |||
| | +--rw gco? boolean {gco}? | | | {stateful,sync-opt}? | |||
| | +--rw p2mp? boolean {p2mp}? | ||||
| | +--rw stateful {stateful}? | ||||
| | | +--rw enabled? boolean | ||||
| | | +--rw active? boolean | ||||
| | | +--rw pce-initiated? boolean {pce-initiated}? | ||||
| | | +--rw include-db-ver? boolean | ||||
| | | | {stateful-sync-opt}? | ||||
| | | +--rw trigger-resync? boolean | ||||
| | | | {stateful-sync-opt}? | ||||
| | | +--rw trigger-initial-sync? boolean | ||||
| | | | {stateful-sync-opt}? | ||||
| | | +--rw incremental-sync? boolean | ||||
| | | {stateful-sync-opt}? | ||||
| | +--rw sr {sr}? | | +--rw sr {sr}? | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw msd? uint8 | ||||
| | +--rw msd-limit? boolean | | +--rw msd-limit? boolean | |||
| | +--rw nai? boolean | | +--rw nai? boolean | |||
| +--rw msd? uint8 {sr}? | ||||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw intra-area-scope? boolean | | | +--rw path-scope? bits | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-scope? boolean | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-area-scope-default? boolean | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | | +--rw inter-as-scope? boolean | ||||
| | | +--rw inter-as-scope-default? boolean | ||||
| | | +--rw inter-as-pref? uint8 | ||||
| | | +--rw inter-layer-scope? boolean | ||||
| | | +--rw inter-layer-pref? uint8 | ||||
| | +--rw neigh-domains | | +--rw neigh-domains | |||
| | | +--rw domain* [domain-type domain] | | | +--rw domain* [domain-type domain] | |||
| | | +--rw domain-type domain-type | | | +--rw domain-type domain-type | |||
| | | +--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 | | +--rw pce-id? inet:ip-address | |||
| +--rw connect-timer? uint32 | +--rw connect-timer? uint16 | |||
| +--rw connect-max-retry? uint32 | +--rw connect-max-retry? uint32 | |||
| +--rw init-backoff-timer? uint32 | +--rw init-backoff-timer? uint16 | |||
| +--rw max-backoff-timer? uint32 | +--rw max-backoff-timer? uint32 | |||
| +--rw open-wait-timer? uint32 | +--rw open-wait-timer? uint16 | |||
| +--rw keep-wait-timer? uint32 | +--rw keep-wait-timer? uint16 | |||
| +--rw keep-alive-timer? uint32 | +--rw keep-alive-timer? uint8 | |||
| +--rw dead-timer? uint32 | +--rw dead-timer? uint8 | |||
| +--rw allow-negotiation? boolean | +--rw allow-negotiation? boolean | |||
| +--rw max-keep-alive-timer? uint32 | +--rw max-keep-alive-timer? uint8 | |||
| +--rw max-dead-timer? uint32 | +--rw max-dead-timer? uint8 | |||
| +--rw min-keep-alive-timer? uint32 | +--rw min-keep-alive-timer? uint8 | |||
| +--rw min-dead-timer? uint32 | +--rw min-dead-timer? uint8 | |||
| +--rw sync-timer? uint32 {svec}? | +--rw sync-timer? uint16 {svec}? | |||
| +--rw request-timer? uint32 | +--rw request-timer? uint16 | |||
| +--rw max-sessions? uint32 | +--rw max-sessions? uint32 | |||
| +--rw max-unknown-reqs? uint32 | +--rw max-unknown-reqs? uint32 | |||
| +--rw max-unknown-msgs? uint32 | +--rw max-unknown-msgs? uint32 | |||
| +--rw pcep-notification-max-rate uint32 | +--rw pcep-notification-max-rate uint32 | |||
| +--rw stateful-parameter {stateful}? | +--rw stateful-parameter {stateful}? | |||
| | +--rw state-timeout? uint32 | | +--rw state-timeout? uint32 | |||
| | +--rw redelegation-timeout? uint32 | | +--rw redelegation-timeout? uint32 | |||
| | +--rw rpt-non-pcep-lsp? boolean | | +--rw rpt-non-pcep-lsp? boolean | |||
| +--rw of-list {objective-function}? | +--rw of-list {objective-function}? | |||
| | +--rw objective-function* [of] | | +--rw objective-function* [of] | |||
| | +--rw of identityref | | +--rw of identityref | |||
| +--ro lsp-db {stateful}? | +--ro lsp-db {stateful}? | |||
| | +--ro db-ver? uint64 {stateful-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}? | |||
| | | +--ro type identityref | | | +--ro type identityref | |||
| | | +--ro id uint16 | | | +--ro id uint16 | |||
| | | +--ro source inet:ip-address | | | +--ro source inet:ip-address | |||
| | | +--ro global-source uint32 | | | +--ro global-source uint32 | |||
| | | +--ro extended-id string | | | +--ro extended-id string | |||
| | | +--ro lsp* [plsp-id pcc-id] | | | +--ro lsp* [plsp-id pcc-id] | |||
| | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | |||
| skipping to change at page 10, line 4 ¶ | skipping to change at page 13, line 11 ¶ | |||
| | +--ro pcc-id inet:ip-address | | +--ro pcc-id inet:ip-address | |||
| | +--ro lsp-ref | | +--ro lsp-ref | |||
| | | +--ro source? | | | +--ro source? | |||
| | | | -> /te:te/lsps-state/lsp/source | | | | -> /te:te/lsps-state/lsp/source | |||
| | | +--ro destination? | | | +--ro destination? | |||
| | | | -> /te:te/lsps-state/lsp/destination | | | | -> /te:te/lsps-state/lsp/destination | |||
| | | +--ro tunnel-id? | | | +--ro tunnel-id? | |||
| | | | -> /te:te/lsps-state/lsp/tunnel-id | | | | -> /te:te/lsps-state/lsp/tunnel-id | |||
| | | +--ro lsp-id? | | | +--ro lsp-id? | |||
| | | | -> /te:te/lsps-state/lsp/lsp-id | | | | -> /te:te/lsps-state/lsp/lsp-id | |||
| | | +--ro extended-tunnel-id? | | | +--ro extended-tunnel-id? leafref | |||
| | | -> /te:te/lsps-state/lsp/extended-tunnel-id | ||||
| | +--ro admin-state? boolean | | +--ro admin-state? boolean | |||
| | +--ro operational-state? operational-state | | +--ro operational-state? operational-state | |||
| | +--ro delegated | | +--ro delegated | |||
| | | +--ro enabled? boolean | | | +--ro enabled? boolean | |||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | | | +--ro peer? -> /pcep/entity/peers/peer/addr | |||
| | | +--ro srp-id? uint32 | | | +--ro srp-id? uint32 | |||
| | +--ro initiation {pce-initiated}? | | +--ro initiation {pce-initiated}? | |||
| | | +--ro enabled? boolean | | | +--ro enabled? boolean | |||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | | | +--ro peer? -> /pcep/entity/peers/peer/addr | |||
| | +--ro symbolic-path-name? string | | +--ro symbolic-path-name? string | |||
| | +--ro last-error? identityref | | +--ro last-error? identityref | |||
| | +--ro pst? identityref | | +--ro pst? identityref | |||
| | +--ro association-list* | | +--ro association-list* | |||
| | [type id source global-source extended-id] | | [type id source global-source extended-id] | |||
| | {association}? | | {association}? | |||
| | +--ro type | | +--ro type leafref | |||
| | | -> /pcep/entity/lsp-db/association-list/type | ||||
| | +--ro id | | +--ro id | |||
| | | -> /pcep/entity/lsp-db/association-list/id | | | -> /pcep/entity/lsp-db/association-list/id | |||
| | +--ro source | | +--ro source leafref | |||
| | | -> /pcep/entity/lsp-db/association-list/source | ||||
| | +--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-keys* [path-key] | | +--ro path-keys* [path-key] | |||
| | +--ro path-key uint16 | | +--ro path-key uint16 | |||
| | +--ro cps | | +--ro cps | |||
| | | +--ro explicit-route-objects* [index] | | | +--ro explicit-route-objects* [index] | |||
| | | +--ro index uint32 | | | +--ro index uint32 | |||
| | | +--ro (type)? | | | +--ro (type)? | |||
| | | +--:(num-unnum-hop) | | | +--:(numbered-node-hop) | |||
| | | | +--ro num-unnum-hop | | | | +--ro numbered-node-hop | |||
| | | | +--ro node-id? te-types:te-node-id | | | | +--ro node-id te-node-id | |||
| | | | +--ro link-tp-id? te-types:te-tp-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 hop-type? te-hop-type | |||
| | | | +--ro direction? te-link-direction | | | | +--ro direction? te-link-direction | |||
| | | +--:(as-number) | | | +--:(as-number) | |||
| | | | +--ro as-number-hop | | | | +--ro as-number-hop | |||
| | | | +--ro as-number? binary | | | | +--ro as-number inet:as-number | |||
| | | | +--ro hop-type? te-hop-type | | | | +--ro hop-type? te-hop-type | |||
| | | +--:(label) | | | +--:(label) | |||
| | | +--ro label-hop | | | +--ro label-hop | |||
| | | +--ro te-label | | | +--ro te-label | |||
| | | +--ro (technology)? | | | ... | |||
| | | | +--:(generic) | ||||
| | | | +--ro generic? | ||||
| | | | rt-types:generalized-label | ||||
| | | +--ro direction? te-label-direction | ||||
| | +--ro pcc-original? -> /pcep/entity/peers/peer/addr | | +--ro pcc-original? -> /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 | +--rw addr inet:ip-address | |||
| +--rw role pcep-role | +--rw role pcep-role | |||
| +--rw description? string | +--rw description? string | |||
| +--rw domain | +--rw domain | |||
| | +--rw domain* [domain-type domain] | | +--rw domain* [domain-type domain] | |||
| | +--rw domain-type domain-type | | +--rw domain-type domain-type | |||
| | +--rw domain domain | | +--rw domain domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw gmpls? boolean {gmpls}? | | +--rw capability? bits | |||
| | +--rw bi-dir? boolean | | +--rw pce-initiated? boolean | |||
| | +--rw diverse? boolean | | | {pce-initiated}? | |||
| | +--rw load-balance? boolean | | +--rw include-db-ver? boolean | |||
| | +--rw synchronize? boolean {svec}? | | | {stateful,sync-opt}? | |||
| | +--rw objective-function? boolean | | +--rw trigger-resync? boolean | |||
| | | {objective-function}? | | | {stateful,sync-opt}? | |||
| | +--rw add-path-constraint? boolean | | +--rw trigger-initial-sync? boolean | |||
| | +--rw prioritization? boolean | | | {stateful,sync-opt}? | |||
| | +--rw multi-request? boolean | | +--rw incremental-sync? boolean | |||
| | +--rw gco? boolean {gco}? | | | {stateful,sync-opt}? | |||
| | +--rw p2mp? boolean {p2mp}? | ||||
| | +--rw stateful {stateful}? | ||||
| | | +--rw enabled? boolean | ||||
| | | +--rw active? boolean | ||||
| | | +--rw pce-initiated? boolean | ||||
| | | | {pce-initiated}? | ||||
| | | +--rw include-db-ver? boolean | ||||
| | | | {stateful-sync-opt}? | ||||
| | | +--rw trigger-resync? boolean | ||||
| | | | {stateful-sync-opt}? | ||||
| | | +--rw trigger-initial-sync? boolean | ||||
| | | | {stateful-sync-opt}? | ||||
| | | +--rw incremental-sync? boolean | ||||
| | | {stateful-sync-opt}? | ||||
| | +--rw sr {sr}? | | +--rw sr {sr}? | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw msd? uint8 | ||||
| | +--rw msd-limit? boolean | | +--rw msd-limit? boolean | |||
| | +--rw nai? boolean | | +--rw nai? boolean | |||
| +--rw msd? uint8 {sr}? | ||||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw intra-area-scope? boolean | | | +--rw path-scope? bits | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-scope? boolean | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-area-scope-default? boolean | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | | +--rw inter-as-scope? boolean | ||||
| | | +--rw inter-as-scope-default? boolean | ||||
| | | +--rw inter-as-pref? uint8 | ||||
| | | +--rw inter-layer-scope? boolean | ||||
| | | +--rw inter-layer-pref? uint8 | ||||
| | +--rw neigh-domains | | +--rw neigh-domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domain* [domain-type domain] | |||
| | +--rw domain-type domain-type | | +--rw domain-type domain-type | |||
| | +--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? key-chain:key-chain-ref | | | +--rw key-chain? kc:key-chain-ref | |||
| | +--:(auth-key) | | +--:(auth-key) | |||
| | | +--rw crypto-algorithm identityref | | | +--rw crypto-algorithm identityref | |||
| | | +--rw key? string | | | +--rw (key-string-style)? | |||
| | | +--:(keystring) | ||||
| | | | +--rw keystring? string | ||||
| | | +--:(hexadecimal) {kc: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 | |||
| | | +--rw server-identity | | | ... | |||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | +--rw algorithm | ||||
| | | | | | ct:key-algorithm-ref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key | ||||
| | | | | | union | ||||
| | | | | +--rw cert | ||||
| | | | | | ct:end-entity-cert-cms | ||||
| | | | | +---n certificate-expiration | ||||
| | | | | +---- expiration-date? | ||||
| | | | | yang:date-and-time | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-implemented}? | ||||
| | | | +--rw reference | ||||
| | | | ks:asymmetric-key-certificate-ref | ||||
| | | +--rw client-auth | ||||
| | | | +--rw pinned-ca-certs? | ||||
| | | | | ta:pinned-certificates-ref | ||||
| | | | +--rw pinned-client-certs? | ||||
| | | | ta:pinned-certificates-ref | ||||
| | | +--rw hello-params | ||||
| | | {tls-server-hello-params-config}? | ||||
| | | +--rw tls-versions | ||||
| | | | +--rw tls-version* identityref | ||||
| | | +--rw cipher-suites | ||||
| | | +--rw cipher-suite* identityref | ||||
| | +--:(client) | | +--:(client) | |||
| | +--rw tls-client | | +--rw tls-client | |||
| | +--rw client-identity | | ... | |||
| | | +--rw (auth-type)? | ||||
| | | +--:(certificate) | ||||
| | | +--rw certificate | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | +--rw algorithm | ||||
| | | | | ct:key-algorithm-ref | ||||
| | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--rw private-key | ||||
| | | | | union | ||||
| | | | +--rw cert | ||||
| | | | | ct:end-entity-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | +---- expiration-date? | ||||
| | | | yang:date-and-time | ||||
| | | +--:(keystore) | ||||
| | | {keystore-implemented}? | ||||
| | | +--rw reference | ||||
| | | ks:asymmetric-key-certificate-ref | ||||
| | +--rw server-auth | ||||
| | | +--rw pinned-ca-certs? | ||||
| | | | ta:pinned-certificates-ref | ||||
| | | +--rw pinned-server-certs? | ||||
| | | ta:pinned-certificates-ref | ||||
| | +--rw hello-params | ||||
| | {tls-client-hello-params-config}? | ||||
| | +--rw tls-versions | ||||
| | | +--rw tls-version* identityref | ||||
| | +--rw cipher-suites | ||||
| | +--rw cipher-suite* identityref | ||||
| +--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 pcep-initiator | +--ro initiator pcep-initiator | |||
| +--ro role? -> /pcep/entity/role | +--ro role? -> /pcep/entity/role | |||
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp | |||
| +--ro state? pcep-sess-state | +--ro state? pcep-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? uint32 | +--ro local-id? uint8 | |||
| +--ro remote-id? uint32 | +--ro remote-id? uint8 | |||
| +--ro keepalive-timer? uint32 | +--ro keepalive-timer? uint8 | |||
| +--ro peer-keepalive-timer? uint32 | +--ro peer-keepalive-timer? uint8 | |||
| +--ro dead-timer? uint32 | +--ro dead-timer? uint8 | |||
| +--ro peer-dead-timer? uint32 | +--ro peer-dead-timer? uint8 | |||
| +--ro ka-hold-time-rem? uint32 | +--ro ka-hold-time-rem? uint8 | |||
| +--ro overloaded? boolean | +--ro overloaded? boolean | |||
| +--ro overload-time? uint32 | +--ro overload-time? uint32 | |||
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean | |||
| +--ro peer-overload-time? uint32 | +--ro peer-overload-time? uint32 | |||
| +--ro lspdb-sync? sync-state | +--ro lspdb-sync? sync-state | |||
| | {stateful}? | | {stateful}? | |||
| +--ro recv-db-ver? uint64 | +--ro recv-db-ver? uint64 | |||
| | {stateful,stateful-sync-opt}? | | {stateful,sync-opt}? | |||
| +--ro of-list {objective-function}? | +--ro of-list {objective-function}? | |||
| | +--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 | |||
| | {stateful-sync-opt}? | | {sync-opt}? | |||
| +--ro discontinuity-time? yang:timestamp | +--ro discontinuity-time? yang:timestamp | |||
| rpcs: | rpcs: | |||
| +---x trigger-resync {stateful,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 | |||
| 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? | | +--ro session-initiator? | |||
| | | -> /pcep/entity/peers/peer/sessions/session/initiator | | | -> /pcep/entity/peers/peer/sessions/session/initiator | |||
| | +--ro state-last-change? yang:timestamp | | +--ro state-last-change? yang:timestamp | |||
| | +--ro state? pcep-sess-state | | +--ro state? pcep-sess-state | |||
| skipping to change at page 15, line 29 ¶ | skipping to change at page 17, line 13 ¶ | |||
| | +--ro overloaded? boolean | | +--ro overloaded? boolean | |||
| +---n pcep-session-peer-overload | +---n pcep-session-peer-overload | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | +--ro session-initiator? | | +--ro session-initiator? | |||
| | | -> /pcep/entity/peers/peer/sessions/session/initiator | | | -> /pcep/entity/peers/peer/sessions/session/initiator | |||
| | +--ro peer-overloaded? boolean | | +--ro peer-overloaded? boolean | |||
| | +--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? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean | |||
| groupings: | ||||
| info | ||||
| +---- domain | ||||
| | +---- domain* [domain-type domain] | ||||
| | +---- domain-type? domain-type | ||||
| | +---- domain? domain | ||||
| +---- capability | ||||
| +---- gmpls? boolean {gmpls}? | ||||
| +---- bi-dir? boolean | ||||
| +---- diverse? boolean | ||||
| +---- load-balance? boolean | ||||
| +---- synchronize? boolean {svec}? | ||||
| +---- objective-function? boolean {objective-function}? | ||||
| +---- add-path-constraint? boolean | ||||
| +---- prioritization? boolean | ||||
| +---- multi-request? boolean | ||||
| +---- gco? boolean {gco}? | ||||
| +---- p2mp? boolean {p2mp}? | ||||
| +---- stateful {stateful}? | ||||
| | +---- enabled? boolean | ||||
| | +---- active? boolean | ||||
| | +---- pce-initiated? boolean {pce-initiated}? | ||||
| | +---- include-db-ver? boolean {stateful-sync-opt}? | ||||
| | +---- trigger-resync? boolean {stateful-sync-opt}? | ||||
| | +---- trigger-initial-sync? boolean {stateful-sync-opt}? | ||||
| | +---- incremental-sync? boolean {stateful-sync-opt}? | ||||
| +---- sr {sr}? | ||||
| +---- enabled? boolean | ||||
| +---- msd? uint8 | ||||
| +---- msd-limit? boolean | ||||
| +---- nai? boolean | ||||
| lsp-state | ||||
| +---- plsp-id? uint32 | ||||
| +---- pcc-id? inet:ip-address | ||||
| +---- lsp-ref | ||||
| | +---- source? -> /te:te/lsps-state/lsp/source | ||||
| | +---- destination? -> /te:te/lsps-state/lsp/destination | ||||
| | +---- tunnel-id? -> /te:te/lsps-state/lsp/tunnel-id | ||||
| | +---- lsp-id? -> /te:te/lsps-state/lsp/lsp-id | ||||
| | +---- extended-tunnel-id? | ||||
| | -> /te:te/lsps-state/lsp/extended-tunnel-id | ||||
| +---- admin-state? boolean | ||||
| +---- operational-state? operational-state | ||||
| +---- delegated | ||||
| | +---- enabled? boolean | ||||
| | +---- peer? -> /pcep/entity/peers/peer/addr | ||||
| | +---- srp-id? uint32 | ||||
| +---- initiation {pce-initiated}? | ||||
| | +---- enabled? boolean | ||||
| | +---- peer? -> /pcep/entity/peers/peer/addr | ||||
| +---- symbolic-path-name? string | ||||
| +---- last-error? identityref | ||||
| +---- pst? identityref | ||||
| pce-scope | ||||
| +---- intra-area-scope? boolean | ||||
| +---- intra-area-pref? uint8 | ||||
| +---- inter-area-scope? boolean | ||||
| +---- inter-area-scope-default? boolean | ||||
| +---- inter-area-pref? uint8 | ||||
| +---- inter-as-scope? boolean | ||||
| +---- inter-as-scope-default? boolean | ||||
| +---- inter-as-pref? uint8 | ||||
| +---- inter-layer-scope? boolean | ||||
| +---- inter-layer-pref? uint8 | ||||
| of-list | ||||
| +---- objective-function* [of] | ||||
| +---- of? identityref | ||||
| pst-list | ||||
| +---- path-setup-type* [pst] | ||||
| +---- pst? identityref | ||||
| session-grouping | ||||
| +--ro sessions | ||||
| +--ro session* [initiator] | ||||
| +--ro initiator? pcep-initiator | ||||
| +--ro role? -> /pcep/entity/role | ||||
| +--ro state-last-change? yang:timestamp | ||||
| +--ro state? pcep-sess-state | ||||
| +--ro session-creation? yang:timestamp | ||||
| +--ro connect-retry? yang:counter32 | ||||
| +--ro local-id? uint32 | ||||
| +--ro remote-id? uint32 | ||||
| +--ro keepalive-timer? uint32 | ||||
| +--ro peer-keepalive-timer? uint32 | ||||
| +--ro dead-timer? uint32 | ||||
| +--ro peer-dead-timer? uint32 | ||||
| +--ro ka-hold-time-rem? uint32 | ||||
| +--ro overloaded? boolean | ||||
| +--ro overload-time? uint32 | ||||
| +--ro peer-overloaded? boolean | ||||
| +--ro peer-overload-time? uint32 | ||||
| +--ro lspdb-sync? sync-state {stateful}? | ||||
| +--ro recv-db-ver? uint64 | ||||
| | {stateful,stateful-sync-opt}? | ||||
| +--ro of-list {objective-function}? | ||||
| | +--ro objective-function* [of] | ||||
| | +--ro of? identityref | ||||
| +--ro pst-list | ||||
| | +--ro path-setup-type* [pst] | ||||
| | +--ro pst? identityref | ||||
| +--ro assoc-type-list {association}? | ||||
| | +--ro assoc-type* [at] | ||||
| | +--ro at? identityref | ||||
| +--ro speaker-entity-id? string {stateful-sync-opt}? | ||||
| +--ro discontinuity-time? yang:timestamp | ||||
| pcep-entity-info | ||||
| +---- connect-timer? uint32 | ||||
| +---- connect-max-retry? uint32 | ||||
| +---- init-backoff-timer? uint32 | ||||
| +---- max-backoff-timer? uint32 | ||||
| +---- open-wait-timer? uint32 | ||||
| +---- keep-wait-timer? uint32 | ||||
| +---- keep-alive-timer? uint32 | ||||
| +---- dead-timer? uint32 | ||||
| +---- allow-negotiation? boolean | ||||
| +---- max-keep-alive-timer? uint32 | ||||
| +---- max-dead-timer? uint32 | ||||
| +---- min-keep-alive-timer? uint32 | ||||
| +---- min-dead-timer? uint32 | ||||
| +---- sync-timer? uint32 {svec}? | ||||
| +---- request-timer? uint32 | ||||
| +---- max-sessions? uint32 | ||||
| +---- max-unknown-reqs? uint32 | ||||
| +---- max-unknown-msgs? uint32 | ||||
| path-key | ||||
| +---- enabled? boolean | ||||
| +---- discard-timer? uint32 | ||||
| +---- reuse-time? uint32 | ||||
| +---- pce-id? inet:ip-address | ||||
| capability | ||||
| +---- gmpls? boolean {gmpls}? | ||||
| +---- bi-dir? boolean | ||||
| +---- diverse? boolean | ||||
| +---- load-balance? boolean | ||||
| +---- synchronize? boolean {svec}? | ||||
| +---- objective-function? boolean {objective-function}? | ||||
| +---- add-path-constraint? boolean | ||||
| +---- prioritization? boolean | ||||
| +---- multi-request? boolean | ||||
| +---- gco? boolean {gco}? | ||||
| +---- p2mp? boolean {p2mp}? | ||||
| +---- stateful {stateful}? | ||||
| | +---- enabled? boolean | ||||
| | +---- active? boolean | ||||
| | +---- pce-initiated? boolean {pce-initiated}? | ||||
| | +---- include-db-ver? boolean {stateful-sync-opt}? | ||||
| | +---- trigger-resync? boolean {stateful-sync-opt}? | ||||
| | +---- trigger-initial-sync? boolean {stateful-sync-opt}? | ||||
| | +---- incremental-sync? boolean {stateful-sync-opt}? | ||||
| +---- sr {sr}? | ||||
| +---- enabled? boolean | ||||
| +---- msd? uint8 | ||||
| +---- msd-limit? boolean | ||||
| +---- nai? boolean | ||||
| path-key-state | ||||
| +---- path-keys* [path-key] | ||||
| +---- path-key? uint16 | ||||
| +---- cps | ||||
| | +---- explicit-route-objects* [index] | ||||
| | +---- index? uint32 | ||||
| | +---- (type)? | ||||
| | +--:(num-unnum-hop) | ||||
| | | +---- num-unnum-hop | ||||
| | | +---- node-id? te-types:te-node-id | ||||
| | | +---- link-tp-id? te-types:te-tp-id | ||||
| | | +---- hop-type? te-hop-type | ||||
| | | +---- direction? te-link-direction | ||||
| | +--:(as-number) | ||||
| | | +---- as-number-hop | ||||
| | | +---- as-number? binary | ||||
| | | +---- hop-type? te-hop-type | ||||
| | +--:(label) | ||||
| | +---- label-hop | ||||
| | +---- te-label | ||||
| | +---- (technology)? | ||||
| | | +--:(generic) | ||||
| | | +---- generic? | ||||
| | | rt-types:generalized-label | ||||
| | +---- direction? te-label-direction | ||||
| +---- pcc-original? -> /pcep/entity/peers/peer/addr | ||||
| +---- req-id? uint32 | ||||
| +---- retrieved? boolean | ||||
| +---- pcc-retrieved? -> /pcep/entity/peers/peer/addr | ||||
| +---- creation-time? yang:timestamp | ||||
| +---- discard-time? uint32 | ||||
| +---- reuse-time? uint32 | ||||
| authentication | ||||
| +---- auth | ||||
| +---- (auth-type-selection)? | ||||
| +--:(auth-key-chain) | ||||
| | +---- key-chain? key-chain:key-chain-ref | ||||
| +--:(auth-key) | ||||
| | +---- crypto-algorithm identityref | ||||
| | +---- key? string | ||||
| +--:(auth-tls) {tls}? | ||||
| +---- (role)? | ||||
| +--:(server) | ||||
| | +---- tls-server | ||||
| | +---- server-identity | ||||
| | | +---- (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | +---- algorithm | ||||
| | | | | ct:key-algorithm-ref | ||||
| | | | +---- public-key binary | ||||
| | | | +---- private-key union | ||||
| | | | +---- cert | ||||
| | | | | ct:end-entity-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | +---- expiration-date? | ||||
| | | | yang:date-and-time | ||||
| | | +--:(keystore) {keystore-implemented}? | ||||
| | | +---- reference | ||||
| | | ks:asymmetric-key-certificate-ref | ||||
| | +---- client-auth | ||||
| | | +---- pinned-ca-certs? | ||||
| | | | ta:pinned-certificates-ref | ||||
| | | +---- pinned-client-certs? | ||||
| | | ta:pinned-certificates-ref | ||||
| | +---- hello-params | ||||
| | {tls-server-hello-params-config}? | ||||
| | +---- tls-versions | ||||
| | | +---- tls-version* identityref | ||||
| | +---- cipher-suites | ||||
| | +---- cipher-suite* identityref | ||||
| +--:(client) | ||||
| +---- tls-client | ||||
| +---- client-identity | ||||
| | +---- (auth-type)? | ||||
| | +--:(certificate) | ||||
| | +---- certificate | ||||
| | +---- (local-or-keystore) | ||||
| | +--:(local) | ||||
| | | +---- algorithm | ||||
| | | | ct:key-algorithm-ref | ||||
| | | +---- public-key | ||||
| | | | binary | ||||
| | | +---- private-key | ||||
| | | | union | ||||
| | | +---- cert | ||||
| | | | ct:end-entity-cert-cms | ||||
| | | +---n certificate-expiration | ||||
| | | +---- expiration-date? | ||||
| | | yang:date-and-time | ||||
| | +--:(keystore) | ||||
| | {keystore-implemented}? | ||||
| | +---- reference | ||||
| | ks:asymmetric-key-certificate-ref | ||||
| +---- server-auth | ||||
| | +---- pinned-ca-certs? | ||||
| | | ta:pinned-certificates-ref | ||||
| | +---- pinned-server-certs? | ||||
| | ta:pinned-certificates-ref | ||||
| +---- hello-params | ||||
| {tls-client-hello-params-config}? | ||||
| +---- tls-versions | ||||
| | +---- tls-version* identityref | ||||
| +---- cipher-suites | ||||
| +---- cipher-suite* identityref | ||||
| notification-session-hdr | ||||
| +---- session-initiator? | ||||
| -> /pcep/entity/peers/peer/sessions/session/initiator | ||||
| assoc-type-list | ||||
| +---- assoc-type* [at] | ||||
| +---- at? identityref | ||||
| association | ||||
| +---- type? identityref | ||||
| +---- id? uint16 | ||||
| +---- source? inet:ip-address | ||||
| +---- global-source? uint32 | ||||
| +---- extended-id? string | ||||
| domain | ||||
| +---- domain-type? domain-type | ||||
| +---- domain? domain | ||||
| association-ref | ||||
| +---- type? -> /pcep/entity/lsp-db/association-list/type | ||||
| +---- id? -> /pcep/entity/lsp-db/association-list/id | ||||
| +---- source? -> /pcep/entity/lsp-db/association-list/source | ||||
| +---- global-source? | ||||
| | -> /pcep/entity/lsp-db/association-list/global-source | ||||
| +---- extended-id? | ||||
| -> /pcep/entity/lsp-db/association-list/extended-id | ||||
| notification-instance-hdr | ||||
| +---- peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| pce-info | ||||
| +---- scope | ||||
| | +---- intra-area-scope? boolean | ||||
| | +---- intra-area-pref? uint8 | ||||
| | +---- inter-area-scope? boolean | ||||
| | +---- inter-area-scope-default? boolean | ||||
| | +---- inter-area-pref? uint8 | ||||
| | +---- inter-as-scope? boolean | ||||
| | +---- inter-as-scope-default? boolean | ||||
| | +---- inter-as-pref? uint8 | ||||
| | +---- inter-layer-scope? boolean | ||||
| | +---- inter-layer-pref? uint8 | ||||
| +---- neigh-domains | ||||
| +---- domain* [domain-type domain] | ||||
| +---- domain-type? domain-type | ||||
| +---- domain? domain | ||||
| stateful-pce-parameter | ||||
| +---- state-timeout? uint32 | ||||
| +---- redelegation-timeout? uint32 | ||||
| +---- rpt-non-pcep-lsp? boolean | ||||
| 5.3. The Entity | ||||
| The PCEP yang module may contain status information for the local | ||||
| PCEP entity. | ||||
| The entity has an IP address (using ietf-inet-types [RFC6991]) and a | ||||
| "role" leaf (the local entity PCEP role) as mandatory. | ||||
| Note that, the PCEP MIB module [RFC7420] uses an entity list and a | ||||
| system generated entity index as a primary index to the read only | ||||
| entity table. If the device implements the PCEP MIB, the "index" | ||||
| leaf MUST contain the value of the corresponding pcePcepEntityIndex | ||||
| and only one entity is assumed. | ||||
| 5.4. The Peer Lists | ||||
| The peer list contains peer(s) that the local PCEP entity knows | ||||
| about. A PCEP speaker is identified by its IP address. If there is | ||||
| a PCEP speaker in the network that uses multiple IP addresses then it | ||||
| looks like multiple distinct peers to the other PCEP speakers in the | ||||
| network. | ||||
| Since PCEP sessions can be ephemeral, the peer list tracks a peer | ||||
| even when no PCEP session currently exists to that peer. The | ||||
| statistics contained are an aggregate of the statistics for all | ||||
| successive sessions to that peer. | ||||
| To limit the quantity of information that is stored, an | ||||
| implementation MAY choose to discard this information if and only if | ||||
| no PCEP session exists to the corresponding peer. | ||||
| The data model for PCEP peer presented in this document uses a flat | ||||
| list of peers. Each peer in the list is identified by its IP address | ||||
| (addr-type, addr). | ||||
| There is a list for static peer configuration and operational state | ||||
| of 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. | ||||
| 5.5. The Session Lists | ||||
| The session list contains PCEP session that the PCEP entity (PCE or | ||||
| PCC) is currently participating in. The statistics in session are | ||||
| semantically different from those in peer since the former applies to | ||||
| the current session only, whereas the latter is the aggregate for all | ||||
| sessions that have existed to that peer. | ||||
| Although [RFC5440] forbids more than one active PCEP session between | ||||
| a given pair of PCEP entities at any given time, there is a window | ||||
| during session establishment where two sessions may exist for a given | ||||
| pair, one representing a session initiated by the local PCEP entity | ||||
| and the other representing a session initiated by the peer. If | ||||
| either of these sessions reaches active state first, then the other | ||||
| is discarded. | ||||
| The data model for PCEP session presented in this document uses a | ||||
| flat list of sessions. Each session in the list is identified by its | ||||
| initiator. This index allows two sessions to exist transiently for a | ||||
| given peer, as discussed above. | ||||
| 5.6. Notifications | ||||
| This YANG model defines a list of notifications to inform client of | ||||
| important events detected during the protocol operation. The | ||||
| notifications defined cover the PCEP MIB notifications. | ||||
| 5.7. RPC | ||||
| This YANG model defines a RPC to trigger state resynchronization to a | ||||
| particular PCEP peer. | ||||
| 6. The Design of PCEP Statistics Data Model | 6. The Design of PCEP Statistics Data Model | |||
| The module, "ietf-pcep-stats", augments the ietf-pcep module to | The module, "ietf-pcep-stats", augments the ietf-pcep module to | |||
| include statistics at the PCEP peer and session level. | include statistics at the PCEP peer and session level. | |||
| module: ietf-pcep-stats | module: ietf-pcep-stats | |||
| augment /p:pcep/p:entity/p:peers/p:peer: | augment /p:pcep/p:entity/p:peers/p:peer: | |||
| +--ro num-sess-setup-ok? yang:counter32 | +--ro num-sess-setup-ok? yang:counter32 | |||
| +--ro num-sess-setup-fail? yang:counter32 | +--ro num-sess-setup-fail? yang:counter32 | |||
| skipping to change at page 26, line 36 ¶ | skipping to change at page 20, line 8 ¶ | |||
| | +--ro num-pcinitiate-sent? yang:counter32 | | +--ro num-pcinitiate-sent? yang:counter32 | |||
| | +--ro num-pcinitiate-rcvd? yang:counter32 | | +--ro num-pcinitiate-rcvd? yang:counter32 | |||
| | +--ro num-initiate-sent? yang:counter32 | | +--ro num-initiate-sent? yang:counter32 | |||
| | +--ro num-initiate-rcvd? yang:counter32 | | +--ro num-initiate-rcvd? yang:counter32 | |||
| | +--ro num-initiate-rcvd-error-sent? yang:counter32 | | +--ro num-initiate-rcvd-error-sent? yang:counter32 | |||
| +--ro path-key {p:path-key}? | +--ro path-key {p:path-key}? | |||
| +--ro num-unknown-path-key? yang:counter32 | +--ro num-unknown-path-key? yang:counter32 | |||
| +--ro num-exp-path-key? yang:counter32 | +--ro num-exp-path-key? yang:counter32 | |||
| +--ro num-dup-path-key? yang:counter32 | +--ro num-dup-path-key? yang:counter32 | |||
| +--ro num-path-key-no-attempt? yang:counter32 | +--ro num-path-key-no-attempt? yang:counter32 | |||
| groupings: | ||||
| pcep-stats | ||||
| +---- avg-rsp-time? uint32 | ||||
| +---- lwm-rsp-time? uint32 | ||||
| +---- hwm-rsp-time? uint32 | ||||
| +---- num-pcreq-sent? yang:counter32 | ||||
| +---- num-pcreq-rcvd? yang:counter32 | ||||
| +---- num-pcrep-sent? yang:counter32 | ||||
| +---- num-pcrep-rcvd? yang:counter32 | ||||
| +---- num-pcerr-sent? yang:counter32 | ||||
| +---- num-pcerr-rcvd? yang:counter32 | ||||
| +---- num-pcntf-sent? yang:counter32 | ||||
| +---- num-pcntf-rcvd? yang:counter32 | ||||
| +---- num-keepalive-sent? yang:counter32 | ||||
| +---- num-keepalive-rcvd? yang:counter32 | ||||
| +---- num-unknown-rcvd? yang:counter32 | ||||
| +---- num-corrupt-rcvd? yang:counter32 | ||||
| +---- num-req-sent? yang:counter32 | ||||
| +---- num-req-sent-pend-rep? yang:counter32 | ||||
| +---- num-req-sent-ero-rcvd? yang:counter32 | ||||
| +---- num-req-sent-nopath-rcvd? yang:counter32 | ||||
| +---- num-req-sent-cancel-rcvd? yang:counter32 | ||||
| +---- num-req-sent-error-rcvd? yang:counter32 | ||||
| +---- num-req-sent-timeout? yang:counter32 | ||||
| +---- num-req-sent-cancel-sent? yang:counter32 | ||||
| +---- num-req-rcvd? yang:counter32 | ||||
| +---- num-req-rcvd-pend-rep? yang:counter32 | ||||
| +---- num-req-rcvd-ero-sent? yang:counter32 | ||||
| +---- num-req-rcvd-nopath-sent? yang:counter32 | ||||
| +---- num-req-rcvd-cancel-sent? yang:counter32 | ||||
| +---- num-req-rcvd-error-sent? yang:counter32 | ||||
| +---- num-req-rcvd-cancel-rcvd? yang:counter32 | ||||
| +---- num-rep-rcvd-unknown? yang:counter32 | ||||
| +---- num-req-rcvd-unknown? yang:counter32 | ||||
| +---- svec {p:svec}? | ||||
| | +---- num-svec-sent? yang:counter32 | ||||
| | +---- num-svec-req-sent? yang:counter32 | ||||
| | +---- num-svec-rcvd? yang:counter32 | ||||
| | +---- num-svec-req-rcvd? yang:counter32 | ||||
| +---- stateful {p:stateful}? | ||||
| | +---- num-pcrpt-sent? yang:counter32 | ||||
| | +---- num-pcrpt-rcvd? yang:counter32 | ||||
| | +---- num-pcupd-sent? yang:counter32 | ||||
| | +---- num-pcupd-rcvd? yang:counter32 | ||||
| | +---- num-rpt-sent? yang:counter32 | ||||
| | +---- num-rpt-rcvd? yang:counter32 | ||||
| | +---- num-rpt-rcvd-error-sent? yang:counter32 | ||||
| | +---- num-upd-sent? yang:counter32 | ||||
| | +---- num-upd-rcvd? yang:counter32 | ||||
| | +---- num-upd-rcvd-unknown? yang:counter32 | ||||
| | +---- num-upd-rcvd-undelegated? yang:counter32 | ||||
| | +---- num-upd-rcvd-error-sent? yang:counter32 | ||||
| | +---- initiation {p:pce-initiated}? | ||||
| | +---- num-pcinitiate-sent? yang:counter32 | ||||
| | +---- num-pcinitiate-rcvd? yang:counter32 | ||||
| | +---- num-initiate-sent? yang:counter32 | ||||
| | +---- num-initiate-rcvd? yang:counter32 | ||||
| | +---- num-initiate-rcvd-error-sent? yang:counter32 | ||||
| +---- path-key {p:path-key}? | ||||
| +---- num-unknown-path-key? yang:counter32 | ||||
| +---- num-exp-path-key? yang:counter32 | ||||
| +---- num-dup-path-key? yang:counter32 | ||||
| +---- num-path-key-no-attempt? yang:counter32 | ||||
| 7. Advanced PCE Features | 7. Advanced PCE Features | |||
| This document contains a specification of the base PCEP YANG module, | This document contains a specification of the base PCEP YANG module, | |||
| "ietf-pcep" which provides the basic PCEP [RFC5440] data model. | "ietf-pcep" which provides the basic PCEP [RFC5440] data model. | |||
| This document further handles advanced PCE features like - | This document further handles advanced PCE features like - | |||
| o Capability and Scope | o Capability and Scope | |||
| skipping to change at page 29, line 38 ¶ | skipping to change at page 21, line 43 ¶ | |||
| PCEP session is started.. | PCEP session is started.. | |||
| 10. PCEP YANG Modules | 10. PCEP YANG Modules | |||
| 10.1. ietf-pcep module | 10.1. ietf-pcep module | |||
| RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | |||
| actual RFC number and all occurrences of the revision date below with | actual RFC number and all occurrences of the revision date below with | |||
| the date of RFC publication (and remove this note). | the date of RFC publication (and remove this note). | |||
| <CODE BEGINS> file "ietf-pcep@2018-10-15.yang" | <CODE BEGINS> file "ietf-pcep@2019-03-24.yang" | |||
| module ietf-pcep { | module ietf-pcep { | |||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; | yang-version 1.1; | |||
| prefix pcep; | ||||
| import ietf-inet-types { | namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; | |||
| prefix "inet"; | prefix p; | |||
| reference "RFC 6991"; | ||||
| } | ||||
| import ietf-yang-types { | import ietf-inet-types { | |||
| prefix "yang"; | prefix "inet"; | |||
| reference "RFC 6991"; | reference | |||
| } | "RFC 6991: Common YANG Data Types"; | |||
| } | ||||
| import ietf-te { | import ietf-yang-types { | |||
| prefix "te"; | prefix "yang"; | |||
| reference "RFC XXXX"; | reference | |||
| } | "RFC 6991: Common YANG Data Types"; | |||
| } | ||||
| import ietf-te-types { | import ietf-te { | |||
| prefix "te-types"; | prefix "te"; | |||
| reference "RFC XXXX"; | reference | |||
| } | "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic | |||
| Engineering Tunnels and Interfaces"; | ||||
| } | ||||
| import ietf-key-chain { | import ietf-te-types { | |||
| prefix "key-chain"; | prefix "te-types"; | |||
| reference "RFC 8177"; | reference | |||
| } | "I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG | |||
| Types"; | ||||
| } | ||||
| import ietf-netconf-acm { | import ietf-key-chain { | |||
| prefix "nacm"; | prefix "kc"; | |||
| reference "RFC 6536"; | reference | |||
| } | "RFC 8177: YANG Data Model for Key Chains"; | |||
| } | ||||
| import ietf-tls-server { | import ietf-netconf-acm { | |||
| prefix "tls-server"; | prefix "nacm"; | |||
| reference "RFC XXXX"; | reference | |||
| } | "RFC 8341: Network Configuration Protocol (NETCONF) Access | |||
| Control Model"; | ||||
| } | ||||
| import ietf-tls-client { | import ietf-tls-server { | |||
| prefix "tls-client"; | prefix "ts"; | |||
| reference "RFC XXXX"; | reference | |||
| "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS | ||||
| Clients and TLS Servers"; | ||||
| } | } | |||
| organization | import ietf-tls-client { | |||
| "IETF PCE (Path Computation Element) Working Group"; | prefix "tc"; | |||
| reference | ||||
| "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS | ||||
| Clients and TLS Servers"; | ||||
| } | ||||
| contact | import ietf-ospf { | |||
| "WG Web: <http://tools.ietf.org/wg/pce/> | prefix "ospf"; | |||
| WG List: <mailto:pce@ietf.org> | reference | |||
| Editor: Dhruv Dhody | "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | |||
| <mailto:dhruv.ietf@gmail.com>"; | } | |||
| description | import ietf-isis { | |||
| "The YANG module defines a generic configuration and | prefix "isis"; | |||
| operational model for PCEP common across all of the | reference | |||
| vendor implementations. | "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS | |||
| Protocol"; | ||||
| } | ||||
| Copyright (c) 2018 IETF Trust and the persons identified as | organization | |||
| authors of the code. All rights reserved. | "IETF PCE (Path Computation Element) Working Group"; | |||
| Redistribution and use in source and binary forms, with or | contact | |||
| without modification, is permitted pursuant to, and subject | "WG Web: <http://tools.ietf.org/wg/pce/> | |||
| to the license terms contained in, the Simplified BSD License | WG List: <mailto:pce@ietf.org> | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | Editor: Dhruv Dhody | |||
| Relating to IETF Documents | <mailto:dhruv.ietf@gmail.com>"; | |||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see the | description | |||
| RFC itself for full legal notices."; | "The YANG module defines a generic configuration and | |||
| operational model for PCEP. | ||||
| revision 2018-10-15 { | Copyright (c) 2019 IETF Trust and the persons identified as | |||
| description "Initial revision."; | authors of the code. All rights reserved. | |||
| reference | ||||
| "RFC XXXX: A YANG Data Model for Path Computation | ||||
| Element Communications Protocol | ||||
| (PCEP)"; | ||||
| } | ||||
| /* | Redistribution and use in source and binary forms, with or | |||
| * Identities | without modification, is permitted pursuant to, and subject | |||
| */ | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| identity pcep { | This version of this YANG module is part of RFC XXXX; see the | |||
| description "Identity for the PCEP protocol."; | RFC itself for full legal notices."; | |||
| reference "RFC 5440"; | ||||
| } | ||||
| /* | revision 2019-03-24 { | |||
| * Typedefs | description "Initial revision."; | |||
| */ | reference | |||
| typedef pcep-role { | "RFC XXXX: A YANG Data Model for Path Computation | |||
| type enumeration { | Element Communications Protocol (PCEP)"; | |||
| enum unknown { | ||||
| value "0"; | ||||
| description | ||||
| "An unknown role"; | ||||
| } | ||||
| enum pcc { | ||||
| value "1"; | ||||
| description | ||||
| "The role of a Path Computation Client"; | ||||
| } | ||||
| enum pce { | ||||
| value "2"; | ||||
| description | ||||
| "The role of Path Computation Element"; | ||||
| } | ||||
| enum pcc-and-pce { | ||||
| value "3"; | ||||
| description | ||||
| "The role of both Path Computation Client and | ||||
| Path Computation Element"; | ||||
| } | ||||
| } | ||||
| description | } | |||
| "The role of a PCEP speaker. | ||||
| Takes one of the following values | ||||
| - unknown(0): the role is not known. | ||||
| - pcc(1): the role is of a Path Computation | ||||
| Client (PCC). | ||||
| - pce(2): the role is of a Path Computation | ||||
| Server (PCE). | ||||
| - pccAndPce(3): the role is of both a PCC and | ||||
| a PCE."; | ||||
| } | /* | |||
| * Typedefs | ||||
| */ | ||||
| typedef pcep-role { | ||||
| type enumeration { | ||||
| enum unknown { | ||||
| value "0"; | ||||
| description | ||||
| "An unknown role"; | ||||
| } | ||||
| enum pcc { | ||||
| value "1"; | ||||
| description | ||||
| "The role of a Path Computation Client"; | ||||
| } | ||||
| enum pce { | ||||
| value "2"; | ||||
| description | ||||
| "The role of Path Computation Element"; | ||||
| } | ||||
| enum pcc-and-pce { | ||||
| value "3"; | ||||
| description | ||||
| "The role of both Path Computation Client and | ||||
| Path Computation Element"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The role of a PCEP speaker. | ||||
| Takes one of the following values | ||||
| - unknown(0): the role is not known. | ||||
| - pcc(1): the role is of a Path Computation | ||||
| Client (PCC). | ||||
| - pce(2): the role is of a Path Computation | ||||
| Server (PCE). | ||||
| - pccAndPce(3): the role is of both a PCC and | ||||
| a PCE."; | ||||
| } | ||||
| typedef pcep-admin-status { | typedef pcep-oper-status { | |||
| type enumeration { | type enumeration { | |||
| enum admin-status-up { | enum oper-status-up { | |||
| value "1"; | value "1"; | |||
| description | description | |||
| "Admin Status is Up"; | "The PCEP entity is active"; | |||
| } | } | |||
| enum admin-status-down { | enum oper-status-down { | |||
| value "2"; | value "2"; | |||
| description | description | |||
| "Admin Status is Down"; | "The PCEP entity is inactive"; | |||
| } | } | |||
| } | enum oper-status-going-up { | |||
| value "3"; | ||||
| description | ||||
| "The PCEP entity is activating"; | ||||
| } | ||||
| enum oper-status-going-down { | ||||
| value "4"; | ||||
| description | ||||
| "The PCEP entity is deactivating"; | ||||
| } | ||||
| enum oper-status-failed { | ||||
| value "5"; | ||||
| description | ||||
| "The PCEP entity has failed and will recover | ||||
| when possible."; | ||||
| } | ||||
| enum oper-status-failed-perm { | ||||
| value "6"; | ||||
| description | ||||
| "The PCEP entity has failed and will not recover | ||||
| without operator intervention"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The operational status of the PCEP entity. | ||||
| Takes one of the following values | ||||
| - oper-status-up(1): Active | ||||
| - oper-status-down(2): Inactive | ||||
| - oper-status-going-up(3): Activating | ||||
| - oper-status-going-down(4): Deactivating | ||||
| - oper-status-failed(5): Failed | ||||
| - oper-status-failed-perm(6): Failed Permanantly"; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| description | typedef pcep-initiator { | |||
| "The Admin Status of the PCEP entity. | type enumeration { | |||
| Takes one of the following values | enum local { | |||
| - admin-status-up(1): Admin Status is Up. | value "1"; | |||
| - admin-status-down(2): Admin Status is Down"; | description | |||
| } | "The local PCEP entity initiated the session"; | |||
| typedef pcep-oper-status { | } | |||
| type enumeration { | enum remote { | |||
| enum oper-status-up { | value "2"; | |||
| value "1"; | description | |||
| description | "The remote PCEP peer initiated the session"; | |||
| "The PCEP entity is active"; | } | |||
| } | } | |||
| enum oper-status-down { | description | |||
| value "2"; | "The initiator of the session, that is, whether the TCP | |||
| description | connection was initiated by the local PCEP entity or | |||
| "The PCEP entity is inactive"; | the remote peer. | |||
| } | Takes one of the following values | |||
| enum oper-status-going-up { | - local(1): Initiated locally | |||
| value "3"; | - remote(2): Initiated remotely"; | |||
| description | } | |||
| "The PCEP entity is activating"; | ||||
| } | ||||
| enum oper-status-going-down { | ||||
| value "4"; | ||||
| description | ||||
| "The PCEP entity is deactivating"; | ||||
| } | ||||
| enum oper-status-failed { | ||||
| value "5"; | ||||
| description | ||||
| "The PCEP entity has failed and will recover | ||||
| when possible."; | ||||
| } | ||||
| enum oper-status-failed-perm { | ||||
| value "6"; | ||||
| description | ||||
| "The PCEP entity has failed and will not recover | ||||
| without operator intervention"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The operational status of the PCEP entity. | ||||
| Takes one of the following values | ||||
| - oper-status-up(1): Active | ||||
| - oper-status-down(2): Inactive | ||||
| - oper-status-going-up(3): Activating | ||||
| - oper-status-going-down(4): Deactivating | ||||
| - oper-status-failed(5): Failed | ||||
| - oper-status-failed-perm(6): Failed Permanantly"; | ||||
| } | ||||
| typedef pcep-initiator { | typedef pcep-sess-state { | |||
| type enumeration { | type enumeration { | |||
| enum local { | enum tcp-pending { | |||
| value "1"; | value "1"; | |||
| description | description | |||
| "The local PCEP entity initiated the session"; | "The tcp-pending state of PCEP session."; | |||
| } | } | |||
| enum open-wait { | ||||
| value "2"; | ||||
| description | ||||
| "The open-wait state of PCEP session."; | ||||
| } | ||||
| enum keep-wait { | ||||
| value "3"; | ||||
| description | ||||
| "The keep-wait state of PCEP session."; | ||||
| } | ||||
| enum session-up { | ||||
| value "4"; | ||||
| description | ||||
| "The session-up state of PCEP session."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The current state of the session. | ||||
| The set of possible states excludes the idle state | ||||
| since entries do not exist in the idle state. | ||||
| Takes one of the following values | ||||
| - tcp-pending(1): PCEP TCP Pending state | ||||
| - open-wait(2): PCEP Open Wait state | ||||
| - keep-wait(3): PCEP Keep Wait state | ||||
| - session-up(4): PCEP Session Up state"; | ||||
| enum remote { | reference | |||
| value "2"; | "RFC 5440: Path Computation Element (PCE) Communication | |||
| description | Protocol (PCEP)"; | |||
| "The remote PCEP peer initiated the session"; | } | |||
| } | ||||
| } | ||||
| description | ||||
| "The initiator of the session, that is, whether the TCP | ||||
| connection was initiated by the local PCEP entity or | ||||
| the remote peer. | ||||
| Takes one of the following values | ||||
| - local(1): Initiated locally | ||||
| - remote(2): Initiated remotely"; | ||||
| } | ||||
| typedef pcep-sess-state { | typedef domain-type { | |||
| type enumeration { | type enumeration { | |||
| enum tcp-pending { | enum ospf-area { | |||
| value "1"; | value "1"; | |||
| description | description | |||
| "The tcp-pending state of PCEP session."; | "The OSPF area."; | |||
| } | } | |||
| enum isis-area { | ||||
| value "2"; | ||||
| description | ||||
| "The IS-IS area."; | ||||
| } | ||||
| enum as { | ||||
| value "3"; | ||||
| description | ||||
| "The Autonomous System (AS)."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The PCE Domain Type"; | ||||
| } | ||||
| enum open-wait { | typedef domain-ospf-area { | |||
| value "2"; | type ospf:area-id-type; | |||
| description | description | |||
| "The open-wait state of PCEP session."; | "OSPF Area ID."; | |||
| } | reference | |||
| "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | ||||
| } | ||||
| enum keep-wait { | typedef domain-isis-area { | |||
| value "3"; | type isis:area-address; | |||
| description | description | |||
| "The keep-wait state of PCEP session."; | "IS-IS Area ID."; | |||
| } | reference | |||
| "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS | ||||
| Protocol"; | ||||
| } | ||||
| enum session-up { | typedef domain-as { | |||
| value "4"; | type inet:as-number; | |||
| description | description | |||
| "The session-up state of PCEP session."; | "Autonomous System number."; | |||
| } | ||||
| } | ||||
| description | ||||
| "The current state of the session. | ||||
| The set of possible states excludes the idle state | ||||
| since entries do not exist in the idle state. | ||||
| Takes one of the following values | ||||
| - tcp-pending(1): PCEP TCP Pending state | ||||
| - open-wait(2): PCEP Open Wait state | ||||
| - keep-wait(3): PCEP Keep Wait state | ||||
| - session-up(4): PCEP Session Up state"; | ||||
| reference | ||||
| "RFC 5440"; | ||||
| } | ||||
| typedef domain-type { | } | |||
| type enumeration { | ||||
| enum ospf-area { | ||||
| value "1"; | ||||
| description | ||||
| "The OSPF area."; | ||||
| } | ||||
| enum isis-area { | ||||
| value "2"; | ||||
| description | ||||
| "The IS-IS area."; | ||||
| } | ||||
| enum as { | ||||
| value "3"; | ||||
| description | ||||
| "The Autonomous System (AS)."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The PCE Domain Type"; | ||||
| } | ||||
| typedef domain-ospf-area { | typedef domain { | |||
| type union { | type union { | |||
| type uint32; | type domain-ospf-area; | |||
| type yang:dotted-quad; | type domain-isis-area; | |||
| type domain-as; | ||||
| } | ||||
| description | ||||
| "The Domain Information"; | ||||
| } | ||||
| typedef operational-state { | ||||
| type enumeration { | ||||
| enum down { | ||||
| value "0"; | ||||
| description | ||||
| "not active."; | ||||
| } | } | |||
| description | enum up { | |||
| "OSPF Area ID."; | value "1"; | |||
| } | description | |||
| "signalled."; | ||||
| } | ||||
| enum active { | ||||
| value "2"; | ||||
| description | ||||
| "up and carrying traffic."; | ||||
| } | ||||
| enum going-down { | ||||
| value "3"; | ||||
| description | ||||
| "LSP is being torn down, resources are | ||||
| being released."; | ||||
| } | ||||
| enum going-up { | ||||
| value "4"; | ||||
| description | ||||
| "LSP is being signalled."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The operational status of the LSP"; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| typedef sync-state { | ||||
| type enumeration { | ||||
| enum pending { | ||||
| value "0"; | ||||
| description | ||||
| "The state synchronization | ||||
| has not started."; | ||||
| } | ||||
| enum ongoing { | ||||
| value "1"; | ||||
| description | ||||
| "The state synchronization | ||||
| is ongoing."; | ||||
| } | ||||
| enum finished { | ||||
| value "2"; | ||||
| description | ||||
| "The state synchronization | ||||
| is finished."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The LSP-DB state synchronization operational | ||||
| status."; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| typedef domain-isis-area { | /* | |||
| type string { | * Features | |||
| pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; | */ | |||
| } | ||||
| description | ||||
| "IS-IS Area ID."; | ||||
| } | ||||
| typedef domain-as { | ||||
| type uint32; | ||||
| description | ||||
| "Autonomous System number."; | ||||
| } | feature svec { | |||
| description | ||||
| "Support synchronized path computation."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| typedef domain { | feature gmpls { | |||
| type union { | description | |||
| type domain-ospf-area; | "Support GMPLS."; | |||
| type domain-isis-area; | reference | |||
| type domain-as; | "I-D.ietf-pce-gmpls-pcep-extensions: PCEP extensions for | |||
| } | GMPLS"; | |||
| description | } | |||
| "The Domain Information"; | feature objective-function { | |||
| } | description | |||
| "Support OF as per RFC 5541."; | ||||
| reference | ||||
| "RFC 5541: Encoding of Objective Functions in the Path | ||||
| Computation Element Communication Protocol (PCEP)"; | ||||
| } | ||||
| typedef operational-state { | feature global-concurrent { | |||
| type enumeration { | description | |||
| enum down { | "Support GCO as per RFC 5557."; | |||
| value "0"; | reference | |||
| description | "RFC 5557: Path Computation Element Communication Protocol | |||
| "not active."; | (PCEP) Requirements and Protocol Extensions in Support of | |||
| } | Global Concurrent Optimization"; | |||
| enum up { | } | |||
| value "1"; | ||||
| description | ||||
| "signalled."; | ||||
| } | ||||
| enum active { | ||||
| value "2"; | ||||
| description | ||||
| "up and carrying traffic."; | ||||
| } | ||||
| enum going-down { | ||||
| value "3"; | ||||
| description | ||||
| "LSP is being torn down, resources are | ||||
| being released."; | ||||
| } | ||||
| enum going-up { | ||||
| value "4"; | ||||
| description | ||||
| "LSP is being signalled."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The operational status of the LSP"; | ||||
| } | feature path-key { | |||
| description | ||||
| "Support path-key as per RFC 5520."; | ||||
| reference | ||||
| "RFC 5520: Preserving Topology Confidentiality in Inter- | ||||
| Domain Path Computation Using a Path-Key-Based Mechanism"; | ||||
| } | ||||
| typedef sync-state { | feature p2mp { | |||
| type enumeration { | description | |||
| enum pending { | "Support P2MP as per RFC 8306."; | |||
| value "0"; | reference | |||
| description | "RFC 8306: Extensions to the Path Computation Element | |||
| "The state synchronization | Communication Protocol (PCEP) for Point-to-Multipoint | |||
| has not started."; | Traffic Engineering Label Switched Paths"; | |||
| } | } | |||
| enum ongoing { | ||||
| value "1"; | ||||
| description | ||||
| "The state synchronization | ||||
| is ongoing."; | ||||
| } | ||||
| enum finished { | ||||
| value "2"; | ||||
| description | ||||
| "The state synchronization | ||||
| is finished."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The LSP-DB state synchronization operational | ||||
| status."; | ||||
| } | ||||
| /* | feature stateful { | |||
| * Features | description | |||
| */ | "Support stateful PCE as per RFC 8231."; | |||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| feature svec { | feature sync-opt { | |||
| description | description | |||
| "Support synchronized path computation."; | "Support stateful sync optimization | |||
| reference | as per RFC 8232"; | |||
| "RFC 5440"; | reference | |||
| } | "RFC 8232: Optimizations of Label Switched Path State | |||
| Synchronization Procedures for a Stateful PCE"; | ||||
| } | ||||
| feature gmpls { | feature pce-initiated { | |||
| description | description | |||
| "Support GMPLS."; | "Support PCE-Initiated LSP as per | |||
| } | RFC 8281."; | |||
| reference | ||||
| "RFC 8281: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful | ||||
| PCE Model"; | ||||
| } | ||||
| feature objective-function { | feature tls { | |||
| description | description | |||
| "Support OF as per RFC 5541."; | "Support PCEP over TLS as per | |||
| reference | RFC 8253."; | |||
| "RFC 5541"; | reference | |||
| } | "RFC 8253: PCEPS: Usage of TLS to Provide a Secure Transport | |||
| for the Path Computation Element Communication Protocol | ||||
| (PCEP)"; | ||||
| } | ||||
| feature gco { | feature sr { | |||
| description | description | |||
| "Support GCO as per RFC 5557."; | "Support Segment Routing for PCE."; | |||
| reference | reference | |||
| "RFC 5557"; | "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment | |||
| } | Routing"; | |||
| } | ||||
| feature path-key { | feature association { | |||
| description | description | |||
| "Support path-key as per RFC 5520."; | "Support Association in PCEP."; | |||
| reference | reference | |||
| "RFC 5520"; | "I-D.ietf-pce-association-group: PCEP Extensions for | |||
| } | Establishing Relationships Between Sets of LSPs"; | |||
| } | ||||
| feature p2mp { | /* | |||
| description | * Identities | |||
| "Support P2MP as per RFC 8306."; | */ | |||
| reference | ||||
| "RFC 8306"; | ||||
| } | ||||
| feature stateful { | identity lsp-error { | |||
| description | if-feature stateful; | |||
| "Support stateful PCE as per RFC 8231."; | description | |||
| reference | "Base LSP error"; | |||
| "RFC 8231"; | reference | |||
| } | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| feature stateful-sync-opt { | identity no-error-lsp-error { | |||
| description | base lsp-error; | |||
| "Support stateful sync optimization | if-feature stateful; | |||
| as per RFC 8232"; | description | |||
| reference | "No error, LSP is fine."; | |||
| "RFC 8232"; | reference | |||
| } | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| feature pce-initiated { | identity unknown-lsp-error { | |||
| description | base lsp-error; | |||
| "Support PCE-Initiated LSP as per | if-feature stateful; | |||
| RFC 8281."; | description | |||
| reference | "Unknown reason."; | |||
| "RFC 8281"; | reference | |||
| } | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| feature tls { | identity limit-lsp-error { | |||
| description | base lsp-error; | |||
| "Support PCEP over TLS as per | if-feature stateful; | |||
| RFC 8253."; | description | |||
| reference | "Limit reached for PCE-controlled LSPs."; | |||
| "RFC 8253"; | reference | |||
| } | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| feature sr { | identity pending-lsp-error { | |||
| description | base lsp-error; | |||
| "Support Segment Routing for PCE."; | if-feature stateful; | |||
| } | description | |||
| "Too many pending LSP update requests."; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| feature association { | identity unacceptable-lsp-error { | |||
| description | base lsp-error; | |||
| "Support Association in PCEP."; | if-feature stateful; | |||
| } | description | |||
| "Unacceptable parameters."; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| /* | identity internal-lsp-error { | |||
| * Identities | base lsp-error; | |||
| */ | if-feature stateful; | |||
| description | ||||
| "Internal error."; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| identity lsp-error { | identity admin-lsp-error { | |||
| if-feature stateful; | base lsp-error; | |||
| description | if-feature stateful; | |||
| "Base LSP error"; | description | |||
| reference "RFC8231"; | "LSP administratively brought down."; | |||
| } | reference | |||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| identity no-error-lsp-error { | identity preempted-lsp-error { | |||
| base lsp-error; | base lsp-error; | |||
| if-feature stateful; | if-feature stateful; | |||
| description | description | |||
| "No error, LSP is fine."; | "LSP preempted."; | |||
| reference "RFC8231"; | reference | |||
| } | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| identity unknown-lsp-error { | identity rsvp-lsp-error { | |||
| base lsp-error; | base lsp-error; | |||
| if-feature stateful; | if-feature stateful; | |||
| description | description | |||
| "Unknown reason."; | "RSVP signaling error."; | |||
| reference "RFC8231"; | reference | |||
| } | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| identity limit-lsp-error { | /* | |||
| base lsp-error; | * Groupings | |||
| if-feature stateful; | */ | |||
| description | ||||
| "Limit reached for PCE-controlled LSPs."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity pending-lsp-error { | grouping pce-scope{ | |||
| base lsp-error; | description | |||
| if-feature stateful; | "This grouping defines PCE path computation scope | |||
| description | information which maybe relevant to PCE selection. | |||
| "Too many pending LSP update requests."; | This information corresponds to PCE auto-discovery | |||
| reference "RFC8231"; | information."; | |||
| } | reference | |||
| "RFC 5088: OSPF Protocol Extensions for Path | ||||
| Computation Element (PCE) Discovery | ||||
| RFC 5089: IS-IS Protocol Extensions for Path | ||||
| Computation Element (PCE) Discovery"; | ||||
| leaf path-scope{ | ||||
| type bits{ | ||||
| bit intra-area-scope{ | ||||
| description | ||||
| "PCE can compute intra-area paths."; | ||||
| } | ||||
| bit inter-area-scope{ | ||||
| description | ||||
| "PCE can compute inter-area paths."; | ||||
| } | ||||
| bit inter-area-scope-default{ | ||||
| description | ||||
| "PCE can act as a default PCE for inter-area | ||||
| path computation."; | ||||
| } | ||||
| bit inter-as-scope{ | ||||
| description | ||||
| "PCE can compute inter-AS paths."; | ||||
| } | ||||
| bit inter-as-scope-default{ | ||||
| description | ||||
| "PCE can act as a default PCE for inter-AS | ||||
| path computation."; | ||||
| } | ||||
| bit inter-layer-scope{ | ||||
| description | ||||
| "PCE can compute inter-layer paths."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The field corresponding to the path scope bits"; | ||||
| } | ||||
| identity unacceptable-lsp-error { | leaf intra-area-pref{ | |||
| base lsp-error; | type uint8{ | |||
| if-feature stateful; | range "0..7"; | |||
| description | } | |||
| "Unacceptable parameters."; | description | |||
| reference "RFC8231"; | "The PCE's preference for intra-area TE LSP | |||
| } | computation."; | |||
| } | ||||
| identity internal-lsp-error { | leaf inter-area-pref{ | |||
| base lsp-error; | type uint8{ | |||
| if-feature stateful; | range "0..7"; | |||
| description | } | |||
| "Internal error."; | description | |||
| reference "RFC8231"; | "The PCE's preference for inter-area TE LSP | |||
| } | computation."; | |||
| } | ||||
| identity admin-lsp-error { | leaf inter-as-pref{ | |||
| base lsp-error; | type uint8{ | |||
| if-feature stateful; | range "0..7"; | |||
| description | } | |||
| "LSP administratively brought down."; | description | |||
| reference "RFC8231"; | "The PCE's preference for inter-AS TE LSP | |||
| } | computation."; | |||
| } | ||||
| identity preempted-lsp-error { | leaf inter-layer-pref{ | |||
| base lsp-error; | type uint8{ | |||
| if-feature stateful; | range "0..7"; | |||
| description | } | |||
| "LSP preempted."; | description | |||
| reference "RFC8231"; | "The PCE's preference for inter-layer TE LSP | |||
| } | computation."; | |||
| } | ||||
| }//pce-scope | ||||
| identity rsvp-lsp-error { | grouping domain{ | |||
| base lsp-error; | description | |||
| if-feature stateful; | "This grouping specifies a Domain where the | |||
| description | PCEP speaker has topology visibility."; | |||
| "RSVP signaling error."; | leaf domain-type{ | |||
| reference "RFC8231"; | type domain-type; | |||
| } | description | |||
| "The domain type."; | ||||
| } | ||||
| leaf domain{ | ||||
| type domain; | ||||
| description | ||||
| "The domain Information."; | ||||
| } | ||||
| }//domain | ||||
| /* | grouping info{ | |||
| * Groupings | description | |||
| */ | "This grouping specifies all information which | |||
| grouping pcep-entity-info{ | maybe relevant to both PCC and PCE. | |||
| description | This information corresponds to PCE auto-discovery | |||
| "This grouping defines the attributes for PCEP entity."; | information."; | |||
| leaf connect-timer { | container domain{ | |||
| type uint32 { | description | |||
| range "1..65535"; | "The local domain for the PCEP entity"; | |||
| } | list domain{ | |||
| units "seconds"; | key "domain-type domain"; | |||
| default 60; | description | |||
| description | "The local domain."; | |||
| "The time in seconds that the PCEP entity will wait | uses domain{ | |||
| to establish a TCP connection with a peer. If a | description | |||
| TCP connection is not established within this time | "The local domain for the PCEP entity."; | |||
| then PCEP aborts the session setup attempt."; | } | |||
| reference | } | |||
| "RFC 5440: Path Computation Element (PCE) | } | |||
| Communication Protocol (PCEP)"; | container capability{ | |||
| } | description | |||
| "The PCEP entity capability information of local | ||||
| PCEP entity. This maybe relevant to PCE selection | ||||
| as well. This information corresponds to PCE auto- | ||||
| discovery information."; | ||||
| reference | ||||
| "RFC 5088: OSPF Protocol Extensions for Path | ||||
| Computation Element (PCE) Discovery | ||||
| RFC 5089: IS-IS Protocol Extensions for Path | ||||
| Computation Element (PCE) Discovery"; | ||||
| leaf capability{ | ||||
| type bits{ | ||||
| bit gmpls{ | ||||
| if-feature gmpls; | ||||
| description | ||||
| "Path computation with GMPLS link | ||||
| constraints."; | ||||
| } | ||||
| bit bi-dir{ | ||||
| description | ||||
| "Bidirectional path computation."; | ||||
| } | ||||
| bit diverse{ | ||||
| description | ||||
| "Diverse path computation."; | ||||
| } | ||||
| bit load-balance{ | ||||
| description | ||||
| "Load-balanced path computation."; | ||||
| } | ||||
| bit synchronize{ | ||||
| if-feature svec; | ||||
| description | ||||
| "Synchronized paths computation."; | ||||
| } | ||||
| bit objective-function{ | ||||
| if-feature objective-function; | ||||
| description | ||||
| "Support for multiple objective functions."; | ||||
| } | ||||
| bit add-path-constraint{ | ||||
| description | ||||
| "Support for additive path constraints (max | ||||
| hop count, etc.)."; | ||||
| } | ||||
| bit prioritization{ | ||||
| description | ||||
| "Support for request prioritization."; | ||||
| } | ||||
| bit multi-request{ | ||||
| description | ||||
| "Support for multiple requests per message."; | ||||
| } | ||||
| bit global-concurrent{ | ||||
| if-feature global-concurrent; | ||||
| description | ||||
| "Support for Global Concurrent Optimization | ||||
| (GCO)."; | ||||
| } | ||||
| bit p2mp{ | ||||
| if-feature p2mp; | ||||
| description | ||||
| "Support for P2MP path computation."; | ||||
| } | ||||
| bit active{ | ||||
| if-feature stateful; | ||||
| description | ||||
| "Support for active stateful PCE."; | ||||
| } | ||||
| bit passive{ | ||||
| if-feature stateful; | ||||
| description | ||||
| "Support for passive stateful PCE."; | ||||
| } | ||||
| bit p2mp-active{ | ||||
| if-feature stateful; | ||||
| if-feature p2mp; | ||||
| description | ||||
| "Support for active stateful PCE for P2MP."; | ||||
| } | ||||
| bit p2mp-passive{ | ||||
| if-feature stateful; | ||||
| if-feature p2mp; | ||||
| description | ||||
| "Support for passive stateful PCE for P2MP."; | ||||
| } | ||||
| bit p2mp-pce-initiated{ | ||||
| if-feature stateful; | ||||
| if-feature pce-initiated; | ||||
| if-feature p2mp; | ||||
| description | ||||
| "Support for PCE-initiated LSP for P2MP."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The bits string indicating the capabiliies"; | ||||
| reference | ||||
| "RFC 5088: OSPF Protocol Extensions for Path | ||||
| Computation Element (PCE) Discovery | ||||
| RFC 5089: IS-IS Protocol Extensions for Path | ||||
| Computation Element (PCE) Discovery"; | ||||
| } | ||||
| leaf pce-initiated{ | ||||
| if-feature pce-initiated; | ||||
| type boolean; | ||||
| description | ||||
| "Set to true if PCE-initiated LSP capability is | ||||
| enabled."; | ||||
| reference | ||||
| "RFC 8281: Path Computation Element Communication | ||||
| Protocol (PCEP) Extensions for PCE-Initiated LSP | ||||
| Setup in a Stateful PCE Model"; | ||||
| } | ||||
| leaf include-db-ver{ | ||||
| if-feature stateful; | ||||
| if-feature sync-opt; | ||||
| type boolean; | ||||
| description | ||||
| "Support inclusion of LSP-DB-VERSION | ||||
| in LSP object"; | ||||
| reference | ||||
| "RFC 8232: Optimizations of Label Switched Path State | ||||
| Synchronization Procedures for a Stateful PCE"; | ||||
| } | ||||
| leaf trigger-resync{ | ||||
| if-feature stateful; | ||||
| if-feature sync-opt; | ||||
| type boolean; | ||||
| description | ||||
| "Support PCE triggered re-synchronization"; | ||||
| reference | ||||
| "RFC 8232: Optimizations of Label Switched Path State | ||||
| Synchronization Procedures for a Stateful PCE"; | ||||
| } | ||||
| leaf trigger-initial-sync{ | ||||
| if-feature stateful; | ||||
| if-feature sync-opt; | ||||
| type boolean; | ||||
| description | ||||
| "PCE triggered initial synchronization"; | ||||
| reference | ||||
| "RFC 8232: Optimizations of Label Switched Path State | ||||
| Synchronization Procedures for a Stateful PCE"; | ||||
| } | ||||
| leaf incremental-sync{ | ||||
| if-feature stateful; | ||||
| if-feature sync-opt; | ||||
| type boolean; | ||||
| description | ||||
| "Support incremental (delta) sync"; | ||||
| reference | ||||
| "RFC 8232: Optimizations of Label Switched Path State | ||||
| Synchronization Procedures for a Stateful PCE"; | ||||
| } | ||||
| container sr{ | ||||
| if-feature sr; | ||||
| description | ||||
| "If segment routing is supported"; | ||||
| reference | ||||
| "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment | ||||
| Routing"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "Set to true if SR is enabled"; | ||||
| } | ||||
| leaf msd-limit{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "True indicates no limit on MSD, the | ||||
| leaf msd is ignored"; | ||||
| } | ||||
| leaf nai{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "True indicates capability to resolve NAI | ||||
| to SID"; | ||||
| } | ||||
| }//sr | ||||
| }//capability | ||||
| leaf msd{ | ||||
| if-feature sr; | ||||
| type uint8; | ||||
| description | ||||
| "Maximum SID Depth for SR"; | ||||
| reference | ||||
| "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment | ||||
| Routing"; | ||||
| } | ||||
| }//info | ||||
| leaf connect-max-retry { | grouping pce-info{ | |||
| type uint32; | description | |||
| default 5; | "This grouping specifies all PCE information | |||
| description | which maybe relevant to the PCE selection. | |||
| "The maximum number of times the system tries to | This information corresponds to PCE auto-discovery | |||
| establish a TCP connection to a peer before the | information."; | |||
| session with the peer transitions to the idle | container scope{ | |||
| state."; | description | |||
| reference | "The path computation scope"; | |||
| "RFC 5440: Path Computation Element (PCE) | uses pce-scope; | |||
| Communication Protocol (PCEP)"; | } | |||
| } | ||||
| leaf init-backoff-timer { | container neigh-domains{ | |||
| type uint32 { | description | |||
| range "1..65535"; | "The list of neighbour PCE-Domain | |||
| } | toward which a PCE can compute | |||
| units "seconds"; | paths"; | |||
| description | list domain{ | |||
| "The initial back-off time in seconds for retrying | key "domain-type domain"; | |||
| a failed session setup attempt to a peer. | description | |||
| The back-off time increases for each failed | "The neighbour domain."; | |||
| session setup attempt, until a maximum back-off | ||||
| time is reached. The maximum back-off time is | ||||
| max-backoff-timer."; | ||||
| } | ||||
| leaf max-backoff-timer { | uses domain{ | |||
| type uint32; | description | |||
| units "seconds"; | "The PCE neighbour domain."; | |||
| description | } | |||
| "The maximum back-off time in seconds for retrying | } | |||
| a failed session setup attempt to a peer. | } | |||
| The back-off time increases for each failed session | }//pce-info | |||
| setup attempt, until this maximum value is reached. | ||||
| Session setup attempts then repeat periodically | ||||
| without any further increase in back-off time."; | ||||
| } | ||||
| leaf open-wait-timer { | grouping notification-instance-hdr { | |||
| type uint32 { | description | |||
| range "1..65535"; | "This group describes common instance specific data | |||
| } | for notifications."; | |||
| units "seconds"; | ||||
| default 60; | ||||
| description | ||||
| "The time in seconds that the PCEP entity will wait | ||||
| to receive an Open message from a peer after the | ||||
| TCP connection has come up. | ||||
| If no Open message is received within this time then | ||||
| PCEP terminates the TCP connection and deletes the | ||||
| associated sessions."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf keep-wait-timer { | leaf peer-addr { | |||
| type uint32 { | type leafref { | |||
| range "1..65535"; | path "/pcep/entity/peers/peer/addr"; | |||
| } | } | |||
| units "seconds"; | description | |||
| default 60; | "Reference to peer address"; | |||
| description | } | |||
| "The time in seconds that the PCEP entity will wait | }// notification-instance-hdr | |||
| to receive a Keepalive or PCErr message from a peer | ||||
| during session initialization after receiving an | ||||
| Open message. If no Keepalive or PCErr message is | ||||
| received within this time then PCEP terminates the | ||||
| TCP connection and deletes the associated | ||||
| sessions."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf keep-alive-timer { | grouping notification-session-hdr { | |||
| type uint32 { | description | |||
| range "0..255"; | "This group describes common session instance specific | |||
| } | data for notifications."; | |||
| units "seconds"; | ||||
| default 30; | ||||
| description | ||||
| "The keep alive transmission timer that this PCEP | ||||
| entity will propose in the initial OPEN message of | ||||
| each session it is involved in. This is the | ||||
| maximum time between two consecutive messages sent | ||||
| to a peer. Zero means that the PCEP entity prefers | ||||
| not to send Keepalives at all. | ||||
| Note that the actual Keepalive transmission | ||||
| intervals, in either direction of an active PCEP | ||||
| session, are determined by negotiation between the | ||||
| peers as specified by RFC 5440, and so may differ | ||||
| from this configured value."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf dead-timer { | leaf session-initiator { | |||
| type uint32 { | type leafref { | |||
| range "0..255"; | path "/pcep/entity/peers/peer/sessions/" + | |||
| } | "session/initiator"; | |||
| units "seconds"; | } | |||
| must "(. > ../keep-alive-timer)" { | description | |||
| error-message "The dead timer must be " | "Reference to pcep session initiator leaf"; | |||
| + "larger than the keep alive timer"; | } | |||
| description | }// notification-session-hdr | |||
| "This value MUST be greater than | ||||
| keep-alive-timer."; | ||||
| } | grouping of-list { | |||
| default 120; | description | |||
| description | "List of OF"; | |||
| "The dead timer that this PCEP entity will propose | reference | |||
| in the initial OPEN message of each session it is | "RFC 5541: Encoding of Objective Functions in the Path | |||
| involved in. This is the time after which a peer | Computation Element Communication Protocol (PCEP)"; | |||
| should declare a session down if it does not | list objective-function{ | |||
| receive any PCEP messages. Zero suggests that the | key "of"; | |||
| peer does not run a dead timer at all." ; | description | |||
| reference | "The list of authorized OF"; | |||
| "RFC 5440: Path Computation Element (PCE) | leaf of { | |||
| Communication Protocol (PCEP)"; | type identityref{ | |||
| } | base te-types:objective-function-type; | |||
| } | ||||
| description | ||||
| "The OF authorized"; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf allow-negotiation{ | /* | |||
| type boolean; | * Configuration data nodes | |||
| description | */ | |||
| "Whether the PCEP entity will permit negotiation of | container pcep{ | |||
| session parameters."; | ||||
| } | ||||
| leaf max-keep-alive-timer{ | presence | |||
| type uint32 { | "The PCEP is enabled"; | |||
| range "0..255"; | ||||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "In PCEP session parameter negotiation in seconds, | ||||
| the maximum value that this PCEP entity will | ||||
| accept from a peer for the interval between | ||||
| Keepalive transmissions. Zero means that the PCEP | ||||
| entity will allow no Keepalive transmission at | ||||
| all." ; | ||||
| } | ||||
| leaf max-dead-timer{ | description | |||
| type uint32 { | "Parameters for list of configured PCEP entities | |||
| range "0..255"; | on the device."; | |||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "In PCEP session parameter negotiation in seconds, | ||||
| the maximum value that this PCEP entity will accept | ||||
| from a peer for the Dead timer. Zero means that | ||||
| the PCEP entity will allow not running a Dead | ||||
| timer."; | ||||
| } | ||||
| leaf min-keep-alive-timer{ | container entity { | |||
| type uint32 { | description | |||
| range "0..255"; | "The configured PCEP entity on the device."; | |||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "In PCEP session parameter negotiation in seconds, | ||||
| the minimum value that this PCEP entity will | ||||
| accept for the interval between Keepalive | ||||
| transmissions. Zero means that the PCEP entity | ||||
| insists on no Keepalive transmission at all."; | ||||
| } | ||||
| leaf min-dead-timer{ | leaf addr { | |||
| type uint32 { | type inet:ip-address; | |||
| range "0..255"; | mandatory true; | |||
| } | description | |||
| units "seconds"; | "The local Internet address of this PCEP entity. | |||
| description | If operating as a PCE server, the PCEP entity | |||
| "In PCEP session parameter negotiation in | listens on this address. If operating as a PCC, | |||
| seconds, the minimum value that this PCEP entity | the PCEP entity binds outgoing TCP connections | |||
| will accept for the Dead timer. Zero means that | to this address. It is possible for the PCEP entity | |||
| the PCEP entity insists on not running a Dead | to operate both as a PCC and a PCE Server, in which | |||
| timer."; | case it uses this address both to listen for incoming | |||
| } | TCP connections and to bind outgoing TCP connections."; | |||
| } | ||||
| leaf sync-timer{ | leaf enabled { | |||
| if-feature svec; | type boolean; | |||
| type uint32 { | default true; | |||
| range "0..65535"; | description | |||
| } | "The administrative status of this PCEP | |||
| units "seconds"; | Entity."; | |||
| default 60; | } | |||
| description | ||||
| "The value of SyncTimer in seconds is used in the | ||||
| case of synchronized path computation request | ||||
| using the SVEC object. Consider the case where a | ||||
| PCReq message is received by a PCE that contains | ||||
| the SVEC object referring to M synchronized path | ||||
| computation requests. If after the expiration of | ||||
| the SyncTimer all the M path computation requests | ||||
| have not been, received a protocol error is | ||||
| triggered and the PCE MUST cancel the whole set | ||||
| of path computation requests. | ||||
| The aim of the SyncTimer is to avoid the storage | ||||
| of unused synchronized requests should one of | ||||
| them get lost for some reasons (for example, a | ||||
| misbehaving PCC). | ||||
| Zero means that the PCEP entity does not use the | ||||
| SyncTimer."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | leaf role { | |||
| type pcep-role; | ||||
| mandatory true; | ||||
| description | ||||
| "The role that this entity can play. | ||||
| Takes one of the following values. | ||||
| - unknown(0): this PCEP Entity role is not | ||||
| known. | ||||
| - pcc(1): this PCEP Entity is a PCC. | ||||
| - pce(2): this PCEP Entity is a PCE. | ||||
| - pcc-and-pce(3): this PCEP Entity is both | ||||
| a PCC and a PCE."; | ||||
| } | ||||
| leaf request-timer{ | leaf description { | |||
| type uint32 { | type string; | |||
| range "1..65535"; | description | |||
| } | "Description of the PCEP entity configured | |||
| units "seconds"; | by the user"; | |||
| description | } | |||
| "The maximum time that the PCEP entity will wait | ||||
| for a response to a PCReq message."; | ||||
| } | ||||
| leaf max-sessions{ | leaf speaker-entity-id{ | |||
| type uint32; | if-feature sync-opt; | |||
| description | type string; | |||
| "Maximum number of sessions involving this PCEP | description | |||
| entity that can exist at any time."; | "The Speaker Entity Identifier"; | |||
| } | reference | |||
| "RFC 8232: Optimizations of Label Switched | ||||
| Path State Synchronization Procedures for | ||||
| a Stateful PCE"; | ||||
| } | ||||
| leaf max-unknown-reqs{ | leaf admin-status { | |||
| type uint32; | type boolean; | |||
| default 5; | default true; | |||
| description | description | |||
| "The maximum number of unrecognized requests and | "The administrative status of this PCEP Entity. | |||
| replies that any session on this PCEP entity is | The value true represents admin status as up. | |||
| willing to accept per minute before terminating | This is the desired operational status as | |||
| the session. | currently set by an operator or by default in | |||
| A PCRep message contains an unrecognized reply | the implementation. The value of oper-status | |||
| if it contains an RP object whose request ID | represents the current status of an attempt to | |||
| does not correspond to any in-progress request | reach this desired status."; | |||
| sent by this PCEP entity. | } | |||
| A PCReq message contains an unrecognized request | ||||
| if it contains an RP object whose request ID is | ||||
| zero."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf max-unknown-msgs{ | leaf index{ | |||
| type uint32; | type uint32; | |||
| default 5; | config "false"; | |||
| description | description | |||
| "The maximum number of unknown messages that any | "The index of the operational PECP entity"; | |||
| session on this PCEP entity is willing to accept | } | |||
| per minute before terminating the session."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| }//pcep-entity-info | leaf oper-status { | |||
| type pcep-oper-status; | ||||
| config "false"; | ||||
| description | ||||
| "The operational status of the PCEP entity. | ||||
| Takes one of the following values. | ||||
| - oper-status-up(1): the PCEP entity is active. | ||||
| - oper-status-down(2): the PCEP entity is inactive. | ||||
| - oper-status-going-up(3): the PCEP entity is | ||||
| activating. | ||||
| - oper-status-going-down(4): the PCEP entity is | ||||
| deactivating. | ||||
| - oper-status-failed(5): the PCEP entity has | ||||
| failed and will recover when possible. | ||||
| - oper-status-failed-perm(6): the PCEP entity | ||||
| has failed and will not recover without | ||||
| operator intervention."; | ||||
| } | ||||
| grouping pce-scope{ | uses info { | |||
| description | description | |||
| "This grouping defines PCE path computation scope | "Local PCEP entity information"; | |||
| information which maybe relevant to PCE selection. | } | |||
| This information corresponds to PCE auto-discovery | ||||
| information."; | ||||
| reference | ||||
| "RFC 5088: OSPF Protocol Extensions for Path | ||||
| Computation Element (PCE) | ||||
| Discovery | ||||
| RFC 5089: IS-IS Protocol Extensions for Path | ||||
| Computation Element (PCE) | ||||
| Discovery"; | ||||
| leaf intra-area-scope{ | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "PCE can compute intra-area paths."; | ||||
| } | ||||
| leaf intra-area-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for intra-area TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-area-scope{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can compute inter-area paths."; | ||||
| } | ||||
| leaf inter-area-scope-default{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can act as a default PCE for inter-area | ||||
| path computation."; | ||||
| } | ||||
| leaf inter-area-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | container pce-info { | |||
| description | when "../role = 'pce'" + | |||
| "The PCE's preference for inter-area TE LSP | "or " + | |||
| computation."; | "../role = 'pcc-and-pce'" | |||
| } | { | |||
| leaf inter-as-scope{ | description | |||
| type boolean; | "These fields are applicable when the role is PCE."; | |||
| default false; | } | |||
| description | description | |||
| "PCE can compute inter-AS paths."; | "The Local PCE Entity PCE information"; | |||
| } | uses pce-info { | |||
| leaf inter-as-scope-default{ | description | |||
| type boolean; | "Local PCE information"; | |||
| default false; | } | |||
| description | container path-key { | |||
| "PCE can act as a default PCE for inter-AS | if-feature path-key; | |||
| path computation."; | description | |||
| } | "Path-Key Configuration"; | |||
| leaf inter-as-pref{ | reference | |||
| type uint8{ | "RFC 5520: Preserving Topology Confidentiality in Inter- | |||
| range "0..7"; | Domain Path Computation Using a Path-Key-Based Mechanism"; | |||
| } | ||||
| description | ||||
| "The PCE's preference for inter-AS TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-layer-scope{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can compute inter-layer paths."; | ||||
| } | ||||
| leaf inter-layer-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-layer TE LSP | ||||
| computation."; | ||||
| } | ||||
| }//pce-scope | ||||
| grouping domain{ | leaf enabled { | |||
| description | type boolean; | |||
| "This grouping specifies a Domain where the | description | |||
| PCEP speaker has topology visibility."; | "Enabled or Disabled"; | |||
| leaf domain-type{ | } | |||
| type domain-type; | leaf discard-timer { | |||
| description | type uint32; | |||
| "The domain type."; | units "minutes"; | |||
| } | default 10; | |||
| leaf domain{ | description | |||
| type domain; | "A timer to discard unwanted path-keys"; | |||
| description | } | |||
| "The domain Information."; | leaf reuse-time { | |||
| } | type uint32; | |||
| }//domain | units "minutes"; | |||
| default 30; | ||||
| description | ||||
| "A time after which the path-keys could be reused"; | ||||
| } | ||||
| leaf pce-id { | ||||
| type inet:ip-address; | ||||
| description | ||||
| "PCE Address to be used in each Path-Key Subobject | ||||
| (PKS)"; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf connect-timer { | ||||
| type uint16 { | ||||
| range "1..65535"; | ||||
| } | ||||
| units "seconds"; | ||||
| default 60; | ||||
| description | ||||
| "The time in seconds that the PCEP entity will wait | ||||
| to establish a TCP connection with a peer. If a | ||||
| TCP connection is not established within this time | ||||
| then PCEP aborts the session setup attempt."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| leaf connect-max-retry { | ||||
| type uint32; | ||||
| default 5; | ||||
| description | ||||
| "The maximum number of times the system tries to | ||||
| establish a TCP connection to a peer before the | ||||
| session with the peer transitions to the idle | ||||
| state."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| grouping capability{ | leaf init-backoff-timer { | |||
| description | type uint16 { | |||
| "This grouping specifies a capability | range "1..65535"; | |||
| information of local PCEP entity. This maybe | } | |||
| relevant to PCE selection as well. This | units "seconds"; | |||
| information corresponds to PCE auto-discovery | description | |||
| information."; | "The initial back-off time in seconds for retrying | |||
| reference | a failed session setup attempt to a peer. | |||
| "RFC 5088: OSPF Protocol Extensions for Path | The back-off time increases for each failed | |||
| Computation Element (PCE) | session setup attempt, until a maximum back-off | |||
| Discovery | time is reached. The maximum back-off time is | |||
| RFC 5089: IS-IS Protocol Extensions for Path | max-backoff-timer."; | |||
| Computation Element (PCE) | reference | |||
| Discovery"; | "RFC 5440: Path Computation Element (PCE) Communication | |||
| leaf gmpls{ | Protocol (PCEP)"; | |||
| if-feature gmpls; | } | |||
| type boolean; | ||||
| description | ||||
| "Path computation with GMPLS link | ||||
| constraints."; | ||||
| } | ||||
| leaf bi-dir{ | ||||
| type boolean; | ||||
| description | ||||
| "Bidirectional path computation."; | ||||
| } | ||||
| leaf diverse{ | ||||
| type boolean; | ||||
| description | ||||
| "Diverse path computation."; | ||||
| } | ||||
| leaf load-balance{ | ||||
| type boolean; | ||||
| description | ||||
| "Load-balanced path computation."; | ||||
| } | ||||
| leaf synchronize{ | ||||
| if-feature svec; | ||||
| type boolean; | ||||
| description | ||||
| "Synchronized paths computation."; | ||||
| } | ||||
| leaf objective-function{ | ||||
| if-feature objective-function; | ||||
| type boolean; | ||||
| description | ||||
| "Support for multiple objective functions."; | ||||
| } | ||||
| leaf add-path-constraint{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for additive path constraints (max | ||||
| hop count, etc.)."; | ||||
| } | ||||
| leaf prioritization{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for request prioritization."; | ||||
| } | ||||
| leaf multi-request{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for multiple requests per message."; | ||||
| } | ||||
| leaf gco{ | ||||
| if-feature gco; | ||||
| type boolean; | ||||
| description | ||||
| "Support for Global Concurrent Optimization | ||||
| (GCO)."; | ||||
| } | ||||
| leaf p2mp{ | ||||
| if-feature p2mp; | ||||
| type boolean; | ||||
| description | ||||
| "Support for P2MP path computation."; | ||||
| } | ||||
| container stateful{ | leaf max-backoff-timer { | |||
| if-feature stateful; | type uint32; | |||
| description | units "seconds"; | |||
| "If stateful PCE feature is present"; | description | |||
| leaf enabled{ | "The maximum back-off time in seconds for retrying | |||
| type boolean; | a failed session setup attempt to a peer. | |||
| description | The back-off time increases for each failed session | |||
| "Enabled or Disabled"; | setup attempt, until this maximum value is reached. | |||
| Session setup attempts then repeat periodically | ||||
| without any further increase in back-off time."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| } | leaf open-wait-timer { | |||
| leaf active{ | type uint16 { | |||
| type boolean; | range "1..65535"; | |||
| description | } | |||
| "Support for active stateful PCE."; | units "seconds"; | |||
| } | default 60; | |||
| leaf pce-initiated{ | description | |||
| if-feature pce-initiated; | "The time in seconds that the PCEP entity will wait | |||
| type boolean; | to receive an Open message from a peer after the | |||
| description | TCP connection has come up. | |||
| "Support for PCE-initiated LSP."; | If no Open message is received within this time then | |||
| } | PCEP terminates the TCP connection and deletes the | |||
| leaf include-db-ver{ | associated sessions."; | |||
| if-feature stateful-sync-opt; | reference | |||
| type boolean; | "RFC 5440: Path Computation Element (PCE) Communication | |||
| description | Protocol (PCEP)"; | |||
| "Support inclusion of LSP-DB-VERSION | } | |||
| in LSP object"; | ||||
| } | ||||
| leaf trigger-resync{ | ||||
| if-feature stateful-sync-opt; | ||||
| type boolean; | ||||
| description | ||||
| "Support PCE triggered re-synchronization"; | ||||
| } | ||||
| leaf trigger-initial-sync{ | ||||
| if-feature stateful-sync-opt; | ||||
| type boolean; | ||||
| description | ||||
| "PCE triggered initial synchronization"; | ||||
| } | ||||
| leaf incremental-sync{ | ||||
| if-feature stateful-sync-opt; | ||||
| type boolean; | ||||
| description | ||||
| "Support incremental (delta) sync"; | ||||
| } | ||||
| } | ||||
| container sr{ | ||||
| if-feature sr; | ||||
| description | ||||
| "If segment routing is supported"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "Enabled or Disabled"; | ||||
| } | ||||
| leaf msd{ | ||||
| type uint8; | ||||
| description | ||||
| "Maximum SID Depth"; | ||||
| } | ||||
| leaf msd-limit{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "True indicates no limit on MSD, the | ||||
| leaf msd is ignored"; | ||||
| } | ||||
| leaf nai{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "True indicates capability to resolve NAI | ||||
| to SID"; | ||||
| } | ||||
| } | leaf keep-wait-timer { | |||
| }//capability | type uint16 { | |||
| range "1..65535"; | ||||
| } | ||||
| units "seconds"; | ||||
| default 60; | ||||
| description | ||||
| "The time in seconds that the PCEP entity will wait | ||||
| to receive a Keepalive or PCErr message from a peer | ||||
| during session initialization after receiving an | ||||
| Open message. If no Keepalive or PCErr message is | ||||
| received within this time then PCEP terminates the | ||||
| TCP connection and deletes the associated | ||||
| sessions."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| grouping info{ | leaf keep-alive-timer { | |||
| description | type uint8; | |||
| "This grouping specifies all information which | units "seconds"; | |||
| maybe relevant to both PCC and PCE. | default 30; | |||
| This information corresponds to PCE auto-discovery | description | |||
| information."; | "The keep alive transmission timer that this PCEP | |||
| container domain{ | entity will propose in the initial OPEN message of | |||
| description | each session it is involved in. This is the | |||
| "The local domain for the PCEP entity"; | maximum time between two consecutive messages sent | |||
| list domain{ | to a peer. Zero means that the PCEP entity prefers | |||
| key "domain-type domain"; | not to send Keepalives at all. | |||
| description | Note that the actual Keepalive transmission | |||
| "The local domain."; | intervals, in either direction of an active PCEP | |||
| uses domain{ | session, are determined by negotiation between the | |||
| description | peers as specified by RFC 5440, and so may differ | |||
| "The local domain for the PCEP entity."; | from this configured value."; | |||
| } | reference | |||
| } | "RFC 5440: Path Computation Element (PCE) Communication | |||
| } | Protocol (PCEP)"; | |||
| container capability{ | } | |||
| description | leaf dead-timer { | |||
| "The PCEP entity capability"; | type uint8; | |||
| uses capability{ | units "seconds"; | |||
| description | must "(. > ../keep-alive-timer)" { | |||
| "The PCEP entity supported | error-message "The dead timer must be " | |||
| capabilities."; | + "larger than the keep alive timer"; | |||
| } | ||||
| default 120; | ||||
| description | ||||
| "The dead timer that this PCEP entity will propose | ||||
| in the initial OPEN message of each session it is | ||||
| involved in. This is the time after which a peer | ||||
| should declare a session down if it does not | ||||
| receive any PCEP messages. Zero suggests that the | ||||
| peer does not run a dead timer at all."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| } | leaf allow-negotiation{ | |||
| } | type boolean; | |||
| description | ||||
| "Whether the PCEP entity will permit negotiation of | ||||
| session parameters."; | ||||
| } | ||||
| }//info | leaf max-keep-alive-timer{ | |||
| type uint8; | ||||
| units "seconds"; | ||||
| description | ||||
| "In PCEP session parameter negotiation in seconds, | ||||
| the maximum value that this PCEP entity will | ||||
| accept from a peer for the interval between | ||||
| Keepalive transmissions. Zero means that the PCEP | ||||
| entity will allow no Keepalive transmission at | ||||
| all."; | ||||
| } | ||||
| grouping pce-info{ | leaf max-dead-timer{ | |||
| description | type uint8; | |||
| "This grouping specifies all PCE information | units "seconds"; | |||
| which maybe relevant to the PCE selection. | description | |||
| This information corresponds to PCE auto-discovery | "In PCEP session parameter negotiation in seconds, | |||
| information."; | the maximum value that this PCEP entity will accept | |||
| container scope{ | from a peer for the Dead timer. Zero means that | |||
| description | the PCEP entity will allow not running a Dead | |||
| "The path computation scope"; | timer."; | |||
| uses pce-scope; | ||||
| } | ||||
| container neigh-domains{ | } | |||
| description | ||||
| "The list of neighbour PCE-Domain | ||||
| toward which a PCE can compute | ||||
| paths"; | ||||
| list domain{ | ||||
| key "domain-type domain"; | ||||
| description | leaf min-keep-alive-timer{ | |||
| "The neighbour domain."; | type uint8; | |||
| uses domain{ | units "seconds"; | |||
| description | description | |||
| "The PCE neighbour domain."; | "In PCEP session parameter negotiation in seconds, | |||
| } | the minimum value that this PCEP entity will | |||
| } | accept for the interval between Keepalive | |||
| } | transmissions. Zero means that the PCEP entity | |||
| }//pce-info | insists on no Keepalive transmission at all."; | |||
| } | ||||
| grouping lsp-state{ | leaf min-dead-timer{ | |||
| description | type uint8; | |||
| "This grouping defines the attributes for LSP in LSP-DB. | units "seconds"; | |||
| These are the attributes specifically from the PCEP | description | |||
| perspective"; | "In PCEP session parameter negotiation in | |||
| leaf plsp-id{ | seconds, the minimum value that this PCEP entity | |||
| type uint32{ | will accept for the Dead timer. Zero means that | |||
| range "1..1048575"; | the PCEP entity insists on not running a Dead | |||
| } | timer."; | |||
| description | } | |||
| "A PCEP-specific identifier for the LSP. A PCC | ||||
| creates a unique PLSP-ID for each LSP that is | ||||
| constant for the lifetime of a PCEP session. | ||||
| PLSP-ID is 20 bits with 0 and 0xFFFFF are | leaf sync-timer{ | |||
| reserved"; | if-feature svec; | |||
| } | type uint16; | |||
| leaf pcc-id{ | units "seconds"; | |||
| type inet:ip-address; | default 60; | |||
| description | description | |||
| "The local internet address of the PCC, that | "The value of SyncTimer in seconds is used in the | |||
| generated the PLSP-ID."; | case of synchronized path computation request | |||
| } | using the SVEC object. Consider the case where a | |||
| PCReq message is received by a PCE that contains | ||||
| the SVEC object referring to M synchronized path | ||||
| computation requests. If after the expiration of | ||||
| the SyncTimer all the M path computation requests | ||||
| have not been, received a protocol error is | ||||
| triggered and the PCE MUST cancel the whole set | ||||
| of path computation requests. | ||||
| The aim of the SyncTimer is to avoid the storage | ||||
| of unused synchronized requests should one of | ||||
| them get lost for some reasons (for example, a | ||||
| misbehaving PCC). | ||||
| Zero means that the PCEP entity does not use the | ||||
| SyncTimer."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| container lsp-ref{ | leaf request-timer{ | |||
| description | type uint16 { | |||
| "reference to ietf-te lsp state"; | range "1..65535"; | |||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "The maximum time that the PCEP entity will wait | ||||
| for a response to a PCReq message."; | ||||
| } | ||||
| leaf source { | leaf max-sessions{ | |||
| type leafref { | type uint32; | |||
| path "/te:te/te:lsps-state/te:lsp/te:source"; | description | |||
| } | "Maximum number of sessions involving this PCEP | |||
| description | entity that can exist at any time."; | |||
| "Tunnel sender address extracted from | } | |||
| SENDER_TEMPLATE object"; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| leaf destination { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:" | ||||
| + "destination"; | ||||
| } | ||||
| description | ||||
| "Tunnel endpoint address extracted from | ||||
| SESSION object"; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| leaf tunnel-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:tunnel-id"; | ||||
| } | ||||
| description | ||||
| "Tunnel identifier used in the SESSION | ||||
| that remains constant over the life | ||||
| of the tunnel."; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| leaf lsp-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:lsp-id"; | ||||
| } | ||||
| description | ||||
| "Identifier used in the SENDER_TEMPLATE | ||||
| and the FILTER_SPEC that can be changed | ||||
| to allow a sender to share resources with | ||||
| itself."; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| leaf extended-tunnel-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:" | ||||
| + "extended-tunnel-id"; | ||||
| } | ||||
| description | ||||
| "Extended Tunnel ID of the LSP."; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| } | ||||
| leaf admin-state{ | leaf max-unknown-reqs{ | |||
| type boolean; | type uint32; | |||
| description | default 5; | |||
| "The desired operational state"; | description | |||
| } | "The maximum number of unrecognized requests and | |||
| leaf operational-state{ | replies that any session on this PCEP entity is | |||
| type operational-state; | willing to accept per minute before terminating | |||
| description | the session. | |||
| "The operational status of the LSP"; | A PCRep message contains an unrecognized reply | |||
| } | if it contains an RP object whose request ID | |||
| container delegated{ | does not correspond to any in-progress request | |||
| description | sent by this PCEP entity. | |||
| "The delegation related parameters"; | A PCReq message contains an unrecognized request | |||
| leaf enabled{ | if it contains an RP object whose request ID is | |||
| type boolean; | zero."; | |||
| description | reference | |||
| "LSP is delegated or not"; | "RFC 5440: Path Computation Element (PCE) | |||
| } | Communication Protocol (PCEP)"; | |||
| leaf peer{ | } | |||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| must "(../enabled = true())" | ||||
| { | ||||
| error-message | ||||
| "The LSP must be delegated"; | ||||
| description | ||||
| "When LSP is a delegated LSP"; | ||||
| } | ||||
| description | ||||
| "At the PCC, the reference to the PCEP peer to | ||||
| which LSP is delegated; At the PCE, the | ||||
| reference to the PCEP peer which delegated this | ||||
| LSP"; | ||||
| } | ||||
| leaf srp-id{ | ||||
| type uint32; | ||||
| description | ||||
| "The last SRP-ID-number associated with this | ||||
| LSP."; | ||||
| } | ||||
| } | ||||
| container initiation { | ||||
| if-feature pce-initiated; | ||||
| description | ||||
| "The PCE initiation related parameters"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "LSP is PCE-initiated or not"; | ||||
| } | ||||
| leaf peer{ | ||||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| must "(../enabled = true())" | ||||
| { | ||||
| error-message | ||||
| "The LSP must be PCE-Initiated"; | ||||
| description | ||||
| "When the LSP must be PCE-Initiated"; | ||||
| } | ||||
| description | ||||
| "At the PCC, the reference to the PCEP peer | ||||
| that initiated this LSP; At the PCE, the | ||||
| reference to the PCEP peer where the LSP | ||||
| is initiated"; | ||||
| } | ||||
| } | ||||
| leaf symbolic-path-name{ | ||||
| type string; | ||||
| description | ||||
| "The symbolic path name associated with the LSP."; | ||||
| } | ||||
| leaf last-error{ | ||||
| type identityref { | ||||
| base lsp-error; | ||||
| } | ||||
| description | ||||
| "The last error for the LSP."; | ||||
| } | ||||
| leaf pst{ | ||||
| type identityref{ | ||||
| base te-types:path-signaling-type; | ||||
| } | ||||
| default "te-types:path-setup-rsvp"; | ||||
| description | ||||
| "The Path Setup Type"; | ||||
| } | leaf max-unknown-msgs{ | |||
| type uint32; | ||||
| default 5; | ||||
| description | ||||
| "The maximum number of unknown messages that any | ||||
| session on this PCEP entity is willing to accept | ||||
| per minute before terminating the session."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| }//lsp-state | leaf pcep-notification-max-rate { | |||
| type uint32; | ||||
| mandatory true; | ||||
| description | ||||
| "This variable indicates the maximum number of | ||||
| notifications issued per second. If events | ||||
| occur more rapidly, the implementation may | ||||
| simply fail to emit these notifications during | ||||
| that period, or may queue them until an | ||||
| appropriate time. A value of 0 means no | ||||
| notifications are emitted and all should be | ||||
| discarded (that is, not queued)."; | ||||
| } | ||||
| container stateful-parameter{ | ||||
| if-feature stateful; | ||||
| description | ||||
| "The configured stateful PCE parameters"; | ||||
| leaf state-timeout{ | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| description | ||||
| "When a PCEP session is terminated, a PCC | ||||
| waits for this time period before flushing | ||||
| LSP state associated with that PCEP session | ||||
| and reverting to operator-defined default | ||||
| parameters or behaviours."; | ||||
| } | ||||
| leaf redelegation-timeout{ | ||||
| when "../../role = 'pcc'" + | ||||
| "or " + | ||||
| "../../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "This field is applicable when the role is | ||||
| PCC"; | ||||
| } | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| description | ||||
| "When a PCEP session is terminated, a PCC | ||||
| waits for this time period before revoking | ||||
| LSP delegation to a PCE and attempting to | ||||
| redelegate LSPs associated with the | ||||
| terminated PCEP session to an alternate | ||||
| PCE."; | ||||
| } | ||||
| leaf rpt-non-pcep-lsp{ | ||||
| when "../../role = 'pcc'" + | ||||
| "or " + | ||||
| "../../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "This field is applicable when the role is | ||||
| PCC"; | ||||
| } | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "If set, a PCC reports LSPs that are not | ||||
| controlled by any PCE (for example, LSPs | ||||
| that are statically configured at the | ||||
| PCC). "; | ||||
| } | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| container of-list{ | ||||
| when "../role = 'pce'" + | ||||
| "or " + | ||||
| "../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "These field are applicable when the role is | ||||
| PCE"; | ||||
| } | ||||
| if-feature objective-function; | ||||
| grouping notification-instance-hdr { | uses of-list; | |||
| description | ||||
| "This group describes common instance specific data | ||||
| for notifications."; | ||||
| leaf peer-addr { | description | |||
| type leafref { | "The authorized OF-List at PCE for all peers"; | |||
| path "/pcep/entity/peers/peer/addr"; | } | |||
| } | container lsp-db{ | |||
| description | if-feature stateful; | |||
| "Reference to peer address"; | config false; | |||
| } | description | |||
| "The LSP-DB"; | ||||
| leaf db-ver{ | ||||
| when "../../role = 'pcc'" + | ||||
| "or " + | ||||
| "../../role = 'pcc-and-pce'" | ||||
| }// notification-instance-hdr | { | |||
| description | ||||
| "This field is applicable when the role is | ||||
| PCC"; | ||||
| } | ||||
| if-feature sync-opt; | ||||
| type uint64; | ||||
| description | ||||
| "The LSP State Database Version Number"; | ||||
| } | ||||
| list association-list { | ||||
| if-feature association; | ||||
| key "type id source global-source extended-id"; | ||||
| description | ||||
| "List of all PCEP associations"; | ||||
| reference | ||||
| "I-D.ietf-pce-association-group: PCEP | ||||
| Extensions for Establishing Relationships | ||||
| Between Sets of LSPs"; | ||||
| leaf type { | ||||
| type identityref { | ||||
| base te-types:association-type; | ||||
| } | ||||
| description | ||||
| "The PCEP association type"; | ||||
| } | ||||
| leaf id { | ||||
| type uint16; | ||||
| description | ||||
| "PCEP Association ID"; | ||||
| } | ||||
| leaf source { | ||||
| type inet:ip-address; | ||||
| description | ||||
| "PCEP Association Source."; | ||||
| } | ||||
| leaf global-source { | ||||
| type uint32; | ||||
| description | ||||
| "PCEP Association Global Source."; | ||||
| } | ||||
| leaf extended-id{ | ||||
| type string; | ||||
| description | ||||
| "Additional information to support unique | ||||
| identification."; | ||||
| } | ||||
| list lsp { | ||||
| key "plsp-id pcc-id"; | ||||
| description | ||||
| "List of all LSP in this association"; | ||||
| leaf plsp-id { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "lsp/plsp-id"; | ||||
| } | ||||
| description | ||||
| "Reference to PLSP-ID in LSP-DB"; | ||||
| } | ||||
| leaf pcc-id { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "lsp/pcc-id"; | ||||
| } | ||||
| description | ||||
| "Reference to PCC-ID in LSP-DB"; | ||||
| } | ||||
| } | ||||
| } | ||||
| list lsp { | ||||
| key "plsp-id pcc-id"; | ||||
| description | ||||
| "List of all LSPs in LSP-DB"; | ||||
| leaf plsp-id{ | ||||
| type uint32{ | ||||
| range "1..1048575"; | ||||
| } | ||||
| description | ||||
| "A PCEP-specific identifier for the LSP. A PCC | ||||
| creates a unique PLSP-ID for each LSP that is | ||||
| constant for the lifetime of a PCEP session. | ||||
| PLSP-ID is 20 bits with 0 and 0xFFFFF are | ||||
| reserved"; | ||||
| } | ||||
| leaf pcc-id{ | ||||
| type inet:ip-address; | ||||
| description | ||||
| "The local internet address of the PCC, that | ||||
| generated the PLSP-ID."; | ||||
| } | ||||
| container lsp-ref{ | ||||
| description | ||||
| "reference to ietf-te lsp state"; | ||||
| grouping notification-session-hdr { | leaf source { | |||
| description | type leafref { | |||
| "This group describes common session instance specific | path "/te:te/te:lsps-state/te:lsp/te:source"; | |||
| data for notifications."; | } | |||
| description | ||||
| "Tunnel sender address extracted from | ||||
| SENDER_TEMPLATE object"; | ||||
| reference | ||||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
| LSP Tunnels"; | ||||
| } | ||||
| leaf destination { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:" | ||||
| + "destination"; | ||||
| } | ||||
| description | ||||
| "Tunnel endpoint address extracted from | ||||
| SESSION object"; | ||||
| reference | ||||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
| LSP Tunnels"; | ||||
| } | ||||
| leaf tunnel-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:tunnel-id"; | ||||
| } | ||||
| description | ||||
| "Tunnel identifier used in the SESSION | ||||
| that remains constant over the life | ||||
| of the tunnel."; | ||||
| reference | ||||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
| LSP Tunnels"; | ||||
| } | ||||
| leaf lsp-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:lsp-id"; | ||||
| } | ||||
| description | ||||
| "Identifier used in the SENDER_TEMPLATE | ||||
| and the FILTER_SPEC that can be changed | ||||
| to allow a sender to share resources with | ||||
| itself."; | ||||
| reference | ||||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
| LSP Tunnels"; | ||||
| } | ||||
| leaf extended-tunnel-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:" | ||||
| + "extended-tunnel-id"; | ||||
| } | ||||
| description | ||||
| "Extended Tunnel ID of the LSP."; | ||||
| reference | ||||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
| LSP Tunnels"; | ||||
| } | ||||
| } | ||||
| leaf session-initiator { | leaf admin-state{ | |||
| type leafref { | type boolean; | |||
| path "/pcep/entity/peers/peer/sessions/" + | description | |||
| "session/initiator"; | "The desired operational state"; | |||
| } | } | |||
| description | leaf operational-state{ | |||
| "Reference to pcep session initiator leaf"; | type operational-state; | |||
| } | description | |||
| }// notification-session-hdr | "The operational status of the LSP"; | |||
| } | ||||
| container delegated{ | ||||
| description | ||||
| "The delegation related parameters"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "LSP is delegated or not"; | ||||
| } | ||||
| leaf peer{ | ||||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| must "(../enabled = true())" | ||||
| { | ||||
| error-message | ||||
| "The LSP must be delegated"; | ||||
| } | ||||
| description | ||||
| "At the PCC, the reference to the PCEP peer to | ||||
| which LSP is delegated; At the PCE, the | ||||
| reference to the PCEP peer which delegated this | ||||
| LSP"; | ||||
| } | ||||
| leaf srp-id{ | ||||
| type uint32; | ||||
| description | ||||
| "The last SRP-ID-number associated with this | ||||
| LSP."; | ||||
| } | ||||
| } | ||||
| container initiation { | ||||
| if-feature pce-initiated; | ||||
| description | ||||
| "The PCE initiation related parameters"; | ||||
| reference | ||||
| "RFC 8281: Path Computation Element Communication | ||||
| Protocol (PCEP) Extensions for PCE-Initiated LSP | ||||
| Setup in a Stateful PCE Model"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "Set to true if this LSP is initiated by a PCE"; | ||||
| } | ||||
| leaf peer{ | ||||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| must "(../enabled = true())" | ||||
| { | ||||
| error-message | ||||
| "The LSP must be PCE-Initiated"; | ||||
| } | ||||
| description | ||||
| "At the PCC, the reference to the PCEP peer | ||||
| that initiated this LSP; At the PCE, the | ||||
| reference to the PCEP peer where the LSP | ||||
| is initiated"; | ||||
| } | ||||
| } | ||||
| leaf symbolic-path-name{ | ||||
| type string; | ||||
| description | ||||
| "The symbolic path name associated with the LSP."; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication | ||||
| Protocol (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| leaf last-error{ | ||||
| type identityref { | ||||
| base lsp-error; | ||||
| } | ||||
| description | ||||
| "The last error for the LSP."; | ||||
| } | ||||
| leaf pst{ | ||||
| type identityref{ | ||||
| base te-types:path-signaling-type; | ||||
| } | ||||
| default "te-types:path-setup-rsvp"; | ||||
| description | ||||
| "The Path Setup Type"; | ||||
| reference | ||||
| "RFC 8408: Conveying Path Setup Type in PCE | ||||
| Communication Protocol (PCEP) Messages"; | ||||
| } | ||||
| list association-list { | ||||
| if-feature association; | ||||
| key "type id source global-source extended-id"; | ||||
| description | ||||
| "List of all PCEP associations"; | ||||
| leaf type { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/type"; | ||||
| } | ||||
| description | ||||
| "PCEP Association Type"; | ||||
| } | ||||
| leaf id { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/id"; | ||||
| } | ||||
| description | ||||
| "PCEP Association ID"; | ||||
| } | ||||
| leaf source { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/source"; | ||||
| } | ||||
| description | ||||
| "PCEP Association Source."; | ||||
| } | ||||
| leaf global-source { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/global-source"; | ||||
| } | ||||
| description | ||||
| "PCEP Association Global Source."; | ||||
| } | ||||
| leaf extended-id{ | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/extended-id"; | ||||
| } | ||||
| description | ||||
| "Additional information to | ||||
| support unique identification."; | ||||
| } | ||||
| reference | ||||
| "I-D.ietf-pce-association-group: PCEP | ||||
| Extensions for Establishing Relationships | ||||
| Between Sets of LSPs"; | ||||
| } | ||||
| } | ||||
| } | ||||
| container path-keys { | ||||
| when "../role = 'pce' or ../role = 'pcc-and-pce'" { | ||||
| description | ||||
| "These fields are applicable when the role is | ||||
| PCE"; | ||||
| } | ||||
| if-feature path-key; | ||||
| config false; | ||||
| description | ||||
| "The path-keys generated by the PCE"; | ||||
| reference | ||||
| "RFC 5520: Preserving Topology Confidentiality | ||||
| in Inter-Domain Path Computation Using a Path- | ||||
| Key-Based Mechanism"; | ||||
| list path-keys{ | ||||
| key "path-key"; | ||||
| description | ||||
| "The list of path-keys generated by the PCE"; | ||||
| leaf path-key { | ||||
| type uint16; | ||||
| description | ||||
| "The identifier, or token used to represent | ||||
| the Confidential Path Segment (CPS) within | ||||
| the context of the PCE"; | ||||
| } | ||||
| container cps { | ||||
| description | ||||
| "The Confidential Path Segment (CPS)"; | ||||
| list explicit-route-objects { | ||||
| key "index"; | ||||
| description | ||||
| "List of explicit route objects"; | ||||
| leaf index { | ||||
| type uint32; | ||||
| description | ||||
| "ERO subobject index"; | ||||
| } | ||||
| uses te-types:explicit-route-hop; | ||||
| } | ||||
| } | ||||
| leaf pcc-original { | ||||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| description | ||||
| "Reference to PCC peer address of | ||||
| the original request"; | ||||
| } | ||||
| leaf req-id { | ||||
| type uint32; | ||||
| description | ||||
| "The request ID of the original PCReq."; | ||||
| } | ||||
| leaf retrieved { | ||||
| type boolean; | ||||
| description | ||||
| "If path-key has been retrieved yet"; | ||||
| } | ||||
| leaf pcc-retrieved { | ||||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| must "(../retrieved = true())" | ||||
| { | ||||
| error-message | ||||
| "The Path-key should be retreived"; | ||||
| } | ||||
| description | ||||
| "Reference to PCC peer address which | ||||
| retreived the path-key"; | ||||
| } | ||||
| leaf creation-time { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value at the time this Path-Key | ||||
| was created."; | ||||
| } | ||||
| leaf discard-time { | ||||
| type uint32; | ||||
| units "minutes"; | ||||
| description | ||||
| "A time after which this path-keys will be | ||||
| discarded"; | ||||
| } | ||||
| leaf reuse-time { | ||||
| type uint32; | ||||
| units "minutes"; | ||||
| description | ||||
| "A time after which this path-keys could be | ||||
| reused"; | ||||
| } | ||||
| } | ||||
| } | ||||
| container peers{ | ||||
| description | ||||
| "The list of configured peers for the | ||||
| entity (remote PCE)"; | ||||
| list peer{ | ||||
| key "addr"; | ||||
| description | ||||
| "The peer configured for the entity. | ||||
| (remote PCE)"; | ||||
| grouping stateful-pce-parameter { | leaf addr { | |||
| description | type inet:ip-address; | |||
| "This group describes stateful PCE specific | description | |||
| parameters."; | "The local Internet address of this | |||
| PCEP peer."; | ||||
| } | ||||
| leaf role { | ||||
| type pcep-role; | ||||
| mandatory true; | ||||
| description | ||||
| "The role of the PCEP Peer. | ||||
| Takes one of the following values. | ||||
| - unknown(0): this PCEP peer role is not | ||||
| known. | ||||
| - pcc(1): this PCEP peer is a PCC. | ||||
| - pce(2): this PCEP peer is a PCE. | ||||
| - pcc-and-pce(3): this PCEP peer | ||||
| is both a PCC and a PCE."; | ||||
| } | ||||
| leaf state-timeout{ | leaf description { | |||
| type uint32; | type string; | |||
| units "seconds"; | description | |||
| description | "Description of the PCEP peer | |||
| "When a PCEP session is terminated, a PCC | configured by the user"; | |||
| waits for this time period before flushing | } | |||
| LSP state associated with that PCEP session | uses info { | |||
| and reverting to operator-defined default | description | |||
| parameters or behaviours."; | "PCE Peer information"; | |||
| } | } | |||
| leaf redelegation-timeout{ | ||||
| when "../../role = 'pcc'" + | ||||
| "or " + | ||||
| "../../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid at PCC"; | ||||
| } | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| description | ||||
| "When a PCEP session is terminated, a PCC | ||||
| waits for this time period before revoking | ||||
| LSP delegation to a PCE and attempting to | ||||
| redelegate LSPs associated with the | ||||
| terminated PCEP session to an alternate | ||||
| PCE."; | ||||
| } | ||||
| leaf rpt-non-pcep-lsp{ | ||||
| when "../../role = 'pcc'" + | ||||
| "or " + | ||||
| "../../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid at PCC"; | ||||
| } | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "If set, a PCC reports LSPs that are not | ||||
| controlled by any PCE (for example, LSPs | ||||
| that are statically configured at the | ||||
| PCC). "; | ||||
| } | ||||
| } | container pce-info { | |||
| uses pce-info { | ||||
| description | ||||
| "PCE Peer information"; | ||||
| } | ||||
| description | ||||
| "The PCE Peer information"; | ||||
| } | ||||
| grouping authentication { | leaf delegation-pref{ | |||
| description "Authentication Information"; | if-feature stateful; | |||
| container auth { | type uint8{ | |||
| description | range "0..7"; | |||
| "The Authentication options"; | } | |||
| choice auth-type-selection { | description | |||
| description | "The PCE peer delegation preference."; | |||
| "Options for expressing authentication setting."; | } | |||
| case auth-key-chain { | container auth { | |||
| leaf key-chain { | description | |||
| type key-chain:key-chain-ref; | "The Authentication options"; | |||
| description | choice auth-type-selection { | |||
| "key-chain name."; | description | |||
| } | "Options for expressing authentication | |||
| } | setting."; | |||
| case auth-key { | case auth-key-chain { | |||
| leaf key-chain { | ||||
| type kc:key-chain-ref; | ||||
| description | ||||
| "key-chain name."; | ||||
| } | ||||
| } | ||||
| case auth-key { | ||||
| leaf crypto-algorithm { | leaf crypto-algorithm { | |||
| type identityref { | type identityref { | |||
| base key-chain:crypto-algorithm; | base kc:crypto-algorithm; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Cryptographic algorithm associated with key."; | "Cryptographic algorithm associated | |||
| with key."; | ||||
| } | } | |||
| leaf key { | choice key-string-style { | |||
| nacm:default-deny-all; | ||||
| type string; | ||||
| description | description | |||
| "This leaf specifies the authentication key."; | "Key string styles"; | |||
| case keystring { | ||||
| leaf keystring { | ||||
| nacm:default-deny-all; | ||||
| type string; | ||||
| description | ||||
| "Key string in ASCII format."; | ||||
| } | ||||
| } | ||||
| case hexadecimal { | ||||
| if-feature "kc:hex-key-string"; | ||||
| leaf hexadecimal-string { | ||||
| nacm:default-deny-all; | ||||
| type yang:hex-string; | ||||
| description | ||||
| "Key in hexadecimal string format. When | ||||
| compared to ASCII, specification in | ||||
| hexadecimal affords greater key entropy | ||||
| with the same number of internal | ||||
| key-string octets. Additionally, it | ||||
| discourages usage of well-known words or | ||||
| 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 tls-server:tls-server-grouping { | uses ts: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 tls-client:tls-client-grouping { | uses tc:tls-client-grouping { | |||
| description | description | |||
| "Client TLS information."; | "Client TLS information."; | |||
| } | } | |||
| description | description | |||
| "TLS related information"; | "TLS related information"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | ||||
| grouping path-key { | ||||
| description "Path-key related information"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "Enabled or Disabled"; | ||||
| } | ||||
| leaf discard-timer { | ||||
| type uint32; | ||||
| units "minutes"; | ||||
| default 10; | ||||
| description | ||||
| "A timer to discard unwanted path-keys"; | ||||
| } | ||||
| leaf reuse-time { | ||||
| type uint32; | ||||
| units "minutes"; | ||||
| default 30; | ||||
| description | ||||
| "A time after which the path-keys could be reused"; | ||||
| } | ||||
| leaf pce-id { | ||||
| type inet:ip-address; | ||||
| description | ||||
| "PCE Address to be used in each Path-Key Subobject | ||||
| (PKS)"; | ||||
| } | ||||
| } | ||||
| grouping path-key-state { | ||||
| description "Table to allow inspection of path-keys"; | ||||
| list path-keys{ | ||||
| key "path-key"; | ||||
| description | ||||
| "The list of path-keys generated by the PCE"; | ||||
| leaf path-key { | ||||
| type uint16; | ||||
| description | ||||
| "The identifier, or token used to represent | ||||
| the Confidential Path Segment (CPS) within | ||||
| the context of the PCE"; | ||||
| } | ||||
| container cps { | ||||
| description | ||||
| "The Confidential Path Segment (CPS)"; | ||||
| list explicit-route-objects { | ||||
| key "index"; | ||||
| description | ||||
| "List of explicit route objects"; | ||||
| leaf index { | ||||
| type uint32; | ||||
| description | ||||
| "ERO subobject index"; | ||||
| } | ||||
| uses te-types:explicit-route-hop; | ||||
| } | ||||
| } | ||||
| leaf pcc-original { | ||||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| description | ||||
| "Reference to PCC peer address of | ||||
| the original request"; | ||||
| } | ||||
| leaf req-id { | ||||
| type uint32; | ||||
| description | ||||
| "The request ID of the original PCReq."; | ||||
| } | ||||
| leaf retrieved { | ||||
| type boolean; | ||||
| description | ||||
| "If path-key has been retrieved yet"; | ||||
| } | ||||
| leaf pcc-retrieved { | ||||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| must "(../retrieved = true())" | ||||
| { | ||||
| error-message | ||||
| "The Path-key should be retreived"; | ||||
| description | ||||
| "When Path-Key has been retreived"; | ||||
| } | ||||
| description | ||||
| "Reference to PCC peer address which | ||||
| retreived the path-key"; | ||||
| } | ||||
| leaf creation-time { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value at the time this Path-Key | ||||
| was created."; | ||||
| } | ||||
| leaf discard-time { | ||||
| type uint32; | ||||
| units "minutes"; | ||||
| description | ||||
| "A time after which this path-keys will be | ||||
| discarded"; | ||||
| } | ||||
| leaf reuse-time { | ||||
| type uint32; | ||||
| units "minutes"; | ||||
| description | ||||
| "A time after which this path-keys could be | ||||
| reused"; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping of-list { | ||||
| description "List of OF"; | ||||
| list objective-function{ | ||||
| key "of"; | ||||
| description | ||||
| "The list of authorized OF"; | ||||
| leaf of { | ||||
| type identityref{ | ||||
| base te-types:objective-function-type; | ||||
| } | ||||
| description | ||||
| "The OF authorized"; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping pst-list { | ||||
| description "List of PST"; | ||||
| list path-setup-type{ | ||||
| key "pst"; | ||||
| description | ||||
| "The list of authorized PST"; | ||||
| leaf pst { | ||||
| type identityref{ | ||||
| base te-types:path-signaling-type; | ||||
| } | ||||
| description | ||||
| "The PST authorized"; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping assoc-type-list { | ||||
| description "List of Association Type"; | ||||
| list assoc-type{ | ||||
| key "at"; | ||||
| description | leaf discontinuity-time { | |||
| "The list of authorized association | type yang:timestamp; | |||
| types"; | config false; | |||
| description | ||||
| "The timestamp of the time when the information and | ||||
| statistics were last reset."; | ||||
| } | ||||
| leaf at { | leaf initiate-session { | |||
| type identityref { | type boolean; | |||
| base te-types:association-type; | config false; | |||
| } | description | |||
| description | "Indicates whether the local PCEP entity initiates | |||
| "The association type authorized"; | sessions to this peer, or waits for the peer to | |||
| } | initiate a session."; | |||
| } | } | |||
| } | ||||
| grouping association { | leaf session-exists{ | |||
| description | type boolean; | |||
| "Generic Association parameters"; | config false; | |||
| leaf type { | description | |||
| type identityref { | "Indicates whether a session with | |||
| base te-types:association-type; | this peer currently exists."; | |||
| } | } | |||
| description | ||||
| "The PCEP association type"; | ||||
| } | leaf session-up-time{ | |||
| leaf id { | type yang:timestamp; | |||
| type uint16; | config false; | |||
| description | description | |||
| "PCEP Association ID"; | "The timestamp value of the last time a | |||
| } | session with this peer was successfully | |||
| leaf source { | established."; | |||
| type inet:ip-address; | } | |||
| description | ||||
| "PCEP Association Source."; | ||||
| } | ||||
| leaf global-source { | ||||
| type uint32; | ||||
| description | ||||
| "PCEP Association Global | ||||
| Source."; | ||||
| } | ||||
| leaf extended-id{ | ||||
| type string; | ||||
| description | ||||
| "Additional information to | ||||
| support unique identification."; | ||||
| } | ||||
| } | ||||
| grouping association-ref { | ||||
| description | ||||
| "Generic Association parameters"; | ||||
| leaf type { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/type"; | ||||
| } | ||||
| description | ||||
| "PCEP Association Type"; | ||||
| } | ||||
| leaf id { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/id"; | ||||
| } | ||||
| description | ||||
| "PCEP Association ID"; | ||||
| } | ||||
| leaf source { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/source"; | ||||
| } | ||||
| description | leaf session-fail-time{ | |||
| "PCEP Association Source."; | type yang:timestamp; | |||
| } | config false; | |||
| leaf global-source { | description | |||
| type leafref { | "The timestamp value of the last time a | |||
| path "/pcep/entity/lsp-db/" | session with this peer failed to be | |||
| + "association-list/global-source"; | established."; | |||
| } | } | |||
| description | ||||
| "PCEP Association Global | ||||
| Source."; | ||||
| } | ||||
| leaf extended-id{ | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "association-list/extended-id"; | ||||
| } | ||||
| description | ||||
| "Additional information to | ||||
| support unique identification."; | ||||
| } | ||||
| } | ||||
| grouping session-grouping { | leaf session-fail-up-time{ | |||
| description | type yang:timestamp; | |||
| "Session grouping"; | config false; | |||
| container sessions { | description | |||
| config false; | "The timestamp value of the last time a | |||
| description | session with this peer failed from | |||
| "This entry represents a single PCEP | active."; | |||
| session in which the local PCEP entity participates. | } | |||
| This entry exists only if the corresponding PCEP | ||||
| session has been initialized by some event, such as | ||||
| manual user configuration, auto-discovery of a peer, | ||||
| or an incoming TCP connection."; | ||||
| list session { | container sessions { | |||
| key "initiator"; | config false; | |||
| description | description | |||
| "The list of sessions, note that | "This entry represents a single PCEP | |||
| for a time being two sessions | session in which the local PCEP entity participates. | |||
| may exist for a peer"; | This entry exists only if the corresponding PCEP | |||
| session has been initialized by some event, such as | ||||
| manual user configuration, auto-discovery of a peer, | ||||
| or an incoming TCP connection."; | ||||
| leaf initiator { | list session { | |||
| type pcep-initiator; | key "initiator"; | |||
| description | description | |||
| "The initiator of the session,that is, whether | "The list of sessions, note that for a time being | |||
| the TCP connection was initiated by the local | two sessions may exist for a peer"; | |||
| PCEP entity or the peer. | ||||
| There is a window during session | ||||
| initialization where two sessions can exist | ||||
| between a pair of PCEP speakers, each | ||||
| initiated by one of the speakers. One of | ||||
| these sessions is always discarded before it | ||||
| leaves OpenWait state. However, before it is | ||||
| discarded, two sessions to the given peer | ||||
| appear transiently in this yang module. The | ||||
| sessions are distinguished by who initiated | ||||
| them, and so this field is the key."; | ||||
| } | ||||
| leaf role { | leaf initiator { | |||
| type leafref { | type pcep-initiator; | |||
| path "/pcep/entity/role"; | description | |||
| } | "The initiator of the session,that is, whether | |||
| description | the TCP connection was initiated by the local | |||
| "The reference to peer role ."; | PCEP entity or the peer. | |||
| } | There is a window during session | |||
| initialization where two sessions can exist | ||||
| between a pair of PCEP speakers, each | ||||
| initiated by one of the speakers. One of | ||||
| these sessions is always discarded before it | ||||
| leaves OpenWait state. However, before it is | ||||
| discarded, two sessions to the given peer | ||||
| appear transiently in this yang module. The | ||||
| sessions are distinguished by who initiated | ||||
| them, and so this field is the key."; | ||||
| } | ||||
| leaf state-last-change { | leaf role { | |||
| type yang:timestamp; | type leafref { | |||
| description | path "/pcep/entity/role"; | |||
| "The timestamp value at the time this | } | |||
| session entered its current state as | description | |||
| denoted by the state leaf."; | "The reference to peer role ."; | |||
| } | } | |||
| leaf state { | leaf state-last-change { | |||
| type pcep-sess-state; | type yang:timestamp; | |||
| description | description | |||
| "The current state of the session. | "The timestamp value at the time this | |||
| The set of possible states excludes the | session entered its current state as | |||
| idle state since entries do not exist | denoted by the state leaf."; | |||
| in the idle state."; | } | |||
| } | ||||
| leaf session-creation { | leaf state { | |||
| type yang:timestamp; | type pcep-sess-state; | |||
| description | description | |||
| "The timestamp value at the time this | "The current state of the session. | |||
| session was created."; | The set of possible states excludes the | |||
| } | idle state since entries do not exist | |||
| in the idle state."; | ||||
| } | ||||
| leaf connect-retry { | leaf session-creation { | |||
| type yang:counter32; | type yang:timestamp; | |||
| description | description | |||
| "The number of times that the local PCEP | "The timestamp value at the time this | |||
| entity has attempted to establish a TCP | session was created."; | |||
| connection for this session without | } | |||
| success. The PCEP entity gives up when | ||||
| this reaches connect-max-retry."; | ||||
| } | ||||
| leaf local-id { | leaf connect-retry { | |||
| type uint32 { | type yang:counter32; | |||
| range "0..255"; | description | |||
| } | "The number of times that the local PCEP | |||
| description | entity has attempted to establish a TCP | |||
| "The value of the PCEP session ID used by | connection for this session without | |||
| the local PCEP entity in the Open message | success. The PCEP entity gives up when | |||
| for this session. If state is tcp-pending | this reaches connect-max-retry."; | |||
| then this is the session ID that will be | } | |||
| used in the Open message. Otherwise, this | ||||
| is the session ID that was sent in the | ||||
| Open message."; | ||||
| } | ||||
| leaf remote-id { | leaf local-id { | |||
| type uint32 { | type uint8; | |||
| range "0..255"; | description | |||
| } | "The value of the PCEP session ID used by | |||
| must "((../state != 'tcp-pending'" + | the local PCEP entity in the Open message | |||
| "and " + | for this session. If state is tcp-pending | |||
| "../state != 'open-wait' )" + | then this is the session ID that will be | |||
| "or " + | used in the Open message. Otherwise, this | |||
| "((../state = 'tcp-pending'" + | is the session ID that was sent in the | |||
| " or " + | Open message."; | |||
| "../state = 'open-wait' )" + | reference | |||
| "and (. = 0)))" { | "RFC 5440: Path Computation Element (PCE) | |||
| error-message | Communication Protocol (PCEP)"; | |||
| "Invalid remote-id"; | } | |||
| description | ||||
| "If state is tcp- | ||||
| pending or open-wait | ||||
| then this leaf is not | ||||
| used and MUST be set | ||||
| to zero."; | ||||
| } | ||||
| description | ||||
| "The value of the PCEP session | ||||
| ID used by the peer in its | ||||
| Open message for this | ||||
| session."; | ||||
| } | ||||
| leaf keepalive-timer { | ||||
| type uint32 { | ||||
| range "0..255"; | ||||
| } | ||||
| units "seconds"; | ||||
| must "(../state = 'session-up'" + | ||||
| "or " + | ||||
| "(../state != 'session-up'" + | ||||
| "and (. = 0)))" { | ||||
| error-message | ||||
| "Invalid keepalive | ||||
| timer"; | ||||
| description | ||||
| "This field is used if | ||||
| and only if state is | ||||
| session-up. Otherwise, | ||||
| it is not used and | ||||
| MUST be set to | ||||
| zero."; | ||||
| } | ||||
| description | ||||
| "The agreed maximum interval at | ||||
| which the local PCEP entity | ||||
| transmits PCEP messages on | ||||
| this PCEP session. Zero means | ||||
| that the local PCEP entity | ||||
| never sends Keepalives on this | ||||
| session."; | ||||
| } | ||||
| leaf peer-keepalive-timer { | leaf remote-id { | |||
| type uint32 { | type uint8; | |||
| range "0..255"; | must "((../state != 'tcp-pending'" + | |||
| } | "and " + | |||
| units "seconds"; | "../state != 'open-wait' )" + | |||
| must "(../state = 'session-up'" + | "or " + | |||
| "or " + | "((../state = 'tcp-pending'" + | |||
| "(../state != 'session-up'" + | " or " + | |||
| "and " + | "../state = 'open-wait' )" + | |||
| "(. = 0)))" { | "and (. = 0)))" { | |||
| error-message | error-message | |||
| "Invalid Peer keepalive | "Invalid remote-id"; | |||
| timer"; | ||||
| description | ||||
| "This field is used if | ||||
| and only if state is | ||||
| session-up. Otherwise, | ||||
| it is not used and MUST | ||||
| be set to zero."; | ||||
| } | ||||
| description | description | |||
| "The agreed maximum interval at | "If state is tcp-pending or open-wait then | |||
| which the peer transmits PCEP | this leaf is not used and MUST be set to | |||
| messages on this PCEP session. | zero."; | |||
| Zero means that the peer never | } | |||
| sends Keepalives on this | description | |||
| session."; | "The value of the PCEP session ID used by the | |||
| } | peer in its Open message for this session."; | |||
| reference | ||||
| leaf dead-timer { | "RFC 5440: Path Computation Element (PCE) | |||
| type uint32 { | Communication Protocol (PCEP)"; | |||
| range "0..255"; | } | |||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "The dead timer interval for | ||||
| this PCEP session."; | ||||
| } | ||||
| leaf peer-dead-timer { | ||||
| type uint32 { | ||||
| range "0..255"; | ||||
| } | ||||
| units "seconds"; | ||||
| must "((../state != 'tcp-pending'" + | ||||
| "and " + | ||||
| "../state != 'open-wait' )" + | ||||
| "or " + | ||||
| "((../state = 'tcp-pending'" + | ||||
| " or " + | ||||
| "../state = 'open-wait' )" + | ||||
| "and " + | ||||
| "(. = 0)))" { | ||||
| error-message | ||||
| "Invalid Peer Dead | ||||
| timer"; | ||||
| description | ||||
| "If state is tcp- | ||||
| pending or open-wait | ||||
| then this leaf is not | ||||
| used and MUST be set to | ||||
| zero."; | ||||
| } | ||||
| description | ||||
| "The peer's dead-timer interval | ||||
| for this PCEP session."; | ||||
| } | ||||
| leaf ka-hold-time-rem { | leaf keepalive-timer { | |||
| type uint32 { | type uint8; | |||
| range "0..255"; | units "seconds"; | |||
| } | must "(../state = 'session-up'" + | |||
| units "seconds"; | "or " + | |||
| must "((../state != 'tcp-pending'" + | "(../state != 'session-up'" + | |||
| "and " + | "and (. = 0)))" { | |||
| "../state != 'open-wait' ) " + | error-message | |||
| "or " + | "Invalid keepalive timer"; | |||
| "((../state = 'tcp-pending'" + | ||||
| "or " + | ||||
| "../state = 'open-wait' )" + | ||||
| "and " + | ||||
| "(. = 0)))" { | ||||
| error-message | ||||
| "Invalid Keepalive hold | ||||
| time remaining"; | ||||
| description | ||||
| "If state is tcp-pending | ||||
| or open-wait then this | ||||
| field is not used and | ||||
| MUST be set to zero."; | ||||
| } | ||||
| description | ||||
| "The keep alive hold time | ||||
| remaining for this session."; | ||||
| } | ||||
| leaf overloaded { | ||||
| type boolean; | ||||
| description | description | |||
| "If the local PCEP entity has | "This field is used if and only if state is | |||
| informed the peer that it is | session-up. Otherwise, it is not used and | |||
| currently overloaded, then | MUST be set to zero."; | |||
| this is set to true. | } | |||
| Otherwise, it is set to | description | |||
| false."; | "The agreed maximum interval at which the local | |||
| } | PCEP entity transmits PCEP messages on this PCEP | |||
| leaf overload-time { | session. Zero means that the local PCEP entity | |||
| type uint32; | never sends Keepalives on this session."; | |||
| units "seconds"; | reference | |||
| must "((../overloaded = true()) " + | "RFC 5440: Path Computation Element (PCE) | |||
| "or ((../overloaded != true()) " + | Communication Protocol (PCEP)"; | |||
| "and (. = 0)))" { | } | |||
| error-message | ||||
| "Invalid overload-time"; | ||||
| description | ||||
| "This field is only used | ||||
| if overloaded is set to | ||||
| true. Otherwise, it is | ||||
| not used and MUST be | ||||
| set to zero."; | ||||
| } | ||||
| description | ||||
| "The interval of time that is | ||||
| remaining until the local PCEP | ||||
| entity will cease to be | ||||
| overloaded on this session."; | ||||
| } | ||||
| leaf peer-overloaded { | ||||
| type boolean; | ||||
| description | ||||
| "If the peer has informed the | ||||
| local PCEP entity that it is | ||||
| currently overloaded, then | ||||
| this is set to true. | ||||
| Otherwise, it is set to | ||||
| false."; | ||||
| } | ||||
| leaf peer-overload-time { | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| must "((../peer-overloaded = " + | ||||
| "true()) or " + | ||||
| "((../peer-overloaded !=" + | ||||
| "true())" + | ||||
| " and " + | ||||
| "(. = 0)))" { | ||||
| error-message | ||||
| "Invalid peer overload | ||||
| time"; | ||||
| description | ||||
| "This field is only used | ||||
| if peer-overloaded is | ||||
| set to true. Otherwise, | ||||
| it is not used and MUST | ||||
| be set to zero."; | ||||
| } | ||||
| description | ||||
| "The interval of time that is | ||||
| remaining until the peer will | ||||
| cease to be overloaded. If it | ||||
| is not known how long the peer | ||||
| will stay in overloaded state, | ||||
| this leaf is set to zero."; | ||||
| } | ||||
| leaf lspdb-sync { | ||||
| if-feature stateful; | ||||
| type sync-state; | ||||
| description | ||||
| "The LSP-DB state | ||||
| synchronization status."; | ||||
| } | ||||
| leaf recv-db-ver{ | ||||
| when "../role = 'pcc'" + | ||||
| "or " + | ||||
| "../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as | ||||
| PCC"; | ||||
| } | ||||
| if-feature stateful; | ||||
| if-feature stateful-sync-opt; | ||||
| type uint64; | ||||
| description | ||||
| "The last received LSP State | ||||
| Database Version Number"; | ||||
| } | ||||
| container of-list{ | ||||
| when "../role = 'pce'" + | ||||
| "or " + | ||||
| "../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as | ||||
| PCE"; | ||||
| } | ||||
| if-feature objective-function; | ||||
| uses of-list; | ||||
| description | ||||
| "Indicate the list of supported | ||||
| OF on this session"; | ||||
| } | ||||
| container pst-list{ | ||||
| when "../role = 'pce'" + | ||||
| "or " + | ||||
| "../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as | ||||
| PCE"; | ||||
| } | ||||
| uses pst-list; | ||||
| description | ||||
| "Indicate the list of supported | ||||
| PST on this session"; | ||||
| } | ||||
| container assoc-type-list{ | ||||
| if-feature association; | ||||
| uses assoc-type-list; | ||||
| description | leaf peer-keepalive-timer { | |||
| "Indicate the list of supported | type uint8; | |||
| association types on this session"; | units "seconds"; | |||
| } | must "(../state = 'session-up'" + | |||
| "or " + | ||||
| "(../state != 'session-up'" + | ||||
| "and " + | ||||
| "(. = 0)))" { | ||||
| error-message | ||||
| "Invalid Peer keepalive timer"; | ||||
| description | ||||
| "This field is used if and only if state is | ||||
| session-up. Otherwise, it is not used and MUST | ||||
| be set to zero."; | ||||
| } | ||||
| description | ||||
| "The agreed maximum interval at which the peer | ||||
| transmits PCEP messages on this PCEP session. | ||||
| Zero means that the peer never sends Keepalives | ||||
| on this session."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf speaker-entity-id{ | leaf dead-timer { | |||
| if-feature stateful-sync-opt; | type uint8; | |||
| type string; | units "seconds"; | |||
| description | description | |||
| "The Speaker Entity Identifier"; | "The dead timer interval for this PCEP session."; | |||
| } | reference | |||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf discontinuity-time { | leaf peer-dead-timer { | |||
| type yang:timestamp; | type uint8; | |||
| description | units "seconds"; | |||
| "The timestamp value of the | must "((../state != 'tcp-pending'" + | |||
| time when the statistics were | "and " + | |||
| last reset."; | "../state != 'open-wait' )" + | |||
| } | "or " + | |||
| } // session | "((../state = 'tcp-pending'" + | |||
| } // sessions | " or " + | |||
| } | "../state = 'open-wait' )" + | |||
| /* | "and " + | |||
| * Configuration data nodes | "(. = 0)))" { | |||
| */ | error-message | |||
| "Invalid Peer Dead timer"; | ||||
| description | ||||
| "If state is tcp-pending or open-wait then this | ||||
| leaf is not used and MUST be set to zero."; | ||||
| } | ||||
| description | ||||
| "The peer's dead-timer interval | ||||
| for this PCEP session."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| container pcep{ | leaf ka-hold-time-rem { | |||
| type uint8; | ||||
| units "seconds"; | ||||
| must "((../state != 'tcp-pending'" + | ||||
| "and " + | ||||
| "../state != 'open-wait' ) " + | ||||
| "or " + | ||||
| "((../state = 'tcp-pending'" + | ||||
| "or " + | ||||
| "../state = 'open-wait' )" + | ||||
| "and " + | ||||
| "(. = 0)))" { | ||||
| error-message | ||||
| "Invalid Keepalive hold time remaining"; | ||||
| description | ||||
| "If state is tcp-pending or open-wait then this | ||||
| field is not used and MUST be set to zero."; | ||||
| } | ||||
| description | ||||
| "The keep alive hold time remaining for this | ||||
| session."; | ||||
| } | ||||
| leaf overloaded { | ||||
| type boolean; | ||||
| description | ||||
| "If the local PCEP entity has informed the peer that | ||||
| it is currently overloaded, then this is set to true. | ||||
| presence | Otherwise, it is set to false."; | |||
| "The PCEP is enabled"; | reference | |||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf overload-time { | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| must "((../overloaded = true()) " + | ||||
| "or ((../overloaded != true()) " + | ||||
| "and (. = 0)))" { | ||||
| error-message | ||||
| "Invalid overload-time"; | ||||
| description | ||||
| "This field is only used if overloaded is set to | ||||
| true. Otherwise, it is not used and MUST be set | ||||
| to zero."; | ||||
| } | ||||
| description | ||||
| "The interval of time that is remaining until the | ||||
| local PCEP entity will cease to be overloaded on | ||||
| this session."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf peer-overloaded { | ||||
| type boolean; | ||||
| description | ||||
| "If the peer has informed the local PCEP entity | ||||
| that it is currently overloaded, then this is | ||||
| set to true. Otherwise, it is set to false."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| description | leaf peer-overload-time { | |||
| "Parameters for list of configured PCEP entities | type uint32; | |||
| on the device."; | units "seconds"; | |||
| must "((../peer-overloaded = " + | ||||
| "true()) or " + | ||||
| "((../peer-overloaded !=" + | ||||
| "true())" + | ||||
| " and " + | ||||
| "(. = 0)))" { | ||||
| error-message | ||||
| "Invalid peer overload time"; | ||||
| description | ||||
| "This field is only used if peer-overloaded | ||||
| is set to true. Otherwise, it is not used | ||||
| and MUST be set to zero."; | ||||
| } | ||||
| description | ||||
| "The interval of time that is remaining until | ||||
| the peer will cease to be overloaded. If it | ||||
| is not known how long the peer will stay in | ||||
| overloaded state, this leaf is set to zero."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf lspdb-sync { | ||||
| if-feature stateful; | ||||
| type sync-state; | ||||
| description | ||||
| "The LSP-DB state synchronization status."; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication | ||||
| Protocol (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| container entity { | leaf recv-db-ver{ | |||
| when "../role = 'pcc'" + | ||||
| "or " + | ||||
| "../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "This field is applicable when the role is | ||||
| PCC"; | ||||
| } | ||||
| description | if-feature stateful; | |||
| "The configured PCEP entity on the device."; | if-feature sync-opt; | |||
| leaf addr { | type uint64; | |||
| type inet:ip-address; | ||||
| mandatory true; | ||||
| description | ||||
| "The local Internet address of this PCEP | ||||
| entity. | ||||
| If operating as a PCE server, the PCEP | ||||
| entity listens on this address. | ||||
| If operating as a PCC, the PCEP entity | ||||
| binds outgoing TCP connections to this | ||||
| address. | ||||
| It is possible for the PCEP entity to | ||||
| operate both as a PCC and a PCE Server, in | ||||
| which case it uses this address both to | ||||
| listen for incoming TCP connections and to | ||||
| bind outgoing TCP connections."; | ||||
| } | ||||
| leaf enabled { | description | |||
| type boolean; | "The last received LSP State Database Version | |||
| default true; | Number"; | |||
| description | reference | |||
| "The administrative status of this PCEP | "RFC 8231: Path Computation Element Communication | |||
| Entity."; | Protocol (PCEP) Extensions for Stateful PCE"; | |||
| } | } | |||
| container of-list{ | ||||
| when "../role = 'pce'" + | ||||
| "or " + | ||||
| "../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "These fields are applicable when the role is | ||||
| PCE"; | ||||
| } | ||||
| if-feature objective-function; | ||||
| leaf role { | uses of-list; | |||
| type pcep-role; | ||||
| mandatory true; | ||||
| description | ||||
| "The role that this entity can play. | ||||
| Takes one of the following values. | ||||
| - unknown(0): this PCEP Entity role is not | ||||
| known. | ||||
| - pcc(1): this PCEP Entity is a PCC. | description | |||
| - pce(2): this PCEP Entity is a PCE. | "Indicate the list of supported OF on this | |||
| - pcc-and-pce(3): this PCEP Entity is both | session"; | |||
| a PCC and a PCE."; | reference | |||
| } | "RFC 5541: Encoding of Objective Functions in | |||
| the Path Computation Element Communication | ||||
| Protocol (PCEP)"; | ||||
| leaf description { | } | |||
| type string; | ||||
| description | ||||
| "Description of the PCEP entity configured | ||||
| by the user"; | ||||
| } | ||||
| leaf speaker-entity-id{ | container pst-list{ | |||
| if-feature stateful-sync-opt; | when "../role = 'pce'" + | |||
| type string; | "or " + | |||
| description | "../role = 'pcc-and-pce'" | |||
| "The Speaker Entity Identifier"; | { | |||
| } | description | |||
| "These fields are applicable when the role is | ||||
| PCE"; | ||||
| } | ||||
| description | ||||
| "Indicate the list of supported | ||||
| PST on this session"; | ||||
| reference | ||||
| "RFC 8408: Conveying Path Setup Type in PCE | ||||
| Communication Protocol (PCEP) Messages"; | ||||
| leaf admin-status { | list path-setup-type{ | |||
| type pcep-admin-status; | key "pst"; | |||
| description | ||||
| "The administrative status of this PCEP Entity. | ||||
| This is the desired operational status as | ||||
| currently set by an operator or by default in | ||||
| the implementation. The value of enabled | ||||
| represents the current status of an attempt | ||||
| to reach this desired status."; | ||||
| } | ||||
| leaf index{ | description | |||
| type uint32; | "The list of authorized PST"; | |||
| config "false"; | ||||
| description | ||||
| "The index of the operational PECP entity"; | ||||
| } | ||||
| leaf oper-status { | leaf pst { | |||
| type pcep-oper-status; | type identityref{ | |||
| config "false"; | base te-types:path-signaling-type; | |||
| description | } | |||
| "The operational status of the PCEP entity. | description | |||
| Takes one of the following values. | "The PST authorized"; | |||
| - oper-status-up(1): the PCEP entity is active. | } | |||
| - oper-status-down(2): the PCEP entity is inactive. | } | |||
| - oper-status-going-up(3): the PCEP entity is | } | |||
| activating. | container assoc-type-list{ | |||
| if-feature association; | ||||
| description | ||||
| "Indicate the list of supported association types | ||||
| on this session"; | ||||
| reference | ||||
| "I-D.ietf-pce-association-group: PCEP | ||||
| Extensions for Establishing Relationships | ||||
| Between Sets of LSPs"; | ||||
| - oper-status-going-down(4): the PCEP entity is | list assoc-type{ | |||
| deactivating. | key "at"; | |||
| - oper-status-failed(5): the PCEP entity has | ||||
| failed and will recover when possible. | ||||
| - oper-status-failed-perm(6): the PCEP entity | ||||
| has failed and will not recover without | ||||
| operator intervention."; | ||||
| } | ||||
| uses info { | description | |||
| description | "The list of authorized association types"; | |||
| "Local PCEP entity information"; | ||||
| } | ||||
| container pce-info { | leaf at { | |||
| when "../role = 'pce'" + | type identityref { | |||
| "or " + | base te-types:association-type; | |||
| "../role = 'pcc-and-pce'" | } | |||
| { | description | |||
| description | "The association type authorized"; | |||
| "Valid at PCE"; | } | |||
| } | } | |||
| uses pce-info { | } | |||
| description | leaf speaker-entity-id{ | |||
| "Local PCE information"; | if-feature sync-opt; | |||
| } | type string; | |||
| container path-key { | description | |||
| if-feature path-key; | "The Speaker Entity Identifier"; | |||
| uses path-key { | reference | |||
| description | "RFC 8232: Optimizations of Label Switched | |||
| "Path-Key Configuration"; | Path State Synchronization Procedures for | |||
| } | a Stateful PCE"; | |||
| description | } | |||
| "Path-Key Configuration"; | ||||
| } | ||||
| description | leaf discontinuity-time { | |||
| "The Local PCE Entity PCE information"; | type yang:timestamp; | |||
| } | description | |||
| "The timestamp value of the time when the | ||||
| statistics were last reset."; | ||||
| } | ||||
| } // session | ||||
| } // sessions | ||||
| uses pcep-entity-info { | }//peer | |||
| description | }//peers | |||
| "The configuration related to the PCEP | }//entity | |||
| entity."; | }//pcep | |||
| } | ||||
| leaf pcep-notification-max-rate { | /* | |||
| type uint32; | * Notifications | |||
| mandatory true; | */ | |||
| description | notification pcep-session-up { | |||
| "This variable indicates the maximum number of | description | |||
| notifications issued per second. If events | "This notification is sent when the value of | |||
| occur more rapidly, the implementation may | '/pcep/peers/peer/sessions/session/state' | |||
| simply fail to emit these notifications during | enters the 'session-up' state."; | |||
| that period, or may queue them until an | ||||
| appropriate time. A value of 0 means no | ||||
| notifications are emitted and all should be | ||||
| discarded (that is, not queued)."; | ||||
| } | ||||
| container stateful-parameter{ | uses notification-instance-hdr; | |||
| if-feature stateful; | ||||
| must "(/pcep/entity/capability/stateful/enabled" + | ||||
| " = true())" | ||||
| { | ||||
| error-message | ||||
| "The Stateful PCE must be enabled"; | ||||
| description | ||||
| "When PCEP entity is stateful | ||||
| enabled"; | ||||
| } | ||||
| uses stateful-pce-parameter; | ||||
| description | uses notification-session-hdr; | |||
| "The configured stateful parameters"; | ||||
| } | ||||
| container of-list{ | ||||
| when "../role = 'pce'" + | ||||
| "or " + | ||||
| "../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid at PCE"; | ||||
| } | ||||
| if-feature objective-function; | ||||
| uses of-list; | leaf state-last-change { | |||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value at the time this session | ||||
| entered its current state as denoted by the state | ||||
| leaf."; | ||||
| } | ||||
| description | leaf state { | |||
| "The authorized OF-List at PCE for all peers"; | type pcep-sess-state; | |||
| } | description | |||
| "The current state of the session. | ||||
| The set of possible states excludes the idle state | ||||
| since entries do not exist in the idle state."; | ||||
| } | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } //notification | ||||
| container lsp-db{ | notification pcep-session-down { | |||
| if-feature stateful; | description | |||
| config false; | "This notification is sent when the value of | |||
| description | '/pcep/peers/peer/sessions/session/state' | |||
| "The LSP-DB"; | leaves the 'session-up' state."; | |||
| leaf db-ver{ | ||||
| when "../../role = 'pcc'" + | ||||
| "or " + | ||||
| "../../role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid at PCC"; | ||||
| } | ||||
| if-feature stateful-sync-opt; | ||||
| type uint64; | ||||
| description | ||||
| "The LSP State Database Version Number"; | ||||
| } | ||||
| list association-list { | ||||
| if-feature association; | ||||
| key "type id source global-source extended-id"; | ||||
| description | ||||
| "List of all PCEP associations"; | ||||
| uses association { | ||||
| description | ||||
| "The Association attributes"; | ||||
| } | ||||
| list lsp { | ||||
| key "plsp-id pcc-id"; | ||||
| description | ||||
| "List of all LSP in this association"; | ||||
| leaf plsp-id { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "lsp/plsp-id"; | ||||
| } | ||||
| description | ||||
| "Reference to PLSP-ID in LSP-DB"; | ||||
| } | ||||
| leaf pcc-id { | ||||
| type leafref { | ||||
| path "/pcep/entity/lsp-db/" | ||||
| + "lsp/pcc-id"; | ||||
| } | ||||
| description | ||||
| "Reference to PCC-ID in LSP-DB"; | ||||
| } | ||||
| } | ||||
| } | ||||
| list lsp { | ||||
| key "plsp-id pcc-id"; | ||||
| description | ||||
| "List of all LSPs in LSP-DB"; | ||||
| uses lsp-state { | ||||
| description | ||||
| "The PCEP specific attributes for | ||||
| LSP-DB."; | ||||
| } | ||||
| list association-list { | ||||
| if-feature association; | ||||
| key "type id source global-source extended-id"; | ||||
| description | ||||
| "List of all PCEP associations"; | ||||
| uses association-ref { | ||||
| description | ||||
| "Reference to the Association | ||||
| attributes"; | ||||
| } | ||||
| } | ||||
| } | uses notification-instance-hdr; | |||
| } | ||||
| container path-keys { | leaf session-initiator { | |||
| when "../role = 'pce' or ../role = 'pcc-and-pce'" { | type pcep-initiator; | |||
| description | description | |||
| "Valid at PCE"; | "The initiator of the session."; | |||
| } | } | |||
| if-feature path-key; | ||||
| config false; | ||||
| uses path-key-state; | ||||
| description | ||||
| "The path-keys generated by the PCE"; | ||||
| } | ||||
| container peers{ | leaf state-last-change { | |||
| description | type yang:timestamp; | |||
| "The list of configured peers for the | description | |||
| entity (remote PCE)"; | "The timestamp value at the time this session | |||
| list peer{ | entered its current state as denoted by the state | |||
| key "addr"; | leaf."; | |||
| } | ||||
| description | leaf state { | |||
| "The peer configured for the entity. | type pcep-sess-state; | |||
| (remote PCE)"; | description | |||
| "The current state of the session. | ||||
| The set of possible states excludes the idle state | ||||
| since entries do not exist in the idle state."; | ||||
| } | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } //notification | ||||
| leaf addr { | notification pcep-session-local-overload { | |||
| type inet:ip-address; | description | |||
| description | "This notification is sent when the local PCEP entity | |||
| "The local Internet address of this | enters overload state for a peer."; | |||
| PCEP peer."; | ||||
| } | ||||
| leaf role { | uses notification-instance-hdr; | |||
| type pcep-role; | ||||
| mandatory true; | ||||
| description | ||||
| "The role of the PCEP Peer. | ||||
| Takes one of the following values. | ||||
| - unknown(0): this PCEP peer role is not | ||||
| known. | ||||
| - pcc(1): this PCEP peer is a PCC. | ||||
| - pce(2): this PCEP peer is a PCE. | ||||
| - pcc-and-pce(3): this PCEP peer | ||||
| is both a PCC and a PCE."; | ||||
| } | ||||
| leaf description { | uses notification-session-hdr; | |||
| type string; | ||||
| description | ||||
| "Description of the PCEP peer | ||||
| configured by the user"; | ||||
| } | ||||
| uses info { | ||||
| description | ||||
| "PCE Peer information"; | ||||
| } | ||||
| container pce-info { | leaf overloaded { | |||
| uses pce-info { | type boolean; | |||
| description | description | |||
| "PCE Peer information"; | "If the local PCEP entity has informed the peer | |||
| } | that it is currently overloaded, then this is set | |||
| description | to true. Otherwise, it is set to false."; | |||
| "The PCE Peer information"; | } | |||
| } | ||||
| leaf delegation-pref{ | leaf overload-time { | |||
| if-feature stateful; | type uint32; | |||
| type uint8{ | units "seconds"; | |||
| range "0..7"; | description | |||
| } | "The interval of time that is remaining until the | |||
| must "(/pcep/entity/capability/stateful" + | local PCEP entity will cease to be overloaded on | |||
| "/active = true())" | this session."; | |||
| { | ||||
| error-message | ||||
| "The Active Stateful PCE must be | ||||
| enabled"; | ||||
| description | } | |||
| "When PCEP entity is active stateful | reference | |||
| enabled"; | "RFC 5440: Path Computation Element (PCE) Communication | |||
| } | Protocol (PCEP)"; | |||
| description | } //notification | |||
| "The PCE peer delegation preference."; | ||||
| } | ||||
| uses authentication { | ||||
| description | ||||
| "PCE Peer authentication"; | ||||
| } | ||||
| leaf discontinuity-time { | ||||
| type yang:timestamp; | ||||
| config false; | ||||
| description | ||||
| "The timestamp of the time when the | ||||
| information and statistics were last | ||||
| reset."; | ||||
| } | ||||
| leaf initiate-session { | notification pcep-session-local-overload-clear { | |||
| type boolean; | description | |||
| config false; | "This notification is sent when the local PCEP entity | |||
| description | leaves overload state for a peer."; | |||
| "Indicates whether the local PCEP | ||||
| entity initiates sessions to this peer, | ||||
| or waits for the peer to initiate a | ||||
| session."; | ||||
| } | ||||
| leaf session-exists{ | uses notification-instance-hdr; | |||
| type boolean; | ||||
| config false; | ||||
| description | ||||
| "Indicates whether a session with | ||||
| this peer currently exists."; | ||||
| } | ||||
| leaf session-up-time{ | leaf overloaded { | |||
| type yang:timestamp; | type boolean; | |||
| config false; | description | |||
| description | "If the local PCEP entity has informed the peer | |||
| "The timestamp value of the last time a | that it is currently overloaded, then this is set | |||
| session with this peer was successfully | to true. Otherwise, it is set to false."; | |||
| established."; | } | |||
| } | reference | |||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } //notification | ||||
| leaf session-fail-time{ | notification pcep-session-peer-overload { | |||
| type yang:timestamp; | description | |||
| config false; | "This notification is sent when a peer enters overload | |||
| description | state."; | |||
| "The timestamp value of the last time a | ||||
| session with this peer failed to be | ||||
| established."; | ||||
| } | ||||
| leaf session-fail-up-time{ | uses notification-instance-hdr; | |||
| type yang:timestamp; | ||||
| config false; | ||||
| description | ||||
| "The timestamp value of the last time a | ||||
| session with this peer failed from | ||||
| active."; | ||||
| } | ||||
| uses session-grouping { | uses notification-session-hdr; | |||
| description | ||||
| "session information"; | ||||
| } | ||||
| }//peer | ||||
| }//peers | ||||
| }//entity | ||||
| }//pcep | ||||
| /* | leaf peer-overloaded { | |||
| * Notifications | type boolean; | |||
| */ | description | |||
| notification pcep-session-up { | "If the peer has informed the local PCEP entity that | |||
| description | it is currently overloaded, then this is set to | |||
| "This notification is sent when the value of | true. Otherwise, it is set to false."; | |||
| '/pcep/peers/peer/sessions/session/state' | } | |||
| enters the 'session-up' state."; | ||||
| uses notification-instance-hdr; | leaf peer-overload-time { | |||
| type uint32; | ||||
| units "seconds"; | ||||
| description | ||||
| "The interval of time that is remaining until the | ||||
| peer will cease to be overloaded. If it is not | ||||
| known how long the peer will stay in overloaded | ||||
| state, this leaf is set to zero."; | ||||
| } | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } //notification | ||||
| uses notification-session-hdr; | notification pcep-session-peer-overload-clear { | |||
| description | ||||
| "This notification is sent when a peer leaves overload | ||||
| state."; | ||||
| leaf state-last-change { | uses notification-instance-hdr; | |||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value at the time this session | ||||
| entered its current state as denoted by the state | ||||
| leaf."; | ||||
| } | ||||
| leaf state { | leaf peer-overloaded { | |||
| type pcep-sess-state; | type boolean; | |||
| description | description | |||
| "The current state of the session. | "If the peer has informed the local PCEP entity that | |||
| The set of possible states excludes the idle state | it is currently overloaded, then this is set to | |||
| since entries do not exist in the idle state."; | true. Otherwise, it is set to false."; | |||
| } | } | |||
| } //notification | reference | |||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } //notification | ||||
| notification pcep-session-down { | /* | |||
| description | * RPC | |||
| "This notification is sent when the value of | */ | |||
| '/pcep/peers/peer/sessions/session/state' | ||||
| leaves the 'session-up' state."; | ||||
| uses notification-instance-hdr; | rpc trigger-resync { | |||
| if-feature stateful; | ||||
| if-feature sync-opt; | ||||
| description | ||||
| "Trigger the resyncrinization at the PCE"; | ||||
| reference | ||||
| "RFC 8232: Optimizations of Label Switched Path State | ||||
| Synchronization Procedures for a Stateful PCE"; | ||||
| input { | ||||
| leaf pcc { | ||||
| type leafref { | ||||
| path "/pcep/entity/peers/peer/addr"; | ||||
| } | ||||
| description | ||||
| "The IP address to identify the PCC. The state | ||||
| syncronization is re-triggered for all LSPs from | ||||
| the PCC. The rpc on the PCC will be ignored."; | ||||
| leaf session-initiator { | } | |||
| type pcep-initiator; | }//input | |||
| description | }//rpc | |||
| "The initiator of the session."; | ||||
| } | ||||
| leaf state-last-change { | }//module | |||
| type yang:timestamp; | <CODE ENDS> | |||
| description | ||||
| "The timestamp value at the time this session | ||||
| entered its current state as denoted by the state | ||||
| leaf."; | ||||
| } | ||||
| leaf state { | 10.2. ietf-pcep-stats module | |||
| type pcep-sess-state; | ||||
| description | ||||
| "The current state of the session. | ||||
| The set of possible states excludes the idle state | ||||
| since entries do not exist in the idle state."; | ||||
| } | ||||
| } //notification | ||||
| notification pcep-session-local-overload { | <CODE BEGINS> file "ietf-pcep-stats@2019-03-24.yang" | |||
| description | module ietf-pcep-stats { | |||
| "This notification is sent when the local PCEP entity | ||||
| enters overload state for a peer."; | ||||
| uses notification-instance-hdr; | yang-version 1.1; | |||
| uses notification-session-hdr; | namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; | |||
| leaf overloaded { | ||||
| type boolean; | ||||
| description | ||||
| "If the local PCEP entity has informed the peer | ||||
| that it is currently overloaded, then this is set | ||||
| to true. Otherwise, it is set to false."; | ||||
| } | ||||
| leaf overload-time { | prefix ps; | |||
| type uint32; | ||||
| units "seconds"; | ||||
| description | ||||
| "The interval of time that is remaining until the | ||||
| local PCEP entity will cease to be overloaded on | ||||
| this session."; | ||||
| } | ||||
| } //notification | ||||
| notification pcep-session-local-overload-clear { | import ietf-pcep { | |||
| description | prefix p; | |||
| "This notification is sent when the local PCEP entity | reference | |||
| leaves overload state for a peer."; | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol (PCEP)"; | ||||
| } | ||||
| uses notification-instance-hdr; | import ietf-yang-types { | |||
| prefix "yang"; | ||||
| reference | ||||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| leaf overloaded { | organization | |||
| type boolean; | "IETF PCE (Path Computation Element) Working Group"; | |||
| description | ||||
| "If the local PCEP entity has informed the peer | ||||
| that it is currently overloaded, then this is set | ||||
| to true. Otherwise, it is set to false."; | ||||
| } | ||||
| } //notification | ||||
| notification pcep-session-peer-overload { | contact | |||
| description | "WG Web: <http://tools.ietf.org/wg/pce/> | |||
| "This notification is sent when a peer enters overload | WG List: <mailto:pce@ietf.org> | |||
| state."; | Editor: Dhruv Dhody | |||
| <mailto:dhruv.ietf@gmail.com>"; | ||||
| uses notification-instance-hdr; | description | |||
| "The YANG module augments the PCEP yang operational | ||||
| model with statistics, counters and telemetry data. | ||||
| uses notification-session-hdr; | Copyright (c) 2019 IETF Trust and the persons identified as | |||
| leaf peer-overloaded { | authors of the code. All rights reserved. | |||
| type boolean; | ||||
| description | ||||
| "If the peer has informed the local PCEP entity that | ||||
| it is currently overloaded, then this is set to | ||||
| true. Otherwise, it is set to false."; | ||||
| } | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info). | ||||
| leaf peer-overload-time { | This version of this YANG module is part of RFC XXXX; see the | |||
| type uint32; | RFC itself for full legal notices."; | |||
| units "seconds"; | ||||
| description | ||||
| "The interval of time that is remaining until the | ||||
| peer will cease to be overloaded. If it is not | ||||
| known how long the peer will stay in overloaded | ||||
| state, this leaf is set to zero."; | ||||
| } | ||||
| } //notification | ||||
| notification pcep-session-peer-overload-clear { | revision 2019-03-24 { | |||
| description | description "Initial revision."; | |||
| "This notification is sent when a peer leaves overload | reference | |||
| state."; | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol (PCEP)"; | ||||
| } | ||||
| uses notification-instance-hdr; | /* | |||
| * Groupings | ||||
| */ | ||||
| leaf peer-overloaded { | grouping pcep-stats{ | |||
| type boolean; | description | |||
| description | "This grouping defines statistics for PCEP. It is used | |||
| "If the peer has informed the local PCEP entity that | for both peer and current session."; | |||
| it is currently overloaded, then this is set to | leaf avg-rsp-time{ | |||
| true. Otherwise, it is set to false."; | when "../../p:role = 'pce'" + | |||
| } | "or " + | |||
| } //notification | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type uint32; | ||||
| units "milliseconds"; | ||||
| /* | description | |||
| * RPC | "The average response time. If an average response time | |||
| */ | has not been calculated then this leaf has the value | |||
| zero."; | ||||
| } | ||||
| rpc trigger-resync { | leaf lwm-rsp-time{ | |||
| if-feature stateful; | when "../../p:role = 'pce'" + | |||
| if-feature stateful-sync-opt; | "or " + | |||
| description | "../../p:role = 'pcc-and-pce'" | |||
| "Trigger the resyncrinization at the PCE"; | { | |||
| input { | description | |||
| leaf pcc { | "Valid for PCEP Peer as PCE"; | |||
| type leafref { | } | |||
| path "/pcep/entity/peers/peer/addr"; | type uint32; | |||
| } | units "milliseconds"; | |||
| description | ||||
| "The IP address to identify the PCC. The state | ||||
| syncronization is re-triggered for all LSPs from | ||||
| the PCC. The rpc on the PCC will be ignored."; | ||||
| } | ||||
| } | description | |||
| }//rpc | "The smallest (low-water mark) response time seen. | |||
| If no responses have been received then this leaf has | ||||
| the value zero."; | ||||
| } | ||||
| }//module | leaf hwm-rsp-time{ | |||
| when "../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type uint32; | ||||
| units "milliseconds"; | ||||
| <CODE ENDS> | description | |||
| "The greatest (high-water mark) response time seen. | ||||
| If no responses have been received then this object | ||||
| has the value zero."; | ||||
| } | ||||
| 10.2. ietf-pcep-stats module | leaf num-pcreq-sent{ | |||
| when "../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCReq messages sent."; | ||||
| } | ||||
| <CODE BEGINS> file "ietf-pcep-stats@2018-10-15.yang" | leaf num-pcreq-rcvd{ | |||
| module ietf-pcep-stats { | when "../../p:role = 'pcc'" + | |||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| yang-version 1.1; | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCReq messages received."; | ||||
| } | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; | leaf num-pcrep-sent{ | |||
| when "../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| prefix ps; | type yang:counter32; | |||
| description | ||||
| "The number of PCRep messages sent."; | ||||
| } | ||||
| import ietf-pcep { | leaf num-pcrep-rcvd{ | |||
| prefix p; | when "../../p:role = 'pce'" + | |||
| reference "RFC XXXX"; | "or " + | |||
| } | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| import ietf-yang-types { | type yang:counter32; | |||
| prefix "yang"; | description | |||
| reference "RFC 6991"; | "The number of PCRep messages received."; | |||
| } | } | |||
| organization | leaf num-pcerr-sent{ | |||
| "IETF PCE (Path Computation Element) Working Group"; | type yang:counter32; | |||
| description | ||||
| "The number of PCErr messages sent."; | ||||
| } | ||||
| contact | leaf num-pcerr-rcvd{ | |||
| "WG Web: <http://tools.ietf.org/wg/pce/> | type yang:counter32; | |||
| WG List: <mailto:pce@ietf.org> | description | |||
| Editor: Dhruv Dhody | "The number of PCErr messages received."; | |||
| <mailto:dhruv.ietf@gmail.com>"; | } | |||
| description | leaf num-pcntf-sent{ | |||
| "The YANG module augments the PCEP yang operational | type yang:counter32; | |||
| model with statistics, counters and telemetry data. | description | |||
| "The number of PCNtf messages sent."; | ||||
| } | ||||
| Copyright (c) 2018 IETF Trust and the persons identified as | leaf num-pcntf-rcvd{ | |||
| authors of the code. All rights reserved. | type yang:counter32; | |||
| description | ||||
| "The number of PCNtf messages received."; | ||||
| } | ||||
| Redistribution and use in source and binary forms, with or | leaf num-keepalive-sent{ | |||
| without modification, is permitted pursuant to, and subject | type yang:counter32; | |||
| to the license terms contained in, the Simplified BSD License | description | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | "The number of Keepalive messages sent."; | |||
| Relating to IETF Documents | } | |||
| (http://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see the | leaf num-keepalive-rcvd{ | |||
| RFC itself for full legal notices."; | type yang:counter32; | |||
| description | ||||
| "The number of Keepalive messages received."; | ||||
| } | ||||
| revision 2018-10-15 { | leaf num-unknown-rcvd{ | |||
| description "Initial revision."; | type yang:counter32; | |||
| reference | description | |||
| "RFC XXXX: A YANG Data Model for Path Computation | "The number of unknown messages received."; | |||
| Element Communications Protocol | } | |||
| (PCEP)"; | ||||
| } | ||||
| /* | leaf num-corrupt-rcvd{ | |||
| * Groupings | type yang:counter32; | |||
| */ | description | |||
| "The number of corrupted PCEP message received."; | ||||
| } | ||||
| grouping pcep-stats{ | leaf num-req-sent{ | |||
| when "../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "This grouping defines statistics for PCEP. It is used | "The number of requests sent. A request corresponds | |||
| for both peer and current session."; | 1:1 with an RP object in a PCReq message. This might | |||
| leaf avg-rsp-time{ | be greater than num-pcreq-sent because multiple | |||
| when "../../p:role = 'pce'" + | requests can be batched into a single PCReq | |||
| "or " + | message."; | |||
| "../../p:role = 'pcc-and-pce'" | } | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type uint32; | ||||
| units "milliseconds"; | ||||
| description | leaf num-req-sent-pend-rep{ | |||
| "The average response time. | when "../../p:role = 'pce'" + | |||
| If an average response time has not been | "or " + | |||
| calculated then this leaf has the value zero."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that have been sent for | ||||
| which a response is still pending."; | ||||
| } | ||||
| leaf lwm-rsp-time{ | leaf num-req-sent-ero-rcvd{ | |||
| when "../../p:role = 'pce'" + | when "../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | description | |||
| "Valid for PCEP Peer as PCE"; | "Valid for PCEP Peer as PCE"; | |||
| } | } | |||
| type uint32; | type yang:counter32; | |||
| units "milliseconds"; | description | |||
| "The number of requests that have been sent for | ||||
| which a response with an ERO object was received. | ||||
| Such responses indicate that a path was | ||||
| successfully computed by the peer."; | ||||
| } | ||||
| description | leaf num-req-sent-nopath-rcvd{ | |||
| "The smallest (low-water mark) response time seen. | when "../../p:role = 'pce'" + | |||
| If no responses have been received then this | "or " + | |||
| leaf has the value zero."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that have been sent for | ||||
| which a response with a NO-PATH object was | ||||
| received. Such responses indicate that the peer | ||||
| could not find a path to satisfy the | ||||
| request."; | ||||
| leaf hwm-rsp-time{ | } | |||
| when "../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type uint32; | ||||
| units "milliseconds"; | ||||
| description | leaf num-req-sent-cancel-rcvd{ | |||
| "The greatest (high-water mark) response time seen. | when "../../p:role = 'pce'" + | |||
| If no responses have been received then this object | "or " + | |||
| has the value zero."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that were cancelled with | ||||
| a PCNtf message. This might be different than | ||||
| num-pcntf-rcvd because not all PCNtf messages are | ||||
| used to cancel requests, and a single PCNtf message | ||||
| can cancel multiple requests."; | ||||
| } | ||||
| leaf num-pcreq-sent{ | leaf num-req-sent-error-rcvd{ | |||
| when "../../p:role = 'pce'" + | when "../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | description | |||
| "Valid for PCEP Peer as PCE"; | "Valid for PCEP Peer as PCE"; | |||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCReq messages sent."; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that were rejected with a | ||||
| PCErr message. This might be different than | ||||
| num-pcerr-rcvd because not all PCErr messages are | ||||
| used to reject requests, and a single PCErr message | ||||
| can reject multiple requests."; | ||||
| } | ||||
| leaf num-pcreq-rcvd{ | leaf num-req-sent-timeout{ | |||
| when "../../p:role = 'pcc'" + | when "../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | description | |||
| "Valid for PCEP Peer as PCC"; | "Valid for PCEP Peer as PCE"; | |||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that have been sent to a peer | ||||
| and have been abandoned because the peer has taken too | ||||
| long to respond to them."; | ||||
| } | ||||
| } | leaf num-req-sent-cancel-sent{ | |||
| type yang:counter32; | when "../../p:role = 'pce'" + | |||
| description | "or " + | |||
| "The number of PCReq messages received."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that were sent to the peer and | ||||
| explicitly cancelled by the local PCEP entity sending | ||||
| a PCNtf."; | ||||
| } | ||||
| leaf num-pcrep-sent{ | leaf num-req-rcvd{ | |||
| when "../../p:role = 'pcc'" + | when "../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | description | |||
| "Valid for PCEP Peer as PCC"; | "Valid for PCEP Peer as PCC"; | |||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests received. A request | ||||
| corresponds 1:1 with an RP object in a PCReq | ||||
| message. | ||||
| This might be greater than num-pcreq-rcvd because | ||||
| multiple requests can be batched into a single | ||||
| PCReq message."; | ||||
| } | ||||
| type yang:counter32; | leaf num-req-rcvd-pend-rep{ | |||
| description | when "../../p:role = 'pcc'" + | |||
| "The number of PCRep messages sent."; | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that have been received for | ||||
| which a response is still pending."; | ||||
| leaf num-pcrep-rcvd{ | } | |||
| when "../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | leaf num-req-rcvd-ero-sent{ | |||
| description | when "../../p:role = 'pcc'" + | |||
| "The number of PCRep messages received."; | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that have been received for | ||||
| which a response with an ERO object was sent. Such | ||||
| responses indicate that a path was successfully | ||||
| computed by the local PCEP entity."; | ||||
| } | ||||
| leaf num-pcerr-sent{ | leaf num-req-rcvd-nopath-sent{ | |||
| type yang:counter32; | when "../../p:role = 'pcc'" + | |||
| description | "or " + | |||
| "The number of PCErr messages sent."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that have been received for | ||||
| which a response with a NO-PATH object was sent. Such | ||||
| responses indicate that the local PCEP entity could | ||||
| not find a path to satisfy the request."; | ||||
| } | ||||
| leaf num-pcerr-rcvd{ | leaf num-req-rcvd-cancel-sent{ | |||
| type yang:counter32; | when "../../p:role = 'pcc'" + | |||
| description | "or " + | |||
| "The number of PCErr messages received."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests received that were cancelled | ||||
| by the local PCEP entity sending a PCNtf message. | ||||
| This might be different than num-pcntf-sent because | ||||
| not all PCNtf messages are used to cancel requests, | ||||
| and a single PCNtf message can cancel multiple | ||||
| requests."; | ||||
| } | ||||
| leaf num-pcntf-sent{ | leaf num-req-rcvd-error-sent{ | |||
| type yang:counter32; | when "../../p:role = 'pcc'" + | |||
| description | "or " + | |||
| "The number of PCNtf messages sent."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests received that were cancelled | ||||
| by the local PCEP entity sending a PCErr message. | ||||
| This might be different than num-pcerr-sent because | ||||
| not all PCErr messages are used to cancel requests, | ||||
| and a single PCErr message can cancel multiple | ||||
| requests."; | ||||
| } | ||||
| leaf num-pcntf-rcvd{ | leaf num-req-rcvd-cancel-rcvd{ | |||
| type yang:counter32; | when "../../p:role = 'pcc'" + | |||
| description | "or " + | |||
| "The number of PCNtf messages received."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| leaf num-keepalive-sent{ | description | |||
| type yang:counter32; | "The number of requests that were received from the | |||
| description | peer and explicitly cancelled by the peer sending | |||
| "The number of Keepalive messages sent."; | a PCNtf."; | |||
| } | ||||
| leaf num-rep-rcvd-unknown{ | ||||
| when "../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of responses to unknown requests | ||||
| received. A response to an unknown request is a | ||||
| response whose RP object does not contain the | ||||
| request ID of any request that is currently | ||||
| outstanding on the session."; | ||||
| } | ||||
| leaf num-keepalive-rcvd{ | leaf num-req-rcvd-unknown{ | |||
| type yang:counter32; | when "../../p:role = 'pcc'" + | |||
| description | "or " + | |||
| "The number of Keepalive messages received."; | "../../p:role = 'pcc-and-pce'" | |||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of unknown requests that have been | ||||
| received. An unknown request is a request | ||||
| whose RP object contains a request ID of zero."; | ||||
| } | ||||
| leaf num-unknown-rcvd{ | container svec{ | |||
| type yang:counter32; | if-feature p:svec; | |||
| description | ||||
| "If synchronized path computation is supported"; | ||||
| leaf num-svec-sent{ | ||||
| when "../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | description | |||
| "The number of unknown messages received."; | "Valid for PCEP Peer as PCE"; | |||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of SVEC objects sent in PCReq messages. | ||||
| An SVEC object represents a set of synchronized | ||||
| requests."; | ||||
| } | } | |||
| leaf num-svec-req-sent{ | ||||
| leaf num-corrupt-rcvd{ | when "../../../p:role = 'pce'" + | |||
| type yang:counter32; | "or " + | |||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | description | |||
| "The number of corrupted PCEP message received."; | "Valid for PCEP Peer as PCE"; | |||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests sent that appeared in one | ||||
| or more SVEC objects."; | ||||
| } | } | |||
| leaf num-req-sent{ | leaf num-svec-rcvd{ | |||
| when "../../p:role = 'pce'" + | when "../../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests sent. A request corresponds | "Valid for PCEP Peer as PCC"; | |||
| 1:1 with an RP object in a PCReq message. This might | } | |||
| be greater than num-pcreq-sent because multiple | type yang:counter32; | |||
| requests can be batched into a single PCReq | description | |||
| message."; | "The number of SVEC objects received in PCReq | |||
| messages. An SVEC object represents a set of | ||||
| synchronized requests."; | ||||
| } | } | |||
| leaf num-req-sent-pend-rep{ | leaf num-svec-req-rcvd{ | |||
| when "../../p:role = 'pce'" + | when "../../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that have been sent for | "Valid for PCEP Peer as PCC"; | |||
| which a response is still pending."; | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests received that appeared | ||||
| in one or more SVEC objects."; | ||||
| } | } | |||
| }//svec | ||||
| leaf num-req-sent-ero-rcvd{ | container stateful{ | |||
| when "../../p:role = 'pce'" + | if-feature p:stateful; | |||
| "or " + | description | |||
| "../../p:role = 'pcc-and-pce'" | "Stateful PCE related statistics"; | |||
| { | leaf num-pcrpt-sent{ | |||
| description | when "../../../p:role = 'pce'" + | |||
| "Valid for PCEP Peer as PCE"; | "or " + | |||
| } | "../../../p:role = 'pcc-and-pce'" | |||
| type yang:counter32; | { | |||
| description | description | |||
| "The number of requests that have been sent for | "Valid for PCEP Peer as PCE"; | |||
| which a response with an ERO object was received. | } | |||
| Such responses indicate that a path was | type yang:counter32; | |||
| successfully computed by the peer."; | description | |||
| "The number of PCRpt messages sent."; | ||||
| } | } | |||
| leaf num-req-sent-nopath-rcvd{ | leaf num-pcrpt-rcvd{ | |||
| when "../../p:role = 'pce'" + | when "../../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that have been sent for | "Valid for PCEP Peer as PCC"; | |||
| which a response with a NO-PATH object was | } | |||
| received. Such responses indicate that the peer | type yang:counter32; | |||
| could not find a path to satisfy the | description | |||
| request."; | "The number of PCRpt messages received."; | |||
| } | } | |||
| leaf num-req-sent-cancel-rcvd{ | leaf num-pcupd-sent{ | |||
| when "../../p:role = 'pce'" + | when "../../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that were cancelled with | "Valid for PCEP Peer as PCC"; | |||
| a PCNtf message. | } | |||
| This might be different than num-pcntf-rcvd because | type yang:counter32; | |||
| not all PCNtf messages are used to cancel requests, | description | |||
| and a single PCNtf message can cancel multiple | "The number of PCUpd messages sent."; | |||
| requests."; | ||||
| } | } | |||
| leaf num-req-sent-error-rcvd{ | leaf num-pcupd-rcvd{ | |||
| when "../../p:role = 'pce'" + | when "../../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that were rejected with a | "Valid for PCEP Peer as PCE"; | |||
| PCErr message. | } | |||
| This might be different than num-pcerr-rcvd because | type yang:counter32; | |||
| not all PCErr messages are used to reject requests, | description | |||
| and a single PCErr message can reject multiple | "The number of PCUpd messages received."; | |||
| requests."; | ||||
| } | } | |||
| leaf num-req-sent-timeout{ | leaf num-rpt-sent{ | |||
| when "../../p:role = 'pce'" + | when "../../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that have been sent to a peer | "Valid for PCEP Peer as PCE"; | |||
| and have been abandoned because the peer has taken too | ||||
| long to respond to them."; | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of LSP Reports sent. A LSP report | ||||
| corresponds 1:1 with an LSP object in a PCRpt | ||||
| message. This might be greater than | ||||
| num-pcrpt-sent because multiple reports can | ||||
| be batched into a single PCRpt message."; | ||||
| } | } | |||
| leaf num-req-sent-cancel-sent{ | leaf num-rpt-rcvd{ | |||
| when "../../p:role = 'pce'" + | when "../../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that were sent to the peer and | "Valid for PCEP Peer as PCC"; | |||
| explicitly cancelled by the local PCEP entity sending | } | |||
| a PCNtf."; | type yang:counter32; | |||
| description | ||||
| "The number of LSP Reports received. A LSP report | ||||
| corresponds 1:1 with an LSP object in a PCRpt | ||||
| message. | ||||
| This might be greater than num-pcrpt-rcvd because | ||||
| multiple reports can be batched into a single | ||||
| PCRpt message."; | ||||
| } | } | |||
| leaf num-req-rcvd{ | leaf num-rpt-rcvd-error-sent{ | |||
| when "../../p:role = 'pcc'" + | when "../../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests received. A request | "Valid for PCEP Peer as PCC"; | |||
| corresponds 1:1 with an RP object in a PCReq | } | |||
| message. | type yang:counter32; | |||
| This might be greater than num-pcreq-rcvd because | description | |||
| multiple requests can be batched into a single | "The number of reports of LSPs received that were | |||
| PCReq message."; | responded by the local PCEP entity by sending a | |||
| PCErr message."; | ||||
| } | } | |||
| leaf num-req-rcvd-pend-rep{ | leaf num-upd-sent{ | |||
| when "../../p:role = 'pcc'" + | when "../../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that have been received for | "Valid for PCEP Peer as PCC"; | |||
| which a response is still pending."; | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of LSP updates sent. A LSP update | ||||
| corresponds 1:1 with an LSP object in a PCUpd | ||||
| message. This might be greater than | ||||
| num-pcupd-sent because multiple updates can | ||||
| be batched into a single PCUpd message."; | ||||
| } | } | |||
| leaf num-req-rcvd-ero-sent{ | leaf num-upd-rcvd{ | |||
| when "../../p:role = 'pcc'" + | when "../../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that have been received for | "Valid for PCEP Peer as PCE"; | |||
| which a response with an ERO object was sent. Such | } | |||
| responses indicate that a path was successfully | type yang:counter32; | |||
| computed by the local PCEP entity."; | description | |||
| "The number of LSP Updates received. A LSP update | ||||
| corresponds 1:1 with an LSP object in a PCUpd | ||||
| message. | ||||
| This might be greater than num-pcupd-rcvd because | ||||
| multiple updates can be batched into a single | ||||
| PCUpd message."; | ||||
| } | } | |||
| leaf num-req-rcvd-nopath-sent{ | leaf num-upd-rcvd-unknown{ | |||
| when "../../p:role = 'pcc'" + | when "../../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests that have been received for | "Valid for PCEP Peer as PCE"; | |||
| which a response with a NO-PATH object was sent. Such | } | |||
| responses indicate that the local PCEP entity could | type yang:counter32; | |||
| not find a path to satisfy the request."; | description | |||
| "The number of updates to unknown LSPs | ||||
| received. An update to an unknown LSP is a | ||||
| update whose LSP object does not contain the | ||||
| PLSP-ID of any LSP that is currently | ||||
| present."; | ||||
| } | } | |||
| leaf num-req-rcvd-cancel-sent{ | leaf num-upd-rcvd-undelegated{ | |||
| when "../../p:role = 'pcc'" + | when "../../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests received that were cancelled | "Valid for PCEP Peer as PCE"; | |||
| by the local PCEP entity sending a PCNtf message. | } | |||
| type yang:counter32; | ||||
| This might be different than num-pcntf-sent because | description | |||
| not all PCNtf messages are used to cancel requests, | "The number of updates to not delegated LSPs | |||
| and a single PCNtf message can cancel multiple | received. An update to an undelegated LSP is a | |||
| requests."; | update whose LSP object does not contain the | |||
| PLSP-ID of any LSP that is currently | ||||
| delegated to current PCEP session."; | ||||
| } | } | |||
| leaf num-req-rcvd-error-sent{ | leaf num-upd-rcvd-error-sent{ | |||
| when "../../p:role = 'pcc'" + | when "../../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of requests received that were cancelled | "Valid for PCEP Peer as PCE"; | |||
| by the local PCEP entity sending a PCErr message. | } | |||
| This might be different than num-pcerr-sent because | type yang:counter32; | |||
| not all PCErr messages are used to cancel requests, | description | |||
| and a single PCErr message can cancel multiple | "The number of updates to LSPs received that were | |||
| requests."; | responded by the local PCEP entity by sending a | |||
| } | PCErr message."; | |||
| } | ||||
| leaf num-req-rcvd-cancel-rcvd{ | container initiation { | |||
| when "../../p:role = 'pcc'" + | if-feature p:pce-initiated; | |||
| "or " + | description | |||
| "../../p:role = 'pcc-and-pce'" | "PCE-Initiated related statistics"; | |||
| { | leaf num-pcinitiate-sent{ | |||
| description | when "../../../../p:role = 'pcc'" + | |||
| "Valid for PCEP Peer as PCC"; | "or " + | |||
| } | "../../../../p:role = 'pcc-and-pce'" | |||
| type yang:counter32; | { | |||
| description | description | |||
| "The number of requests that were received from the | "Valid for PCEP Peer as PCC"; | |||
| peer and explicitly cancelled by the peer sending | } | |||
| a PCNtf."; | type yang:counter32; | |||
| description | ||||
| "The number of PCInitiate messages sent."; | ||||
| } | } | |||
| leaf num-rep-rcvd-unknown{ | leaf num-pcinitiate-rcvd{ | |||
| when "../../p:role = 'pce'" + | when "../../../../p:role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of responses to unknown requests | "Valid for PCEP Peer as PCE"; | |||
| received. A response to an unknown request is a | } | |||
| response whose RP object does not contain the | type yang:counter32; | |||
| request ID of any request that is currently | description | |||
| outstanding on the session."; | "The number of PCInitiate messages received."; | |||
| } | } | |||
| leaf num-req-rcvd-unknown{ | leaf num-initiate-sent{ | |||
| when "../../p:role = 'pcc'" + | when "../../../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | "../../../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | description | |||
| "The number of unknown requests that have been | "Valid for PCEP Peer as PCC"; | |||
| received. An unknown request is a request | } | |||
| whose RP object contains a request ID of | type yang:counter32; | |||
| zero."; | description | |||
| "The number of LSP Initiation sent via PCE. | ||||
| A LSP initiation corresponds 1:1 with an LSP | ||||
| object in a PCInitiate message. This might be | ||||
| greater than num-pcinitiate-sent because | ||||
| multiple initiations can be batched into a | ||||
| single PCInitiate message."; | ||||
| } | } | |||
| container svec{ | leaf num-initiate-rcvd{ | |||
| if-feature p:svec; | when "../../../../p:role = 'pce'" + | |||
| "or " + | ||||
| "../../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | description | |||
| "If synchronized path computation is supported"; | "Valid for PCEP Peer as PCE"; | |||
| leaf num-svec-sent{ | } | |||
| when "../../../p:role = 'pce'" + | type yang:counter32; | |||
| "or " + | description | |||
| "../../../p:role = 'pcc-and-pce'" | "The number of LSP Initiation received from | |||
| { | PCE. A LSP initiation corresponds 1:1 with | |||
| description | an LSP object in a PCInitiate message. This | |||
| "Valid for PCEP Peer as PCE"; | might be greater than num-pcinitiate-rcvd | |||
| } | because multiple initiations can be batched | |||
| type yang:counter32; | into a single PCInitiate message."; | |||
| description | ||||
| "The number of SVEC objects sent in PCReq messages. | ||||
| An SVEC object represents a set of synchronized | ||||
| requests."; | ||||
| } | ||||
| leaf num-svec-req-sent{ | ||||
| when "../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests sent that appeared in one | ||||
| or more SVEC objects."; | ||||
| } | ||||
| leaf num-svec-rcvd{ | ||||
| when "../../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of SVEC objects received in PCReq | ||||
| messages. An SVEC object represents a set of | ||||
| synchronized requests."; | ||||
| } | ||||
| leaf num-svec-req-rcvd{ | ||||
| when "../../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests received that appeared | ||||
| in one or more SVEC objects."; | ||||
| } | ||||
| } | } | |||
| container stateful{ | leaf num-initiate-rcvd-error-sent{ | |||
| if-feature p:stateful; | when "../../../../p:role = 'pce'" + | |||
| "or " + | ||||
| "../../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | description | |||
| "Stateful PCE related statistics"; | "Valid for PCEP Peer as PCE"; | |||
| leaf num-pcrpt-sent{ | } | |||
| when "../../../p:role = 'pce'" + | type yang:counter32; | |||
| "or " + | description | |||
| "../../../p:role = 'pcc-and-pce'" | "The number of initiations of LSPs received | |||
| { | that were responded by the local PCEP entity | |||
| description | by sending a PCErr message."; | |||
| "Valid for PCEP Peer as PCE"; | } | |||
| }//initiation | ||||
| } | }//stateful | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCRpt messages sent."; | ||||
| } | ||||
| leaf num-pcrpt-rcvd{ | ||||
| when "../../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCRpt messages received."; | ||||
| } | ||||
| leaf num-pcupd-sent{ | ||||
| when "../../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCUpd messages sent."; | ||||
| } | ||||
| leaf num-pcupd-rcvd{ | ||||
| when "../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCUpd messages received."; | ||||
| } | ||||
| leaf num-rpt-sent{ | ||||
| when "../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of LSP Reports sent. A LSP report | ||||
| corresponds 1:1 with an LSP object in a PCRpt | ||||
| message. This might be greater than | ||||
| num-pcrpt-sent because multiple reports can | ||||
| be batched into a single PCRpt message."; | ||||
| } | ||||
| leaf num-rpt-rcvd{ | ||||
| when "../../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of LSP Reports received. A LSP report | ||||
| corresponds 1:1 with an LSP object in a PCRpt | ||||
| message. | ||||
| This might be greater than num-pcrpt-rcvd because | ||||
| multiple reports can be batched into a single | ||||
| PCRpt message."; | ||||
| } | ||||
| leaf num-rpt-rcvd-error-sent{ | ||||
| when "../../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of reports of LSPs received that were | ||||
| responded by the local PCEP entity by sending a | ||||
| PCErr message."; | ||||
| } | ||||
| leaf num-upd-sent{ | ||||
| when "../../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of LSP updates sent. A LSP update | ||||
| corresponds 1:1 with an LSP object in a PCUpd | ||||
| message. This might be greater than | ||||
| num-pcupd-sent because multiple updates can | ||||
| be batched into a single PCUpd message."; | ||||
| } | ||||
| leaf num-upd-rcvd{ | ||||
| when "../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of LSP Updates received. A LSP update | ||||
| corresponds 1:1 with an LSP object in a PCUpd | ||||
| message. | ||||
| This might be greater than num-pcupd-rcvd because | ||||
| multiple updates can be batched into a single | ||||
| PCUpd message."; | ||||
| } | ||||
| leaf num-upd-rcvd-unknown{ | ||||
| when "../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of updates to unknown LSPs | ||||
| received. An update to an unknown LSP is a | ||||
| update whose LSP object does not contain the | ||||
| PLSP-ID of any LSP that is currently | ||||
| present."; | ||||
| } | ||||
| leaf num-upd-rcvd-undelegated{ | ||||
| when "../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of updates to not delegated LSPs | ||||
| received. An update to an undelegated LSP is a | ||||
| update whose LSP object does not contain the | ||||
| PLSP-ID of any LSP that is currently | ||||
| delegated to current PCEP session."; | ||||
| } | ||||
| leaf num-upd-rcvd-error-sent{ | ||||
| when "../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of updates to LSPs received that were | ||||
| responded by the local PCEP entity by sending a | ||||
| PCErr message."; | ||||
| } | ||||
| container initiation { | ||||
| if-feature p:pce-initiated; | ||||
| description | ||||
| "PCE-Initiated related statistics"; | ||||
| leaf num-pcinitiate-sent{ | ||||
| when "../../../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCInitiate messages sent."; | ||||
| } | ||||
| leaf num-pcinitiate-rcvd{ | ||||
| when "../../../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCInitiate messages received."; | ||||
| } | ||||
| leaf num-initiate-sent{ | container path-key { | |||
| when "../../../../p:role = 'pcc'" + | when "../../p:role = 'pcc'" + | |||
| "or " + | "or " + | |||
| "../../../../p:role = 'pcc-and-pce'" | "../../p:role = 'pcc-and-pce'" | |||
| { | { | |||
| description | description | |||
| "Valid for PCEP Peer as PCC"; | "Valid for PCEP Peer as PCC"; | |||
| } | } | |||
| type yang:counter32; | if-feature p:path-key; | |||
| description | description | |||
| "The number of LSP Initiation sent via PCE. | "If Path-Key is supported"; | |||
| A LSP initiation corresponds 1:1 with an LSP | leaf num-unknown-path-key{ | |||
| object in a PCInitiate message. This might be | type yang:counter32; | |||
| greater than num-pcinitiate-sent because | description | |||
| multiple initiations can be batched into a | "The number of attempts to expand an unknown | |||
| single PCInitiate message."; | path-key."; | |||
| } | } | |||
| leaf num-exp-path-key{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of attempts to expand an expired | ||||
| path-key."; | ||||
| } | ||||
| leaf num-dup-path-key{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of duplicate attempts to expand same | ||||
| path-key."; | ||||
| } | ||||
| leaf num-path-key-no-attempt{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of expired path-keys with no attempt to | ||||
| expand it."; | ||||
| } | ||||
| }//path-key | ||||
| }//pcep-stats | ||||
| leaf num-initiate-rcvd{ | /* | |||
| when "../../../../p:role = 'pce'" + | * Augment modules to add statistics | |||
| "or " + | */ | |||
| "../../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of LSP Initiation received from | ||||
| PCE. A LSP initiation corresponds 1:1 with | ||||
| an LSP object in a PCInitiate message. This | ||||
| might be greater than num-pcinitiate-rcvd | ||||
| because multiple initiations can be batched | ||||
| into a single PCInitiate message."; | ||||
| } | ||||
| leaf num-initiate-rcvd-error-sent{ | augment "/p:pcep/p:entity/p:peers/p:peer" { | |||
| when "../../../../p:role = 'pce'" + | description | |||
| "or " + | "Augmenting the statistics"; | |||
| "../../../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of initiations of LSPs received | ||||
| that were responded by the local PCEP entity | ||||
| by sending a PCErr message."; | ||||
| } | ||||
| } | ||||
| } | ||||
| container path-key { | ||||
| when "../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| if-feature p:path-key; | ||||
| description | ||||
| "If Path-Key is supported"; | ||||
| leaf num-unknown-path-key{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of attempts to expand an unknown | ||||
| path-key."; | ||||
| } | ||||
| leaf num-exp-path-key{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of attempts to expand an expired | ||||
| path-key."; | ||||
| } | ||||
| leaf num-dup-path-key{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of duplicate attempts to expand same | ||||
| path-key."; | ||||
| } | leaf num-sess-setup-ok{ | |||
| leaf num-path-key-no-attempt{ | type yang:counter32; | |||
| type yang:counter32; | config false; | |||
| description | description | |||
| "The number of expired path-keys with no attempt to | "The number of PCEP sessions successfully established with | |||
| expand it."; | the peer, including any current session. This counter is | |||
| } | incremented each time a session with this peer is | |||
| } | successfully established."; | |||
| }//pcep-stats | } | |||
| /* | leaf num-sess-setup-fail{ | |||
| * Augment modules to add statistics | type yang:counter32; | |||
| */ | config false; | |||
| description | ||||
| "The number of PCEP sessions with the peer | ||||
| that have been attempted but failed | ||||
| before being fully established. This | ||||
| counter is incremented each time a | ||||
| session retry to this peer fails."; | ||||
| } | ||||
| augment "/p:pcep/p:entity/p:peers/p:peer" { | container pcep-stats { | |||
| config false; | ||||
| description | description | |||
| "Augmenting the statistics"; | "The container for all statistics at peer level."; | |||
| leaf num-sess-setup-ok{ | uses pcep-stats{ | |||
| type yang:counter32; | description | |||
| config false; | "Since PCEP sessions can be ephemeral, the peer statistics | |||
| tracks a peer even when no PCEP session currently exists | ||||
| to that peer. The statistics contained are an aggregate of | ||||
| the statistics for all successive sessions to that peer."; | ||||
| } | ||||
| leaf num-req-sent-closed{ | ||||
| when "../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | description | |||
| "The number of PCEP sessions successfully | "Valid for PCEP Peer as PCE"; | |||
| successfully established with the peer, | } | |||
| including any current session. This | type yang:counter32; | |||
| counter is incremented each time a | description | |||
| session with this peer is successfully | "The number of requests that were sent to the peer and | |||
| established."; | implicitly cancelled when the session they were sent | |||
| over was closed."; | ||||
| } | } | |||
| leaf num-sess-setup-fail{ | leaf num-req-rcvd-closed{ | |||
| type yang:counter32; | when "../../p:role = 'pcc'" + | |||
| config false; | "or " + | |||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | description | |||
| "The number of PCEP sessions with the peer | "Valid for PCEP Peer as PCC"; | |||
| that have been attempted but failed | } | |||
| before being fully established. This | type yang:counter32; | |||
| counter is incremented each time a | description | |||
| session retry to this peer fails."; | "The number of requests that were received from the peer | |||
| and implicitly cancelled when the session they were | ||||
| received over was closed."; | ||||
| } | } | |||
| container pcep-stats { | }//pcep-stats | |||
| config false; | }//augment | |||
| description | ||||
| "The container for all statistics at peer | ||||
| level."; | ||||
| uses pcep-stats{ | ||||
| description | ||||
| "Since PCEP sessions can be | ||||
| ephemeral, the peer statistics tracks | ||||
| a peer even when no PCEP session | ||||
| currently exists to that peer. The | ||||
| statistics contained are an aggregate | ||||
| of the statistics for all successive | ||||
| sessions to that peer."; | ||||
| } | ||||
| leaf num-req-sent-closed{ | ||||
| when "../../p:role = 'pce'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that were | ||||
| sent to the peer and implicitly | ||||
| cancelled when the session they were | ||||
| sent over was closed."; | ||||
| } | ||||
| leaf num-req-rcvd-closed{ | ||||
| when "../../p:role = 'pcc'" + | ||||
| "or " + | ||||
| "../../p:role = 'pcc-and-pce'" | ||||
| { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC"; | ||||
| } | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that were | ||||
| received from the peer and | ||||
| implicitly cancelled when the | ||||
| session they were received over | ||||
| was closed."; | ||||
| } | ||||
| }//pcep-stats | ||||
| }//augment | ||||
| augment "/p:pcep/p:entity/p:peers/p:peer/" + | augment "/p:pcep/p:entity/p:peers/p:peer/" + | |||
| "p:sessions/p:session" { | "p:sessions/p:session" { | |||
| description | description | |||
| "Augmenting the statistics"; | "Augmenting the statistics"; | |||
| container pcep-stats { | ||||
| description | ||||
| "The container for all statistics | ||||
| at session level."; | ||||
| uses pcep-stats{ | ||||
| description | ||||
| "The statistics contained are | ||||
| for the current sessions to | ||||
| that peer. These are lost | ||||
| when the session goes down. | ||||
| "; | ||||
| } | ||||
| }//pcep-stats | ||||
| }//augment | ||||
| container pcep-stats { | ||||
| description | ||||
| "The container for all statistics at session level."; | ||||
| uses pcep-stats{ | ||||
| description | ||||
| "The statistics contained are for the current sessions to | ||||
| that peer. These are lost when the session goes down."; | ||||
| } | ||||
| }//pcep-stats | ||||
| }//augment | ||||
| }//module | }//module | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 11. Security Considerations | 11. Security Considerations | |||
| The YANG module defined in this document is designed to be accessed | The YANG module defined in this document is designed to be accessed | |||
| via network management protocol such as NETCONF [RFC6241] or RESTCONF | via network management protocol such as NETCONF [RFC6241] or RESTCONF | |||
| [RFC8040]. The lowest NETCONF layer is the secure transport layer | [RFC8040]. The lowest NETCONF layer is the secure transport layer | |||
| and the mandatory-to-implement secure transport is SSH [RFC6242]. | and the mandatory-to-implement secure transport is SSH [RFC6242]. | |||
| The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement | The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement | |||
| secure transport is TLS [RFC8446] | secure transport is TLS [RFC8446] | |||
| skipping to change at page 108, line 14 ¶ | skipping to change at page 99, line 45 ¶ | |||
| 14. References | 14. References | |||
| 14.1. Normative References | 14.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | ||||
| and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | ||||
| Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | ||||
| <https://www.rfc-editor.org/info/rfc3209>. | ||||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC5088] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | ||||
| Zhang, "OSPF Protocol Extensions for Path Computation | ||||
| Element (PCE) Discovery", RFC 5088, DOI 10.17487/RFC5088, | ||||
| January 2008, <https://www.rfc-editor.org/info/rfc5088>. | ||||
| [RFC5089] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | ||||
| Zhang, "IS-IS Protocol Extensions for Path Computation | ||||
| Element (PCE) Discovery", RFC 5089, DOI 10.17487/RFC5089, | ||||
| January 2008, <https://www.rfc-editor.org/info/rfc5089>. | ||||
| [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | |||
| Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
| DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
| <https://www.rfc-editor.org/info/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
| [RFC5520] Bradford, R., Ed., Vasseur, JP., and A. Farrel, | ||||
| "Preserving Topology Confidentiality in Inter-Domain Path | ||||
| Computation Using a Path-Key-Based Mechanism", RFC 5520, | ||||
| DOI 10.17487/RFC5520, April 2009, | ||||
| <https://www.rfc-editor.org/info/rfc5520>. | ||||
| [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of | ||||
| Objective Functions in the Path Computation Element | ||||
| Communication Protocol (PCEP)", RFC 5541, | ||||
| DOI 10.17487/RFC5541, June 2009, | ||||
| <https://www.rfc-editor.org/info/rfc5541>. | ||||
| [RFC5557] Lee, Y., Le Roux, JL., King, D., and E. Oki, "Path | ||||
| Computation Element Communication Protocol (PCEP) | ||||
| Requirements and Protocol Extensions in Support of Global | ||||
| Concurrent Optimization", RFC 5557, DOI 10.17487/RFC5557, | ||||
| July 2009, <https://www.rfc-editor.org/info/rfc5557>. | ||||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| skipping to change at page 109, line 15 ¶ | skipping to change at page 101, line 36 ¶ | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | |||
| Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
| Extensions for Stateful PCE", RFC 8231, | Extensions for Stateful PCE", RFC 8231, | |||
| DOI 10.17487/RFC8231, September 2017, | DOI 10.17487/RFC8231, September 2017, | |||
| <https://www.rfc-editor.org/info/rfc8231>. | <https://www.rfc-editor.org/info/rfc8231>. | |||
| [RFC8232] Crabbe, E., Minei, I., Medved, J., Varga, R., Zhang, X., | ||||
| and D. Dhody, "Optimizations of Label Switched Path State | ||||
| Synchronization Procedures for a Stateful PCE", RFC 8232, | ||||
| DOI 10.17487/RFC8232, September 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8232>. | ||||
| [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | ||||
| "PCEPS: Usage of TLS to Provide a Secure Transport for the | ||||
| Path Computation Element Communication Protocol (PCEP)", | ||||
| RFC 8253, DOI 10.17487/RFC8253, October 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8253>. | ||||
| [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | |||
| Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
| Extensions for PCE-Initiated LSP Setup in a Stateful PCE | Extensions for PCE-Initiated LSP Setup in a Stateful PCE | |||
| Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | |||
| <https://www.rfc-editor.org/info/rfc8281>. | <https://www.rfc-editor.org/info/rfc8281>. | |||
| [RFC8306] Zhao, Q., Dhody, D., Ed., Palleti, R., and D. King, | ||||
| "Extensions to the Path Computation Element Communication | ||||
| Protocol (PCEP) for Point-to-Multipoint Traffic | ||||
| Engineering Label Switched Paths", RFC 8306, | ||||
| DOI 10.17487/RFC8306, November 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8306>. | ||||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Access Control Model", STD 91, RFC 8341, | Access Control Model", STD 91, RFC 8341, | |||
| DOI 10.17487/RFC8341, March 2018, | DOI 10.17487/RFC8341, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8341>. | <https://www.rfc-editor.org/info/rfc8341>. | |||
| [RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. | [RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. | |||
| Hardwick, "Conveying Path Setup Type in PCE Communication | Hardwick, "Conveying Path Setup Type in PCE Communication | |||
| Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408, | Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408, | |||
| July 2018, <https://www.rfc-editor.org/info/rfc8408>. | July 2018, <https://www.rfc-editor.org/info/rfc8408>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| [I-D.ietf-teas-yang-te] | ||||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, | ||||
| "A YANG Data Model for Traffic Engineering Tunnels and | ||||
| Interfaces", draft-ietf-teas-yang-te-19 (work in | ||||
| progress), February 2019. | ||||
| [I-D.ietf-teas-yang-te-types] | ||||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, | ||||
| "Traffic Engineering Common YANG Types", draft-ietf-teas- | ||||
| yang-te-types-06 (work in progress), February 2019. | ||||
| [I-D.ietf-netconf-tls-client-server] | ||||
| Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS | ||||
| Clients and TLS Servers", draft-ietf-netconf-tls-client- | ||||
| server-10 (work in progress), March 2019. | ||||
| [I-D.ietf-pce-association-group] | ||||
| Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., | ||||
| Dhody, D., and Y. Tanaka, "PCEP Extensions for | ||||
| Establishing Relationships Between Sets of LSPs", draft- | ||||
| ietf-pce-association-group-08 (work in progress), March | ||||
| 2019. | ||||
| [I-D.ietf-pce-segment-routing] | [I-D.ietf-pce-segment-routing] | |||
| Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | |||
| and J. Hardwick, "PCEP Extensions for Segment Routing", | and J. Hardwick, "PCEP Extensions for Segment Routing", | |||
| draft-ietf-pce-segment-routing-14 (work in progress), | draft-ietf-pce-segment-routing-16 (work in progress), | |||
| October 2018. | March 2019. | |||
| [I-D.ietf-teas-yang-te] | [I-D.ietf-isis-yang-isis-cfg] | |||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and | Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. | |||
| I. Bryskin, "A YANG Data Model for Traffic Engineering | Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf- | |||
| Tunnels and Interfaces", draft-ietf-teas-yang-te-16 (work | isis-yang-isis-cfg-35 (work in progress), March 2019. | |||
| in progress), July 2018. | ||||
| [I-D.ietf-netconf-tls-client-server] | [I-D.ietf-ospf-yang] | |||
| Watsen, K. and G. Wu, "YANG Groupings for TLS Clients and | Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | |||
| TLS Servers", draft-ietf-netconf-tls-client-server-07 | "YANG Data Model for OSPF Protocol", draft-ietf-ospf- | |||
| (work in progress), September 2018. | yang-21 (work in progress), January 2019. | |||
| [I-D.ietf-pce-gmpls-pcep-extensions] | ||||
| Margaria, C., Dios, O., and F. Zhang, "PCEP extensions for | ||||
| GMPLS", draft-ietf-pce-gmpls-pcep-extensions-13 (work in | ||||
| progress), January 2019. | ||||
| 14.2. Informative References | 14.2. Informative References | |||
| [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | |||
| Element (PCE)-Based Architecture", RFC 4655, | Element (PCE)-Based Architecture", RFC 4655, | |||
| DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
| <https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
| [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | |||
| Hardwick, "Path Computation Element Communication Protocol | Hardwick, "Path Computation Element Communication Protocol | |||
| (PCEP) Management Information Base (MIB) Module", | (PCEP) Management Information Base (MIB) Module", | |||
| RFC 7420, DOI 10.17487/RFC7420, December 2014, | RFC 7420, DOI 10.17487/RFC7420, December 2014, | |||
| <https://www.rfc-editor.org/info/rfc7420>. | <https://www.rfc-editor.org/info/rfc7420>. | |||
| [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | ||||
| "PCEPS: Usage of TLS to Provide a Secure Transport for the | ||||
| Path Computation Element Communication Protocol (PCEP)", | ||||
| RFC 8253, DOI 10.17487/RFC8253, October 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8253>. | ||||
| [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
| and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
| (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
| Appendix A. Example | Appendix A. Example | |||
| The example below provide an overview of PCEP peer session | The example below provide an overview of PCEP peer session | |||
| informations and LSP-DB in the Yang Module. | informations and LSP-DB in the Yang Module. | |||
| End of changes. 369 change blocks. | ||||
| 4047 lines changed or deleted | 3720 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||