| < draft-ietf-pce-pcep-yang-16.txt | draft-ietf-pce-pcep-yang-17.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: August 26, 2021 Metaswitch | Expires: 26 April 2022 Metaswitch | |||
| V. Beeram | V. Beeram | |||
| Juniper Networks | Juniper Networks | |||
| J. Tantsura | J. Tantsura | |||
| Apstra, Inc. | Apstra, Inc. | |||
| February 22, 2021 | 23 October 2021 | |||
| 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-16 | draft-ietf-pce-pcep-yang-17 | |||
| 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 and state data. | configuration and state data. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
| 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 August 26, 2021. | This Internet-Draft will expire on 26 April 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | ||||
| carefully, as they describe your rights and restrictions with respect | Please review these documents carefully, as they describe your rights | |||
| to this document. Code Components extracted from this document must | and restrictions with respect to this document. Code Components | |||
| include Simplified BSD License text as described in Section 4.e of | extracted from this document must include Simplified BSD License text | |||
| the Trust Legal Provisions and are provided without warranty as | as described in Section 4.e of the Trust Legal Provisions and are | |||
| described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | |||
| 3.3. Refrences in the Model . . . . . . . . . . . . . . . . . 5 | 3.3. Refrences in the Model . . . . . . . . . . . . . . . . . 6 | |||
| 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 7 | 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 9 | |||
| 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 8 | 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 9 | |||
| 5.2. The Entity . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.2. The Entity . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.3. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 13 | 5.3. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5.4. The Session Lists . . . . . . . . . . . . . . . . . . . . 15 | 5.4. The Session Lists . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 16 | 5.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 5.6. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 5.6. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 17 | 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 19 | |||
| 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 20 | 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 22 | |||
| 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 21 | 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 22 | |||
| 8. Other Considerations . . . . . . . . . . . . . . . . . . . . 21 | 8. Other Considerations . . . . . . . . . . . . . . . . . . . . 22 | |||
| 8.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 21 | 8.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 23 | |||
| 9. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 22 | 9. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 9.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 22 | 9.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 23 | |||
| 9.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 76 | 9.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 78 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 94 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 96 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 95 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 98 | |||
| 12. Implementation Status . . . . . . . . . . . . . . . . . . . . 96 | 12. Implementation Status . . . . . . . . . . . . . . . . . . . . 99 | |||
| 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 97 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 99 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 97 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 99 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 97 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 99 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 101 | 14.2. Informative References . . . . . . . . . . . . . . . . . 103 | |||
| Appendix A. The Full PCEP Data Model . . . . . . . . . . . . . . 102 | Appendix A. The Full PCEP Data Model . . . . . . . . . . . . . . 104 | |||
| Appendix B. Example . . . . . . . . . . . . . . . . . . . . . . 108 | Appendix B. Example . . . . . . . . . . . . . . . . . . . . . . 110 | |||
| Appendix C. Contributor Addresses . . . . . . . . . . . . . . . 111 | Appendix C. Contributor Addresses . . . . . . . . . . . . . . . 113 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 112 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 114 | |||
| 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 | |||
| skipping to change at page 3, line 41 ¶ | skipping to change at page 3, line 47 ¶ | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Terminology and Notation | 3. Terminology and Notation | |||
| This document uses the terminology defined in [RFC4655] and | This document uses the terminology defined in [RFC4655] and | |||
| [RFC5440]. In particular, it uses the following acronyms. | [RFC5440]. In particular, it uses the following acronyms. | |||
| o Path Computation Request message (PCReq). | * Path Computation Request message (PCReq). | |||
| o Path Computation Reply message (PCRep). | * Path Computation Reply message (PCRep). | |||
| o Notification message (PCNtf). | * Notification message (PCNtf). | |||
| o Error message (PCErr). | * Error message (PCErr). | |||
| o Request Parameters object (RP). | * Request Parameters object (RP). | |||
| o Synchronization Vector object (SVEC). | * Synchronization Vector object (SVEC). | |||
| o Explicit Route object (ERO). | * Explicit Route object (ERO). | |||
| This document also uses the following terms defined in [RFC7420]: | This document also uses the following terms defined in [RFC7420]: | |||
| o PCEP entity: a local PCEP speaker. | * PCEP entity: a local PCEP speaker. | |||
| o PCEP peer: to refer to a remote PCEP speaker. | * PCEP peer: to refer to a remote PCEP speaker. | |||
| o PCEP speaker: where it is not necessary to distinguish between | * PCEP speaker: where it is not necessary to distinguish between | |||
| local and remote. | local and remote. | |||
| Further, this document also uses the following terms defined in | Further, this document also uses the following terms defined in | |||
| [RFC8231] : | [RFC8231] : | |||
| o Stateful PCE, Passive Stateful PCE, Active Stateful PCE | * Stateful PCE, Passive Stateful PCE, Active Stateful PCE | |||
| o Delegation, Revocation, Redelegation | * Delegation, Revocation, Redelegation | |||
| o LSP State Report, Path Computation Report message (PCRpt). | * LSP State Report, Path Computation Report message (PCRpt). | |||
| o LSP State Update, Path Computation Update message (PCUpd). | * LSP State Update, Path Computation Update message (PCUpd). | |||
| * PLSP-ID: a PCEP-specific identifier for the LSP. | ||||
| * SRP: Stateful PCE Request Parameters | ||||
| [RFC8281] : | [RFC8281] : | |||
| o PCE-initiated LSP, Path Computation LSP Initiate Message | * PCE-initiated LSP, Path Computation LSP Initiate Message | |||
| (PCInitiate). | (PCInitiate). | |||
| [RFC8408] : | [RFC8408] : | |||
| o Path Setup Type (PST). | * Path Setup Type (PST). | |||
| [RFC8664] : | [RFC8664] : | |||
| o Segment Routing (SR). | * Segment Routing (SR). | |||
| [RFC5541] : | ||||
| * Objective Function (OF). | ||||
| [RFC8697] : | ||||
| * Association. | ||||
| [RFC6241] : | [RFC6241] : | |||
| o Configuration data. | * Configuration data. | |||
| o State data. | * 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 | |||
| context in which YANG module each name is defined. Otherwise, names | context in which YANG module each name is defined. Otherwise, names | |||
| are prefixed using the standard prefix associated with the | are prefixed using the standard prefix associated with the | |||
| corresponding YANG module, as shown in Table 1. | corresponding YANG module, as shown in Table 1. | |||
| +----------+------------------+-------------------------------------+ | +=========+==================+======================================+ | |||
| | Prefix | YANG module | Reference | | |Prefix | YANG module | Reference | | |||
| +----------+------------------+-------------------------------------+ | +=========+==================+======================================+ | |||
| | yang | ietf-yang-types | [RFC6991] | | |yang | ietf-yang-types | [RFC6991] | | |||
| | inet | ietf-inet-types | [RFC6991] | | +---------+------------------+--------------------------------------+ | |||
| | te-types | ietf-te-types | [RFC8776] | | |inet | ietf-inet-types | [RFC6991] | | |||
| | key- | ietf-key-chain | [RFC8177] | | +---------+------------------+--------------------------------------+ | |||
| | chain | | | | |te-types | ietf-te-types | [RFC8776] | | |||
| | nacm | ietf-netconf-acm | [RFC8341] | | +---------+------------------+--------------------------------------+ | |||
| | tlss | ietf-tls-server | [I-D.ietf-netconf-tls-client-server | | |key-chain| ietf-key-chain | [RFC8177] | | |||
| | | | ] | | +---------+------------------+--------------------------------------+ | |||
| | tlsc | ietf-tls-client | [I-D.ietf-netconf-tls-client-server | | |nacm | ietf-netconf-acm | [RFC8341] | | |||
| | | | ] | | +---------+------------------+--------------------------------------+ | |||
| | ospf | ietf-ospf | [I-D.ietf-ospf-yang] | | |tlss | ietf-tls-server | [I-D.ietf-netconf-tls-client-server] | | |||
| | isis | ietf-isis | [I-D.ietf-isis-yang-isis-cfg] | | +---------+------------------+--------------------------------------+ | |||
| +----------+------------------+-------------------------------------+ | |tlsc | ietf-tls-client | [I-D.ietf-netconf-tls-client-server] | | |||
| +---------+------------------+--------------------------------------+ | ||||
| |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 | 3.3. Refrences in the Model | |||
| Following documents are refrenced in the model defined in this | Following documents are refrenced in the model defined in this | |||
| document - | document - | |||
| +----------------------------+--------------------------------------+ | +==========================+======================================+ | |||
| | Documents | Reference | | | Documents | Reference | | |||
| +----------------------------+--------------------------------------+ | +==========================+======================================+ | |||
| | OSPF Protocol Extensions | [RFC5088] | | | OSPF Protocol Extensions | [RFC5088] | | |||
| | for Path Computation | | | | for Path Computation | | | |||
| | Element (PCE) Discovery | | | | Element (PCE) Discovery | | | |||
| | IS-IS Protocol Extensions | [RFC5089] | | +--------------------------+--------------------------------------+ | |||
| | for Path Computation | | | | IS-IS Protocol | [RFC5089] | | |||
| | Element (PCE) Discovery | | | | Extensions for Path | | | |||
| | Path Computation Element | [RFC5440] | | | Computation Element | | | |||
| | (PCE) Communication | | | | (PCE) Discovery | | | |||
| | Protocol (PCEP) | | | +--------------------------+--------------------------------------+ | |||
| | Preserving Topology | [RFC5520] | | | Path Computation Element | [RFC5440] | | |||
| | Confidentiality in Inter- | | | | (PCE) Communication | | | |||
| | Domain Path Computation | | | | Protocol (PCEP) | | | |||
| | Using a Path-Key-Based | | | +--------------------------+--------------------------------------+ | |||
| | Mechanism | | | | Preserving Topology | [RFC5520] | | |||
| | Encoding of Objective | [RFC5541] | | | Confidentiality in | | | |||
| | Functions in the Path | | | | Inter-Domain Path | | | |||
| | Computation Element | | | | Computation Using a | | | |||
| | Communication Protocol | | | | Path-Key-Based Mechanism | | | |||
| | (PCEP) | | | +--------------------------+--------------------------------------+ | |||
| | Path Computation Element | [RFC5557] | | | Encoding of Objective | [RFC5541] | | |||
| | Communication Protocol | | | | Functions in the Path | | | |||
| | (PCEP) Requirements and | | | | Computation Element | | | |||
| | Protocol Extensions in | | | | Communication Protocol | | | |||
| | Support of Global | | | | (PCEP) | | | |||
| | Concurrent Optimization | | | +--------------------------+--------------------------------------+ | |||
| | Common YANG Data Types | [RFC6991] | | | Path Computation Element | [RFC5557] | | |||
| | YANG Data Model for Key | [RFC8177] | | | Communication Protocol | | | |||
| | Chains | | | | (PCEP) Requirements and | | | |||
| | Path Computation Element | [RFC8231] | | | Protocol Extensions in | | | |||
| | Communication Protocol | | | | Support of Global | | | |||
| | (PCEP) Extensions for | | | | Concurrent Optimization | | | |||
| | Stateful PCE | | | +--------------------------+--------------------------------------+ | |||
| | Optimizations of Label | [RFC8232] | | | Common YANG Data Types | [RFC6991] | | |||
| | Switched Path State | | | +--------------------------+--------------------------------------+ | |||
| | Synchronization Procedures | | | | YANG Data Model for Key | [RFC8177] | | |||
| | for a Stateful PCE | | | | Chains | | | |||
| | PCEPS: Usage of TLS to | [RFC8253] | | +--------------------------+--------------------------------------+ | |||
| | Provide a Secure Transport | | | | Path Computation Element | [RFC8231] | | |||
| | for the Path Computation | | | | Communication Protocol | | | |||
| | Element Communication | | | | (PCEP) Extensions for | | | |||
| | Protocol (PCEP) | | | | Stateful PCE | | | |||
| | Path Computation Element | [RFC8281] | | +--------------------------+--------------------------------------+ | |||
| | Communication Protocol | | | | Optimizations of Label | [RFC8232] | | |||
| | (PCEP) Extensions for PCE- | | | | Switched Path State | | | |||
| | Initiated LSP Setup in a | | | | Synchronization | | | |||
| | Stateful PCE Model | | | | Procedures for a | | | |||
| | Extensions to the Path | [RFC8306] | | | Stateful PCE | | | |||
| | Computation Element | | | +--------------------------+--------------------------------------+ | |||
| | Communication Protocol | | | | PCEPS: Usage of TLS to | [RFC8253] | | |||
| | (PCEP) for Point-to- | | | | Provide a Secure | | | |||
| | Multipoint Traffic | | | | Transport for the Path | | | |||
| | Engineering Label Switched | | | | Computation Element | | | |||
| | Paths | | | | Communication Protocol | | | |||
| | Network Configuration | [RFC8341] | | | (PCEP) | | | |||
| | Access Control Model | | | +--------------------------+--------------------------------------+ | |||
| | Conveying Path Setup Type | [RFC8408] | | | Path Computation Element | [RFC8281] | | |||
| | in PCE Communication | | | | Communication Protocol | | | |||
| | Protocol (PCEP) Messages | | | | (PCEP) Extensions for | | | |||
| | Traffic Engineering Common | [RFC8776] | | | PCE-Initiated LSP Setup | | | |||
| | YANG Types | | | | in a Stateful PCE Model | | | |||
| | A YANG Data Model for | [I-D.ietf-teas-yang-te] | | +--------------------------+--------------------------------------+ | |||
| | Traffic Engineering | | | | Extensions to the Path | [RFC8306] | | |||
| | Tunnels and Interfaces | | | | Computation Element | | | |||
| | YANG Groupings for TLS | [I-D.ietf-netconf-tls-client-server] | | | Communication Protocol | | | |||
| | Clients and TLS Servers | | | | (PCEP) for Point-to- | | | |||
| | PCEP Extensions for | [RFC8664] | | | Multipoint Traffic | | | |||
| | Segment Routing | | | | Engineering Label | | | |||
| | PCEP Extensions for | [RFC8697] | | | Switched Paths | | | |||
| | Establishing Relationships | | | +--------------------------+--------------------------------------+ | |||
| | Between Sets of LSPs | | | | Network Configuration | [RFC8341] | | |||
| | YANG Data Model for OSPF | [I-D.ietf-ospf-yang] | | | Access Control Model | | | |||
| | Protocol | | | +--------------------------+--------------------------------------+ | |||
| | YANG Data Model for IS-IS | [I-D.ietf-isis-yang-isis-cfg] | | | Conveying Path Setup | [RFC8408] | | |||
| | Protocol | | | | Type in PCE | | | |||
| | PCEP extensions for GMPLS | [RFC8779] | | | Communication Protocol | | | |||
| +----------------------------+--------------------------------------+ | | (PCEP) Messages | | | |||
| +--------------------------+--------------------------------------+ | ||||
| | Traffic Engineering | [RFC8776] | | ||||
| | Common 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 | [RFC8664] | | ||||
| | Segment Routing | | | ||||
| +--------------------------+--------------------------------------+ | ||||
| | PCEP Extensions for | [RFC8697] | | ||||
| | Establishing | | | ||||
| | Relationships Between | | | ||||
| | Sets of LSPs | | | ||||
| +--------------------------+--------------------------------------+ | ||||
| | YANG Data Model for OSPF | [I-D.ietf-ospf-yang] | | ||||
| | Protocol | | | ||||
| +--------------------------+--------------------------------------+ | ||||
| | YANG Data Model for IS- | [I-D.ietf-isis-yang-isis-cfg] | | ||||
| | IS Protocol | | | ||||
| +--------------------------+--------------------------------------+ | ||||
| | PCEP extensions for | [RFC8779] | | ||||
| | GMPLS | | | ||||
| +--------------------------+--------------------------------------+ | ||||
| | ASSOCIATION Type Field | [IANA-PCEP] | | ||||
| | in Path Computation | | | ||||
| | Element Protocol (PCEP) | | | ||||
| | Numbers | | | ||||
| +--------------------------+--------------------------------------+ | ||||
| | Path Computation Element | [IANA-OSPF] | | ||||
| | (PCE) Capability Flags | | | ||||
| | in Open Shortest Path | | | ||||
| | First v2 (OSPFv2) | | | ||||
| | Parameters | | | ||||
| +--------------------------+--------------------------------------+ | ||||
| Table 2: Refrences in the YANG modules | 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 | * 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 | * The data model should be suitable for new implementations to use | |||
| as is. | as is. | |||
| o Mapping to the PCEP MIB Module should be clear. | * Mapping to the PCEP MIB Module should be clear. | |||
| o The data model should allow for static configurations of peers. | * The data model should allow for static configurations of peers. | |||
| o The data model should include read-only counters in order to | * The data model should include read-only counters in order to | |||
| gather statistics for sent and received PCEP messages, received | gather statistics for sent and received PCEP messages, received | |||
| messages with errors, and messages that could not be sent due to | messages with errors, and messages that could not be sent due to | |||
| errors. This could be in a separate model which augments the base | errors. This could be in a separate model which augments the base | |||
| data model. | data model. | |||
| o It should be fairly straightforward to augment the base data model | * It should be fairly straightforward to augment the base data model | |||
| for advanced PCE features. | for advanced PCE features. | |||
| 5. The Design of PCEP Data Model | 5. The Design of PCEP Data Model | |||
| 5.1. The Overview of PCEP Data Model | 5.1. The Overview of PCEP Data Model | |||
| The PCEP YANG module defined in this document has all the common | The PCEP YANG module defined in this document has all the common | |||
| building blocks for the PCEP protocol. | building blocks for the PCEP protocol. | |||
| 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 {sync-opt}? | +--rw speaker-entity-id? string {sync-opt}? | |||
| +--rw admin-status? boolean | +--rw admin-status? boolean | |||
| +--ro index? uint32 | +--ro index? uint32 | |||
| +--ro oper-status? pcep-oper-status | +--ro oper-status? pcep-oper-status | |||
| +--rw domain | +--rw domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domains* [domain-type domain-info] | |||
| | ... | | +--... | |||
| +--rw capability | +--rw capability | |||
| | ... | | +--... | |||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | ... | | | +--... | |||
| | +--rw neigh-domains | | +--rw neighbour-domains | |||
| | | ... | | | +--... | |||
| | +--rw path-key {path-key}? | | +--rw path-key {path-key}? | |||
| | | ... | | | +--... | |||
| | ... | | +--... | |||
| +--... | ||||
| +--ro lsp-db {stateful}? | +--ro lsp-db {stateful}? | |||
| | +--ro db-ver? uint64 {sync-opt}? | | +--ro db-ver? uint64 {sync-opt}? | |||
| | +--ro association-list* | | +--ro association-list* | |||
| | | [type id source global-source extended-id] | | | [type id source global-source extended-id] | |||
| | | {association}? | | | {association}? | |||
| | | ... | | | +--... | |||
| | | +--ro lsp* [plsp-id pcc-id lsp-id] | ||||
| | | ... | ||||
| | +--ro lsp* [plsp-id pcc-id lsp-id] | | +--ro lsp* [plsp-id pcc-id lsp-id] | |||
| | ... | | +--... | |||
| +--ro path-keys {path-key}? | +--ro path-keys {path-key}? | |||
| | +--ro path-keys* [path-key] | | +--ro path-keys* [path-key] | |||
| | +--... | | +--... | |||
| | ... | ||||
| +--rw peers | +--rw peers | |||
| +--rw peer* [addr] | +--rw peer* [addr] | |||
| ... | +--... | |||
| +--ro sessions | +--ro sessions | |||
| +--ro session* [initiator] | +--ro session* [initiator] | |||
| ... | +--... | |||
| rpcs: | rpcs: | |||
| +---x trigger-resync {stateful,sync-opt}? | +---x trigger-resync {stateful,sync-opt}? | |||
| +---w input | +---w input | |||
| +---w pcc? -> /pcep/entity/peers/peer/addr | +---w pcc? -> /pcep/entity/peers/peer/addr | |||
| notifications: | notifications: | |||
| +---n pcep-session-up | +---n pcep-session-up | |||
| | ... | | +--... | |||
| +---n pcep-session-down | +---n pcep-session-down | |||
| | ... | | +--... | |||
| +---n pcep-session-local-overload | +---n pcep-session-local-overload | |||
| | ... | | +--... | |||
| +---n pcep-session-local-overload-clear | +---n pcep-session-local-overload-clear | |||
| | ... | | +--... | |||
| +---n pcep-session-peer-overload | +---n pcep-session-peer-overload | |||
| | ... | | +--... | |||
| +---n pcep-session-peer-overload-clear | +---n pcep-session-peer-overload-clear | |||
| | ... | +--... | |||
| 5.2. The Entity | 5.2. The Entity | |||
| The PCEP yang module may contain status information for the local | The PCEP yang module may contain status information for the local | |||
| PCEP entity. | PCEP entity. | |||
| The entity has an IP address (using ietf-inet-types [RFC6991]) and a | The entity has an IP address (using ietf-inet-types [RFC6991]) and a | |||
| "role" leaf (the local entity PCEP role) as mandatory. | "role" leaf (the local entity PCEP role) as mandatory. | |||
| Note that, the PCEP MIB module [RFC7420] uses an entity list and a | 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 | system generated entity index as a primary index to the read only | |||
| entity table. If the device implements the PCEP MIB, the "index" | entity table. If the device implements the PCEP MIB, the "index" | |||
| leaf MUST contain the value of the corresponding pcePcepEntityIndex | leaf MUST contain the value of the corresponding pcePcepEntityIndex | |||
| and only one entity is assumed. | and only one entity is assumed. | |||
| The various information related to this entity such as its domain, | The various information related to this entity such as its domain, | |||
| capcabilities etc. Further incase when the entity is PCE it could | capabilities etc. Further incase when the entity is PCE it could | |||
| also have path-key and the LSP-DB information. | also have path-key and the LSP-DB information. | |||
| 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 {sync-opt}? | +--rw speaker-entity-id? string {sync-opt}? | |||
| +--rw admin-status? boolean | +--rw admin-status? boolean | |||
| +--ro index? uint32 | +--ro index? uint32 | |||
| +--ro oper-status? pcep-oper-status | +--ro oper-status? pcep-oper-status | |||
| +--rw domain | +--rw domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domains* [domain-type domain-info] | |||
| | +--rw domain-type identityref | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain-info domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw capability? bits | | +--rw capability? bits | |||
| | +--rw pce-initiated? boolean {pce-initiated}? | | +--rw pce-initiated? boolean {pce-initiated}? | |||
| | +--rw include-db-ver? boolean {stateful,sync-opt}? | | +--rw include-db-ver? boolean {stateful,sync-opt}? | |||
| | +--rw trigger-resync? boolean {stateful,sync-opt}? | | +--rw trigger-resync? boolean {stateful,sync-opt}? | |||
| | +--rw trigger-initial-sync? boolean {stateful,sync-opt}? | | +--rw trigger-initial-sync? boolean {stateful,sync-opt}? | |||
| | +--rw incremental-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-limit? boolean | | +--rw msd-limit? boolean | |||
| | +--rw nai? boolean | | +--rw nai? boolean | |||
| +--rw msd? uint8 {sr}? | +--rw msd? uint8 {sr}? | |||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw path-scope? bits | | | +--rw path-scope? bits | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | +--rw neigh-domains | | +--rw neighbour-domains | |||
| | | +--rw domain* [domain-type domain] | | | +--rw domains* [domain-type domain-info] | |||
| | | +--rw domain-type identityref | | | +--rw domain-type identityref | |||
| | | +--rw domain domain | | | +--rw domain-info 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? uint16 | +--rw connect-timer? uint16 | |||
| +--rw connect-max-retry? uint32 | +--rw connect-max-retry? uint32 | |||
| +--rw init-backoff-timer? uint16 | +--rw init-back-off-timer? uint16 | |||
| +--rw max-backoff-timer? uint32 | +--rw max-back-off-timer? uint32 | |||
| +--ro open-wait-timer? uint16 | +--ro open-wait-timer? uint16 | |||
| +--ro keep-wait-timer? uint16 | +--ro keep-wait-timer? uint16 | |||
| +--rw keep-alive-timer? uint8 | +--rw keepalive-timer? uint8 | |||
| +--rw dead-timer? uint8 | +--rw dead-timer? uint8 | |||
| +--rw allow-negotiation? boolean | +--rw allow-negotiation? boolean | |||
| +--rw max-keep-alive-timer? uint8 | +--rw max-keepalive-timer? uint8 | |||
| +--rw max-dead-timer? uint8 | +--rw max-dead-timer? uint8 | |||
| +--rw min-keep-alive-timer? uint8 | +--rw min-keepalive-timer? uint8 | |||
| +--rw min-dead-timer? uint8 | +--rw min-dead-timer? uint8 | |||
| +--rw sync-timer? uint16 {svec}? | +--rw sync-timer? uint16 {svec}? | |||
| +--rw request-timer? uint16 | +--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 | |||
| skipping to change at page 12, line 51 ¶ | skipping to change at page 14, line 12 ¶ | |||
| | | ... | | | ... | |||
| | +--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] | |||
| ... | +--... | |||
| 5.3. The Peer Lists | 5.3. The Peer Lists | |||
| The peer list contains peer(s) that the local PCEP entity knows | 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 | 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 | 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 | looks like multiple distinct peers to the other PCEP speakers in the | |||
| network. | network. | |||
| Since PCEP sessions can be ephemeral, the peer list tracks a peer | Since PCEP sessions can be ephemeral, the peer list tracks a peer | |||
| skipping to change at page 13, line 36 ¶ | skipping to change at page 14, line 45 ¶ | |||
| There is a list for static peer configuration and operational state | There is a list for static peer configuration and operational state | |||
| of all peers (i.e.static as well as discovered)("/pcep/entity/ | of all peers (i.e.static as well as discovered)("/pcep/entity/ | |||
| peers"). The list is used to enable remote PCE configuration at PCC | 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 | (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 | remote PCE peer which were discovered and PCC peers that have | |||
| initiated session. | initiated session. | |||
| module: ietf-pcep | module: ietf-pcep | |||
| +--rw pcep! | +--rw pcep! | |||
| +--rw entity | +--rw entity | |||
| ... | +--... | |||
| +--rw peers | +--rw peers | |||
| +--rw peer* [addr] | +--rw peer* [addr] | |||
| +--rw addr inet:ip-address | +--rw addr inet:ip-address | |||
| +--rw role pcep-role | +--rw role pcep-role | |||
| +--rw description? string | +--rw description? string | |||
| +--rw domain | +--rw domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domains* [domain-type domain-info] | |||
| | +--rw domain-type identityref | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain-info domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw capability? bits | | +--rw capability? bits | |||
| | +--rw pce-initiated? boolean | | +--rw pce-initiated? boolean | |||
| | | {pce-initiated}? | | | {pce-initiated}? | |||
| | +--rw include-db-ver? boolean | | +--rw include-db-ver? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-resync? boolean | | +--rw trigger-resync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-initial-sync? boolean | | +--rw trigger-initial-sync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| skipping to change at page 14, line 21 ¶ | skipping to change at page 15, line 32 ¶ | |||
| | +--rw msd-limit? boolean | | +--rw msd-limit? boolean | |||
| | +--rw nai? boolean | | +--rw nai? boolean | |||
| +--rw msd? uint8 {sr}? | +--rw msd? uint8 {sr}? | |||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw path-scope? bits | | | +--rw path-scope? bits | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | +--rw neigh-domains | | +--rw neighbour-domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domains* [domain-type domain-info] | |||
| | +--rw domain-type identityref | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain-info domain | |||
| +--rw delegation-pref? uint8 {stateful}? | +--rw delegation-pref? uint8 {stateful}? | |||
| +--rw auth | +--rw auth | |||
| | +--rw (auth-type-selection)? | | +--rw (auth-type-selection)? | |||
| | +--:(auth-key-chain) | | +--:(auth-key-chain) | |||
| | | +--rw key-chain? | | | +--rw key-chain? | |||
| | | key-chain:key-chain-ref | | | key-chain:key-chain-ref | |||
| | +--:(auth-key) | | +--:(auth-key) | |||
| | | +--rw crypto-algorithm identityref | | | +--rw crypto-algorithm identityref | |||
| | | +--rw (key-string-style)? | | | +--rw (key-string-style)? | |||
| | | +--:(keystring) | | | +--:(keystring) | |||
| skipping to change at page 15, line 8 ¶ | skipping to change at page 16, line 19 ¶ | |||
| | +--rw tls-client | | +--rw tls-client | |||
| | ... | | ... | |||
| +--ro discontinuity-time? yang:timestamp | +--ro discontinuity-time? yang:timestamp | |||
| +--ro initiate-session? boolean | +--ro initiate-session? boolean | |||
| +--ro session-exists? boolean | +--ro session-exists? boolean | |||
| +--ro session-up-time? yang:timestamp | +--ro session-up-time? yang:timestamp | |||
| +--ro session-fail-time? yang:timestamp | +--ro session-fail-time? yang:timestamp | |||
| +--ro session-fail-up-time? yang:timestamp | +--ro session-fail-up-time? yang:timestamp | |||
| +--ro sessions | +--ro sessions | |||
| +--ro session* [initiator] | +--ro session* [initiator] | |||
| ... | +--... | |||
| 5.4. The Session Lists | 5.4. The Session Lists | |||
| The session list contains PCEP session that the PCEP entity (PCE or | The session list contains PCEP session that the PCEP entity (PCE or | |||
| PCC) is currently participating in. The statistics in session are | PCC) is currently participating in. The statistics in session are | |||
| semantically different from those in peer since the former applies to | semantically different from those in peer since the former applies to | |||
| the current session only, whereas the latter is the aggregate for all | the current session only, whereas the latter is the aggregate for all | |||
| sessions that have existed to that peer. | sessions that have existed to that peer. | |||
| Although [RFC5440] forbids more than one active PCEP session between | Although [RFC5440] forbids more than one active PCEP session between | |||
| skipping to change at page 16, line 8 ¶ | skipping to change at page 17, line 8 ¶ | |||
| is discarded. | is discarded. | |||
| The data model for PCEP session presented in this document uses a | 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 | flat list of sessions. Each session in the list is identified by its | |||
| initiator. This index allows two sessions to exist transiently for a | initiator. This index allows two sessions to exist transiently for a | |||
| given peer, as discussed above. | given peer, as discussed above. | |||
| module: ietf-pcep | module: ietf-pcep | |||
| +--rw pcep! | +--rw pcep! | |||
| +--rw entity | +--rw entity | |||
| ... | +--... | |||
| +--rw peers | +--rw peers | |||
| +--rw peer* [addr] | +--rw peer* [addr] | |||
| ... | +--... | |||
| +--ro sessions | +--ro sessions | |||
| +--ro session* [initiator] | +--ro session* [initiator] | |||
| +--ro initiator pcep-initiator | +--ro initiator pcep-initiator | |||
| +--ro role? | +--ro role? | |||
| | -> /pcep/entity/role | | -> /pcep/entity/role | |||
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp | |||
| +--ro state? pcep-sess-state | +--ro state? | |||
| +--ro session-creation? yang:timestamp | | pcep-sess-state | |||
| +--ro connect-retry? yang:counter32 | +--ro session-creation? yang:timestamp | |||
| +--ro local-id? uint8 | +--ro connect-retry? yang:counter32 | |||
| +--ro remote-id? uint8 | +--ro local-id? uint8 | |||
| +--ro keepalive-timer? uint8 | +--ro remote-id? uint8 | |||
| +--ro peer-keepalive-timer? uint8 | +--ro keepalive-timer? uint8 | |||
| +--ro dead-timer? uint8 | +--ro peer-keepalive-timer? uint8 | |||
| +--ro peer-dead-timer? uint8 | +--ro dead-timer? uint8 | |||
| +--ro ka-hold-time-rem? uint8 | +--ro peer-dead-timer? uint8 | |||
| +--ro overloaded? boolean | +--ro ka-hold-time-rem? uint8 | |||
| +--ro overload-time? uint32 | +--ro overloaded? boolean | |||
| +--ro peer-overloaded? boolean | +--ro overloaded-timestamp? yang:timestamp | |||
| +--ro peer-overload-time? uint32 | +--ro overload-time? uint32 | |||
| +--ro lspdb-sync? sync-state | +--ro peer-overloaded? boolean | |||
| +--ro peer-overloaded-timestamp? yang:timestamp | ||||
| +--ro peer-overload-time? uint32 | ||||
| +--ro lspdb-sync? sync-state | ||||
| | {stateful}? | | {stateful}? | |||
| +--ro recv-db-ver? uint64 | +--ro recv-db-ver? uint64 | |||
| | {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 {sync-opt}? | +--ro speaker-entity-id? string | |||
| +--ro discontinuity-time? yang:timestamp | {sync-opt}? | |||
| 5.5. Notifications | 5.5. Notifications | |||
| This YANG model defines a list of notifications to inform client of | This YANG model defines a list of notifications to inform client of | |||
| important events detected during the protocol operation. The | important events detected during the protocol operation. The | |||
| notifications defined cover the PCEP MIB notifications. | notifications defined cover the PCEP MIB notifications. | |||
| 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 | |||
| +---n pcep-session-down | +---n pcep-session-down | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | +--ro session-initiator? pcep-initiator | | +--ro session-initiator? pcep-initiator | |||
| | +--ro state-last-change? yang:timestamp | | +--ro state-last-change? yang:timestamp | |||
| | +--ro state? pcep-sess-state | | +--ro state? pcep-sess-state | |||
| +---n pcep-session-local-overload | +---n pcep-session-local-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 overloaded? boolean | | +--ro overloaded? boolean | |||
| | +--ro overload-time? uint32 | | +--ro overloaded-timestamp? yang:timestamp | |||
| | +--ro overload-time? uint32 | ||||
| +---n pcep-session-local-overload-clear | +---n pcep-session-local-overload-clear | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? | |||
| | +--ro overloaded? boolean | | | -> /pcep/entity/peers/peer/addr | |||
| | +--ro overloaded? boolean | ||||
| | +--ro overloaded-clear-timestamp? yang:timestamp | ||||
| +---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-overloaded-timestamp? yang:timestamp | |||
| | +--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? | |||
| +--ro peer-overloaded? boolean | | -> /pcep/entity/peers/peer/addr | |||
| +--ro peer-overloaded? boolean | ||||
| +--ro peer-overloaded-clear-timestamp? yang:timestamp | ||||
| 5.6. RPC | 5.6. RPC | |||
| This YANG model defines a RPC to trigger state resynchronization to a | This YANG model defines a RPC to trigger state resynchronization to a | |||
| particular PCEP peer. | particular PCEP peer. | |||
| rpcs: | rpcs: | |||
| +---x trigger-resync {stateful,sync-opt}? | +---x trigger-resync {stateful,sync-opt}? | |||
| +---w input | +---w input | |||
| +---w pcc? -> /pcep/entity/peers/peer/addr | +---w pcc? -> /pcep/entity/peers/peer/addr | |||
| 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 /pcep:pcep/pcep:entity/pcep:peers/pcep:peer: | ||||
| augment /pcep:pcep/pcep:entity/pcep:peers/pcep: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 | |||
| +--ro pcep-stats | +--ro pcep-stats | |||
| +--ro avg-rsp-time? uint32 | +--ro discontinuity-time? yang:timestamp | |||
| +--ro lwm-rsp-time? uint32 | +--ro rsp-time-avg? uint32 | |||
| +--ro hwm-rsp-time? uint32 | +--ro rsp-time-lwm? uint32 | |||
| +--ro rsp-time-hwm? uint32 | ||||
| +--ro num-pcreq-sent? yang:counter32 | +--ro num-pcreq-sent? yang:counter32 | |||
| +--ro num-pcreq-rcvd? yang:counter32 | +--ro num-pcreq-rcvd? yang:counter32 | |||
| +--ro num-pcrep-sent? yang:counter32 | +--ro num-pcrep-sent? yang:counter32 | |||
| +--ro num-pcrep-rcvd? yang:counter32 | +--ro num-pcrep-rcvd? yang:counter32 | |||
| +--ro num-pcerr-sent? yang:counter32 | +--ro num-pcerr-sent? yang:counter32 | |||
| +--ro num-pcerr-rcvd? yang:counter32 | +--ro num-pcerr-rcvd? yang:counter32 | |||
| +--ro num-pcntf-sent? yang:counter32 | +--ro num-pcntf-sent? yang:counter32 | |||
| +--ro num-pcntf-rcvd? yang:counter32 | +--ro num-pcntf-rcvd? yang:counter32 | |||
| +--ro num-keepalive-sent? yang:counter32 | +--ro num-keepalive-sent? yang:counter32 | |||
| +--ro num-keepalive-rcvd? yang:counter32 | +--ro num-keepalive-rcvd? yang:counter32 | |||
| skipping to change at page 19, line 25 ¶ | skipping to change at page 20, line 39 ¶ | |||
| +--ro path-key {pcep:path-key}? | +--ro path-key {pcep: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 | |||
| +--ro num-req-sent-closed? yang:counter32 | +--ro num-req-sent-closed? yang:counter32 | |||
| +--ro num-req-rcvd-closed? yang:counter32 | +--ro num-req-rcvd-closed? yang:counter32 | |||
| augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer/pcep:sessions | augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer/pcep:sessions | |||
| /pcep:session: | /pcep:session: | |||
| +--ro pcep-stats | +--ro pcep-stats | |||
| +--ro avg-rsp-time? uint32 | +--ro discontinuity-time? yang:timestamp | |||
| +--ro lwm-rsp-time? uint32 | +--ro rsp-time-avg? uint32 | |||
| +--ro hwm-rsp-time? uint32 | +--ro rsp-time-lwm? uint32 | |||
| +--ro rsp-time-hwm? uint32 | ||||
| +--ro num-pcreq-sent? yang:counter32 | +--ro num-pcreq-sent? yang:counter32 | |||
| +--ro num-pcreq-rcvd? yang:counter32 | +--ro num-pcreq-rcvd? yang:counter32 | |||
| +--ro num-pcrep-sent? yang:counter32 | +--ro num-pcrep-sent? yang:counter32 | |||
| +--ro num-pcrep-rcvd? yang:counter32 | +--ro num-pcrep-rcvd? yang:counter32 | |||
| +--ro num-pcerr-sent? yang:counter32 | +--ro num-pcerr-sent? yang:counter32 | |||
| +--ro num-pcerr-rcvd? yang:counter32 | +--ro num-pcerr-rcvd? yang:counter32 | |||
| +--ro num-pcntf-sent? yang:counter32 | +--ro num-pcntf-sent? yang:counter32 | |||
| +--ro num-pcntf-rcvd? yang:counter32 | +--ro num-pcntf-rcvd? yang:counter32 | |||
| +--ro num-keepalive-sent? yang:counter32 | +--ro num-keepalive-sent? yang:counter32 | |||
| +--ro num-keepalive-rcvd? yang:counter32 | +--ro num-keepalive-rcvd? yang:counter32 | |||
| skipping to change at page 20, line 46 ¶ | skipping to change at page 22, line 13 ¶ | |||
| +--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 | |||
| 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 | * Capability and Scope | |||
| o Domain information (local/neighbour) | * Domain information (local/neighbour) | |||
| o Path-Key | * Path-Key | |||
| o Objective Function (OF) | ||||
| o Global Concurrent Optimization (GCO) | * Objective Function (OF) | |||
| o P2MP | * Global Concurrent Optimization (GCO) | |||
| o GMPLS | * P2MP | |||
| o Inter-Layer | * GMPLS | |||
| o Stateful PCE | * Inter-Layer | |||
| o Segment Routing (SR) | * Stateful PCE | |||
| o Authentication including PCEPS (TLS) | * Segment Routing (SR) | |||
| * Authentication including PCEPS (TLS) | ||||
| 7.1. Stateful PCE's LSP-DB | 7.1. Stateful PCE's LSP-DB | |||
| In the operational state of PCEP which supports stateful PCE mode, | In the operational state of PCEP which supports stateful PCE mode, | |||
| the list of LSP state are maintained in LSP-DB. The key is the PLSP- | the list of LSP state are maintained in LSP-DB. The key is the PLSP- | |||
| ID and the PCC IP address. | ID and the PCC IP address. | |||
| The PCEP data model contains the operational state of LSPs | The PCEP data model contains the operational state of LSPs | |||
| (/pcep/entity/lsp-db/lsp/) with PCEP specific attributes. The | (/pcep/entity/lsp-db/lsp/) with PCEP specific attributes. The | |||
| generic TE attributes of the LSP are defined in | generic TE attributes of the LSP are defined in | |||
| skipping to change at page 22, line 13 ¶ | skipping to change at page 23, line 28 ¶ | |||
| session is started. | session is started. | |||
| 9. PCEP YANG Modules | 9. PCEP YANG Modules | |||
| 9.1. ietf-pcep module | 9.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@2021-02-22.yang" | <CODE BEGINS> file "ietf-pcep@2021-10-23.yang" | |||
| module ietf-pcep { | module ietf-pcep { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; | namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; | |||
| prefix pcep; | prefix pcep; | |||
| import ietf-inet-types { | ||||
| prefix inet; | ||||
| reference | ||||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| import ietf-yang-types { | ||||
| prefix yang; | ||||
| reference | ||||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| import ietf-te-types { | ||||
| prefix te-types; | ||||
| reference | ||||
| "RFC 8776: Common YANG Data Types for Traffic Engineering"; | ||||
| } | ||||
| import ietf-key-chain { | ||||
| prefix key-chain; | ||||
| reference | ||||
| "RFC 8177: YANG Data Model for Key Chains"; | ||||
| } | ||||
| import ietf-netconf-acm { | ||||
| prefix nacm; | ||||
| reference | ||||
| "RFC 8341: Network Configuration Protocol (NETCONF) Access | ||||
| Control Model"; | ||||
| } | ||||
| import ietf-tls-server { | ||||
| prefix tlss; | ||||
| reference | ||||
| "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS | ||||
| Clients and TLS Servers"; | ||||
| } | ||||
| import ietf-tls-client { | ||||
| prefix tlsc; | ||||
| reference | ||||
| "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS | ||||
| Clients and TLS Servers"; | ||||
| } | ||||
| import ietf-ospf { | ||||
| prefix ospf; | ||||
| reference | ||||
| "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | ||||
| } | ||||
| import ietf-isis { | ||||
| prefix isis; | ||||
| reference | ||||
| "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS | ||||
| Protocol"; | ||||
| } | ||||
| organization | ||||
| "IETF PCE (Path Computation Element) Working Group"; | ||||
| contact | ||||
| "WG Web: <https://tools.ietf.org/wg/pce/> | ||||
| WG List: <mailto:pce@ietf.org> | ||||
| Editor: Dhruv Dhody | ||||
| <mailto:dhruv.ietf@gmail.com>"; | ||||
| description | ||||
| "The YANG module defines a generic configuration and | ||||
| operational model for PCEP. | ||||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | ||||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | ||||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | ||||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | ||||
| they appear in all capitals, as shown here. | ||||
| Copyright (c) 2021 IETF Trust and the persons identified as | ||||
| authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with or | ||||
| without modification, is permitted pursuant to, and subject | ||||
| to the license terms contained in, the Simplified BSD License | ||||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
| Relating to IETF Documents | ||||
| (https://trustee.ietf.org/license-info). | ||||
| This version of this YANG module is part of RFC XXXX; see the | ||||
| RFC itself for full legal notices."; | ||||
| revision 2021-02-22 { | import ietf-inet-types { | |||
| description | prefix inet; | |||
| "Initial revision."; | reference | |||
| reference | "RFC 6991: Common YANG Data Types"; | |||
| "RFC XXXX: A YANG Data Model for Path Computation | } | |||
| Element Communications Protocol (PCEP)"; | import ietf-yang-types { | |||
| } | prefix yang; | |||
| reference | ||||
| "RFC 6991: Common YANG Data Types"; | ||||
| } | ||||
| import ietf-te-types { | ||||
| prefix te-types; | ||||
| reference | ||||
| "RFC 8776: Common YANG Data Types for Traffic Engineering"; | ||||
| } | ||||
| import ietf-key-chain { | ||||
| prefix key-chain; | ||||
| reference | ||||
| "RFC 8177: YANG Data Model for Key Chains"; | ||||
| } | ||||
| import ietf-netconf-acm { | ||||
| prefix nacm; | ||||
| reference | ||||
| "RFC 8341: Network Configuration Protocol (NETCONF) Access | ||||
| Control Model"; | ||||
| } | ||||
| import ietf-tls-server { | ||||
| prefix tlss; | ||||
| reference | ||||
| "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS | ||||
| Clients and TLS Servers"; | ||||
| } | ||||
| import ietf-tls-client { | ||||
| prefix tlsc; | ||||
| reference | ||||
| "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS | ||||
| Clients and TLS Servers"; | ||||
| } | ||||
| import ietf-ospf { | ||||
| prefix ospf; | ||||
| reference | ||||
| "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | ||||
| } | ||||
| import ietf-isis { | ||||
| prefix isis; | ||||
| reference | ||||
| "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS | ||||
| Protocol"; | ||||
| } | ||||
| /* | organization | |||
| * Typedefs | "IETF PCE (Path Computation Element) Working Group"; | |||
| */ | contact | |||
| "WG Web: <https://tools.ietf.org/wg/pce/> | ||||
| WG List: <mailto:pce@ietf.org> | ||||
| Editor: Dhruv Dhody | ||||
| <mailto:dhruv.ietf@gmail.com>"; | ||||
| description | ||||
| "The YANG module defines a generic configuration and | ||||
| operational model for PCEP. | ||||
| typedef pcep-role { | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| type enumeration { | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
| enum unknown { | 'MAY', and 'OPTIONAL' in this document are to be interpreted as | |||
| value 0; | described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | |||
| description | they appear in all capitals, as shown here. | |||
| "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."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | Copyright (c) 2021 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | ||||
| typedef pcep-oper-status { | Redistribution and use in source and binary forms, with or | |||
| type enumeration { | without modification, is permitted pursuant to, and subject | |||
| enum oper-status-up { | to the license terms contained in, the Simplified BSD License | |||
| value 1; | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| description | Relating to IETF Documents | |||
| "The PCEP entity is active"; | (https://trustee.ietf.org/license-info). | |||
| } | ||||
| enum oper-status-down { | ||||
| value 2; | ||||
| description | ||||
| "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)"; | ||||
| } | ||||
| typedef pcep-initiator { | This version of this YANG module is part of RFC XXXX; see the | |||
| type enumeration { | RFC itself for full legal notices."; | |||
| enum local { | ||||
| value 1; | ||||
| description | ||||
| "The local PCEP entity initiated the session"; | ||||
| } | ||||
| enum remote { | ||||
| value 2; | ||||
| description | ||||
| "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 { | revision 2021-10-23 { | |||
| type enumeration { | description | |||
| enum tcp-pending { | "Initial revision."; | |||
| value 1; | reference | |||
| description | "RFC XXXX: A YANG Data Model for Path Computation | |||
| "The tcp-pending state of PCEP session."; | Element Communications Protocol (PCEP)"; | |||
| } | } | |||
| 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"; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| typedef domain-ospf-area { | /* | |||
| type ospf:area-id-type; | * Typedefs | |||
| description | */ | |||
| "OSPF Area ID."; | ||||
| reference | ||||
| "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | ||||
| } | ||||
| typedef domain-isis-area { | typedef pcep-role { | |||
| type isis:area-address; | type enumeration { | |||
| description | enum unknown { | |||
| "IS-IS Area ID."; | value 0; | |||
| reference | description | |||
| "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS | "An unknown role"; | |||
| Protocol"; | } | |||
| } | 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"; | ||||
| } | ||||
| typedef domain-as { | } | |||
| type inet:as-number; | description | |||
| description | "The role of a PCEP speaker. | |||
| "Autonomous System number."; | 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."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| typedef domain { | typedef pcep-oper-status { | |||
| type union { | type enumeration { | |||
| type domain-ospf-area; | enum oper-status-up { | |||
| type domain-isis-area; | value 1; | |||
| type domain-as; | description | |||
| } | "The PCEP entity is active"; | |||
| description | } | |||
| "The Domain Information"; | enum oper-status-down { | |||
| } | value 2; | |||
| description | ||||
| "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)"; | ||||
| } | ||||
| typedef operational-state { | typedef pcep-initiator { | |||
| type enumeration { | type enumeration { | |||
| enum down { | enum local { | |||
| value 0; | value 1; | |||
| description | description | |||
| "not active."; | "The local PCEP entity initiated the session"; | |||
| } | } | |||
| enum up { | enum remote { | |||
| value 1; | value 2; | |||
| description | description | |||
| "signalled."; | "The remote PCEP peer initiated the session"; | |||
| } | } | |||
| enum active { | } | |||
| value 2; | description | |||
| description | "The initiator of the session, that is, whether the TCP | |||
| "up and carrying traffic."; | connection was initiated by the local PCEP entity or | |||
| } | the remote peer. | |||
| enum going-down { | Takes one of the following values | |||
| value 3; | - local(1): Initiated locally | |||
| description | - remote(2): Initiated remotely"; | |||
| "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 { | typedef pcep-sess-state { | |||
| type enumeration { | type enumeration { | |||
| enum pending { | enum tcp-pending { | |||
| value 0; | value 1; | |||
| description | description | |||
| "The state synchronization | "The TCPPending state of PCEP session."; | |||
| has not started."; | } | |||
| } | enum open-wait { | |||
| enum ongoing { | value 2; | |||
| value 1; | description | |||
| description | "The OpenWait state of PCEP session."; | |||
| "The state synchronization | } | |||
| is ongoing."; | enum keep-wait { | |||
| value 3; | ||||
| description | ||||
| "The KeepWait state of PCEP session."; | ||||
| } | ||||
| enum session-up { | ||||
| value 4; | ||||
| description | ||||
| "The SessionUP 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 TCPPending state | ||||
| - open-wait(2): PCEP OpenWait state | ||||
| - keep-wait(3): PCEP KeepWait state | ||||
| - session-up(4): PCEP SessionUP state"; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| } | typedef domain-ospf-area { | |||
| enum finished { | type ospf:area-id-type; | |||
| value 2; | description | |||
| description | "OSPF Area ID."; | |||
| "The state synchronization | reference | |||
| is finished."; | "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | |||
| } | } | |||
| } | ||||
| 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 { | |||
| * Features | type isis:area-address; | |||
| */ | description | |||
| "IS-IS Area ID."; | ||||
| reference | ||||
| "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS | ||||
| Protocol"; | ||||
| } | ||||
| feature svec { | typedef domain-as { | |||
| description | type inet:as-number; | |||
| "Support synchronized path computation."; | description | |||
| reference | "Autonomous System number."; | |||
| "RFC 5440: Path Computation Element (PCE) Communication | } | |||
| Protocol (PCEP)"; | ||||
| } | ||||
| feature gmpls { | typedef domain { | |||
| description | type union { | |||
| "Support GMPLS."; | type domain-ospf-area; | |||
| reference | type domain-isis-area; | |||
| "RFC 8779: PCEP extensions for GMPLS"; | type domain-as; | |||
| } | } | |||
| description | ||||
| "The Domain Information"; | ||||
| } | ||||
| feature objective-function { | typedef operational-state { | |||
| description | type enumeration { | |||
| "Support OF as per RFC 5541."; | enum down { | |||
| reference | value 0; | |||
| "RFC 5541: Encoding of Objective Functions in the Path | description | |||
| Computation Element Communication Protocol (PCEP)"; | "not active."; | |||
| } | } | |||
| 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"; | ||||
| 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"; | ||||
| } | ||||
| feature global-concurrent { | /* | |||
| description | * Features | |||
| "Support GCO as per RFC 5557."; | */ | |||
| reference | ||||
| "RFC 5557: Path Computation Element Communication Protocol | ||||
| (PCEP) Requirements and Protocol Extensions in Support of | ||||
| Global Concurrent Optimization"; | ||||
| } | ||||
| feature path-key { | feature svec { | |||
| description | description | |||
| "Support path-key as per RFC 5520."; | "Support synchronized path computation."; | |||
| reference | reference | |||
| "RFC 5520: Preserving Topology Confidentiality in Inter- | "RFC 5440: Path Computation Element (PCE) Communication | |||
| Domain Path Computation Using a Path-Key-Based Mechanism"; | Protocol (PCEP)"; | |||
| } | } | |||
| feature p2mp { | feature gmpls { | |||
| description | description | |||
| "Support P2MP as per RFC 8306."; | "Support GMPLS."; | |||
| reference | reference | |||
| "RFC 8306: Extensions to the Path Computation Element | "RFC 8779: PCEP extensions for GMPLS"; | |||
| Communication Protocol (PCEP) for Point-to-Multipoint | } | |||
| Traffic Engineering Label Switched Paths"; | 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)"; | ||||
| } | ||||
| feature stateful { | feature global-concurrent { | |||
| description | description | |||
| "Support stateful PCE as per RFC 8231."; | "Support Global Concurrent Optimization (GCO) as per RFC | |||
| reference | 5557."; | |||
| "RFC 8231: Path Computation Element Communication Protocol | reference | |||
| (PCEP) Extensions for Stateful PCE"; | "RFC 5557: Path Computation Element Communication Protocol | |||
| } | (PCEP) Requirements and Protocol Extensions in Support of | |||
| Global Concurrent Optimization"; | ||||
| } | ||||
| feature sync-opt { | feature path-key { | |||
| description | description | |||
| "Support stateful sync optimization | "Support path-key as per RFC 5520."; | |||
| as per RFC 8232"; | reference | |||
| reference | "RFC 5520: Preserving Topology Confidentiality in Inter- | |||
| "RFC 8232: Optimizations of Label Switched Path State | Domain Path Computation Using a Path-Key-Based Mechanism"; | |||
| Synchronization Procedures for a Stateful PCE"; | } | |||
| } | ||||
| feature pce-initiated { | feature p2mp { | |||
| description | description | |||
| "Support PCE-Initiated LSP as per | "Support Point-to-Multipoint (P2MP) as per RFC 8306."; | |||
| RFC 8281."; | reference | |||
| reference | "RFC 8306: Extensions to the Path Computation Element | |||
| "RFC 8281: Path Computation Element Communication Protocol | Communication Protocol (PCEP) for Point-to-Multipoint | |||
| (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful | Traffic Engineering Label Switched Paths"; | |||
| PCE Model"; | } | |||
| } | ||||
| feature tls { | ||||
| description | ||||
| "Support PCEP over TLS as per | ||||
| RFC 8253."; | ||||
| reference | ||||
| "RFC 8253: PCEPS: Usage of TLS to Provide a Secure Transport | ||||
| for the Path Computation Element Communication Protocol | ||||
| (PCEP)"; | ||||
| } | ||||
| feature sr { | feature stateful { | |||
| description | description | |||
| "Support Segment Routing for PCE."; | "Support Stateful PCE as per RFC 8231."; | |||
| reference | reference | |||
| "RFC 8664: Path Computation Element Communication Protocol | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Segment Routing"; | (PCEP) Extensions for Stateful PCE"; | |||
| } | } | |||
| feature association { | feature sync-opt { | |||
| description | description | |||
| "Support Association in PCEP."; | "Support Stateful state synchronization optimization | |||
| reference | as per RFC 8232"; | |||
| "RFC 8697: Path Computation Element Communication Protocol | reference | |||
| (PCEP) Extensions for Establishing Relationships between | "RFC 8232: Optimizations of Label Switched Path State | |||
| Sets of Label Switched Paths (LSPs)"; | Synchronization Procedures for a Stateful PCE"; | |||
| } | } | |||
| /* | feature pce-initiated { | |||
| * Identities | description | |||
| */ | "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"; | ||||
| } | ||||
| identity domain-type { | feature tls { | |||
| description | description | |||
| "Base Domain Type for PCE"; | "Support PCEP over TLS as per RFC 8253."; | |||
| } | reference | |||
| "RFC 8253: PCEPS: Usage of TLS to Provide a Secure Transport | ||||
| for the Path Computation Element Communication Protocol | ||||
| (PCEP)"; | ||||
| } | ||||
| identity ospf-area { | feature sr { | |||
| base domain-type; | description | |||
| description | "Support Segment Routing (SR) for PCE."; | |||
| "The OSPF area."; | reference | |||
| } | "RFC 8664: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Segment Routing"; | ||||
| } | ||||
| identity isis-area { | feature association { | |||
| base domain-type; | description | |||
| description | "Support Association in PCEP."; | |||
| "The IS-IS area."; | reference | |||
| } | "RFC 8697: Path Computation Element Communication Protocol | |||
| identity autonomous-system { | (PCEP) Extensions for Establishing Relationships between | |||
| base domain-type; | Sets of Label Switched Paths (LSPs)"; | |||
| description | } | |||
| "The Autonomous System (AS)."; | ||||
| } | ||||
| identity lsp-error { | /* | |||
| if-feature "stateful"; | * Identities | |||
| description | */ | |||
| "Base LSP error"; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| identity no-error-lsp-error { | identity domain-type { | |||
| if-feature "stateful"; | description | |||
| base lsp-error; | "Base Domain Type for PCE"; | |||
| description | } | |||
| "No error, LSP is fine."; | identity ospf-area { | |||
| reference | base domain-type; | |||
| "RFC 8231: Path Computation Element Communication Protocol | description | |||
| (PCEP) Extensions for Stateful PCE"; | "The OSPF area."; | |||
| } | } | |||
| identity unknown-lsp-error { | identity isis-area { | |||
| if-feature "stateful"; | base domain-type; | |||
| base lsp-error; | description | |||
| description | "The IS-IS area."; | |||
| "Unknown reason."; | } | |||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| identity limit-lsp-error { | identity autonomous-system { | |||
| if-feature "stateful"; | base domain-type; | |||
| base lsp-error; | description | |||
| description | "The Autonomous System (AS)."; | |||
| "Limit reached for PCE-controlled LSPs."; | } | |||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| identity pending-lsp-error { | identity lsp-error { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| base lsp-error; | description | |||
| description | "Base LSP error"; | |||
| "Too many pending LSP update requests."; | reference | |||
| reference | "RFC 8231: Path Computation Element Communication Protocol | |||
| "RFC 8231: Path Computation Element Communication Protocol | (PCEP) Extensions for Stateful PCE"; | |||
| (PCEP) Extensions for Stateful PCE"; | } | |||
| } | ||||
| identity unacceptable-lsp-error { | identity no-error-lsp-error { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| base lsp-error; | base lsp-error; | |||
| description | description | |||
| "Unacceptable parameters."; | "No error, LSP is fine."; | |||
| reference | reference | |||
| "RFC 8231: Path Computation Element Communication Protocol | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | (PCEP) Extensions for Stateful PCE"; | |||
| } | } | |||
| identity internal-lsp-error { | identity unknown-lsp-error { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| base lsp-error; | base lsp-error; | |||
| description | description | |||
| "Internal error."; | "Unknown reason."; | |||
| reference | reference | |||
| "RFC 8231: Path Computation Element Communication Protocol | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | (PCEP) Extensions for Stateful PCE"; | |||
| } | } | |||
| identity admin-lsp-error { | identity limit-lsp-error { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| base lsp-error; | base lsp-error; | |||
| description | description | |||
| "LSP administratively brought down."; | "Limit reached for PCE-controlled LSPs."; | |||
| reference | reference | |||
| "RFC 8231: Path Computation Element Communication Protocol | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | (PCEP) Extensions for Stateful PCE"; | |||
| } | } | |||
| identity preempted-lsp-error { | identity pending-lsp-error { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| base lsp-error; | base lsp-error; | |||
| description | description | |||
| "LSP preempted."; | "Too many pending LSP update requests."; | |||
| reference | reference | |||
| "RFC 8231: Path Computation Element Communication Protocol | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | (PCEP) Extensions for Stateful PCE"; | |||
| } | } | |||
| identity rsvp-lsp-error { | identity unacceptable-lsp-error { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| base lsp-error; | base lsp-error; | |||
| description | description | |||
| "RSVP signaling error."; | "Unacceptable parameters."; | |||
| reference | reference | |||
| "RFC 8231: Path Computation Element Communication Protocol | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | (PCEP) Extensions for Stateful PCE"; | |||
| } | } | |||
| /* | identity internal-lsp-error { | |||
| * Groupings | if-feature "stateful"; | |||
| */ | base lsp-error; | |||
| description | ||||
| "Internal error."; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| grouping pce-scope { | identity admin-lsp-error { | |||
| description | if-feature "stateful"; | |||
| "This grouping defines PCE path computation scope | base lsp-error; | |||
| information which maybe relevant to PCE selection. | description | |||
| This information corresponds to PCE auto-discovery | "LSP administratively brought down."; | |||
| information."; | reference | |||
| reference | "RFC 8231: Path Computation Element Communication Protocol | |||
| "RFC 5088: OSPF Protocol Extensions for Path | (PCEP) Extensions for Stateful PCE"; | |||
| Computation Element (PCE) Discovery | } | |||
| RFC 5089: IS-IS Protocol Extensions for Path | identity preempted-lsp-error { | |||
| Computation Element (PCE) Discovery"; | if-feature "stateful"; | |||
| leaf path-scope { | base lsp-error; | |||
| type bits { | description | |||
| bit intra-area-scope { | "LSP preempted."; | |||
| description | reference | |||
| "PCE can compute intra-area paths."; | "RFC 8231: Path Computation Element Communication Protocol | |||
| } | (PCEP) Extensions for Stateful PCE"; | |||
| 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"; | ||||
| } | ||||
| leaf intra-area-pref { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for intra-area TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-area-pref { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-area TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-as-pref { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-AS TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-layer-pref { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-layer TE LSP | ||||
| computation."; | ||||
| } | ||||
| } | ||||
| //pce-scope | identity rsvp-lsp-error { | |||
| if-feature "stateful"; | ||||
| base lsp-error; | ||||
| description | ||||
| "RSVP signaling error."; | ||||
| reference | ||||
| "RFC 8231: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Stateful PCE"; | ||||
| } | ||||
| grouping domain { | /* | |||
| description | * Groupings | |||
| "This grouping specifies a Domain where the | */ | |||
| PCEP speaker has topology visibility."; | ||||
| leaf domain-type { | grouping pce-scope { | |||
| type identityref { | description | |||
| base domain-type; | "This grouping defines PCE path computation scope | |||
| } | information which maybe relevant to PCE selection. | |||
| description | This information corresponds to PCE auto-discovery | |||
| "The domain type."; | information."; | |||
| } | reference | |||
| leaf domain { | "RFC 5088: OSPF Protocol Extensions for Path | |||
| type domain; | Computation Element (PCE) Discovery | |||
| description | RFC 5089: IS-IS Protocol Extensions for Path | |||
| "The domain Information."; | Computation Element (PCE) Discovery"; | |||
| } | leaf path-scope { | |||
| } | type bits { | |||
| bit intra-area-scope { | ||||
| description | ||||
| "PCE can compute intra-area paths (L bit)."; | ||||
| } | ||||
| bit inter-area-scope { | ||||
| description | ||||
| "PCE can compute inter-area paths (R bit)."; | ||||
| } | ||||
| bit inter-area-scope-default { | ||||
| description | ||||
| "PCE can act as a default PCE for inter-area | ||||
| path computation. (Rd bit)"; | ||||
| } | ||||
| bit inter-as-scope { | ||||
| description | ||||
| "PCE can compute inter-AS paths (S bit)."; | ||||
| } | ||||
| bit inter-as-scope-default { | ||||
| description | ||||
| "PCE can act as a default PCE for inter-AS | ||||
| path computation (Sd bit)."; | ||||
| } | ||||
| bit inter-layer-scope { | ||||
| description | ||||
| "PCE can compute inter-layer paths (Y bit)."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The field corresponding to the path scope bits"; | ||||
| } | ||||
| leaf intra-area-pref { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for intra-area TE LSP | ||||
| computation (PrefL field). Where 7 reflects | ||||
| the highest preference."; | ||||
| } | ||||
| leaf inter-area-pref { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-area TE LSP | ||||
| computation (PrefR field). Where 7 reflects | ||||
| the highest preference."; | ||||
| } | ||||
| leaf inter-as-pref { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-AS TE LSP | ||||
| computation (PrefS field). Where 7 reflects | ||||
| the highest preference."; | ||||
| } | ||||
| leaf inter-layer-pref { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-layer TE LSP | ||||
| computation (PrefY field). Where 7 reflects | ||||
| the highest preference."; | ||||
| } | ||||
| } | ||||
| //domain | //pce-scope | |||
| grouping info { | grouping domain { | |||
| description | description | |||
| "This grouping specifies all information which | "This grouping specifies a Domain where the | |||
| maybe relevant to both PCC and PCE. | PCEP speaker has topology visibility."; | |||
| This information corresponds to PCE auto-discovery | leaf domain-type { | |||
| information."; | type identityref { | |||
| container domain { | base domain-type; | |||
| description | } | |||
| "The local domain for the PCEP entity"; | description | |||
| list domain { | "The domain type."; | |||
| key "domain-type domain"; | } | |||
| description | leaf domain-info { | |||
| "The local domain."; | type domain; | |||
| uses domain { | description | |||
| description | "The domain Information."; | |||
| "The local domain for the PCEP entity."; | } | |||
| } | } | |||
| } | ||||
| } | ||||
| 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 | //domain | |||
| "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 | ||||
| "RFC 8664: Path Computation Element Communication Protocol | ||||
| (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 | ||||
| "RFC 8664: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Segment Routing"; | ||||
| } | ||||
| } | ||||
| //info | grouping info { | |||
| description | ||||
| "This grouping specifies all information which | ||||
| maybe relevant to both PCC and PCE. | ||||
| This information corresponds to PCE auto-discovery | ||||
| information."; | ||||
| container domains { | ||||
| description | ||||
| "The local domain for the PCEP entity"; | ||||
| list domains { | ||||
| key "domain-type domain-info"; | ||||
| description | ||||
| "The local domain."; | ||||
| uses domain { | ||||
| description | ||||
| "The local domain for the PCEP entity."; | ||||
| } | ||||
| grouping pce-info { | } | |||
| description | } | |||
| "This grouping specifies all PCE information | container capability { | |||
| which maybe relevant to the PCE selection. | description | |||
| This information corresponds to PCE auto-discovery | "The PCEP entity capability information of local | |||
| information."; | PCEP entity. This maybe relevant to PCE selection | |||
| container scope { | as well. This information corresponds to PCE auto- | |||
| description | discovery information."; | |||
| "The path computation scope"; | reference | |||
| uses pce-scope; | "IANA OSPF: Path Computation Element (PCE) Capability | |||
| } | Flags in Open Shortest Path First v2 (OSPFv2) | |||
| container neigh-domains { | Parameters | |||
| description | RFC 5088: OSPF Protocol Extensions for Path | |||
| "The list of neighbour PCE-Domain | Computation Element (PCE) Discovery | |||
| toward which a PCE can compute | RFC 5089: IS-IS Protocol Extensions for Path | |||
| paths"; | Computation Element (PCE) Discovery"; | |||
| list domain { | leaf capability { | |||
| key "domain-type domain"; | type bits { | |||
| description | bit gmpls { | |||
| "The neighbour domain."; | if-feature "gmpls"; | |||
| uses domain { | description | |||
| description | "Path computation with GMPLS link | |||
| "The PCE neighbour domain."; | 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 | ||||
| "RFC 8664: Path Computation Element Communication Protocol | ||||
| (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 Node or | ||||
| Adjacency Identifier (NAI) to Segment | ||||
| Identifier (SID)"; | ||||
| } | ||||
| } | ||||
| //sr | ||||
| } | ||||
| //capability | ||||
| leaf msd { | ||||
| if-feature "sr"; | ||||
| type uint8; | ||||
| description | ||||
| "Maximum SID Depth for SR"; | ||||
| reference | ||||
| "RFC 8664: Path Computation Element Communication Protocol | ||||
| (PCEP) Extensions for Segment Routing"; | ||||
| } | ||||
| } | ||||
| //pce-info | //info | |||
| grouping notification-instance-hdr { | grouping pce-info { | |||
| description | description | |||
| "This group describes common instance specific data | "This grouping specifies all PCE information | |||
| for notifications."; | which maybe relevant to the PCE selection. | |||
| leaf peer-addr { | This information corresponds to PCE auto-discovery | |||
| type leafref { | information."; | |||
| path "/pcep/entity/peers/peer/addr"; | container scope { | |||
| } | description | |||
| description | "The path computation scope"; | |||
| "Reference to peer address"; | uses pce-scope; | |||
| } | } | |||
| } | container neighbour-domains { | |||
| description | ||||
| "The list of neighbour PCE-Domain | ||||
| toward which a PCE can compute | ||||
| paths"; | ||||
| list domains { | ||||
| key "domain-type domain-info"; | ||||
| description | ||||
| "The neighbour domain."; | ||||
| uses domain { | ||||
| description | ||||
| "The PCE neighbour domain."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| // notification-instance-hdr | //pce-info | |||
| grouping notification-session-hdr { | grouping notification-instance-hdr { | |||
| description | description | |||
| "This group describes common session instance specific | "This group describes common instance specific data | |||
| data for notifications."; | for notifications."; | |||
| leaf session-initiator { | leaf peer-addr { | |||
| type leafref { | type leafref { | |||
| path "/pcep/entity/peers/peer/sessions/" | path "/pcep/entity/peers/peer/addr"; | |||
| + "session/initiator"; | } | |||
| } | description | |||
| description | "Reference to peer address"; | |||
| "Reference to pcep session initiator leaf"; | } | |||
| } | } | |||
| } | ||||
| // notification-session-hdr | // notification-instance-hdr | |||
| grouping of-list { | grouping notification-session-hdr { | |||
| description | description | |||
| "List of OF"; | "This group describes common session instance specific | |||
| reference | data for notifications."; | |||
| "RFC 5541: Encoding of Objective Functions in the Path | leaf session-initiator { | |||
| Computation Element Communication Protocol (PCEP)"; | type leafref { | |||
| list objective-function { | path "/pcep/entity/peers/peer/sessions/" | |||
| key "of"; | + "session/initiator"; | |||
| description | } | |||
| "The list of authorized OF"; | description | |||
| leaf of { | "Reference to pcep session initiator leaf"; | |||
| type identityref { | } | |||
| base te-types:objective-function-type; | } | |||
| } | ||||
| description | ||||
| "The OF authorized"; | ||||
| } | ||||
| } | ||||
| } | ||||
| /* | // notification-session-hdr | |||
| * Configuration data nodes | ||||
| */ | ||||
| container pcep { | grouping of-list { | |||
| presence "The PCEP is enabled"; | description | |||
| description | "List of Objective Functions (OF)"; | |||
| "Parameters for list of configured PCEP entities | reference | |||
| on the device."; | "RFC 5541: Encoding of Objective Functions in the Path | |||
| container entity { | Computation Element Communication Protocol (PCEP)"; | |||
| description | list objective-function { | |||
| "The configured PCEP entity on the device."; | key "of"; | |||
| leaf addr { | description | |||
| type inet:ip-address; | "The list of authorized OF"; | |||
| mandatory true; | leaf of { | |||
| description | type identityref { | |||
| "The local Internet address of this PCEP entity. | base te-types:objective-function-type; | |||
| If operating as a PCE server, the PCEP entity | } | |||
| listens on this address. If operating as a PCC, | description | |||
| the PCEP entity binds outgoing TCP connections | "The OF authorized"; | |||
| 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 { | ||||
| type boolean; | ||||
| default "true"; | ||||
| description | ||||
| "The administrative status of this PCEP | ||||
| Entity."; | ||||
| } | ||||
| 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 description { | ||||
| type string; | ||||
| description | ||||
| "Description of the PCEP entity configured | ||||
| by the user"; | ||||
| } | ||||
| leaf speaker-entity-id { | ||||
| if-feature "sync-opt"; | ||||
| type string; | ||||
| description | ||||
| "The Speaker Entity Identifier"; | ||||
| reference | ||||
| "RFC 8232: Optimizations of Label Switched | ||||
| Path State Synchronization Procedures for | ||||
| a Stateful PCE"; | ||||
| } | ||||
| leaf admin-status { | ||||
| type boolean; | ||||
| default "true"; | ||||
| description | ||||
| "The administrative status of this PCEP Entity. | ||||
| The value true represents admin status as up. | ||||
| This is the desired operational status as | ||||
| currently set by an operator or by default in | ||||
| the implementation. The value of oper-status | ||||
| represents the current status of an attempt to | ||||
| reach this desired status."; | ||||
| } | ||||
| leaf index { | ||||
| type uint32; | ||||
| config false; | ||||
| description | ||||
| "The index of the operational PECP entity"; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| uses info { | ||||
| description | ||||
| "Local PCEP entity information"; | ||||
| } | ||||
| container pce-info { | ||||
| when "../role = 'pce'" | ||||
| + "or " | ||||
| + "../role = 'pcc-and-pce'" { | ||||
| description | ||||
| "These fields are applicable when the role is PCE."; | ||||
| } | ||||
| description | ||||
| "The Local PCE Entity PCE information"; | ||||
| uses pce-info { | ||||
| description | ||||
| "Local PCE information"; | ||||
| } | ||||
| container path-key { | ||||
| if-feature "path-key"; | ||||
| description | ||||
| "Path-Key Configuration"; | ||||
| reference | /* | |||
| "RFC 5520: Preserving Topology Confidentiality in Inter- | * Configuration data nodes | |||
| Domain Path Computation Using a Path-Key-Based Mechanism"; | */ | |||
| 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)"; | ||||
| } | ||||
| } | ||||
| } | ||||
| 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)"; | ||||
| } | ||||
| leaf init-backoff-timer { | ||||
| type uint16 { | ||||
| range "1..65535"; | ||||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "The initial back-off time in seconds for retrying | ||||
| a failed session setup attempt to a peer. | ||||
| The back-off time increases for each failed | ||||
| session setup attempt, until a maximum back-off | ||||
| time is reached. The maximum back-off time is | ||||
| max-backoff-timer."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| leaf max-backoff-timer { | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| 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 | ||||
| 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 { | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| default "60"; | ||||
| config false; | ||||
| 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 | container pcep { | |||
| PCEP terminates the TCP connection and deletes the | presence "The PCEP is enabled"; | |||
| associated sessions."; | description | |||
| reference | "Parameters for list of configured PCEP entities | |||
| "RFC 5440: Path Computation Element (PCE) Communication | on the device."; | |||
| Protocol (PCEP)"; | container entity { | |||
| } | description | |||
| leaf keep-wait-timer { | "The configured PCEP entity on the device."; | |||
| type uint16; | leaf addr { | |||
| units "seconds"; | type inet:ip-address; | |||
| default "60"; | mandatory true; | |||
| config false; | description | |||
| description | "The local Internet address of this PCEP entity. | |||
| "The time in seconds that the PCEP entity will wait | If operating as a PCE server, the PCEP entity | |||
| to receive a Keepalive or PCErr message from a peer | listens on this address. If operating as a PCC, | |||
| during session initialization after receiving an | the PCEP entity binds outgoing TCP connections | |||
| Open message. If no Keepalive or PCErr message is | to this address. It is possible for the PCEP entity | |||
| received within this time then PCEP terminates the | to operate both as a PCC and a PCE Server, in which | |||
| TCP connection and deletes the associated | case it uses this address both to listen for incoming | |||
| sessions."; | TCP connections and to bind outgoing TCP connections."; | |||
| reference | } | |||
| "RFC 5440: Path Computation Element (PCE) Communication | leaf enabled { | |||
| Protocol (PCEP)"; | type boolean; | |||
| } | default "true"; | |||
| leaf keep-alive-timer { | description | |||
| type uint8; | "The administrative status of this PCEP | |||
| units "seconds"; | Entity; set to true when UP."; | |||
| default "30"; | } | |||
| description | leaf role { | |||
| "The keep alive transmission timer that this PCEP | type pcep-role; | |||
| entity will propose in the initial OPEN message of | mandatory true; | |||
| each session it is involved in. This is the | description | |||
| maximum time between two consecutive messages sent | "The role that this entity can play. | |||
| to a peer. Zero means that the PCEP entity prefers | Takes one of the following values. | |||
| not to send Keepalives at all. | - unknown(0): this PCEP Entity role is not | |||
| Note that the actual Keepalive transmission | known. | |||
| intervals, in either direction of an active PCEP | - pcc(1): this PCEP Entity is a PCC. | |||
| session, are determined by negotiation between the | - pce(2): this PCEP Entity is a PCE. | |||
| peers as specified by RFC 5440, and so may differ | - pcc-and-pce(3): this PCEP Entity is both | |||
| from this configured value."; | a PCC and a PCE."; | |||
| reference | } | |||
| "RFC 5440: Path Computation Element (PCE) Communication | leaf description { | |||
| Protocol (PCEP)"; | type string; | |||
| } | description | |||
| leaf dead-timer { | "Description of the PCEP entity configured | |||
| type uint8; | by the user"; | |||
| units "seconds"; | } | |||
| must '(. > ../keep-alive-timer)' { | leaf speaker-entity-id { | |||
| error-message "The dead timer must be " | if-feature "sync-opt"; | |||
| + "larger than the keep alive timer"; | type string; | |||
| } | description | |||
| default "120"; | "The Speaker Entity Identifier"; | |||
| description | reference | |||
| "The dead timer that this PCEP entity will propose | "RFC 8232: Optimizations of Label Switched | |||
| in the initial OPEN message of each session it is | Path State Synchronization Procedures for | |||
| involved in. This is the time after which a peer | a Stateful PCE"; | |||
| should declare a session down if it does not | } | |||
| receive any PCEP messages. Zero suggests that the | leaf admin-status { | |||
| peer does not run a dead timer at all."; | type boolean; | |||
| reference | default "true"; | |||
| "RFC 5440: Path Computation Element (PCE) Communication | description | |||
| Protocol (PCEP)"; | "The administrative status of this PCEP Entity. | |||
| } | The value true represents admin status as up. | |||
| leaf allow-negotiation { | This is the desired operational status as | |||
| type boolean; | currently set by an operator or by default in | |||
| description | the implementation. The value of oper-status | |||
| "Whether the PCEP entity will permit negotiation of | represents the current status of an attempt to | |||
| session parameters."; | reach this desired status."; | |||
| } | } | |||
| leaf max-keep-alive-timer { | leaf index { | |||
| type uint8; | type uint32; | |||
| units "seconds"; | config false; | |||
| description | description | |||
| "In PCEP session parameter negotiation in seconds, | "The index of the operational PECP entity"; | |||
| the maximum value that this PCEP entity will | } | |||
| accept from a peer for the interval between | leaf oper-status { | |||
| Keepalive transmissions. Zero means that the PCEP | type pcep-oper-status; | |||
| entity will allow no Keepalive transmission at | config false; | |||
| all."; | description | |||
| } | "The operational status of the PCEP entity. | |||
| leaf max-dead-timer { | Takes one of the following values. | |||
| type uint8; | - oper-status-up(1): the PCEP entity is active. | |||
| units "seconds"; | - oper-status-down(2): the PCEP entity is inactive. | |||
| description | - oper-status-going-up(3): the PCEP entity is | |||
| "In PCEP session parameter negotiation in seconds, | activating. | |||
| the maximum value that this PCEP entity will accept | - oper-status-going-down(4): the PCEP entity is | |||
| from a peer for the Dead timer. Zero means that | deactivating. | |||
| the PCEP entity will allow not running a Dead | - oper-status-failed(5): the PCEP entity has | |||
| timer."; | failed and will recover when possible. | |||
| } | - oper-status-failed-perm(6): the PCEP entity | |||
| leaf min-keep-alive-timer { | has failed and will not recover without | |||
| type uint8; | operator intervention."; | |||
| units "seconds"; | } | |||
| description | uses info { | |||
| "In PCEP session parameter negotiation in seconds, | description | |||
| the minimum value that this PCEP entity will | "Local PCEP entity information"; | |||
| accept for the interval between Keepalive | ||||
| transmissions. Zero means that the PCEP entity | ||||
| insists on no Keepalive transmission at all."; | ||||
| } | ||||
| leaf min-dead-timer { | ||||
| type uint8; | ||||
| units "seconds"; | ||||
| description | ||||
| "In PCEP session parameter negotiation in | ||||
| seconds, the minimum value that this PCEP entity | ||||
| will accept for the Dead timer. Zero means that | ||||
| the PCEP entity insists on not running a Dead | ||||
| timer."; | ||||
| } | ||||
| leaf sync-timer { | ||||
| if-feature "svec"; | ||||
| type uint16; | ||||
| units "seconds"; | ||||
| 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 request-timer { | ||||
| type uint16 { | ||||
| range "1..65535"; | ||||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "The maximum time that the PCEP entity will wait | ||||
| for a response to a PCReq message."; | ||||
| } | } | |||
| leaf max-sessions { | container pce-info { | |||
| type uint32; | when "../role = 'pce'" | |||
| description | + "or " | |||
| "Maximum number of sessions involving this PCEP | + "../role = 'pcc-and-pce'" { | |||
| entity that can exist at any time."; | description | |||
| } | "These fields are applicable when the role is PCE."; | |||
| leaf max-unknown-reqs { | } | |||
| type uint32; | description | |||
| default "5"; | "The Local PCE Entity PCE information"; | |||
| description | uses pce-info { | |||
| "The maximum number of unrecognized requests and | description | |||
| replies that any session on this PCEP entity is | "Local PCE information"; | |||
| willing to accept per minute before terminating | } | |||
| the session. | container path-key { | |||
| A PCRep message contains an unrecognized reply | if-feature "path-key"; | |||
| if it contains an RP object whose request ID | description | |||
| does not correspond to any in-progress request | "Path-Key Configuration"; | |||
| sent by this PCEP entity. | reference | |||
| A PCReq message contains an unrecognized request | "RFC 5520: Preserving Topology Confidentiality in Inter- | |||
| if it contains an RP object whose request ID is | Domain Path Computation Using a Path-Key-Based Mechanism"; | |||
| zero."; | leaf enabled { | |||
| reference | type boolean; | |||
| "RFC 5440: Path Computation Element (PCE) | description | |||
| Communication Protocol (PCEP)"; | "Enabled or Disabled; set to true when Enabled"; | |||
| } | } | |||
| leaf max-unknown-msgs { | leaf discard-timer { | |||
| type uint32; | type uint32; | |||
| default "5"; | units "minutes"; | |||
| description | default "10"; | |||
| "The maximum number of unknown messages that any | description | |||
| session on this PCEP entity is willing to accept | "A timer to discard unwanted path-keys"; | |||
| per minute before terminating the session."; | } | |||
| reference | leaf reuse-time { | |||
| "RFC 5440: Path Computation Element (PCE) | type uint32; | |||
| Communication Protocol (PCEP)"; | units "minutes"; | |||
| } | default "30"; | |||
| leaf pcep-notification-max-rate { | description | |||
| type uint32; | "A time after which the path-keys could be reused"; | |||
| mandatory true; | } | |||
| description | leaf pce-id { | |||
| "This variable indicates the maximum number of | type inet:ip-address; | |||
| notifications issued per second. If events | description | |||
| occur more rapidly, the implementation may | "PCE Address to be used in each Path-Key Subobject | |||
| simply fail to emit these notifications during | (PKS)"; | |||
| 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)."; | leaf connect-timer { | |||
| } | type uint16 { | |||
| container stateful-parameter { | range "1..65535"; | |||
| if-feature "stateful"; | } | |||
| description | units "seconds"; | |||
| "The configured stateful PCE parameters"; | default "60"; | |||
| leaf state-timeout { | description | |||
| type uint32; | "The time in seconds that the PCEP entity will wait | |||
| units "seconds"; | to establish a TCP connection with a peer. If a | |||
| description | TCP connection is not established within this time | |||
| "When a PCEP session is terminated, a PCC | then PCEP aborts the session setup attempt."; | |||
| waits for this time period before flushing | reference | |||
| LSP state associated with that PCEP session | "RFC 5440: Path Computation Element (PCE) Communication | |||
| and reverting to operator-defined default | Protocol (PCEP)"; | |||
| parameters or behaviours."; | } | |||
| } | leaf connect-max-retry { | |||
| leaf redelegation-timeout { | type uint32; | |||
| when "../../role = 'pcc'" | default "5"; | |||
| + "or " | description | |||
| + "../../role = 'pcc-and-pce'" { | "The maximum number of times the system tries to | |||
| description | establish a TCP connection to a peer before the | |||
| "This field is applicable when the role is | session with the peer transitions to the idle | |||
| PCC"; | state."; | |||
| } | reference | |||
| type uint32; | "RFC 5440: Path Computation Element (PCE) Communication | |||
| units "seconds"; | Protocol (PCEP)"; | |||
| description | } | |||
| "When a PCEP session is terminated, a PCC | leaf init-back-off-timer { | |||
| waits for this time period before revoking | type uint16 { | |||
| LSP delegation to a PCE and attempting to | range "1..65535"; | |||
| redelegate LSPs associated with the | } | |||
| terminated PCEP session to an alternate | units "seconds"; | |||
| PCE."; | description | |||
| } | "The initial back-off time in seconds for retrying | |||
| leaf rpt-non-pcep-lsp { | a failed session setup attempt to a peer. | |||
| when "../../role = 'pcc'" | The back-off time increases for each failed | |||
| + "or " | session setup attempt, until a maximum back-off | |||
| + "../../role = 'pcc-and-pce'" { | time is reached. The maximum back-off time is the | |||
| description | max-back-off-timer leaf."; | |||
| "This field is applicable when the role is | reference | |||
| PCC"; | "RFC 5440: Path Computation Element (PCE) Communication | |||
| } | Protocol (PCEP)"; | |||
| type boolean; | } | |||
| default "true"; | leaf max-back-off-timer { | |||
| description | type uint32; | |||
| "If set, a PCC reports LSPs that are not | units "seconds"; | |||
| controlled by any PCE (for example, LSPs | description | |||
| that are statically configured at the | "The maximum back-off time in seconds for retrying | |||
| PCC). "; | a failed session setup attempt to a peer. | |||
| } | The back-off time increases for each failed session | |||
| reference | setup attempt, until this maximum value is reached. | |||
| "RFC 8231: Path Computation Element Communication Protocol | Session setup attempts then repeat periodically | |||
| (PCEP) Extensions for Stateful PCE"; | without any further increase in back-off time."; | |||
| } | reference | |||
| container of-list { | "RFC 5440: Path Computation Element (PCE) Communication | |||
| when "../role = 'pce'" | Protocol (PCEP)"; | |||
| + "or " | } | |||
| + "../role = 'pcc-and-pce'" { | leaf open-wait-timer { | |||
| description | type uint16; | |||
| "These field are applicable when the role is | units "seconds"; | |||
| PCE"; | default "60"; | |||
| } | config false; | |||
| if-feature "objective-function"; | description | |||
| uses of-list; | "The time in seconds that the PCEP entity will wait | |||
| description | to receive an Open message from a peer after the | |||
| "The authorized OF-List at PCE for all peers"; | TCP connection has come up. | |||
| } | If no Open message is received within this time then | |||
| container lsp-db { | PCEP terminates the TCP connection and deletes the | |||
| if-feature "stateful"; | associated sessions."; | |||
| config false; | reference | |||
| description | "RFC 5440: Path Computation Element (PCE) Communication | |||
| "The LSP-DB"; | Protocol (PCEP)"; | |||
| leaf db-ver { | } | |||
| when "../../role = 'pcc'" | leaf keep-wait-timer { | |||
| + "or " | type uint16; | |||
| + "../../role = 'pcc-and-pce'" { | units "seconds"; | |||
| description | default "60"; | |||
| "This field is applicable when the role is | config false; | |||
| PCC"; | description | |||
| } | "The time in seconds that the PCEP entity will wait | |||
| if-feature "sync-opt"; | to receive a Keepalive or PCErr message from a peer | |||
| type uint64; | during session initialization after receiving an | |||
| description | Open message. If no Keepalive or PCErr message is | |||
| "The LSP State Database Version Number"; | received within this time then PCEP terminates the | |||
| } | TCP connection and deletes the associated | |||
| list association-list { | sessions."; | |||
| if-feature "association"; | reference | |||
| key "type id source global-source extended-id"; | "RFC 5440: Path Computation Element (PCE) Communication | |||
| description | Protocol (PCEP)"; | |||
| "List of all PCEP associations"; | } | |||
| reference | leaf keepalive-timer { | |||
| "RFC 8697: Path Computation Element Communication | type uint8; | |||
| Protocol (PCEP) Extensions for Establishing | units "seconds"; | |||
| Relationships between Sets of Label Switched | default "30"; | |||
| Paths (LSPs)"; | description | |||
| leaf type { | "The Keepalive timer that this PCEP | |||
| type identityref { | entity will propose in the initial Open message of | |||
| base te-types:association-type; | each session it is involved in. This is the | |||
| } | maximum time between two consecutive messages sent | |||
| description | to a peer. Zero means that the PCEP entity prefers | |||
| "The PCEP association type"; | not to send Keepalives at all. | |||
| } | Note that the actual Keepalive transmission | |||
| leaf id { | intervals, in either direction of an active PCEP | |||
| type uint16; | session, are determined by negotiation between the | |||
| description | peers as specified by RFC 5440, and so may differ | |||
| "PCEP Association ID"; | from this configured value."; | |||
| } | reference | |||
| leaf source { | "RFC 5440: Path Computation Element (PCE) Communication | |||
| type inet:ip-address; | Protocol (PCEP)"; | |||
| description | } | |||
| "PCEP Association Source."; | leaf dead-timer { | |||
| } | type uint8; | |||
| leaf global-source { | units "seconds"; | |||
| type uint32; | must '(. > ../keepalive-timer)' { | |||
| description | error-message "The DeadTimer must be " | |||
| "PCEP Association Global Source."; | + "larger than the Keepalive timer"; | |||
| } | } | |||
| leaf extended-id { | default "120"; | |||
| type string; | description | |||
| description | "The DeadTimer that this PCEP entity will propose | |||
| "Additional information to support unique | in the initial Open message of each session it is | |||
| identification."; | involved in. This is the time after which a peer | |||
| } | should declare a session down if it does not | |||
| list lsp { | receive any PCEP messages. Zero suggests that the | |||
| key "plsp-id pcc-id lsp-id"; | peer does not run a DeadTimer at all."; | |||
| description | reference | |||
| "List of all LSP in this association"; | "RFC 5440: Path Computation Element (PCE) Communication | |||
| leaf plsp-id { | Protocol (PCEP)"; | |||
| type leafref { | } | |||
| path "/pcep/entity/lsp-db/" | leaf allow-negotiation { | |||
| + "lsp/plsp-id"; | type boolean; | |||
| } | default "true"; | |||
| description | description | |||
| "Reference to PLSP-ID in LSP-DB"; | "Whether the PCEP entity will permit negotiation of | |||
| } | session parameters."; | |||
| leaf pcc-id { | } | |||
| type leafref { | leaf max-keepalive-timer { | |||
| path "/pcep/entity/lsp-db/" | type uint8; | |||
| + "lsp/pcc-id"; | units "seconds"; | |||
| } | description | |||
| description | "In PCEP session parameter negotiation in seconds, | |||
| "Reference to PCC-ID in LSP-DB"; | the maximum value that this PCEP entity will | |||
| } | accept from a peer for the interval between | |||
| leaf lsp-id { | Keepalive transmissions. Zero means that the PCEP | |||
| type leafref { | entity will allow no Keepalive transmission at | |||
| path "/pcep/entity/lsp-db/" | all."; | |||
| + "lsp/lsp-id"; | } | |||
| } | leaf max-dead-timer { | |||
| description | type uint8; | |||
| "Reference to LSP ID in LSP-DB"; | units "seconds"; | |||
| } | description | |||
| } | "In PCEP session parameter negotiation in seconds, | |||
| } | the maximum value that this PCEP entity will accept | |||
| list lsp { | from a peer for the DeadTimer. Zero means that | |||
| key "plsp-id pcc-id lsp-id"; | the PCEP entity will allow not running a | |||
| description | DeadTimer."; | |||
| "List of all LSPs in LSP-DB"; | } | |||
| leaf plsp-id { | leaf min-keepalive-timer { | |||
| type uint32 { | type uint8; | |||
| range "1..1048575"; | units "seconds"; | |||
| } | description | |||
| description | "In PCEP session parameter negotiation in seconds, | |||
| "A PCEP-specific identifier for the LSP. A PCC | the minimum value that this PCEP entity will | |||
| creates a unique PLSP-ID for each LSP that is | accept for the interval between Keepalive | |||
| constant for the lifetime of a PCEP session. | transmissions. Zero means that the PCEP entity | |||
| PLSP-ID is 20 bits with 0 and 0xFFFFF are | insists on no Keepalive transmission at all."; | |||
| reserved"; | } | |||
| } | leaf min-dead-timer { | |||
| leaf pcc-id { | type uint8; | |||
| type inet:ip-address; | units "seconds"; | |||
| description | description | |||
| "The local internet address of the PCC, that | "In PCEP session parameter negotiation in | |||
| generated the PLSP-ID."; | seconds, the minimum value that this PCEP entity | |||
| } | will accept for the DeadTimer. Zero means that | |||
| leaf source { | the PCEP entity insists on not running a | |||
| type inet:ip-address; | DeadTimer."; | |||
| description | } | |||
| "Tunnel sender address extracted from | leaf sync-timer { | |||
| LSP-IDENTIFIERS TLV"; | if-feature "svec"; | |||
| reference | type uint16; | |||
| "RFC 8231: Path Computation Element | units "seconds"; | |||
| Communication Protocol (PCEP) Extensions | default "60"; | |||
| for Stateful PCE"; | description | |||
| } | "The value of SyncTimer in seconds is used in the | |||
| leaf destination { | case of synchronized path computation request | |||
| type inet:ip-address; | using the SVEC object. Consider the case where a | |||
| description | PCReq message is received by a PCE that contains | |||
| "Tunnel endpoint address extracted from | the SVEC object referring to M synchronized path | |||
| LSP-IDENTIFIERS TLV"; | computation requests. If after the expiration of | |||
| reference | the SyncTimer all the M path computation requests | |||
| "RFC 8231: Path Computation Element | have not been, received a protocol error is | |||
| Communication Protocol (PCEP) Extensions | triggered and the PCE must cancel the whole set | |||
| for Stateful PCE"; | of path computation requests. | |||
| } | The aim of the SyncTimer is to avoid the storage | |||
| leaf tunnel-id { | of unused synchronized requests should one of | |||
| type uint16; | them get lost for some reasons (for example, a | |||
| description | misbehaving PCC). | |||
| "Tunnel identifier used in the LSP-IDENTIFIERS | Zero means that the PCEP entity does not use the | |||
| TLV that remains constant over the life | SyncTimer."; | |||
| of the tunnel."; | reference | |||
| reference | "RFC 5440: Path Computation Element (PCE) | |||
| "RFC 8231: Path Computation Element | Communication Protocol (PCEP)"; | |||
| Communication Protocol (PCEP) Extensions | } | |||
| for Stateful PCE"; | leaf request-timer { | |||
| } | type uint16 { | |||
| leaf lsp-id { | range "1..65535"; | |||
| type uint16; | } | |||
| description | units "seconds"; | |||
| "Identifier used in the LSP-IDENTIFIERS TLV | description | |||
| that can be changed to allow a sender to share | "The maximum time that the PCEP entity will wait | |||
| resources with itself."; | for a response to a PCReq message."; | |||
| reference | } | |||
| "RFC 8231: Path Computation Element | leaf max-sessions { | |||
| Communication Protocol (PCEP) Extensions | type uint32; | |||
| for Stateful PCE"; | description | |||
| } | "Maximum number of sessions involving this PCEP | |||
| leaf extended-tunnel-id { | entity that can exist at any time."; | |||
| type inet:ip-address; | } | |||
| description | leaf max-unknown-reqs { | |||
| "Extended Tunnel ID of the LSP in LSP-IDENTIFIERS | type uint32; | |||
| TLV."; | default "5"; | |||
| reference | description | |||
| "RFC 8231: Path Computation Element | "The maximum number of unrecognized requests and | |||
| Communication Protocol (PCEP) Extensions | replies that any session on this PCEP entity is | |||
| for Stateful PCE"; | willing to accept per minute before terminating | |||
| } | the session. | |||
| leaf admin-state { | A PCRep message contains an unrecognized reply | |||
| type boolean; | if it contains an RP object whose request ID | |||
| default "true"; | does not correspond to any in-progress request | |||
| description | sent by this PCEP entity. | |||
| "The desired operational state"; | A PCReq message contains an unrecognized request | |||
| } | if it contains an RP object whose request ID is | |||
| leaf operational-state { | zero."; | |||
| type operational-state; | reference | |||
| description | "RFC 5440: Path Computation Element (PCE) | |||
| "The operational status of the LSP"; | Communication Protocol (PCEP)"; | |||
| } | } | |||
| container delegated { | leaf max-unknown-msgs { | |||
| description | type uint32; | |||
| "The delegation related parameters"; | 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)"; | ||||
| } | ||||
| 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"; | ||||
| uses of-list; | ||||
| description | ||||
| "The authorized OF-List at PCE for all peers"; | ||||
| } | ||||
| container lsp-db { | ||||
| if-feature "stateful"; | ||||
| config false; | ||||
| description | ||||
| "The LSP-DB"; | ||||
| leaf db-ver { | ||||
| when "../../role = 'pcc'" | ||||
| + "or " | ||||
| + "../../role = 'pcc-and-pce'" { | ||||
| 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 | ||||
| "RFC 8697: Path Computation Element Communication | ||||
| Protocol (PCEP) Extensions for Establishing | ||||
| Relationships between Sets of Label Switched | ||||
| Paths (LSPs)"; | ||||
| leaf type { | ||||
| type identityref { | ||||
| base te-types:association-type; | ||||
| } | ||||
| description | ||||
| "The PCEP Association Type"; | ||||
| reference | ||||
| "IANA PCEP: ASSOCIATION Type Field in Path | ||||
| Computation Element Protocol (PCEP) Numbers"; | ||||
| } | ||||
| 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 Global Association Source."; | ||||
| } | ||||
| leaf extended-id { | ||||
| type string; | ||||
| description | ||||
| "Additional information to support unique | ||||
| identification (Extended Association ID)."; | ||||
| leaf enabled { | } | |||
| type boolean; | list lsp { | |||
| default "false"; | key "plsp-id pcc-id lsp-id"; | |||
| description | description | |||
| "LSP is delegated or not"; | "List of all LSP in this association"; | |||
| } | leaf plsp-id { | |||
| leaf peer { | type leafref { | |||
| type leafref { | path "/pcep/entity/lsp-db/" | |||
| path "/pcep/entity/peers/peer/addr"; | + "lsp/plsp-id"; | |||
| } | } | |||
| must '(../enabled = true())' { | description | |||
| error-message "The LSP must be delegated"; | "Reference to PLSP-ID in LSP-DB"; | |||
| } | } | |||
| description | leaf pcc-id { | |||
| "At the PCC, the reference to the PCEP peer to | type leafref { | |||
| which LSP is delegated; At the PCE, the | path "/pcep/entity/lsp-db/" | |||
| reference to the PCEP peer which delegated this | + "lsp/pcc-id"; | |||
| LSP"; | } | |||
| } | description | |||
| leaf srp-id { | "Reference to PCC-ID in LSP-DB"; | |||
| type uint32; | } | |||
| description | leaf lsp-id { | |||
| "The last SRP-ID-number associated with this | type leafref { | |||
| LSP."; | path "/pcep/entity/lsp-db/" | |||
| } | + "lsp/lsp-id"; | |||
| } | } | |||
| container initiation { | description | |||
| if-feature "pce-initiated"; | "Reference to LSP ID in LSP-DB"; | |||
| description | } | |||
| "The PCE initiation related parameters"; | } | |||
| reference | } | |||
| "RFC 8281: Path Computation Element Communication | list lsp { | |||
| Protocol (PCEP) Extensions for PCE-Initiated LSP | key "plsp-id pcc-id lsp-id"; | |||
| Setup in a Stateful PCE Model"; | description | |||
| leaf enabled { | "List of all LSPs in LSP-DB"; | |||
| type boolean; | leaf plsp-id { | |||
| default "false"; | type uint32 { | |||
| description | range "1..1048575"; | |||
| "Set to true if this LSP is initiated by a PCE"; | } | |||
| } | description | |||
| leaf peer { | "A PCEP-specific identifier for the LSP. A PCC | |||
| type leafref { | creates a unique PLSP-ID for each LSP that is | |||
| path "/pcep/entity/peers/peer/addr"; | constant for the lifetime of a PCEP session. | |||
| } | PLSP-ID is 20 bits with 0 and 0xFFFFF are | |||
| must '(../enabled = true())' { | reserved"; | |||
| error-message "The LSP must be PCE-Initiated"; | } | |||
| } | leaf pcc-id { | |||
| description | type inet:ip-address; | |||
| "At the PCC, the reference to the PCEP peer | description | |||
| that initiated this LSP; At the PCE, the | "The local internet address of the PCC, that | |||
| reference to the PCEP peer where the LSP | generated the PLSP-ID."; | |||
| is initiated"; | } | |||
| } | leaf source { | |||
| } | type inet:ip-address; | |||
| leaf symbolic-path-name { | description | |||
| type string; | "Tunnel sender address extracted from | |||
| description | LSP-IDENTIFIERS TLV"; | |||
| "The symbolic path name associated with the LSP."; | reference | |||
| reference | "RFC 8231: Path Computation Element | |||
| "RFC 8231: Path Computation Element Communication | Communication Protocol (PCEP) Extensions | |||
| Protocol (PCEP) Extensions for Stateful PCE"; | for Stateful PCE"; | |||
| } | } | |||
| leaf last-error { | leaf destination { | |||
| type identityref { | type inet:ip-address; | |||
| base lsp-error; | description | |||
| } | "Tunnel endpoint address extracted from | |||
| description | LSP-IDENTIFIERS TLV"; | |||
| "The last error for the LSP."; | reference | |||
| } | "RFC 8231: Path Computation Element | |||
| leaf pst { | Communication Protocol (PCEP) Extensions | |||
| type identityref { | for Stateful PCE"; | |||
| base te-types:path-signaling-type; | } | |||
| } | leaf tunnel-id { | |||
| default "te-types:path-setup-rsvp"; | type uint16; | |||
| description | description | |||
| "The Path Setup Type"; | "Tunnel identifier used in the LSP-IDENTIFIERS | |||
| reference | TLV that remains constant over the life | |||
| "RFC 8408: Conveying Path Setup Type in PCE | of the tunnel."; | |||
| Communication Protocol (PCEP) Messages"; | reference | |||
| } | "RFC 8231: Path Computation Element | |||
| list association-list { | Communication Protocol (PCEP) Extensions | |||
| if-feature "association"; | for Stateful PCE"; | |||
| key "type id source global-source extended-id"; | } | |||
| description | leaf lsp-id { | |||
| "List of all PCEP associations"; | type uint16; | |||
| leaf type { | description | |||
| type leafref { | "Identifier used in the LSP-IDENTIFIERS TLV | |||
| path "/pcep/entity/lsp-db/" | that can be changed to allow a sender to share | |||
| + "association-list/type"; | resources with itself."; | |||
| } | reference | |||
| description | "RFC 8231: Path Computation Element | |||
| "PCEP Association Type"; | Communication Protocol (PCEP) Extensions | |||
| } | for Stateful PCE"; | |||
| leaf id { | } | |||
| type leafref { | leaf extended-tunnel-id { | |||
| path "/pcep/entity/lsp-db/" | type inet:ip-address; | |||
| + "association-list/id"; | description | |||
| } | "Extended Tunnel ID of the LSP in LSP-IDENTIFIERS | |||
| description | TLV."; | |||
| "PCEP Association ID"; | reference | |||
| } | "RFC 8231: Path Computation Element | |||
| leaf source { | Communication Protocol (PCEP) Extensions | |||
| type leafref { | for Stateful PCE"; | |||
| path "/pcep/entity/lsp-db/" | } | |||
| + "association-list/source"; | leaf admin-state { | |||
| } | type boolean; | |||
| description | default "true"; | |||
| "PCEP Association Source."; | description | |||
| } | "The desired operational state"; | |||
| leaf global-source { | } | |||
| type leafref { | leaf operational-state { | |||
| path "/pcep/entity/lsp-db/" | type operational-state; | |||
| + "association-list/global-source"; | description | |||
| } | "The operational status of the LSP"; | |||
| description | } | |||
| "PCEP Association Global Source."; | container delegated { | |||
| } | description | |||
| leaf extended-id { | "The delegation related parameters"; | |||
| type leafref { | leaf enabled { | |||
| path "/pcep/entity/lsp-db/" | type boolean; | |||
| + "association-list/extended-id"; | default "false"; | |||
| } | description | |||
| description | "LSP is delegated or not; set to true when | |||
| "Additional information to | delegated"; | |||
| support unique identification."; | } | |||
| } | leaf peer { | |||
| reference | type leafref { | |||
| "RFC 8697: Path Computation Element Communication | path "/pcep/entity/peers/peer/addr"; | |||
| Protocol (PCEP) Extensions for Establishing | } | |||
| Relationships between Sets of Label Switched | must '(../enabled = true())' { | |||
| Paths (LSPs)"; | error-message "The LSP must be delegated"; | |||
| } | } | |||
| } | description | |||
| } | "At the PCC, the reference to the PCEP peer to | |||
| container path-keys { | which LSP is delegated; At the PCE, the | |||
| when "../role = 'pce' or ../role = 'pcc-and-pce'" { | reference to the PCEP peer which delegated this | |||
| description | LSP"; | |||
| "These fields are applicable when the role is | } | |||
| PCE"; | leaf srp-id { | |||
| } | type uint32 { | |||
| if-feature "path-key"; | range "1..4294967294"; | |||
| config false; | } | |||
| description | description | |||
| "The path-keys generated by the PCE"; | "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; | ||||
| default "false"; | ||||
| 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 (PST)"; | ||||
| 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 | ||||
| "RFC 8697: Path Computation Element Communication | ||||
| Protocol (PCEP) Extensions for Establishing | ||||
| Relationships between Sets of Label Switched | ||||
| Paths (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 retrieved"; | ||||
| } | ||||
| 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"; | ||||
| reference | } | |||
| "RFC 5520: Preserving Topology Confidentiality | leaf reuse-time { | |||
| in Inter-Domain Path Computation Using a Path- | type uint32; | |||
| Key-Based Mechanism"; | units "minutes"; | |||
| list path-keys { | description | |||
| key "path-key"; | "A time after which this path-keys could be | |||
| description | reused"; | |||
| "The list of path-keys generated by the PCE"; | } | |||
| leaf path-key { | } | |||
| type uint16; | } | |||
| description | container peers { | |||
| "The identifier, or token used to represent | description | |||
| the Confidential Path Segment (CPS) within | "The list of configured peers for the | |||
| the context of the PCE"; | entity (remote PCE)"; | |||
| } | list peer { | |||
| container cps { | key "addr"; | |||
| description | description | |||
| "The Confidential Path Segment (CPS)"; | "The peer configured for the entity. | |||
| list explicit-route-objects { | (remote PCE)"; | |||
| key "index"; | leaf addr { | |||
| description | type inet:ip-address; | |||
| "List of explicit route objects"; | description | |||
| leaf index { | "The local Internet address of this | |||
| type uint32; | PCEP peer."; | |||
| description | } | |||
| "ERO subobject index"; | leaf role { | |||
| } | type pcep-role; | |||
| uses te-types:explicit-route-hop; | mandatory true; | |||
| } | description | |||
| } | "The role of the PCEP Peer. | |||
| leaf pcc-original { | Takes one of the following values. | |||
| type leafref { | - unknown(0): this PCEP peer role is not | |||
| path "/pcep/entity/peers/peer/addr"; | known. | |||
| } | - pcc(1): this PCEP peer is a PCC. | |||
| description | - pce(2): this PCEP peer is a PCE. | |||
| "Reference to PCC peer address of | - pcc-and-pce(3): this PCEP peer | |||
| the original request"; | is both a PCC and a PCE."; | |||
| } | } | |||
| leaf req-id { | leaf description { | |||
| type uint32; | type string; | |||
| description | description | |||
| "The request ID of the original PCReq."; | "Description of the PCEP peer | |||
| } | configured by the user"; | |||
| leaf retrieved { | } | |||
| type boolean; | uses info { | |||
| description | description | |||
| "If path-key has been retrieved yet"; | "PCE Peer information"; | |||
| } | } | |||
| leaf pcc-retrieved { | container pce-info { | |||
| type leafref { | uses pce-info { | |||
| path "/pcep/entity/peers/peer/addr"; | description | |||
| } | "PCE Peer information"; | |||
| must '(../retrieved = true())' { | } | |||
| error-message "The Path-key should be retreived"; | description | |||
| } | "The PCE Peer information"; | |||
| description | } | |||
| "Reference to PCC peer address which | leaf delegation-pref { | |||
| retreived the path-key"; | if-feature "stateful"; | |||
| } | type uint8 { | |||
| leaf creation-time { | range "0..7"; | |||
| type yang:timestamp; | } | |||
| description | description | |||
| "The timestamp value at the time this Path-Key | "The PCE peer delegation preference."; | |||
| was created."; | } | |||
| } | container auth { | |||
| leaf discard-time { | description | |||
| type uint32; | "The Authentication options"; | |||
| units "minutes"; | choice auth-type-selection { | |||
| description | description | |||
| "A time after which this path-keys will be | "Options for expressing authentication | |||
| discarded"; | setting."; | |||
| } | case auth-key-chain { | |||
| leaf reuse-time { | leaf key-chain { | |||
| type uint32; | type key-chain:key-chain-ref; | |||
| units "minutes"; | description | |||
| description | "key-chain name."; | |||
| "A time after which this path-keys could be | } | |||
| reused"; | } | |||
| } | case auth-key { | |||
| } | leaf crypto-algorithm { | |||
| } | type identityref { | |||
| container peers { | base key-chain:crypto-algorithm; | |||
| description | } | |||
| "The list of configured peers for the | mandatory true; | |||
| entity (remote PCE)"; | description | |||
| list peer { | "Cryptographic algorithm associated | |||
| key "addr"; | with key."; | |||
| description | } | |||
| "The peer configured for the entity. | choice key-string-style { | |||
| (remote PCE)"; | description | |||
| leaf addr { | "Key string styles"; | |||
| type inet:ip-address; | case keystring { | |||
| description | leaf keystring { | |||
| "The local Internet address of this | nacm:default-deny-all; | |||
| PCEP peer."; | type string; | |||
| } | description | |||
| leaf role { | "Key string in ASCII format."; | |||
| type pcep-role; | } | |||
| mandatory true; | } | |||
| description | case hexadecimal { | |||
| "The role of the PCEP Peer. | if-feature "key-chain:hex-key-string"; | |||
| Takes one of the following values. | leaf hexadecimal-string { | |||
| - unknown(0): this PCEP peer role is not | nacm:default-deny-all; | |||
| known. | type yang:hex-string; | |||
| - pcc(1): this PCEP peer is a PCC. | description | |||
| - pce(2): this PCEP peer is a PCE. | "Key in hexadecimal string format. When | |||
| - pcc-and-pce(3): this PCEP peer | compared to ASCII, specification in | |||
| is both a PCC and a PCE."; | hexadecimal affords greater key entropy | |||
| } | with the same number of internal | |||
| leaf description { | key-string octets. Additionally, it | |||
| type string; | discourages usage of well-known words or | |||
| description | numbers."; | |||
| "Description of the PCEP peer | } | |||
| configured by the user"; | } | |||
| } | } | |||
| uses info { | } | |||
| description | case auth-tls { | |||
| "PCE Peer information"; | if-feature "tls"; | |||
| } | choice role { | |||
| container pce-info { | description | |||
| uses pce-info { | "The role of the local entity"; | |||
| description | case server { | |||
| "PCE Peer information"; | container tls-server { | |||
| } | uses tlss:tls-server-grouping { | |||
| description | description | |||
| "The PCE Peer information"; | "Server TLS information."; | |||
| } | } | |||
| leaf delegation-pref { | description | |||
| if-feature "stateful"; | "TLS related information"; | |||
| type uint8 { | } | |||
| range "0..7"; | } | |||
| } | case client { | |||
| description | container tls-client { | |||
| "The PCE peer delegation preference."; | uses tlsc:tls-client-grouping { | |||
| } | description | |||
| container auth { | "Client TLS information."; | |||
| description | } | |||
| "The Authentication options"; | description | |||
| choice auth-type-selection { | "TLS related information"; | |||
| description | } | |||
| "Options for expressing authentication | } | |||
| setting."; | } | |||
| case auth-key-chain { | } | |||
| leaf key-chain { | } | |||
| type key-chain:key-chain-ref; | ||||
| description | ||||
| "key-chain name."; | ||||
| } | ||||
| } | ||||
| case auth-key { | ||||
| leaf crypto-algorithm { | ||||
| type identityref { | ||||
| base key-chain:crypto-algorithm; | ||||
| } | ||||
| mandatory true; | ||||
| description | ||||
| "Cryptographic algorithm associated | ||||
| with key."; | ||||
| } | ||||
| choice key-string-style { | ||||
| description | ||||
| "Key string styles"; | ||||
| case keystring { | ||||
| leaf keystring { | ||||
| nacm:default-deny-all; | ||||
| type string; | ||||
| description | ||||
| "Key string in ASCII format."; | ||||
| } | ||||
| } | ||||
| case hexadecimal { | ||||
| if-feature "key-chain: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 { | ||||
| if-feature "tls"; | ||||
| choice role { | ||||
| description | ||||
| "The role of the local entity"; | ||||
| case server { | } | |||
| container tls-server { | leaf discontinuity-time { | |||
| uses tlss:tls-server-grouping { | type yang:timestamp; | |||
| description | config false; | |||
| "Server TLS information."; | description | |||
| } | "The timestamp of the time when the information and | |||
| description | statistics were last reset."; | |||
| "TLS related information"; | } | |||
| } | leaf initiate-session { | |||
| } | type boolean; | |||
| case client { | config false; | |||
| container tls-client { | description | |||
| uses tlsc:tls-client-grouping { | "Indicates whether the local PCEP entity initiates | |||
| description | sessions to this peer, or waits for the peer to | |||
| "Client TLS information."; | initiate a session."; | |||
| } | } | |||
| description | leaf session-exists { | |||
| "TLS related information"; | type boolean; | |||
| } | config false; | |||
| } | description | |||
| } | "Indicates whether a session with | |||
| } | this peer currently exists."; | |||
| } | } | |||
| } | leaf session-up-time { | |||
| leaf discontinuity-time { | type yang:timestamp; | |||
| type yang:timestamp; | config false; | |||
| config false; | description | |||
| description | "The timestamp value of the last time a | |||
| "The timestamp of the time when the information and | session with this peer was successfully | |||
| statistics were last reset."; | established."; | |||
| } | } | |||
| leaf initiate-session { | leaf session-fail-time { | |||
| type boolean; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Indicates whether the local PCEP entity initiates | "The timestamp value of the last time a | |||
| sessions to this peer, or waits for the peer to | session with this peer failed to be | |||
| initiate a session."; | established."; | |||
| } | } | |||
| leaf session-exists { | leaf session-fail-up-time { | |||
| type boolean; | type yang:timestamp; | |||
| config false; | config false; | |||
| description | description | |||
| "Indicates whether a session with | "The timestamp value of the last time a | |||
| this peer currently exists."; | session with this peer failed from | |||
| } | active."; | |||
| leaf session-up-time { | } | |||
| type yang:timestamp; | container sessions { | |||
| config false; | config false; | |||
| description | description | |||
| "The timestamp value of the last time a | "This entry represents a single PCEP | |||
| session with this peer was successfully | session in which the local PCEP entity participates. | |||
| established."; | This entry exists only if the corresponding PCEP | |||
| } | session has been initialized by some event, such as | |||
| leaf session-fail-time { | manual user configuration, auto-discovery of a peer, | |||
| type yang:timestamp; | or an incoming TCP connection."; | |||
| config false; | list session { | |||
| description | key "initiator"; | |||
| "The timestamp value of the last time a | description | |||
| session with this peer failed to be | "The list of sessions, note that for a time being | |||
| established."; | two sessions may exist for a peer"; | |||
| } | leaf initiator { | |||
| leaf session-fail-up-time { | type pcep-initiator; | |||
| type yang:timestamp; | description | |||
| config false; | "The initiator of the session,that is, whether | |||
| description | the TCP connection was initiated by the local | |||
| "The timestamp value of the last time a | PCEP entity or the peer. | |||
| session with this peer failed from | There is a window during session | |||
| active."; | initialization where two sessions can exist | |||
| } | between a pair of PCEP speakers, each | |||
| container sessions { | initiated by one of the speakers. One of | |||
| config false; | these sessions is always discarded before it | |||
| description | leaves OpenWait state. However, before it is | |||
| "This entry represents a single PCEP | discarded, two sessions to the given peer | |||
| session in which the local PCEP entity participates. | appear transiently in this YANG module. The | |||
| This entry exists only if the corresponding PCEP | sessions are distinguished by who initiated | |||
| session has been initialized by some event, such as | them, and so this field is the key."; | |||
| manual user configuration, auto-discovery of a peer, | } | |||
| or an incoming TCP connection."; | leaf role { | |||
| list session { | type leafref { | |||
| key "initiator"; | path "/pcep/entity/role"; | |||
| description | } | |||
| "The list of sessions, note that for a time being | description | |||
| two sessions may exist for a peer"; | "The reference to peer role ."; | |||
| leaf initiator { | } | |||
| type pcep-initiator; | leaf state-last-change { | |||
| description | type yang:timestamp; | |||
| "The initiator of the session,that is, whether | description | |||
| the TCP connection was initiated by the local | "The timestamp value at the time this | |||
| PCEP entity or the peer. | session entered its current state as | |||
| There is a window during session | denoted by the state leaf."; | |||
| initialization where two sessions can exist | } | |||
| between a pair of PCEP speakers, each | leaf state { | |||
| initiated by one of the speakers. One of | type pcep-sess-state; | |||
| these sessions is always discarded before it | description | |||
| leaves OpenWait state. However, before it is | "The current state of the session. | |||
| 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 { | ||||
| type leafref { | ||||
| path "/pcep/entity/role"; | ||||
| } | ||||
| description | ||||
| "The reference to peer role ."; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| leaf state { | ||||
| 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."; | ||||
| } | ||||
| leaf session-creation { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value at the time this | ||||
| session was created."; | ||||
| } | ||||
| leaf connect-retry { | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of times that the local PCEP | ||||
| entity has attempted to establish a TCP | ||||
| connection for this session without | ||||
| success. The PCEP entity gives up when | ||||
| this reaches connect-max-retry."; | ||||
| } | ||||
| leaf local-id { | ||||
| type uint8; | ||||
| description | ||||
| "The value of the PCEP session ID used by | ||||
| the local PCEP entity in the Open message | ||||
| for this session. If state is tcp-pending | ||||
| 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."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf remote-id { | ||||
| type uint8; | ||||
| must "((../state != 'tcp-pending'" | ||||
| + "and " | ||||
| + "../state != 'open-wait' )" | ||||
| + "or " | ||||
| + "((../state = 'tcp-pending'" | ||||
| + " or " | ||||
| + "../state = 'open-wait' )" | ||||
| + "and (. = 0)))" { | ||||
| error-message "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."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf keepalive-timer { | ||||
| type uint8; | ||||
| 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."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf peer-keepalive-timer { | ||||
| type uint8; | ||||
| 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 dead-timer { | ||||
| type uint8; | ||||
| units "seconds"; | ||||
| description | ||||
| "The dead timer interval for this PCEP session."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf peer-dead-timer { | ||||
| 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 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)"; | ||||
| } | ||||
| 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. | ||||
| Otherwise, it is set to false."; | ||||
| 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)"; | ||||
| } | ||||
| 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."; | ||||
| 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"; | ||||
| } | ||||
| leaf recv-db-ver { | ||||
| when "../role = 'pcc'" | ||||
| + "or " | ||||
| + "../role = 'pcc-and-pce'" { | ||||
| description | ||||
| "This field is applicable when the role is | ||||
| PCC"; | ||||
| } | ||||
| if-feature "stateful"; | ||||
| if-feature "sync-opt"; | ||||
| type uint64; | ||||
| description | ||||
| "The last received LSP State Database Version | ||||
| Number"; | ||||
| 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 fields are applicable when the role is | ||||
| PCE"; | ||||
| } | ||||
| if-feature "objective-function"; | ||||
| uses of-list; | ||||
| description | ||||
| "Indicate the list of supported OF on this | ||||
| session"; | ||||
| reference | ||||
| "RFC 5541: Encoding of Objective Functions in | ||||
| the Path Computation Element Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| container pst-list { | ||||
| when "../role = 'pce'" | ||||
| + "or " | ||||
| + "../role = 'pcc-and-pce'" { | ||||
| 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"; | ||||
| 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"; | ||||
| } | ||||
| } | ||||
| } | ||||
| container assoc-type-list { | ||||
| if-feature "association"; | ||||
| description | ||||
| "Indicate the list of supported association types | ||||
| on this session"; | ||||
| reference | ||||
| "RFC 8697: Path Computation Element Communication | ||||
| Protocol (PCEP) Extensions for Establishing | ||||
| Relationships between Sets of Label Switched | ||||
| Paths (LSPs)"; | ||||
| list assoc-type { | ||||
| key "at"; | ||||
| description | ||||
| "The list of authorized association types"; | ||||
| leaf at { | ||||
| type identityref { | ||||
| base te-types:association-type; | ||||
| } | ||||
| description | ||||
| "The association type authorized"; | ||||
| } | ||||
| } | The set of possible states excludes the | |||
| } | idle state since entries do not exist | |||
| leaf speaker-entity-id { | in the idle state."; | |||
| if-feature "sync-opt"; | } | |||
| type string; | leaf session-creation { | |||
| description | type yang:timestamp; | |||
| "The Speaker Entity Identifier"; | description | |||
| reference | "The timestamp value at the time this | |||
| "RFC 8232: Optimizations of Label Switched | session was created."; | |||
| Path State Synchronization Procedures for | } | |||
| a Stateful PCE"; | leaf connect-retry { | |||
| } | type yang:counter32; | |||
| leaf discontinuity-time { | description | |||
| type yang:timestamp; | "The number of times that the local PCEP | |||
| description | entity has attempted to establish a TCP | |||
| "The timestamp value of the time when the | connection for this session without | |||
| statistics were last reset."; | success. The PCEP entity gives up when | |||
| } | this reaches connect-max-retry."; | |||
| } | } | |||
| // session | leaf local-id { | |||
| } | type uint8; | |||
| // sessions | description | |||
| } | "The value of the PCEP session ID used by | |||
| //peer | the local PCEP entity in the Open message | |||
| } | for this session. If state is tcp-pending | |||
| //peers | then this is the session ID that will be | |||
| } | used in the Open message. Otherwise, this | |||
| //entity | is the session ID that was sent in the | |||
| } | Open message."; | |||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf remote-id { | ||||
| type uint8; | ||||
| must "((../state != 'tcp-pending'" | ||||
| + "and " | ||||
| + "../state != 'open-wait' )" | ||||
| + "or " | ||||
| + "((../state = 'tcp-pending'" | ||||
| + " or " | ||||
| + "../state = 'open-wait' )" | ||||
| + "and (. = 0)))" { | ||||
| error-message "Invalid remote-id"; | ||||
| description | ||||
| "If state is TCPPending or OpenWait then | ||||
| this leaf is not used and MUST be set to | ||||
| zero."; | ||||
| //pcep | } | |||
| /* | description | |||
| * Notifications | "The value of the PCEP session ID used by the | |||
| */ | peer in its Open message for this session."; | |||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf keepalive-timer { | ||||
| type uint8; | ||||
| 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."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf peer-keepalive-timer { | ||||
| type uint8; | ||||
| 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 dead-timer { | ||||
| type uint8; | ||||
| units "seconds"; | ||||
| description | ||||
| "The DeadTimer interval for this PCEP session."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf peer-dead-timer { | ||||
| 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 Peer DeadTimer"; | ||||
| description | ||||
| "If state is TCPPending or OpenWait then this | ||||
| leaf is not used and MUST be set to zero."; | ||||
| } | ||||
| description | ||||
| "The peer's DeadTimer interval | ||||
| for this PCEP session."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (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 TCPPending or OpenWait then this | ||||
| field is not used and MUST be set to zero."; | ||||
| } | ||||
| description | ||||
| "The Keepalive 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. | ||||
| Otherwise, it is set to false."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf overloaded-timestamp { | ||||
| when '(../overloaded = true())' { | ||||
| description | ||||
| "Valid when overloaded"; | ||||
| } | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value of the time when the | ||||
| overloaded field was set to true."; | ||||
| } | ||||
| 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."; | ||||
| notification pcep-session-up { | reference | |||
| description | "RFC 5440: Path Computation Element (PCE) | |||
| "This notification is sent when the value of | Communication Protocol (PCEP)"; | |||
| '/pcep/peers/peer/sessions/session/state' | } | |||
| enters the 'session-up' state."; | leaf peer-overloaded { | |||
| uses notification-instance-hdr; | type boolean; | |||
| uses notification-session-hdr; | description | |||
| leaf state-last-change { | "If the peer has informed the local PCEP entity | |||
| type yang:timestamp; | that it is currently overloaded, then this is | |||
| description | set to true. Otherwise, it is set to false."; | |||
| "The timestamp value at the time this session | reference | |||
| entered its current state as denoted by the state | "RFC 5440: Path Computation Element (PCE) | |||
| leaf."; | Communication Protocol (PCEP)"; | |||
| } | ||||
| leaf peer-overloaded-timestamp { | ||||
| when '(../peer-overloaded = true())' { | ||||
| description | ||||
| "Valid when Peer is overloaded"; | ||||
| } | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value of the time when the | ||||
| peer-overloaded field was set to true."; | ||||
| } | ||||
| 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."; | ||||
| 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"; | ||||
| } | ||||
| leaf recv-db-ver { | ||||
| when "../role = 'pcc'" | ||||
| + "or " | ||||
| + "../role = 'pcc-and-pce'" { | ||||
| description | ||||
| "This field is applicable when the role is | ||||
| PCC"; | ||||
| } | ||||
| if-feature "stateful"; | ||||
| if-feature "sync-opt"; | ||||
| type uint64; | ||||
| description | ||||
| "The last received LSP State Database Version | ||||
| Number"; | ||||
| 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 fields are applicable when the role is | ||||
| PCE"; | ||||
| } | ||||
| if-feature "objective-function"; | ||||
| uses of-list; | ||||
| description | ||||
| "Indicate the list of supported OF on this | ||||
| session"; | ||||
| reference | ||||
| "RFC 5541: Encoding of Objective Functions in | ||||
| the Path Computation Element Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| container pst-list { | ||||
| when "../role = 'pce'" | ||||
| + "or " | ||||
| + "../role = 'pcc-and-pce'" { | ||||
| 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"; | ||||
| list path-setup-type { | ||||
| key "pst"; | ||||
| description | ||||
| "The list of PST"; | ||||
| leaf pst { | ||||
| type identityref { | ||||
| base te-types:path-signaling-type; | ||||
| } | ||||
| description | ||||
| "The PST supported"; | ||||
| } | ||||
| } | ||||
| } | ||||
| container assoc-type-list { | ||||
| if-feature "association"; | ||||
| description | ||||
| "Indicate the list of supported association types | ||||
| on this session"; | ||||
| reference | ||||
| "RFC 8697: Path Computation Element Communication | ||||
| Protocol (PCEP) Extensions for Establishing | ||||
| Relationships between Sets of Label Switched | ||||
| Paths (LSPs)"; | ||||
| list assoc-type { | ||||
| key "at"; | ||||
| description | ||||
| "The list of authorized association types"; | ||||
| leaf at { | ||||
| type identityref { | ||||
| base te-types:association-type; | ||||
| } | ||||
| description | ||||
| "The association type authorized"; | ||||
| } | ||||
| } | ||||
| } | ||||
| leaf speaker-entity-id { | ||||
| if-feature "sync-opt"; | ||||
| type string; | ||||
| description | ||||
| "The Speaker Entity Identifier"; | ||||
| reference | ||||
| "RFC 8232: Optimizations of Label Switched | ||||
| Path State Synchronization Procedures for | ||||
| a Stateful PCE"; | ||||
| } | ||||
| } | ||||
| // session | ||||
| } | ||||
| // sessions | ||||
| } | ||||
| //peer | ||||
| } | ||||
| //peers | ||||
| } | ||||
| //entity | ||||
| } | ||||
| } | //pcep | |||
| leaf state { | /* | |||
| type pcep-sess-state; | * Notifications | |||
| 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 | notification pcep-session-up { | |||
| description | ||||
| "This notification is sent when the value of | ||||
| '/pcep/peers/peer/sessions/session/state' | ||||
| enters the 'session-up' state."; | ||||
| uses notification-instance-hdr; | ||||
| uses notification-session-hdr; | ||||
| 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."; | ||||
| } | ||||
| leaf state { | ||||
| 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 pcep-session-down { | //notification | |||
| description | ||||
| "This notification is sent when the value of | ||||
| '/pcep/peers/peer/sessions/session/state' | ||||
| leaves the 'session-up' state."; | ||||
| uses notification-instance-hdr; | ||||
| leaf session-initiator { | ||||
| type pcep-initiator; | ||||
| description | ||||
| "The initiator of the session."; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| leaf state { | ||||
| 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 | notification pcep-session-down { | |||
| description | ||||
| "This notification is sent when the value of | ||||
| '/pcep/peers/peer/sessions/session/state' | ||||
| leaves the 'session-up' state."; | ||||
| uses notification-instance-hdr; | ||||
| leaf session-initiator { | ||||
| type pcep-initiator; | ||||
| description | ||||
| "The initiator of the session."; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| leaf state { | ||||
| 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 pcep-session-local-overload { | //notification | |||
| description | ||||
| "This notification is sent when the local PCEP entity | ||||
| enters overload state for a peer."; | ||||
| uses notification-instance-hdr; | ||||
| uses notification-session-hdr; | ||||
| 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 { | ||||
| 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."; | ||||
| } | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| //notification | notification pcep-session-local-overload { | |||
| description | ||||
| "This notification is sent when the local PCEP entity | ||||
| enters overload state for a peer."; | ||||
| uses notification-instance-hdr; | ||||
| uses notification-session-hdr; | ||||
| 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 overloaded-timestamp { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value of the time when the | ||||
| overloaded field was set to true."; | ||||
| } | ||||
| leaf overload-time { | ||||
| 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."; | ||||
| } | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| notification pcep-session-local-overload-clear { | //notification | |||
| description | ||||
| "This notification is sent when the local PCEP entity | ||||
| leaves overload state for a peer."; | ||||
| uses notification-instance-hdr; | ||||
| 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."; | ||||
| } | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| //notification | notification pcep-session-local-overload-clear { | |||
| description | ||||
| "This notification is sent when the local PCEP entity | ||||
| leaves overload state for a peer."; | ||||
| uses notification-instance-hdr; | ||||
| 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 overloaded-clear-timestamp { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value of the time when the | ||||
| overloaded field was set to false."; | ||||
| } | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| notification pcep-session-peer-overload { | //notification | |||
| description | notification pcep-session-peer-overload { | |||
| "This notification is sent when a peer enters overload | description | |||
| state."; | "This notification is sent when a peer enters overload | |||
| uses notification-instance-hdr; | state."; | |||
| uses notification-session-hdr; | uses notification-instance-hdr; | |||
| leaf peer-overloaded { | uses notification-session-hdr; | |||
| type boolean; | leaf peer-overloaded { | |||
| description | type boolean; | |||
| "If the peer has informed the local PCEP entity that | description | |||
| it is currently overloaded, then this is set to | "If the peer has informed the local PCEP entity that | |||
| true. Otherwise, it is set to false."; | it is currently overloaded, then this is set to | |||
| } | true. Otherwise, it is set to false."; | |||
| leaf peer-overload-time { | } | |||
| type uint32; | leaf peer-overloaded-timestamp { | |||
| units "seconds"; | type yang:timestamp; | |||
| description | description | |||
| "The interval of time that is remaining until the | "The timestamp value of the time when the | |||
| peer will cease to be overloaded. If it is not | peer-overloaded field was set to true."; | |||
| known how long the peer will stay in overloaded | } | |||
| state, this leaf is set to zero."; | leaf peer-overload-time { | |||
| } | type uint32; | |||
| reference | units "seconds"; | |||
| "RFC 5440: Path Computation Element (PCE) Communication | description | |||
| Protocol (PCEP)"; | "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 | //notification | |||
| notification pcep-session-peer-overload-clear { | notification pcep-session-peer-overload-clear { | |||
| description | description | |||
| "This notification is sent when a peer leaves overload | "This notification is sent when a peer leaves overload | |||
| state."; | state."; | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf peer-overloaded { | leaf peer-overloaded { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "If the peer has informed the local PCEP entity that | "If the peer has informed the local PCEP entity that | |||
| it is currently overloaded, then this is set to | it is currently overloaded, then this is set to | |||
| true. Otherwise, it is set to false."; | true. Otherwise, it is set to false."; | |||
| } | } | |||
| reference | leaf peer-overloaded-clear-timestamp { | |||
| "RFC 5440: Path Computation Element (PCE) Communication | type yang:timestamp; | |||
| Protocol (PCEP)"; | description | |||
| } | "The timestamp value of the time when the | |||
| peer-overloaded field was set to false."; | ||||
| } | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | ||||
| //notification | //notification | |||
| /* | /* | |||
| * RPC | * RPC | |||
| */ | */ | |||
| rpc trigger-resync { | rpc trigger-resync { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| if-feature "sync-opt"; | if-feature "sync-opt"; | |||
| description | description | |||
| "Trigger the resyncrinization at the PCE"; | "Trigger the resynchronization at the PCE"; | |||
| reference | reference | |||
| "RFC 8232: Optimizations of Label Switched Path State | "RFC 8232: Optimizations of Label Switched Path State | |||
| Synchronization Procedures for a Stateful PCE"; | Synchronization Procedures for a Stateful PCE"; | |||
| input { | input { | |||
| leaf pcc { | leaf pcc { | |||
| type leafref { | type leafref { | |||
| path "/pcep/entity/peers/peer/addr"; | path "/pcep/entity/peers/peer/addr"; | |||
| } | } | |||
| description | description | |||
| "The IP address to identify the PCC. The state | "The IP address to identify the PCC. The state | |||
| syncronization is re-triggered for all LSPs from | syncronization is re-triggered for all LSPs from | |||
| the PCC. The rpc on the PCC will be ignored."; | the PCC. The rpc on the PCC will be ignored."; | |||
| } | } | |||
| } | } | |||
| //input | //input | |||
| } | } | |||
| //rpc | //rpc | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 9.2. ietf-pcep-stats module | 9.2. ietf-pcep-stats module | |||
| <CODE BEGINS> file "ietf-pcep-stats@2021-10-23.yang" | ||||
| <CODE BEGINS> file "ietf-pcep-stats@2021-02-22.yang" | ||||
| module ietf-pcep-stats { | module ietf-pcep-stats { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; | namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; | |||
| prefix pcep-stats; | prefix pcep-stats; | |||
| import ietf-pcep { | import ietf-pcep { | |||
| prefix pcep; | prefix pcep; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Path Computation | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol (PCEP)"; | Element Communications Protocol (PCEP)"; | |||
| skipping to change at page 77, line 27 ¶ | skipping to change at page 79, line 46 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
| RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
| revision 2021-02-22 { | revision 2021-10-23 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Path Computation | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol (PCEP)"; | Element Communications Protocol (PCEP)"; | |||
| } | } | |||
| /* | /* | |||
| * Groupings | * Groupings | |||
| */ | */ | |||
| grouping pcep-stats { | grouping pcep-stats { | |||
| description | description | |||
| "This grouping defines statistics for PCEP. It is used | "This grouping defines statistics for PCEP. It is used | |||
| for both peer and current session."; | for both peer and current session."; | |||
| leaf avg-rsp-time { | leaf discontinuity-time { | |||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value of the time when the | ||||
| statistics were last reset."; | ||||
| } | ||||
| leaf rsp-time-avg { | ||||
| when "../../pcep:role = 'pce'" | when "../../pcep:role = 'pce'" | |||
| + "or " | + "or " | |||
| + "../../pcep:role = 'pcc-and-pce'" { | + "../../pcep:role = 'pcc-and-pce'" { | |||
| description | description | |||
| "Valid for PCEP Peer as PCE"; | "Valid for PCEP Peer as PCE"; | |||
| } | } | |||
| type uint32; | type uint32; | |||
| units "milliseconds"; | units "milliseconds"; | |||
| description | description | |||
| "The average response time. If an average response time | "The average response time. If an average response time | |||
| has not been calculated then this leaf has the value | has not been calculated then this leaf has the value | |||
| zero."; | zero."; | |||
| } | } | |||
| leaf lwm-rsp-time { | leaf rsp-time-lwm { | |||
| when "../../pcep:role = 'pce'" | when "../../pcep:role = 'pce'" | |||
| + "or " | + "or " | |||
| + "../../pcep:role = 'pcc-and-pce'" { | + "../../pcep:role = 'pcc-and-pce'" { | |||
| description | description | |||
| "Valid for PCEP Peer as PCE"; | "Valid for PCEP Peer as PCE"; | |||
| } | } | |||
| type uint32; | type uint32; | |||
| units "milliseconds"; | units "milliseconds"; | |||
| description | description | |||
| "The smallest (low-water mark) response time seen. | "The smallest (low-water mark) response time seen. | |||
| If no responses have been received then this leaf has | If no responses have been received then this leaf has | |||
| the value zero."; | the value zero."; | |||
| } | } | |||
| leaf hwm-rsp-time { | leaf rsp-time-hwm { | |||
| when "../../pcep:role = 'pce'" | when "../../pcep:role = 'pce'" | |||
| + "or " | + "or " | |||
| + "../../pcep:role = 'pcc-and-pce'" { | + "../../pcep:role = 'pcc-and-pce'" { | |||
| description | description | |||
| "Valid for PCEP Peer as PCE"; | "Valid for PCEP Peer as PCE"; | |||
| } | } | |||
| type uint32; | type uint32; | |||
| units "milliseconds"; | units "milliseconds"; | |||
| description | description | |||
| "The greatest (high-water mark) response time seen. | "The greatest (high-water mark) response time seen. | |||
| If no responses have been received then this object | If no responses have been received then this object | |||
| has the value zero."; | has the value zero."; | |||
| } | } | |||
| skipping to change at page 97, line 23 ¶ | skipping to change at page 99, line 48 ¶ | |||
| Thanks to Mahesh Jethmalani for the Yang Doctor review. | Thanks to Mahesh Jethmalani for the Yang Doctor review. | |||
| Thanks to Martin Bjorklund and Tom Petch for providing guidance | Thanks to Martin Bjorklund and Tom Petch for providing guidance | |||
| regarding the Yang guidelines. | regarding the Yang guidelines. | |||
| 14. References | 14. References | |||
| 14.1. Normative References | 14.1. Normative References | |||
| [I-D.ietf-isis-yang-isis-cfg] | [I-D.ietf-isis-yang-isis-cfg] | |||
| Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. | Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. | |||
| Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf- | Lhotka, "YANG Data Model for IS-IS Protocol", Work in | |||
| isis-yang-isis-cfg-42 (work in progress), October 2019. | Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- | |||
| 42, 15 October 2019, <https://www.ietf.org/archive/id/ | ||||
| draft-ietf-isis-yang-isis-cfg-42.txt>. | ||||
| [I-D.ietf-netconf-tls-client-server] | [I-D.ietf-netconf-tls-client-server] | |||
| Watsen, K., "YANG Groupings for TLS Clients and TLS | Watsen, K., "YANG Groupings for TLS Clients and TLS | |||
| Servers", draft-ietf-netconf-tls-client-server-22 (work in | Servers", Work in Progress, Internet-Draft, draft-ietf- | |||
| progress), August 2020. | netconf-tls-client-server-25, 18 June 2021, | |||
| <https://www.ietf.org/archive/id/draft-ietf-netconf-tls- | ||||
| client-server-25.txt>. | ||||
| [I-D.ietf-ospf-yang] | [I-D.ietf-ospf-yang] | |||
| Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem, | |||
| "YANG Data Model for OSPF Protocol", draft-ietf-ospf- | "YANG Data Model for OSPF Protocol", Work in Progress, | |||
| yang-29 (work in progress), October 2019. | Internet-Draft, draft-ietf-ospf-yang-29, 17 October 2019, | |||
| <https://www.ietf.org/archive/id/draft-ietf-ospf-yang- | ||||
| 29.txt>. | ||||
| [I-D.ietf-teas-yang-te] | [I-D.ietf-teas-yang-te] | |||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, | Saad, T., Gandhi, R., Liu, X., Beeram, V. P., Bryskin, I., | |||
| "A YANG Data Model for Traffic Engineering Tunnels, Label | and O. G. D. Dios, "A YANG Data Model for Traffic | |||
| Switched Paths and Interfaces", draft-ietf-teas-yang-te-25 | Engineering Tunnels, Label Switched Paths and Interfaces", | |||
| (work in progress), July 2020. | Work in Progress, Internet-Draft, draft-ietf-teas-yang-te- | |||
| 27, 8 July 2021, <https://www.ietf.org/archive/id/draft- | ||||
| ietf-teas-yang-te-27.txt>. | ||||
| [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>. | |||
| [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>. | |||
| skipping to change at page 101, line 7 ¶ | skipping to change at page 103, line 40 ¶ | |||
| <https://www.rfc-editor.org/info/rfc8776>. | <https://www.rfc-editor.org/info/rfc8776>. | |||
| [RFC8779] Margaria, C., Ed., Gonzalez de Dios, O., Ed., and F. | [RFC8779] Margaria, C., Ed., Gonzalez de Dios, O., Ed., and F. | |||
| Zhang, Ed., "Path Computation Element Communication | Zhang, Ed., "Path Computation Element Communication | |||
| Protocol (PCEP) Extensions for GMPLS", RFC 8779, | Protocol (PCEP) Extensions for GMPLS", RFC 8779, | |||
| DOI 10.17487/RFC8779, July 2020, | DOI 10.17487/RFC8779, July 2020, | |||
| <https://www.rfc-editor.org/info/rfc8779>. | <https://www.rfc-editor.org/info/rfc8779>. | |||
| 14.2. Informative References | 14.2. Informative References | |||
| [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [IANA-OSPF] | |||
| Element (PCE)-Based Architecture", RFC 4655, | "Path Computation Element (PCE) Capability Flags in Open | |||
| Shortest Path First v2 (OSPFv2) Parameters", | ||||
| <https://www.iana.org/assignments/ospfv2-parameters/ | ||||
| ospfv2-parameters.xhtml#ospfv2-parameters-14>. | ||||
| [IANA-PCEP] | ||||
| "ASSOCIATION Type Field in Path Computation Element | ||||
| Protocol (PCEP) Numbers", | ||||
| <https://www.iana.org/assignments/pcep/ | ||||
| pcep.xhtml#association-type-field>. | ||||
| [RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path | ||||
| Computation 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>. | |||
| [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | |||
| skipping to change at page 102, line 21 ¶ | skipping to change at page 104, line 42 ¶ | |||
| +--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 {sync-opt}? | +--rw speaker-entity-id? string {sync-opt}? | |||
| +--rw admin-status? boolean | +--rw admin-status? boolean | |||
| +--ro index? uint32 | +--ro index? uint32 | |||
| +--ro oper-status? pcep-oper-status | +--ro oper-status? pcep-oper-status | |||
| +--rw domain | +--rw domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domains* [domain-type domain-info] | |||
| | +--rw domain-type identityref | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain-info domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw capability? bits | | +--rw capability? bits | |||
| | +--rw pce-initiated? boolean {pce-initiated}? | | +--rw pce-initiated? boolean {pce-initiated}? | |||
| | +--rw include-db-ver? boolean {stateful,sync-opt}? | | +--rw include-db-ver? boolean {stateful,sync-opt}? | |||
| | +--rw trigger-resync? boolean {stateful,sync-opt}? | | +--rw trigger-resync? boolean {stateful,sync-opt}? | |||
| | +--rw trigger-initial-sync? boolean {stateful,sync-opt}? | | +--rw trigger-initial-sync? boolean {stateful,sync-opt}? | |||
| | +--rw incremental-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-limit? boolean | | +--rw msd-limit? boolean | |||
| | +--rw nai? boolean | | +--rw nai? boolean | |||
| +--rw msd? uint8 {sr}? | +--rw msd? uint8 {sr}? | |||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw path-scope? bits | | | +--rw path-scope? bits | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | +--rw neigh-domains | | +--rw neighbour-domains | |||
| | | +--rw domain* [domain-type domain] | | | +--rw domains* [domain-type domain-info] | |||
| | | +--rw domain-type identityref | | | +--rw domain-type identityref | |||
| | | +--rw domain domain | | | +--rw domain-info 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? uint16 | +--rw connect-timer? uint16 | |||
| +--rw connect-max-retry? uint32 | +--rw connect-max-retry? uint32 | |||
| +--rw init-backoff-timer? uint16 | +--rw init-back-off-timer? uint16 | |||
| +--rw max-backoff-timer? uint32 | +--rw max-back-off-timer? uint32 | |||
| +--ro open-wait-timer? uint16 | +--ro open-wait-timer? uint16 | |||
| +--ro keep-wait-timer? uint16 | +--ro keep-wait-timer? uint16 | |||
| +--rw keep-alive-timer? uint8 | +--rw keepalive-timer? uint8 | |||
| +--rw dead-timer? uint8 | +--rw dead-timer? uint8 | |||
| +--rw allow-negotiation? boolean | +--rw allow-negotiation? boolean | |||
| +--rw max-keep-alive-timer? uint8 | +--rw max-keepalive-timer? uint8 | |||
| +--rw max-dead-timer? uint8 | +--rw max-dead-timer? uint8 | |||
| +--rw min-keep-alive-timer? uint8 | +--rw min-keepalive-timer? uint8 | |||
| +--rw min-dead-timer? uint8 | +--rw min-dead-timer? uint8 | |||
| +--rw sync-timer? uint16 {svec}? | +--rw sync-timer? uint16 {svec}? | |||
| +--rw request-timer? uint16 | +--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 | |||
| skipping to change at page 105, line 20 ¶ | skipping to change at page 107, line 41 ¶ | |||
| | +--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 domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domains* [domain-type domain-info] | |||
| | +--rw domain-type identityref | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain-info domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw capability? bits | | +--rw capability? bits | |||
| | +--rw pce-initiated? boolean | | +--rw pce-initiated? boolean | |||
| | | {pce-initiated}? | | | {pce-initiated}? | |||
| | +--rw include-db-ver? boolean | | +--rw include-db-ver? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-resync? boolean | | +--rw trigger-resync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-initial-sync? boolean | | +--rw trigger-initial-sync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| skipping to change at page 105, line 48 ¶ | skipping to change at page 108, line 21 ¶ | |||
| | +--rw msd-limit? boolean | | +--rw msd-limit? boolean | |||
| | +--rw nai? boolean | | +--rw nai? boolean | |||
| +--rw msd? uint8 {sr}? | +--rw msd? uint8 {sr}? | |||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw path-scope? bits | | | +--rw path-scope? bits | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | +--rw neigh-domains | | +--rw neighbour-domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domains* [domain-type domain-info] | |||
| | +--rw domain-type identityref | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain-info domain | |||
| +--rw delegation-pref? uint8 {stateful}? | +--rw delegation-pref? uint8 {stateful}? | |||
| +--rw auth | +--rw auth | |||
| | +--rw (auth-type-selection)? | | +--rw (auth-type-selection)? | |||
| | +--:(auth-key-chain) | | +--:(auth-key-chain) | |||
| | | +--rw key-chain? | | | +--rw key-chain? | |||
| | | key-chain:key-chain-ref | | | key-chain:key-chain-ref | |||
| | +--:(auth-key) | | +--:(auth-key) | |||
| | | +--rw crypto-algorithm identityref | | | +--rw crypto-algorithm identityref | |||
| | | +--rw (key-string-style)? | | | +--rw (key-string-style)? | |||
| | | +--:(keystring) | | | +--:(keystring) | |||
| skipping to change at page 106, line 35 ¶ | skipping to change at page 109, line 8 ¶ | |||
| | +--rw tls-client | | +--rw tls-client | |||
| | ... | | ... | |||
| +--ro discontinuity-time? yang:timestamp | +--ro discontinuity-time? yang:timestamp | |||
| +--ro initiate-session? boolean | +--ro initiate-session? boolean | |||
| +--ro session-exists? boolean | +--ro session-exists? boolean | |||
| +--ro session-up-time? yang:timestamp | +--ro session-up-time? yang:timestamp | |||
| +--ro session-fail-time? yang:timestamp | +--ro session-fail-time? yang:timestamp | |||
| +--ro session-fail-up-time? yang:timestamp | +--ro session-fail-up-time? yang:timestamp | |||
| +--ro sessions | +--ro sessions | |||
| +--ro session* [initiator] | +--ro session* [initiator] | |||
| +--ro initiator pcep-initiator | +--ro initiator pcep-initiator | |||
| +--ro role? | +--ro role? | |||
| | -> /pcep/entity/role | | -> /pcep/entity/role | |||
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp | |||
| +--ro state? pcep-sess-state | +--ro state? | |||
| +--ro session-creation? yang:timestamp | | pcep-sess-state | |||
| +--ro connect-retry? yang:counter32 | +--ro session-creation? yang:timestamp | |||
| +--ro local-id? uint8 | +--ro connect-retry? yang:counter32 | |||
| +--ro remote-id? uint8 | +--ro local-id? uint8 | |||
| +--ro keepalive-timer? uint8 | +--ro remote-id? uint8 | |||
| +--ro peer-keepalive-timer? uint8 | +--ro keepalive-timer? uint8 | |||
| +--ro dead-timer? uint8 | +--ro peer-keepalive-timer? uint8 | |||
| +--ro peer-dead-timer? uint8 | +--ro dead-timer? uint8 | |||
| +--ro ka-hold-time-rem? uint8 | +--ro peer-dead-timer? uint8 | |||
| +--ro overloaded? boolean | +--ro ka-hold-time-rem? uint8 | |||
| +--ro overload-time? uint32 | +--ro overloaded? boolean | |||
| +--ro peer-overloaded? boolean | +--ro overloaded-timestamp? yang:timestamp | |||
| +--ro peer-overload-time? uint32 | +--ro overload-time? uint32 | |||
| +--ro lspdb-sync? sync-state | +--ro peer-overloaded? boolean | |||
| +--ro peer-overloaded-timestamp? yang:timestamp | ||||
| +--ro peer-overload-time? uint32 | ||||
| +--ro lspdb-sync? sync-state | ||||
| | {stateful}? | | {stateful}? | |||
| +--ro recv-db-ver? uint64 | +--ro recv-db-ver? uint64 | |||
| | {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 {sync-opt}? | +--ro speaker-entity-id? string | |||
| +--ro discontinuity-time? yang:timestamp | {sync-opt}? | |||
| rpcs: | rpcs: | |||
| +---x trigger-resync {stateful,sync-opt}? | +---x trigger-resync {stateful,sync-opt}? | |||
| +---w input | +---w input | |||
| +---w pcc? -> /pcep/entity/peers/peer/addr | +---w pcc? -> /pcep/entity/peers/peer/addr | |||
| 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 | |||
| +---n pcep-session-down | +---n pcep-session-down | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | +--ro session-initiator? pcep-initiator | | +--ro session-initiator? pcep-initiator | |||
| | +--ro state-last-change? yang:timestamp | | +--ro state-last-change? yang:timestamp | |||
| | +--ro state? pcep-sess-state | | +--ro state? pcep-sess-state | |||
| +---n pcep-session-local-overload | +---n pcep-session-local-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 overloaded? boolean | | +--ro overloaded? boolean | |||
| | +--ro overload-time? uint32 | | +--ro overloaded-timestamp? yang:timestamp | |||
| | +--ro overload-time? uint32 | ||||
| +---n pcep-session-local-overload-clear | +---n pcep-session-local-overload-clear | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? | |||
| | +--ro overloaded? boolean | | | -> /pcep/entity/peers/peer/addr | |||
| | +--ro overloaded? boolean | ||||
| | +--ro overloaded-clear-timestamp? yang:timestamp | ||||
| +---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-overloaded-timestamp? yang:timestamp | |||
| | +--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? | |||
| +--ro peer-overloaded? boolean | | -> /pcep/entity/peers/peer/addr | |||
| +--ro peer-overloaded? boolean | ||||
| +--ro peer-overloaded-clear-timestamp? yang:timestamp | ||||
| Appendix B. Example | Appendix B. 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. | |||
| +-------+ +-------+ | +-------+ +-------+ | |||
| | | | | | | | | | | |||
| | PCC1 |<---------------->| | | | PCC1 |<---------------->| | | |||
| | | | | | | | | | | |||
| skipping to change at page 111, line 4 ¶ | skipping to change at page 113, line 35 ¶ | |||
| "session": { | "session": { | |||
| "initiator": "remote", | "initiator": "remote", | |||
| "role": "pcc", | "role": "pcc", | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Appendix C. Contributor Addresses | Appendix C. Contributor Addresses | |||
| Rohit Pobbathi | Rohit Pobbathi | |||
| Huawei Technologies | Nokia Networks | |||
| Divyashree Techno Park, Whitefield | ||||
| Bangalore, Karnataka 560066 | ||||
| India | India | |||
| EMail: rohit.pobbathi@huawei.com | EMail: rohit.pobbathi_ashok@nokia.com | |||
| Vinod KumarS | Vinod KumarS | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560066 | Bangalore, Karnataka 560066 | |||
| India | India | |||
| EMail: vinods.kumar@huawei.com | EMail: vinods.kumar@huawei.com | |||
| Zafar Ali | Zafar Ali | |||
| Cisco Systems | Cisco Systems | |||
| Canada | Canada | |||
| EMail: zali@cisco.com | EMail: zali@cisco.com | |||
| Xufeng Liu | Xufeng Liu | |||
| Volta Networks | Volta Networks | |||
| skipping to change at page 112, line 19 ¶ | skipping to change at page 115, line 4 ¶ | |||
| Shashikanth | Shashikanth | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560066 | Bangalore, Karnataka 560066 | |||
| India | India | |||
| EMail: shashikanth.vh@huawei.com | EMail: shashikanth.vh@huawei.com | |||
| Authors' Addresses | Authors' Addresses | |||
| Dhruv Dhody (editor) | Dhruv Dhody (editor) | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560066 | Bangalore 560066 | |||
| Karnataka | ||||
| India | India | |||
| EMail: dhruv.ietf@gmail.com | Email: dhruv.ietf@gmail.com | |||
| Jonathan Hardwick | Jonathan Hardwick | |||
| Metaswitch | Metaswitch | |||
| 100 Church Street | 100 Church Street | |||
| Enfield EN2 6BQ | Enfield | |||
| UK | EN2 6BQ | |||
| United Kingdom | ||||
| EMail: jonathan.hardwick@metaswitch.com | Email: jonathan.hardwick@metaswitch.com | |||
| Vishnu Pavan Beeram | Vishnu Pavan Beeram | |||
| Juniper Networks | Juniper Networks | |||
| USA | India | |||
| EMail: vbeeram@juniper.net | Email: vbeeram@juniper.net | |||
| Jeff Tantsura | Jeff Tantsura | |||
| Apstra, Inc. | Apstra, Inc. | |||
| USA | United States of America | |||
| EMail: jefftant.ietf@gmail.com | Email: jefftant.ietf@gmail.com | |||
| End of changes. 224 change blocks. | ||||
| 2877 lines changed or deleted | 3026 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/ | ||||