| < draft-pkd-pce-pcep-yang-05.txt | draft-pkd-pce-pcep-yang-06.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: July 31, 2016 Metaswitch | Expires: January 8, 2017 Metaswitch | |||
| V. Beeram | V. Beeram | |||
| Juniper Networks | Juniper Networks | |||
| J. Tantsura | J. Tantsura | |||
| Ericsson | July 7, 2016 | |||
| January 28, 2016 | ||||
| A YANG Data Model for Path Computation Element Communications Protocol | A YANG Data Model for Path Computation Element Communications Protocol | |||
| (PCEP) | (PCEP) | |||
| draft-pkd-pce-pcep-yang-05 | draft-pkd-pce-pcep-yang-06 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model for the management of Path | This document defines a YANG data model for the management of Path | |||
| Computation Element communications Protocol (PCEP) for communications | Computation Element communications Protocol (PCEP) for communications | |||
| between a Path Computation Client (PCC) and a Path Computation | between a Path Computation Client (PCC) and a Path Computation | |||
| Element (PCE), or between two PCEs. The data model includes | Element (PCE), or between two PCEs. The data model includes | |||
| configuration data and state data (status information and counters | configuration data and state data (status information and counters | |||
| for the collection of statistics). | for the collection of statistics). | |||
| skipping to change at page 1, line 41 ¶ | 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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 July 31, 2016. | This Internet-Draft will expire on January 8, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 18 ¶ | skipping to change at page 2, line 17 ¶ | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 | 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | |||
| 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 5 | 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6 | |||
| 5.1. The Entity . . . . . . . . . . . . . . . . . . . . . . . 13 | 5.1. The Entity . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5.2. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 14 | 5.2. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 5.3. The Session Lists . . . . . . . . . . . . . . . . . . . . 14 | 5.3. The Session Lists . . . . . . . . . . . . . . . . . . . . 18 | |||
| 5.4. Notifications . . . . . . . . . . . . . . . . . . . . . . 15 | 5.4. Notifications . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 6. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 15 | 6. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 19 | |||
| 6.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 16 | 6.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 19 | |||
| 7. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 16 | 7. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 20 | |||
| 7.1. The LSP Database . . . . . . . . . . . . . . . . . . . . 16 | 7.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 20 | |||
| 8. PCEP YANG Module . . . . . . . . . . . . . . . . . . . . . . 16 | 7.2. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 20 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 72 | 8. PCEP YANG Module . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 10. Manageability Considerations . . . . . . . . . . . . . . . . 73 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 83 | |||
| 10.1. Control of Function and Policy . . . . . . . . . . . . . 73 | 10. Manageability Considerations . . . . . . . . . . . . . . . . 84 | |||
| 10.2. Information and Data Models . . . . . . . . . . . . . . 73 | 10.1. Control of Function and Policy . . . . . . . . . . . . . 84 | |||
| 10.3. Liveness Detection and Monitoring . . . . . . . . . . . 73 | 10.2. Information and Data Models . . . . . . . . . . . . . . 84 | |||
| 10.4. Verify Correct Operations . . . . . . . . . . . . . . . 73 | 10.3. Liveness Detection and Monitoring . . . . . . . . . . . 84 | |||
| 10.5. Requirements On Other Protocols . . . . . . . . . . . . 73 | 10.4. Verify Correct Operations . . . . . . . . . . . . . . . 84 | |||
| 10.6. Impact On Network Operations . . . . . . . . . . . . . . 73 | 10.5. Requirements On Other Protocols . . . . . . . . . . . . 84 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 73 | 10.6. Impact On Network Operations . . . . . . . . . . . . . . 84 | |||
| 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 73 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 84 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 73 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 85 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 73 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 85 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 74 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 85 | |||
| Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 76 | 13.2. Informative References . . . . . . . . . . . . . . . . . 86 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 77 | Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 88 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 89 | ||||
| 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 4, line 21 ¶ | skipping to change at page 4, line 21 ¶ | |||
| [I-D.ietf-pce-stateful-pce] : | [I-D.ietf-pce-stateful-pce] : | |||
| o Stateful PCE, Passive Stateful PCE, Active Stateful PCE | o Stateful PCE, Passive Stateful PCE, Active Stateful PCE | |||
| o Delegation, Revocation, Redelegation | o Delegation, Revocation, Redelegation | |||
| o LSP State Report, Path Computation Report message (PCRpt). | o LSP State Report, Path Computation Report message (PCRpt). | |||
| o LSP State Update, Path Computation Update message (PCUpd). | o LSP State Update, Path Computation Update message (PCUpd). | |||
| [I-D.ietf-pce-pce-initiated-lsp] : | ||||
| o PCE-initiated LSP, Path Computation LSP Initiate Message | ||||
| (PCInitiate). | ||||
| [I-D.ietf-pce-lsp-setup-type] : | ||||
| o Path Setup Type (PST). | ||||
| [I-D.ietf-pce-segment-routing] : | ||||
| o Segment Routing (SR). | ||||
| o Segment Identifier (SID). | ||||
| o Maximum SID Depth (MSD). | ||||
| 3.1. Tree Diagrams | 3.1. Tree Diagrams | |||
| A graphical representation of the complete data tree is presented in | A graphical representation of the complete data tree is presented in | |||
| Section 5. The meaning of the symbols in these diagrams is as | Section 5. The meaning of the symbols in these diagrams is as | |||
| follows and as per [I-D.ietf-netmod-rfc6087bis]: | follows and as per [I-D.ietf-netmod-rfc6087bis]: | |||
| o Brackets "[" and "]" enclose list keys. | o Brackets "[" and "]" enclose list keys. | |||
| o Curly braces "{" and "}" contain names of optional features that | o Curly braces "{" and "}" contain names of optional features that | |||
| make the corresponding node conditional. | make the corresponding node conditional. | |||
| skipping to change at page 5, line 44 ¶ | skipping to change at page 6, line 14 ¶ | |||
| o It should be fairly straightforward to augment the base data model | o 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 | |||
| The module, "ietf-pcep", defines the basic components of a PCE | The module, "ietf-pcep", defines the basic components of a PCE | |||
| speaker. | speaker. | |||
| 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 domain | | +--rw domain | |||
| | | +--rw domain* [domain-type domain] | | | +--rw domain* [domain-type domain] | |||
| | | +--rw domain-type domain-type | | | +--rw domain-type domain-type | |||
| | | +--rw domain domain | | | +--rw domain domain | |||
| | +--rw capability | | +--rw capability | |||
| | | +--rw gmpls? boolean {gmpls}? | | | +--rw gmpls? boolean {gmpls}? | |||
| | | +--rw bi-dir? boolean | | | +--rw bi-dir? boolean | |||
| | | +--rw diverse? boolean | | | +--rw diverse? boolean | |||
| | | +--rw load-balance? boolean | | | +--rw load-balance? boolean | |||
| | | +--rw synchronize? boolean {svec}? | | | +--rw synchronize? boolean {svec}? | |||
| | | +--rw objective-function? boolean {obj-fn}? | | | +--rw objective-function? boolean {obj-fn}? | |||
| | | +--rw add-path-constraint? boolean | | | +--rw add-path-constraint? boolean | |||
| | | +--rw prioritization? boolean | | | +--rw prioritization? boolean | |||
| | | +--rw multi-request? boolean | | | +--rw multi-request? boolean | |||
| | | +--rw gco? boolean {gco}? | | | +--rw gco? boolean {gco}? | |||
| | | +--rw p2mp? boolean {p2mp}? | | | +--rw p2mp? boolean {p2mp}? | |||
| | | +--rw stateful {stateful}? | | | +--rw stateful {stateful}? | |||
| | | +--rw enabled? boolean | | | | +--rw enabled? boolean | |||
| | | +--rw active? boolean | | | | +--rw active? boolean | |||
| | | +--rw pce-initiated? boolean | | | | +--rw pce-initiated? boolean {pce-initiated}? | |||
| | +--rw pce-info | | | +--rw sr {sr}? | |||
| | | +--rw scope | | | +--rw enabled? boolean | |||
| | | | +--rw intra-area-scope? boolean | | | +--rw msd? uint8 | |||
| | | | +--rw intra-area-pref? uint8 | | +--rw pce-info | |||
| | | | +--rw inter-area-scope? boolean | | | +--rw scope | |||
| | | | +--rw inter-area-scope-default? boolean | | | | +--rw intra-area-scope? boolean | |||
| | | | +--rw inter-area-pref? uint8 | | | | +--rw intra-area-pref? uint8 | |||
| | | | +--rw inter-as-scope? boolean | | | | +--rw inter-area-scope? boolean | |||
| | | | +--rw inter-as-scope-default? boolean | | | | +--rw inter-area-scope-default? boolean | |||
| | | | +--rw inter-as-pref? uint8 | | | | +--rw inter-area-pref? uint8 | |||
| | | | +--rw inter-layer-scope? boolean | | | | +--rw inter-as-scope? boolean | |||
| | | | +--rw inter-layer-pref? uint8 | | | | +--rw inter-as-scope-default? boolean | |||
| | | +--rw neigh-domains | | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw domain* [domain-type domain] | | | | +--rw inter-layer-scope? boolean | |||
| | | +--rw domain-type domain-type | | | | +--rw inter-layer-pref? uint8 | |||
| | | +--rw domain domain | | | +--rw neigh-domains | |||
| | +--rw connect-timer? uint32 | | | | +--rw domain* [domain-type domain] | |||
| | +--rw connect-max-retry? uint32 | | | | +--rw domain-type domain-type | |||
| | +--rw init-backoff-timer? uint32 | | | | +--rw domain domain | |||
| | +--rw max-backoff-timer? uint32 | | | +--rw (auth-type-selection)? | |||
| | +--rw open-wait-timer? uint32 | | | +--:(auth-key-chain) | |||
| | +--rw keep-wait-timer? uint32 | | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | +--rw keep-alive-timer? uint32 | | | +--:(auth-key) | |||
| | +--rw dead-timer? uint32 | | | | +--rw key? string | |||
| | +--rw allow-negotiation? boolean | | | | +--rw crypto-algorithm | |||
| | +--rw max-keep-alive-timer? uint32 | | | | +--rw (algorithm)? | |||
| | +--rw max-dead-timer? uint32 | | | | +--:(hmac-sha-1-12) {crypto-hmac-sha-1-12}? | |||
| | +--rw min-keep-alive-timer? uint32 | | | | | +--rw hmac-sha1-12? empty | |||
| | +--rw min-dead-timer? uint32 | | | | +--:(aes-cmac-prf-128) {aes-cmac-prf-128}? | |||
| | +--rw sync-timer? uint32 {svec}? | | | | | +--rw aes-cmac-prf-128? empty | |||
| | +--rw request-timer? uint32 | | | | +--:(md5) | |||
| | +--rw max-sessions? uint32 | | | | | +--rw md5? empty | |||
| | +--rw max-unknown-reqs? uint32 | | | | +--:(sha-1) | |||
| | +--rw max-unknown-msgs? uint32 | | | | | +--rw sha-1? empty | |||
| | +--rw pcep-notification-max-rate uint32 | | | | +--:(hmac-sha-1) | |||
| | +--rw stateful-parameter {stateful}? | | | | | +--rw hmac-sha-1? empty | |||
| | | +--rw state-timeout? uint32 | | | | +--:(hmac-sha-256) | |||
| | | +--rw redelegation-timeout? uint32 | | | | | +--rw hmac-sha-256? empty | |||
| | | +--rw rpt-non-pcep-lsp? boolean | | | | +--:(hmac-sha-384) | |||
| | +--rw peers | | | | | +--rw hmac-sha-384? empty | |||
| | +--rw peer* [addr] | | | | +--:(hmac-sha-512) | |||
| | +--rw addr inet:ip-address | | | | | +--rw hmac-sha-512? empty | |||
| | +--rw description? string | | | | +--:(clear-text) {clear-text}? | |||
| | +--rw domain | | | | | +--rw clear-text? empty | |||
| | | +--rw domain* [domain-type domain] | | | | +--:(replay-protection-only) {replay-protection-only}? | |||
| | | +--rw domain-type domain-type | | | | +--rw replay-protection-only? empty | |||
| | | +--rw domain domain | | | +--:(auth-tls) {tls}? | |||
| | +--rw capability | | | +--rw tls | |||
| | | +--rw gmpls? boolean {gmpls}? | | +--rw connect-timer? uint32 | |||
| | | +--rw bi-dir? boolean | | +--rw connect-max-retry? uint32 | |||
| | | +--rw diverse? boolean | | +--rw init-backoff-timer? uint32 | |||
| | | +--rw load-balance? boolean | | +--rw max-backoff-timer? uint32 | |||
| | | +--rw synchronize? boolean {svec}? | | +--rw open-wait-timer? uint32 | |||
| | | +--rw objective-function? boolean {obj-fn}? | | +--rw keep-wait-timer? uint32 | |||
| | | +--rw add-path-constraint? boolean | | +--rw keep-alive-timer? uint32 | |||
| | | +--rw prioritization? boolean | | +--rw dead-timer? uint32 | |||
| | | +--rw multi-request? boolean | | +--rw allow-negotiation? boolean | |||
| | | +--rw gco? boolean {gco}? | | +--rw max-keep-alive-timer? uint32 | |||
| | | +--rw p2mp? boolean {p2mp}? | | +--rw max-dead-timer? uint32 | |||
| | | +--rw stateful {stateful}? | | +--rw min-keep-alive-timer? uint32 | |||
| | | +--rw enabled? boolean | | +--rw min-dead-timer? uint32 | |||
| | | +--rw active? boolean | | +--rw sync-timer? uint32 {svec}? | |||
| | | +--rw pce-initiated? boolean | | +--rw request-timer? uint32 | |||
| | +--rw scope | | +--rw max-sessions? uint32 | |||
| | | +--rw intra-area-scope? boolean | | +--rw max-unknown-reqs? uint32 | |||
| | | +--rw intra-area-pref? uint8 | | +--rw max-unknown-msgs? uint32 | |||
| | | +--rw inter-area-scope? boolean | | +--rw pcep-notification-max-rate uint32 | |||
| | | +--rw inter-area-scope-default? boolean | | +--rw stateful-parameter {stateful}? | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw state-timeout? uint32 | |||
| | | +--rw inter-as-scope? boolean | | | +--rw redelegation-timeout? uint32 | |||
| | | +--rw inter-as-scope-default? boolean | | | +--rw rpt-non-pcep-lsp? boolean | |||
| | | +--rw inter-as-pref? uint8 | | +--rw peers | |||
| | | +--rw inter-layer-scope? boolean | | +--rw peer* [addr] | |||
| | | +--rw inter-layer-pref? uint8 | | +--rw addr inet:ip-address | |||
| | +--rw neigh-domains | | +--rw description? string | |||
| | | +--rw domain* [domain-type domain] | | +--rw domain | |||
| | | +--rw domain-type domain-type | | | +--rw domain* [domain-type domain] | |||
| | | +--rw domain domain | | | +--rw domain-type domain-type | |||
| | +--rw delegation-pref? uint8 {stateful}? | | | +--rw domain domain | |||
| +--ro pcep-state | | +--rw capability | |||
| +--ro entity | | | +--rw gmpls? boolean {gmpls}? | |||
| +--ro addr? inet:ip-address | | | +--rw bi-dir? boolean | |||
| +--ro index? uint32 | | | +--rw diverse? boolean | |||
| +--ro admin-status? pcep-admin-status | | | +--rw load-balance? boolean | |||
| +--ro oper-status? pcep-admin-status | | | +--rw synchronize? boolean {svec}? | |||
| +--ro role? pcep-role | | | +--rw objective-function? boolean {obj-fn}? | |||
| +--ro domain | | | +--rw add-path-constraint? boolean | |||
| | +--ro domain* [domain-type domain] | | | +--rw prioritization? boolean | |||
| | +--ro domain-type domain-type | | | +--rw multi-request? boolean | |||
| | +--ro domain domain | | | +--rw gco? boolean {gco}? | |||
| +--ro capability | | | +--rw p2mp? boolean {p2mp}? | |||
| | +--ro gmpls? boolean {gmpls}? | | | +--rw stateful {stateful}? | |||
| | +--ro bi-dir? boolean | | | | +--rw enabled? boolean | |||
| | +--ro diverse? boolean | | | | +--rw active? boolean | |||
| | +--ro load-balance? boolean | | | | +--rw pce-initiated? boolean {pce-initiated}? | |||
| | +--ro synchronize? boolean {svec}? | | | +--rw sr {sr}? | |||
| | +--ro objective-function? boolean {obj-fn}? | | | +--rw enabled? boolean | |||
| | +--ro add-path-constraint? boolean | | | +--rw msd? uint8 | |||
| | +--ro prioritization? boolean | | +--rw scope | |||
| | +--ro multi-request? boolean | | | +--rw intra-area-scope? boolean | |||
| | +--ro gco? boolean {gco}? | | | +--rw intra-area-pref? uint8 | |||
| | +--ro p2mp? boolean {p2mp}? | | | +--rw inter-area-scope? boolean | |||
| | +--ro stateful {stateful}? | | | +--rw inter-area-scope-default? boolean | |||
| | +--ro enabled? boolean | | | +--rw inter-area-pref? uint8 | |||
| | +--ro active? boolean | | | +--rw inter-as-scope? boolean | |||
| | +--ro pce-initiated? boolean | | | +--rw inter-as-scope-default? boolean | |||
| +--ro pce-info | | | +--rw inter-as-pref? uint8 | |||
| | +--ro scope | | | +--rw inter-layer-scope? boolean | |||
| | | +--ro intra-area-scope? boolean | | | +--rw inter-layer-pref? uint8 | |||
| | | +--ro intra-area-pref? uint8 | | +--rw neigh-domains | |||
| | | +--ro inter-area-scope? boolean | | | +--rw domain* [domain-type domain] | |||
| | | +--ro inter-area-scope-default? boolean | | | +--rw domain-type domain-type | |||
| | | +--ro inter-area-pref? uint8 | | | +--rw domain domain | |||
| | | +--ro inter-as-scope? boolean | | +--rw delegation-pref? uint8 {stateful}? | |||
| | | +--ro inter-as-scope-default? boolean | | +--rw (auth-type-selection)? | |||
| | | +--ro inter-as-pref? uint8 | | +--:(auth-key-chain) | |||
| | | +--ro inter-layer-scope? boolean | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | | +--ro inter-layer-pref? uint8 | | +--:(auth-key) | |||
| | +--ro neigh-domains | | | +--rw key? string | |||
| | +--ro domain* [domain-type domain] | | | +--rw crypto-algorithm | |||
| | +--ro domain-type domain-type | | | +--rw (algorithm)? | |||
| | +--ro domain domain | | | +--:(hmac-sha-1-12) {crypto-hmac-sha-1-12}? | |||
| +--ro connect-timer? uint32 | | | | +--rw hmac-sha1-12? empty | |||
| +--ro connect-max-retry? uint32 | | | +--:(aes-cmac-prf-128) {aes-cmac-prf-128}? | |||
| +--ro init-backoff-timer? uint32 | | | | +--rw aes-cmac-prf-128? empty | |||
| +--ro max-backoff-timer? uint32 | | | +--:(md5) | |||
| +--ro open-wait-timer? uint32 | | | | +--rw md5? empty | |||
| +--ro keep-wait-timer? uint32 | | | +--:(sha-1) | |||
| +--ro keep-alive-timer? uint32 | | | | +--rw sha-1? empty | |||
| +--ro dead-timer? uint32 | | | +--:(hmac-sha-1) | |||
| +--ro allow-negotiation? boolean | | | | +--rw hmac-sha-1? empty | |||
| +--ro max-keep-alive-timer? uint32 | | | +--:(hmac-sha-256) | |||
| +--ro max-dead-timer? uint32 | | | | +--rw hmac-sha-256? empty | |||
| +--ro min-keep-alive-timer? uint32 | | | +--:(hmac-sha-384) | |||
| +--ro min-dead-timer? uint32 | | | | +--rw hmac-sha-384? empty | |||
| +--ro sync-timer? uint32 {svec}? | | | +--:(hmac-sha-512) | |||
| +--ro request-timer? uint32 | | | | +--rw hmac-sha-512? empty | |||
| +--ro max-sessions? uint32 | | | +--:(clear-text) {clear-text}? | |||
| +--ro max-unknown-reqs? uint32 | | | | +--rw clear-text? empty | |||
| +--ro max-unknown-msgs? uint32 | | | +--:(replay-protection-only) {replay-protection-only}? | |||
| +--ro stateful-parameter {stateful}? | | | +--rw replay-protection-only? empty | |||
| | +--ro state-timeout? uint32 | | +--:(auth-tls) {tls}? | |||
| | +--ro redelegation-timeout? uint32 | | +--rw tls | |||
| | +--ro rpt-non-pcep-lsp? boolean | +--ro pcep-state | |||
| +--ro lsp-db {stateful}? | +--ro entity | |||
| | +--ro lsp* [plsp-id pcc-id] | +--ro addr? inet:ip-address | |||
| | +--ro plsp-id uint32 | +--ro index? uint32 | |||
| | +--ro pcc-id inet:ip-address | +--ro admin-status? pcep-admin-status | |||
| | +--ro admin-state? boolean | +--ro oper-status? pcep-admin-status | |||
| | +--ro operational-state? operational-state | +--ro role? pcep-role | |||
| | +--ro delegated | +--ro domain | |||
| | | +--ro enabled? boolean | | +--ro domain* [domain-type domain] | |||
| | | +--ro pce? leafref | | +--ro domain-type domain-type | |||
| | | +--ro srp-id? uint32 | | +--ro domain domain | |||
| | +--ro symbolic-path-name? string | +--ro capability | |||
| | +--ro last-error? lsp-error | | +--ro gmpls? boolean {gmpls}? | |||
| +--ro peers | | +--ro bi-dir? boolean | |||
| +--ro peer* [addr] | | +--ro diverse? boolean | |||
| +--ro addr inet:ip-address | | +--ro load-balance? boolean | |||
| +--ro role? pcep-role | | +--ro synchronize? boolean {svec}? | |||
| +--ro domain | | +--ro objective-function? boolean {obj-fn}? | |||
| | +--ro domain* [domain-type domain] | | +--ro add-path-constraint? boolean | |||
| | +--ro domain-type domain-type | | +--ro prioritization? boolean | |||
| | +--ro domain domain | | +--ro multi-request? boolean | |||
| +--ro capability | | +--ro gco? boolean {gco}? | |||
| | +--ro gmpls? boolean {gmpls}? | | +--ro p2mp? boolean {p2mp}? | |||
| | +--ro bi-dir? boolean | | +--ro stateful {stateful}? | |||
| | +--ro diverse? boolean | | | +--ro enabled? boolean | |||
| | +--ro load-balance? boolean | | | +--ro active? boolean | |||
| | +--ro synchronize? boolean {svec}? | | | +--ro pce-initiated? boolean {pce-initiated}? | |||
| | +--ro objective-function? boolean {obj-fn}? | | +--ro sr {sr}? | |||
| | +--ro add-path-constraint? boolean | | +--ro enabled? boolean | |||
| | +--ro prioritization? boolean | | +--ro msd? uint8 | |||
| | +--ro multi-request? boolean | +--ro pce-info | |||
| | +--ro gco? boolean {gco}? | | +--ro scope | |||
| | +--ro p2mp? boolean {p2mp}? | | | +--ro intra-area-scope? boolean | |||
| | +--ro stateful {stateful}? | | | +--ro intra-area-pref? uint8 | |||
| | +--ro enabled? boolean | | | +--ro inter-area-scope? boolean | |||
| | +--ro active? boolean | | | +--ro inter-area-scope-default? boolean | |||
| | +--ro pce-initiated? boolean | | | +--ro inter-area-pref? uint8 | |||
| +--ro pce-info | | | +--ro inter-as-scope? boolean | |||
| | +--ro scope | | | +--ro inter-as-scope-default? boolean | |||
| | | +--ro intra-area-scope? boolean | | | +--ro inter-as-pref? uint8 | |||
| | | +--ro intra-area-pref? uint8 | | | +--ro inter-layer-scope? boolean | |||
| | | +--ro inter-area-scope? boolean | | | +--ro inter-layer-pref? uint8 | |||
| | | +--ro inter-area-scope-default? boolean | | +--ro neigh-domains | |||
| | | +--ro inter-area-pref? uint8 | | | +--ro domain* [domain-type domain] | |||
| | | +--ro inter-as-scope? boolean | | | +--ro domain-type domain-type | |||
| | | +--ro inter-as-scope-default? boolean | | | +--ro domain domain | |||
| | | +--ro inter-as-pref? uint8 | | +--ro (auth-type-selection)? | |||
| | | +--ro inter-layer-scope? boolean | | +--:(auth-key-chain) | |||
| | | +--ro inter-layer-pref? uint8 | | | +--ro key-chain? key-chain:key-chain-ref | |||
| | +--ro neigh-domains | | +--:(auth-key) | |||
| | +--ro domain* [domain-type domain] | | | +--ro key? string | |||
| | +--ro domain-type domain-type | | | +--ro crypto-algorithm | |||
| | +--ro domain domain | | | +--ro (algorithm)? | |||
| +--ro delegation-pref? uint8 {stateful}? | | | +--:(hmac-sha-1-12) {crypto-hmac-sha-1-12}? | |||
| +--ro discontinuity-time? yang:timestamp | | | | +--ro hmac-sha1-12? empty | |||
| +--ro initiate-session? boolean | | | +--:(aes-cmac-prf-128) {aes-cmac-prf-128}? | |||
| +--ro session-exists? boolean | | | | +--ro aes-cmac-prf-128? empty | |||
| +--ro num-sess-setup-ok? yang:counter32 | | | +--:(md5) | |||
| +--ro num-sess-setup-fail? yang:counter32 | | | | +--ro md5? empty | |||
| +--ro session-up-time? yang:timestamp | | | +--:(sha-1) | |||
| +--ro session-fail-time? yang:timestamp | | | | +--ro sha-1? empty | |||
| +--ro session-fail-up-time? yang:timestamp | | | +--:(hmac-sha-1) | |||
| +--ro pcep-stats | | | | +--ro hmac-sha-1? empty | |||
| | +--ro avg-rsp-time? uint32 | | | +--:(hmac-sha-256) | |||
| | +--ro lwm-rsp-time? uint32 | | | | +--ro hmac-sha-256? empty | |||
| | +--ro hwm-rsp-time? uint32 | | | +--:(hmac-sha-384) | |||
| | +--ro num-pcreq-sent? yang:counter32 | | | | +--ro hmac-sha-384? empty | |||
| | +--ro num-pcreq-rcvd? yang:counter32 | | | +--:(hmac-sha-512) | |||
| | +--ro num-pcrep-sent? yang:counter32 | | | | +--ro hmac-sha-512? empty | |||
| | +--ro num-pcrep-rcvd? yang:counter32 | | | +--:(clear-text) {clear-text}? | |||
| | +--ro num-pcerr-sent? yang:counter32 | | | | +--ro clear-text? empty | |||
| | +--ro num-pcerr-rcvd? yang:counter32 | | | +--:(replay-protection-only) {replay-protection-only}? | |||
| | +--ro num-pcntf-sent? yang:counter32 | | | +--ro replay-protection-only? empty | |||
| | +--ro num-pcntf-rcvd? yang:counter32 | | +--:(auth-tls) {tls}? | |||
| | +--ro num-keepalive-sent? yang:counter32 | | +--ro tls | |||
| | +--ro num-keepalive-rcvd? yang:counter32 | +--ro connect-timer? uint32 | |||
| | +--ro num-unknown-rcvd? yang:counter32 | +--ro connect-max-retry? uint32 | |||
| | +--ro num-corrupt-rcvd? yang:counter32 | +--ro init-backoff-timer? uint32 | |||
| | +--ro num-req-sent? yang:counter32 | +--ro max-backoff-timer? uint32 | |||
| | +--ro num-req-sent-pend-rep? yang:counter32 | +--ro open-wait-timer? uint32 | |||
| | +--ro num-req-sent-ero-rcvd? yang:counter32 | +--ro keep-wait-timer? uint32 | |||
| | +--ro num-req-sent-nopath-rcvd? yang:counter32 | +--ro keep-alive-timer? uint32 | |||
| | +--ro num-req-sent-cancel-rcvd? yang:counter32 | +--ro dead-timer? uint32 | |||
| | +--ro num-req-sent-error-rcvd? yang:counter32 | +--ro allow-negotiation? boolean | |||
| | +--ro num-req-sent-timeout? yang:counter32 | +--ro max-keep-alive-timer? uint32 | |||
| | +--ro num-req-sent-cancel-sent? yang:counter32 | +--ro max-dead-timer? uint32 | |||
| | +--ro num-req-rcvd? yang:counter32 | +--ro min-keep-alive-timer? uint32 | |||
| | +--ro num-req-rcvd-pend-rep? yang:counter32 | +--ro min-dead-timer? uint32 | |||
| | +--ro num-req-rcvd-ero-sent? yang:counter32 | +--ro sync-timer? uint32 {svec}? | |||
| | +--ro num-req-rcvd-nopath-sent? yang:counter32 | +--ro request-timer? uint32 | |||
| | +--ro num-req-rcvd-cancel-sent? yang:counter32 | +--ro max-sessions? uint32 | |||
| | +--ro num-req-rcvd-error-sent? yang:counter32 | +--ro max-unknown-reqs? uint32 | |||
| | +--ro num-req-rcvd-cancel-rcvd? yang:counter32 | +--ro max-unknown-msgs? uint32 | |||
| | +--ro num-rep-rcvd-unknown? yang:counter32 | +--ro stateful-parameter {stateful}? | |||
| | +--ro num-req-rcvd-unknown? yang:counter32 | | +--ro state-timeout? uint32 | |||
| | +--ro svec {svec}? | | +--ro redelegation-timeout? uint32 | |||
| | | +--ro num-svec-sent? yang:counter32 | | +--ro rpt-non-pcep-lsp? boolean | |||
| | | +--ro num-svec-req-sent? yang:counter32 | +--ro lsp-db {stateful}? | |||
| | | +--ro num-svec-rcvd? yang:counter32 | | +--ro association-list* [id source global-source extended-id] | |||
| | | +--ro num-svec-req-rcvd? yang:counter32 | | | +--ro type? assoc-type | |||
| | +--ro stateful {stateful}? | | | +--ro id uint16 | |||
| | | +--ro num-pcrpt-sent? yang:counter32 | | | +--ro source inet:ip-address | |||
| | | +--ro num-pcrpt-rcvd? yang:counter32 | | | +--ro global-source uint32 | |||
| | | +--ro num-pcupd-sent? yang:counter32 | | | +--ro extended-id string | |||
| | | +--ro num-pcupd-rcvd? yang:counter32 | | | +--ro lsp* [plsp-id pcc-id] | |||
| | | +--ro num-rpt-sent? yang:counter32 | | | +--ro plsp-id -> /pcep-state/entity/lsp-db/lsp/plsp-id | |||
| | | +--ro num-rpt-rcvd? yang:counter32 | | | +--ro pcc-id -> /pcep-state/entity/lsp-db/lsp/pcc-id | |||
| | | +--ro num-rpt-rcvd-error-sent? yang:counter32 | | +--ro lsp* [plsp-id pcc-id] | |||
| | | +--ro num-upd-sent? yang:counter32 | | +--ro plsp-id uint32 | |||
| | | +--ro num-upd-rcvd? yang:counter32 | | +--ro pcc-id inet:ip-address | |||
| | | +--ro num-upd-rcvd-unknown? yang:counter32 | | +--ro lsp-ref | |||
| | | +--ro num-upd-rcvd-undelegated? yang:counter32 | | | +--ro source? -> /te:te/lsps-state/lsp/source | |||
| | | +--ro num-upd-rcvd-error-sent? yang:counter32 | | | +--ro destination? -> /te:te/lsps-state/lsp/destination | |||
| | +--ro num-req-sent-closed? yang:counter32 | | | +--ro tunnel-id? -> /te:te/lsps-state/lsp/tunnel-id | |||
| | +--ro num-req-rcvd-closed? yang:counter32 | | | +--ro lsp-id? -> /te:te/lsps-state/lsp/lsp-id | |||
| +--ro sessions | | | +--ro extended-tunnel-id? -> /te:te/lsps-state/lsp/extended-tunnel-id | |||
| +--ro session* [initiator] | | | +--ro type? -> /te:te/lsps-state/lsp/type | |||
| +--ro initiator pcep-initiator | | +--ro admin-state? boolean | |||
| +--ro state-last-change? yang:timestamp | | +--ro operational-state? operational-state | |||
| +--ro state? pcep-sess-state | | +--ro delegated | |||
| +--ro session-creation? yang:timestamp | | | +--ro enabled? boolean | |||
| +--ro connect-retry? yang:counter32 | | | +--ro pce? -> /pcep-state/entity/peers/peer/addr | |||
| +--ro local-id? uint32 | | | +--ro srp-id? uint32 | |||
| +--ro remote-id? uint32 | | +--ro initiation {pce-initiated}? | |||
| +--ro keepalive-timer? uint32 | | | +--ro enabled? boolean | |||
| +--ro peer-keepalive-timer? uint32 | | | +--ro pce? -> /pcep-state/entity/peers/peer/addr | |||
| +--ro dead-timer? uint32 | | +--ro symbolic-path-name? string | |||
| +--ro peer-dead-timer? uint32 | | +--ro last-error? lsp-error | |||
| +--ro ka-hold-time-rem? uint32 | | +--ro pst? pst | |||
| +--ro overloaded? boolean | | +--ro association-list* [id source global-source extended-id] | |||
| +--ro overload-time? uint32 | | +--ro id -> /pcep-state/entity/lsp-db/association-list/id | |||
| +--ro peer-overloaded? boolean | | +--ro source -> /pcep-state/entity/lsp-db/association-list/source | |||
| +--ro peer-overload-time? uint32 | | +--ro global-source -> /pcep-state/entity/lsp-db/association-list/global-source | |||
| +--ro lspdb-sync? sync-state {stateful}? | | +--ro extended-id -> /pcep-state/entity/lsp-db/association-list/extended-id | |||
| +--ro discontinuity-time? yang:timestamp | +--ro peers | |||
| +--ro pcep-stats | +--ro peer* [addr] | |||
| +--ro avg-rsp-time? uint32 | +--ro addr inet:ip-address | |||
| +--ro lwm-rsp-time? uint32 | +--ro role? pcep-role | |||
| +--ro hwm-rsp-time? uint32 | +--ro domain | |||
| +--ro num-pcreq-sent? yang:counter32 | | +--ro domain* [domain-type domain] | |||
| +--ro num-pcreq-rcvd? yang:counter32 | | +--ro domain-type domain-type | |||
| +--ro num-pcrep-sent? yang:counter32 | | +--ro domain domain | |||
| +--ro num-pcrep-rcvd? yang:counter32 | +--ro capability | |||
| +--ro num-pcerr-sent? yang:counter32 | | +--ro gmpls? boolean {gmpls}? | |||
| +--ro num-pcerr-rcvd? yang:counter32 | | +--ro bi-dir? boolean | |||
| +--ro num-pcntf-sent? yang:counter32 | | +--ro diverse? boolean | |||
| +--ro num-pcntf-rcvd? yang:counter32 | | +--ro load-balance? boolean | |||
| +--ro num-keepalive-sent? yang:counter32 | | +--ro synchronize? boolean {svec}? | |||
| +--ro num-keepalive-rcvd? yang:counter32 | | +--ro objective-function? boolean {obj-fn}? | |||
| +--ro num-unknown-rcvd? yang:counter32 | | +--ro add-path-constraint? boolean | |||
| +--ro num-corrupt-rcvd? yang:counter32 | | +--ro prioritization? boolean | |||
| +--ro num-req-sent? yang:counter32 | | +--ro multi-request? boolean | |||
| +--ro num-req-sent-pend-rep? yang:counter32 | | +--ro gco? boolean {gco}? | |||
| +--ro num-req-sent-ero-rcvd? yang:counter32 | | +--ro p2mp? boolean {p2mp}? | |||
| +--ro num-req-sent-nopath-rcvd? yang:counter32 | | +--ro stateful {stateful}? | |||
| +--ro num-req-sent-cancel-rcvd? yang:counter32 | | | +--ro enabled? boolean | |||
| +--ro num-req-sent-error-rcvd? yang:counter32 | | | +--ro active? boolean | |||
| +--ro num-req-sent-timeout? yang:counter32 | | | +--ro pce-initiated? boolean {pce-initiated}? | |||
| +--ro num-req-sent-cancel-sent? yang:counter32 | | +--ro sr {sr}? | |||
| +--ro num-req-rcvd? yang:counter32 | | +--ro enabled? boolean | |||
| +--ro num-req-rcvd-pend-rep? yang:counter32 | | +--ro msd? uint8 | |||
| +--ro num-req-rcvd-ero-sent? yang:counter32 | +--ro pce-info | |||
| +--ro num-req-rcvd-nopath-sent? yang:counter32 | | +--ro scope | |||
| +--ro num-req-rcvd-cancel-sent? yang:counter32 | | | +--ro intra-area-scope? boolean | |||
| +--ro num-req-rcvd-error-sent? yang:counter32 | | | +--ro intra-area-pref? uint8 | |||
| +--ro num-req-rcvd-cancel-rcvd? yang:counter32 | | | +--ro inter-area-scope? boolean | |||
| +--ro num-rep-rcvd-unknown? yang:counter32 | | | +--ro inter-area-scope-default? boolean | |||
| +--ro num-req-rcvd-unknown? yang:counter32 | | | +--ro inter-area-pref? uint8 | |||
| +--ro svec {svec}? | | | +--ro inter-as-scope? boolean | |||
| | +--ro num-svec-sent? yang:counter32 | | | +--ro inter-as-scope-default? boolean | |||
| | +--ro num-svec-req-sent? yang:counter32 | | | +--ro inter-as-pref? uint8 | |||
| | +--ro num-svec-rcvd? yang:counter32 | | | +--ro inter-layer-scope? boolean | |||
| | +--ro num-svec-req-rcvd? yang:counter32 | | | +--ro inter-layer-pref? uint8 | |||
| +--ro stateful {stateful}? | | +--ro neigh-domains | |||
| +--ro num-pcrpt-sent? yang:counter32 | | +--ro domain* [domain-type domain] | |||
| +--ro num-pcrpt-rcvd? yang:counter32 | | +--ro domain-type domain-type | |||
| +--ro num-pcupd-sent? yang:counter32 | | +--ro domain domain | |||
| +--ro num-pcupd-rcvd? yang:counter32 | +--ro delegation-pref? uint8 {stateful}? | |||
| +--ro num-rpt-sent? yang:counter32 | +--ro (auth-type-selection)? | |||
| +--ro num-rpt-rcvd? yang:counter32 | | +--:(auth-key-chain) | |||
| +--ro num-rpt-rcvd-error-sent? yang:counter32 | | | +--ro key-chain? key-chain:key-chain-ref | |||
| +--ro num-upd-sent? yang:counter32 | | +--:(auth-key) | |||
| +--ro num-upd-rcvd? yang:counter32 | | | +--ro key? string | |||
| +--ro num-upd-rcvd-unknown? yang:counter32 | | | +--ro crypto-algorithm | |||
| +--ro num-upd-rcvd-undelegated? yang:counter32 | | | +--ro (algorithm)? | |||
| +--ro num-upd-rcvd-error-sent? yang:counter32 | | | +--:(hmac-sha-1-12) {crypto-hmac-sha-1-12}? | |||
| | | | +--ro hmac-sha1-12? empty | ||||
| | | +--:(aes-cmac-prf-128) {aes-cmac-prf-128}? | ||||
| | | | +--ro aes-cmac-prf-128? empty | ||||
| | | +--:(md5) | ||||
| | | | +--ro md5? empty | ||||
| | | +--:(sha-1) | ||||
| | | | +--ro sha-1? empty | ||||
| | | +--:(hmac-sha-1) | ||||
| | | | +--ro hmac-sha-1? empty | ||||
| | | +--:(hmac-sha-256) | ||||
| | | | +--ro hmac-sha-256? empty | ||||
| | | +--:(hmac-sha-384) | ||||
| | | | +--ro hmac-sha-384? empty | ||||
| | | +--:(hmac-sha-512) | ||||
| | | | +--ro hmac-sha-512? empty | ||||
| | | +--:(clear-text) {clear-text}? | ||||
| | | | +--ro clear-text? empty | ||||
| | | +--:(replay-protection-only) {replay-protection-only}? | ||||
| | | +--ro replay-protection-only? empty | ||||
| | +--:(auth-tls) {tls}? | ||||
| | +--ro tls | ||||
| +--ro discontinuity-time? yang:timestamp | ||||
| +--ro initiate-session? boolean | ||||
| +--ro session-exists? boolean | ||||
| +--ro num-sess-setup-ok? yang:counter32 | ||||
| +--ro num-sess-setup-fail? yang:counter32 | ||||
| +--ro session-up-time? yang:timestamp | ||||
| +--ro session-fail-time? yang:timestamp | ||||
| +--ro session-fail-up-time? yang:timestamp | ||||
| +--ro pcep-stats | ||||
| | +--ro avg-rsp-time? uint32 | ||||
| | +--ro lwm-rsp-time? uint32 | ||||
| | +--ro hwm-rsp-time? uint32 | ||||
| | +--ro num-pcreq-sent? yang:counter32 | ||||
| | +--ro num-pcreq-rcvd? yang:counter32 | ||||
| | +--ro num-pcrep-sent? yang:counter32 | ||||
| | +--ro num-pcrep-rcvd? yang:counter32 | ||||
| | +--ro num-pcerr-sent? yang:counter32 | ||||
| | +--ro num-pcerr-rcvd? yang:counter32 | ||||
| | +--ro num-pcntf-sent? yang:counter32 | ||||
| | +--ro num-pcntf-rcvd? yang:counter32 | ||||
| | +--ro num-keepalive-sent? yang:counter32 | ||||
| | +--ro num-keepalive-rcvd? yang:counter32 | ||||
| | +--ro num-unknown-rcvd? yang:counter32 | ||||
| | +--ro num-corrupt-rcvd? yang:counter32 | ||||
| | +--ro num-req-sent? yang:counter32 | ||||
| | +--ro num-req-sent-pend-rep? yang:counter32 | ||||
| | +--ro num-req-sent-ero-rcvd? yang:counter32 | ||||
| | +--ro num-req-sent-nopath-rcvd? yang:counter32 | ||||
| | +--ro num-req-sent-cancel-rcvd? yang:counter32 | ||||
| | +--ro num-req-sent-error-rcvd? yang:counter32 | ||||
| | +--ro num-req-sent-timeout? yang:counter32 | ||||
| | +--ro num-req-sent-cancel-sent? yang:counter32 | ||||
| | +--ro num-req-rcvd? yang:counter32 | ||||
| | +--ro num-req-rcvd-pend-rep? yang:counter32 | ||||
| | +--ro num-req-rcvd-ero-sent? yang:counter32 | ||||
| | +--ro num-req-rcvd-nopath-sent? yang:counter32 | ||||
| | +--ro num-req-rcvd-cancel-sent? yang:counter32 | ||||
| | +--ro num-req-rcvd-error-sent? yang:counter32 | ||||
| | +--ro num-req-rcvd-cancel-rcvd? yang:counter32 | ||||
| | +--ro num-rep-rcvd-unknown? yang:counter32 | ||||
| | +--ro num-req-rcvd-unknown? yang:counter32 | ||||
| | +--ro svec {svec}? | ||||
| | | +--ro num-svec-sent? yang:counter32 | ||||
| | | +--ro num-svec-req-sent? yang:counter32 | ||||
| | | +--ro num-svec-rcvd? yang:counter32 | ||||
| | | +--ro num-svec-req-rcvd? yang:counter32 | ||||
| | +--ro stateful {stateful}? | ||||
| | | +--ro num-pcrpt-sent? yang:counter32 | ||||
| | | +--ro num-pcrpt-rcvd? yang:counter32 | ||||
| | | +--ro num-pcupd-sent? yang:counter32 | ||||
| | | +--ro num-pcupd-rcvd? yang:counter32 | ||||
| | | +--ro num-rpt-sent? yang:counter32 | ||||
| | | +--ro num-rpt-rcvd? yang:counter32 | ||||
| | | +--ro num-rpt-rcvd-error-sent? yang:counter32 | ||||
| | | +--ro num-upd-sent? yang:counter32 | ||||
| | | +--ro num-upd-rcvd? yang:counter32 | ||||
| | | +--ro num-upd-rcvd-unknown? yang:counter32 | ||||
| | | +--ro num-upd-rcvd-undelegated? yang:counter32 | ||||
| | | +--ro num-upd-rcvd-error-sent? yang:counter32 | ||||
| | | +--ro initiation {pce-initiated}? | ||||
| | | +--ro num-pcinitiate-sent? yang:counter32 | ||||
| | | +--ro num-pcinitiate-rcvd? yang:counter32 | ||||
| | | +--ro num-initiate-sent? yang:counter32 | ||||
| | | +--ro num-initiate-rcvd? yang:counter32 | ||||
| | | +--ro num-initiate-rcvd-error-sent? yang:counter32 | ||||
| | +--ro num-req-sent-closed? yang:counter32 | ||||
| | +--ro num-req-rcvd-closed? yang:counter32 | ||||
| +--ro sessions | ||||
| +--ro session* [initiator] | ||||
| +--ro initiator pcep-initiator | ||||
| +--ro state-last-change? yang:timestamp | ||||
| +--ro state? pcep-sess-state | ||||
| +--ro session-creation? yang:timestamp | ||||
| +--ro connect-retry? yang:counter32 | ||||
| +--ro local-id? uint32 | ||||
| +--ro remote-id? uint32 | ||||
| +--ro keepalive-timer? uint32 | ||||
| +--ro peer-keepalive-timer? uint32 | ||||
| +--ro dead-timer? uint32 | ||||
| +--ro peer-dead-timer? uint32 | ||||
| +--ro ka-hold-time-rem? uint32 | ||||
| +--ro overloaded? boolean | ||||
| +--ro overload-time? uint32 | ||||
| +--ro peer-overloaded? boolean | ||||
| +--ro peer-overload-time? uint32 | ||||
| +--ro lspdb-sync? sync-state {stateful}? | ||||
| +--ro discontinuity-time? yang:timestamp | ||||
| +--ro pcep-stats | ||||
| +--ro avg-rsp-time? uint32 | ||||
| +--ro lwm-rsp-time? uint32 | ||||
| +--ro hwm-rsp-time? uint32 | ||||
| +--ro num-pcreq-sent? yang:counter32 | ||||
| +--ro num-pcreq-rcvd? yang:counter32 | ||||
| +--ro num-pcrep-sent? yang:counter32 | ||||
| +--ro num-pcrep-rcvd? yang:counter32 | ||||
| +--ro num-pcerr-sent? yang:counter32 | ||||
| +--ro num-pcerr-rcvd? yang:counter32 | ||||
| +--ro num-pcntf-sent? yang:counter32 | ||||
| +--ro num-pcntf-rcvd? yang:counter32 | ||||
| +--ro num-keepalive-sent? yang:counter32 | ||||
| +--ro num-keepalive-rcvd? yang:counter32 | ||||
| +--ro num-unknown-rcvd? yang:counter32 | ||||
| +--ro num-corrupt-rcvd? yang:counter32 | ||||
| +--ro num-req-sent? yang:counter32 | ||||
| +--ro num-req-sent-pend-rep? yang:counter32 | ||||
| +--ro num-req-sent-ero-rcvd? yang:counter32 | ||||
| +--ro num-req-sent-nopath-rcvd? yang:counter32 | ||||
| +--ro num-req-sent-cancel-rcvd? yang:counter32 | ||||
| +--ro num-req-sent-error-rcvd? yang:counter32 | ||||
| +--ro num-req-sent-timeout? yang:counter32 | ||||
| +--ro num-req-sent-cancel-sent? yang:counter32 | ||||
| +--ro num-req-rcvd? yang:counter32 | ||||
| +--ro num-req-rcvd-pend-rep? yang:counter32 | ||||
| +--ro num-req-rcvd-ero-sent? yang:counter32 | ||||
| +--ro num-req-rcvd-nopath-sent? yang:counter32 | ||||
| +--ro num-req-rcvd-cancel-sent? yang:counter32 | ||||
| +--ro num-req-rcvd-error-sent? yang:counter32 | ||||
| +--ro num-req-rcvd-cancel-rcvd? yang:counter32 | ||||
| +--ro num-rep-rcvd-unknown? yang:counter32 | ||||
| +--ro num-req-rcvd-unknown? yang:counter32 | ||||
| +--ro svec {svec}? | ||||
| | +--ro num-svec-sent? yang:counter32 | ||||
| | +--ro num-svec-req-sent? yang:counter32 | ||||
| | +--ro num-svec-rcvd? yang:counter32 | ||||
| | +--ro num-svec-req-rcvd? yang:counter32 | ||||
| +--ro stateful {stateful}? | ||||
| +--ro num-pcrpt-sent? yang:counter32 | ||||
| +--ro num-pcrpt-rcvd? yang:counter32 | ||||
| +--ro num-pcupd-sent? yang:counter32 | ||||
| +--ro num-pcupd-rcvd? yang:counter32 | ||||
| +--ro num-rpt-sent? yang:counter32 | ||||
| +--ro num-rpt-rcvd? yang:counter32 | ||||
| +--ro num-rpt-rcvd-error-sent? yang:counter32 | ||||
| +--ro num-upd-sent? yang:counter32 | ||||
| +--ro num-upd-rcvd? yang:counter32 | ||||
| +--ro num-upd-rcvd-unknown? yang:counter32 | ||||
| +--ro num-upd-rcvd-undelegated? yang:counter32 | ||||
| +--ro num-upd-rcvd-error-sent? yang:counter32 | ||||
| +--ro initiation {pce-initiated}? | ||||
| +--ro num-pcinitiate-sent? yang:counter32 | ||||
| +--ro num-pcinitiate-rcvd? yang:counter32 | ||||
| +--ro num-initiate-sent? yang:counter32 | ||||
| +--ro num-initiate-rcvd? yang:counter32 | ||||
| +--ro num-initiate-rcvd-error-sent? yang:counter32 | ||||
| notifications: | notifications: | |||
| +---n pcep-session-up | +---n pcep-session-up | |||
| | +--ro peer-addr? leafref | | +--ro peer-addr? -> /pcep-state/entity/peers/peer/addr | |||
| | +--ro session-initiator? leafref | | +--ro session-initiator? -> /pcep-state/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? leafref | | +--ro peer-addr? -> /pcep-state/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? leafref | | +--ro peer-addr? -> /pcep-state/entity/peers/peer/addr | |||
| | +--ro session-initiator? leafref | | +--ro session-initiator? -> /pcep-state/entity/peers/peer/sessions/session/initiator | |||
| | +--ro overloaded? boolean | | +--ro overloaded? boolean | |||
| | +--ro overload-time? uint32 | | +--ro overload-time? uint32 | |||
| +---n pcep-session-local-overload-clear | +---n pcep-session-local-overload-clear | |||
| | +--ro peer-addr? leafref | | +--ro peer-addr? -> /pcep-state/entity/peers/peer/addr | |||
| | +--ro overloaded? boolean | | +--ro overloaded? boolean | |||
| +---n pcep-session-peer-overload | +---n pcep-session-peer-overload | |||
| | +--ro peer-addr? leafref | | +--ro peer-addr? -> /pcep-state/entity/peers/peer/addr | |||
| | +--ro session-initiator? leafref | | +--ro session-initiator? -> /pcep-state/entity/peers/peer/sessions/session/initiator | |||
| | +--ro peer-overloaded? boolean | | +--ro peer-overloaded? boolean | |||
| | +--ro peer-overload-time? uint32 | | +--ro peer-overload-time? uint32 | |||
| +---n pcep-session-peer-overload-clear | +---n pcep-session-peer-overload-clear | |||
| +--ro peer-addr? leafref | +--ro peer-addr? -> /pcep-state/entity/peers/peer/addr | |||
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean | |||
| 5.1. The Entity | 5.1. 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 | |||
| skipping to change at page 16, line 11 ¶ | skipping to change at page 20, line 5 ¶ | |||
| o Authentication including PCEPS (TLS) | o Authentication including PCEPS (TLS) | |||
| [Editor's Note - Some of them would be added in a future revision.] | [Editor's Note - Some of them would be added in a future revision.] | |||
| 6.1. Stateful PCE's LSP-DB | 6.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. | |||
| [Editor's Note - The document currently contains PCEP specific | The PCEP data model contains the operational state of LSPs (/pcep- | |||
| attributes only. The generic LSP attributes need to added after | state/entity/lsp-db/lsp/) with PCEP specific attributes. The generic | |||
| discussion with the TE Yang draft authors.] | TE attributes of the LSP are defined in [I-D.ietf-teas-yang-te]. A | |||
| reference to LSP state in TE model is maintained. | ||||
| 7. Open Issues and Next Step | 7. Open Issues and Next Step | |||
| This section is added so that open issues can be tracked. This | This section is added so that open issues can be tracked. This | |||
| section would be removed when the document is ready for publication. | section would be removed when the document is ready for publication. | |||
| 7.1. The LSP Database | 7.1. The PCE-Initiated LSP | |||
| The current version of data model contains the operational state of | The TE Model at [I-D.ietf-teas-yang-te] should support creationg of | |||
| LSPs (/pcep-state/entity/lsp-db/lsp/) with PCEP specific attributes. | tunnels at the controller (PCE) and marking them as PCE-Initiated. | |||
| The generic TE attributes of the LSP would be defined in other | The LSP-DB in the PCEP Yang (/pcep-state/entity/lsp-db/lsp/ | |||
| documents [I-D.ietf-teas-yang-te]. In its current form, | initiation) also marks the LSPs which are PCE-initiated. | |||
| [I-D.ietf-teas-yang-te] models the LSP state from a device centric | ||||
| view (ingress, transit, egress) which is not suitable at a PCE | ||||
| server. | ||||
| [Editor's Note: - The same issues would be amplified when PCE- | 7.2. PCEP over TLS (PCEPS) | |||
| Initiated LSP are supported and require LSP provisioning on PCE | ||||
| server rather than on the device.] | A future version of this document would add TLS related | |||
| configurations. | ||||
| 8. PCEP YANG Module | 8. PCEP YANG 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@2016-01-28.yang" | <CODE BEGINS> file "ietf-pcep@2016-07-07.yang" | |||
| module ietf-pcep { | module ietf-pcep { | |||
| 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; | ||||
| } | ||||
| import ietf-yang-types { | ||||
| prefix yang; | ||||
| } | ||||
| organization | ||||
| "IETF PCE (Path Computation Element) Working Group"; | ||||
| contact | import ietf-inet-types { | |||
| "WG Web: <http://tools.ietf.org/wg/pce/> | prefix "inet"; | |||
| WG List: <mailto:pce@ietf.org> | } | |||
| WG Chair: JP Vasseur | import ietf-yang-types { | |||
| <mailto:jpv@cisco.com> | prefix "yang"; | |||
| } | ||||
| WG Chair: Julien Meuric | import ietf-te { | |||
| <mailto:julien.meuric@orange.com> | prefix "te"; | |||
| } | ||||
| WG Chair: Jonathan Hardwick | import ietf-key-chain { | |||
| <mailto:Jonathan.Hardwick@metaswitch.com> | prefix "key-chain"; | |||
| Editor: Dhruv Dhody | } | |||
| <mailto:dhruv.ietf@gmail.com>"; | ||||
| description | organization | |||
| "The YANG module defines a generic configuration and | "IETF PCE (Path Computation Element) Working Group"; | |||
| operational model for PCEP common across all of the | ||||
| vendor implementations."; | ||||
| revision 2016-01-28 { | contact | |||
| description "Initial revision."; | "WG Web: <http://tools.ietf.org/wg/pce/> | |||
| reference | WG List: <mailto:pce@ietf.org> | |||
| "RFC XXXX: A YANG Data Model for Path Computation | WG Chair: JP Vasseur | |||
| Element Communications Protocol | <mailto:jpv@cisco.com> | |||
| (PCEP)"; | WG Chair: Julien Meuric | |||
| } | <mailto:julien.meuric@orange.com> | |||
| WG Chair: Jonathan Hardwick | ||||
| <mailto:Jonathan.Hardwick@metaswitch.com> | ||||
| Editor: Dhruv Dhody | ||||
| <mailto:dhruv.ietf@gmail.com>"; | ||||
| /* | description | |||
| * Identities | "The YANG module defines a generic configuration and | |||
| */ | operational model for PCEP common across all of the | |||
| vendor implementations."; | ||||
| identity pcep { | revision 2016-07-07 { | |||
| description "Identity for the PCEP protocol."; | description "Initial revision."; | |||
| } | reference | |||
| "RFC XXXX: A YANG Data Model for Path Computation | ||||
| Element Communications Protocol | ||||
| (PCEP)"; | ||||
| } | ||||
| /* | /* | |||
| * Typedefs | * Identities | |||
| */ | */ | |||
| typedef pcep-role { | ||||
| type enumeration { | ||||
| enum unknown { | ||||
| value "0"; | ||||
| description | ||||
| "An unknown role"; | ||||
| } | ||||
| enum pcc { | ||||
| value "1"; | ||||
| description | ||||
| "The role of a Path Computation Client"; | ||||
| } | ||||
| enum pce { | ||||
| value "2"; | ||||
| description | ||||
| "The role of Path Computation Element"; | ||||
| } | ||||
| enum pcc-and-pce { | ||||
| value "3"; | ||||
| description | ||||
| "The role of both Path Computation Client and | ||||
| Path Computation Element"; | ||||
| } | ||||
| } | ||||
| description | identity pcep { | |||
| "The role of a PCEP speaker. | description "Identity for the PCEP protocol."; | |||
| Takes one of the following values | } | |||
| - unknown(0): the role is not known. | ||||
| - pcc(1): the role is of a Path Computation | ||||
| Client (PCC). | ||||
| - pce(2): the role is of a Path Computation | ||||
| Server (PCE). | ||||
| - pccAndPce(3): the role is of both a PCC and | ||||
| a PCE."; | ||||
| } | /* | |||
| * Typedefs | ||||
| */ | ||||
| typedef pcep-role { | ||||
| type enumeration { | ||||
| enum unknown { | ||||
| value "0"; | ||||
| description | ||||
| "An unknown role"; | ||||
| } | ||||
| enum pcc { | ||||
| value "1"; | ||||
| description | ||||
| "The role of a Path Computation Client"; | ||||
| } | ||||
| enum pce { | ||||
| value "2"; | ||||
| description | ||||
| "The role of Path Computation Element"; | ||||
| } | ||||
| enum pcc-and-pce { | ||||
| value "3"; | ||||
| description | ||||
| "The role of both Path Computation Client and | ||||
| Path Computation Element"; | ||||
| } | ||||
| } | ||||
| typedef pcep-admin-status { | description | |||
| type enumeration { | "The role of a PCEP speaker. | |||
| enum admin-status-up { | Takes one of the following values | |||
| value "1"; | - unknown(0): the role is not known. | |||
| description | - pcc(1): the role is of a Path Computation | |||
| "Admin Status is Up"; | Client (PCC). | |||
| } | - pce(2): the role is of a Path Computation | |||
| enum admin-status-down { | Server (PCE). | |||
| value "2"; | - pccAndPce(3): the role is of both a PCC and | |||
| description | a PCE."; | |||
| "Admin Status is Down"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The Admin Status of the PCEP entity. | ||||
| Takes one of the following values | ||||
| - admin-status-up(1): Admin Status is Up. | ||||
| - admin-status-down(2): Admin Status is Down"; | ||||
| } | ||||
| typedef pcep-oper-status { | } | |||
| type enumeration { | ||||
| enum oper-status-up { | ||||
| value "1"; | ||||
| description | ||||
| "The PCEP entity is active"; | ||||
| } | ||||
| 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"; | ||||
| } | ||||
| typedef pcep-initiator { | typedef pcep-admin-status { | |||
| type enumeration { | type enumeration { | |||
| enum local { | enum admin-status-up { | |||
| value "1"; | value "1"; | |||
| description | description | |||
| "The local PCEP entity initiated the session"; | "Admin Status is Up"; | |||
| } | } | |||
| enum admin-status-down { | ||||
| value "2"; | ||||
| description | ||||
| "Admin Status is Down"; | ||||
| } | ||||
| } | ||||
| enum remote { | description | |||
| value "2"; | "The Admin Status of the PCEP entity. | |||
| description | Takes one of the following values | |||
| "The remote PCEP peer initiated the session"; | - admin-status-up(1): Admin Status is Up. | |||
| } | - admin-status-down(2): Admin Status is Down"; | |||
| } | } | |||
| description | ||||
| "The initiator of the session, that is, whether the TCP | ||||
| connection was initiated by the local PCEP entity or | ||||
| the remote peer. | ||||
| Takes one of the following values | ||||
| - local(1): Initiated locally | ||||
| - remote(2): Initiated remotely"; | ||||
| } | ||||
| typedef pcep-sess-state { | typedef pcep-oper-status { | |||
| type enumeration { | type enumeration { | |||
| enum tcp-pending { | enum oper-status-up { | |||
| value "1"; | value "1"; | |||
| description | description | |||
| "The tcp-pending state of PCEP session."; | "The PCEP entity is active"; | |||
| } | } | |||
| 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"; | ||||
| } | ||||
| enum open-wait { | typedef pcep-initiator { | |||
| value "2"; | type enumeration { | |||
| description | enum local { | |||
| "The open-wait state of PCEP session."; | value "1"; | |||
| } | description | |||
| "The local PCEP entity initiated the session"; | ||||
| } | ||||
| enum keep-wait { | enum remote { | |||
| value "3"; | value "2"; | |||
| description | description | |||
| "The keep-wait state of PCEP session."; | "The remote PCEP peer initiated the session"; | |||
| } | } | |||
| enum session-up { | } | |||
| value "4"; | description | |||
| description | "The initiator of the session, that is, whether the TCP | |||
| "The session-up state of PCEP session."; | connection was initiated by the local PCEP entity or | |||
| } | the remote peer. | |||
| } | Takes one of the following values | |||
| description | - local(1): Initiated locally | |||
| "The current state of the session. | - remote(2): Initiated remotely"; | |||
| } | ||||
| The set of possible states excludes the idle state | typedef pcep-sess-state { | |||
| since entries do not exist in the idle state. | type enumeration { | |||
| Takes one of the following values | enum tcp-pending { | |||
| - tcp-pending(1): PCEP TCP Pending state | value "1"; | |||
| - open-wait(2): PCEP Open Wait state | description | |||
| - keep-wait(3): PCEP Keep Wait state | "The tcp-pending state of PCEP session."; | |||
| - session-up(4): PCEP Session Up state"; | } | |||
| } | ||||
| typedef domain-type { | enum open-wait { | |||
| type enumeration { | value "2"; | |||
| enum ospf-area { | description | |||
| value "1"; | "The open-wait state of PCEP session."; | |||
| description | } | |||
| "The OSPF area."; | ||||
| } | ||||
| enum isis-area { | ||||
| value "2"; | ||||
| description | ||||
| "The IS-IS area."; | ||||
| } | ||||
| enum as { | ||||
| value "3"; | ||||
| description | ||||
| "The Autonomous System (AS)."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The PCE Domain Type"; | ||||
| } | ||||
| typedef domain-ospf-area { | enum keep-wait { | |||
| type union { | value "3"; | |||
| type uint32; | description | |||
| type yang:dotted-quad; | "The keep-wait state of PCEP session."; | |||
| } | } | |||
| description | ||||
| "OSPF Area ID."; | ||||
| } | ||||
| typedef domain-isis-area { | ||||
| type string { | ||||
| pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; | ||||
| } | ||||
| description | ||||
| "IS-IS Area ID."; | ||||
| } | ||||
| typedef domain-as { | enum session-up { | |||
| type uint32; | value "4"; | |||
| description | description | |||
| "Autonomous System number."; | "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"; | ||||
| } | ||||
| } | typedef domain-type { | |||
| type enumeration { | ||||
| enum ospf-area { | ||||
| value "1"; | ||||
| description | ||||
| "The OSPF area."; | ||||
| } | ||||
| enum isis-area { | ||||
| value "2"; | ||||
| description | ||||
| "The IS-IS area."; | ||||
| } | ||||
| enum as { | ||||
| value "3"; | ||||
| description | ||||
| "The Autonomous System (AS)."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The PCE Domain Type"; | ||||
| } | ||||
| typedef domain { | typedef domain-ospf-area { | |||
| type union { | type union { | |||
| type domain-ospf-area; | type uint32; | |||
| type domain-isis-area; | type yang:dotted-quad; | |||
| type domain-as; | ||||
| } | ||||
| description | ||||
| "The Domain Information"; | ||||
| } | } | |||
| description | ||||
| "OSPF Area ID."; | ||||
| } | ||||
| typedef operational-state { | typedef domain-isis-area { | |||
| type enumeration { | type string { | |||
| enum down { | pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; | |||
| value "0"; | } | |||
| description | description | |||
| "not active."; | "IS-IS Area ID."; | |||
| } | } | |||
| 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"; | ||||
| } | ||||
| typedef lsp-error { | typedef domain-as { | |||
| type enumeration { | type uint32; | |||
| enum no-error { | description | |||
| value "0"; | "Autonomous System number."; | |||
| description | ||||
| "No error, LSP is fine."; | ||||
| } | ||||
| enum unknown { | ||||
| value "1"; | ||||
| description | ||||
| "Unknown reason."; | ||||
| } | ||||
| enum limit { | ||||
| value "2"; | ||||
| description | ||||
| "Limit reached for PCE-controlled LSPs."; | ||||
| } | ||||
| enum pending { | ||||
| value "3"; | ||||
| description | ||||
| "Too many pending LSP update requests."; | ||||
| } | ||||
| enum unacceptable { | ||||
| value "4"; | ||||
| description | ||||
| "Unacceptable parameters."; | ||||
| } | ||||
| enum internal { | ||||
| value "5"; | ||||
| description | ||||
| "Internal error."; | ||||
| } | ||||
| enum admin { | ||||
| value "6"; | ||||
| description | ||||
| "LSP administratively brought down."; | ||||
| } | ||||
| enum preempted { | ||||
| value "7"; | ||||
| description | ||||
| "LSP preempted."; | ||||
| } | ||||
| enum rsvp { | ||||
| value "8"; | ||||
| description | ||||
| "RSVP signaling error."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The LSP Error Codes."; | ||||
| } | ||||
| 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."; | ||||
| } | ||||
| /* | ||||
| * Features | ||||
| */ | ||||
| feature svec { | typedef domain { | |||
| description | type union { | |||
| "Support synchronized path computation."; | type domain-ospf-area; | |||
| } | type domain-isis-area; | |||
| type domain-as; | ||||
| } | ||||
| description | ||||
| "The Domain Information"; | ||||
| } | ||||
| feature gmpls { | typedef operational-state { | |||
| description | type enumeration { | |||
| "Support GMPLS."; | enum down { | |||
| } | value "0"; | |||
| description | ||||
| "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"; | ||||
| } | ||||
| feature obj-fn { | typedef lsp-error { | |||
| description | type enumeration { | |||
| "Support OF as per RFC 5541."; | enum no-error { | |||
| } | value "0"; | |||
| description | ||||
| "No error, LSP is fine."; | ||||
| } | ||||
| enum unknown { | ||||
| value "1"; | ||||
| description | ||||
| "Unknown reason."; | ||||
| } | ||||
| enum limit { | ||||
| value "2"; | ||||
| description | ||||
| "Limit reached for PCE-controlled LSPs."; | ||||
| } | ||||
| enum pending { | ||||
| value "3"; | ||||
| description | ||||
| "Too many pending LSP update requests."; | ||||
| } | ||||
| enum unacceptable { | ||||
| value "4"; | ||||
| description | ||||
| "Unacceptable parameters."; | ||||
| } | ||||
| enum internal { | ||||
| value "5"; | ||||
| description | ||||
| "Internal error."; | ||||
| } | ||||
| enum admin { | ||||
| value "6"; | ||||
| description | ||||
| "LSP administratively brought down."; | ||||
| } | ||||
| enum preempted { | ||||
| value "7"; | ||||
| description | ||||
| "LSP preempted."; | ||||
| } | ||||
| enum rsvp { | ||||
| value "8"; | ||||
| description | ||||
| "RSVP signaling error."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The LSP Error Codes."; | ||||
| } | ||||
| feature gco { | typedef sync-state { | |||
| description | type enumeration { | |||
| "Support GCO as per RFC 5557."; | 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."; | ||||
| } | ||||
| feature pathkey { | typedef pst{ | |||
| description | type enumeration{ | |||
| "Support pathkey as per RFC 5520."; | enum rsvp-te{ | |||
| } | value "0"; | |||
| description | ||||
| "RSVP-TE signaling protocol"; | ||||
| } | ||||
| enum sr{ | ||||
| value "1"; | ||||
| description | ||||
| "Segment Routing Traffic Engineering"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The Path Setup Type"; | ||||
| } | ||||
| feature p2mp { | typedef assoc-type{ | |||
| description | type enumeration{ | |||
| "Support P2MP as per RFC 6006."; | enum protection{ | |||
| } | value "1"; | |||
| description | ||||
| "Path Protection Association Type"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The PCEP Association Type"; | ||||
| } | ||||
| feature stateful { | /* | |||
| description | * Features | |||
| "Support stateful PCE."; | */ | |||
| } | ||||
| /* | feature svec { | |||
| * Groupings | description | |||
| */ | "Support synchronized path computation."; | |||
| } | ||||
| grouping pcep-entity-info{ | feature gmpls { | |||
| description | description | |||
| "This grouping defines the attributes for PCEP entity."; | "Support GMPLS."; | |||
| leaf connect-timer { | } | |||
| type uint32 { | ||||
| 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 { | feature obj-fn { | |||
| type uint32; | description | |||
| default 5; | "Support OF as per RFC 5541."; | |||
| 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 { | feature gco { | |||
| type uint32 { | description | |||
| range "1..65535"; | "Support GCO as per RFC 5557."; | |||
| } | } | |||
| 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 | feature pathkey { | |||
| session setup attempt, until a maximum back-off | description | |||
| time is reached. The maximum back-off time is | "Support pathkey as per RFC 5520."; | |||
| max-backoff-timer."; | } | |||
| } | feature p2mp { | |||
| description | ||||
| "Support P2MP as per RFC 6006."; | ||||
| } | ||||
| leaf max-backoff-timer { | feature stateful { | |||
| type uint32; | description | |||
| units "seconds"; | "Support stateful PCE."; | |||
| 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 | feature pce-initiated { | |||
| setup attempt, until this maximum value is reached. | description | |||
| Session setup attempts then repeat periodically | "Support PCE-Initiated LSP."; | |||
| without any further increase in back-off time."; | } | |||
| } | ||||
| leaf open-wait-timer { | ||||
| type uint32 { | ||||
| range "1..65535"; | ||||
| } | ||||
| units "seconds"; | ||||
| default 60; | ||||
| description | ||||
| "The time in seconds that the PCEP entity will wait | ||||
| to receive an Open message from a peer after the | ||||
| TCP connection has come up. | ||||
| If no Open message is received within this time then | feature tls { | |||
| PCEP terminates the TCP connection and deletes the | description | |||
| associated sessions."; | "Support PCEP over TLS."; | |||
| reference | } | |||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf keep-wait-timer { | feature sr { | |||
| type uint32 { | description | |||
| range "1..65535"; | "Support Segement Routing for PCE."; | |||
| } | } | |||
| units "seconds"; | ||||
| default 60; | ||||
| description | ||||
| "The time in seconds that the PCEP entity will wait | ||||
| to receive a Keepalive or PCErr message from a peer | ||||
| during session initialization after receiving an | ||||
| Open message. If no Keepalive or PCErr message is | ||||
| received within this time then PCEP terminates the | ||||
| TCP connection and deletes the associated | ||||
| sessions."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf keep-alive-timer { | /* | |||
| type uint32 { | * Groupings | |||
| range "0..255"; | */ | |||
| } | ||||
| units "seconds"; | ||||
| default 30; | ||||
| description | ||||
| "The keep alive transmission timer that this PCEP | ||||
| entity will propose in the initial OPEN message of | ||||
| each session it is involved in. This is the | ||||
| maximum time between two consecutive messages sent | ||||
| to a peer. Zero means that the PCEP entity prefers | ||||
| not to send Keepalives at all. | ||||
| Note that the actual Keepalive transmission | grouping pcep-entity-info{ | |||
| intervals, in either direction of an active PCEP | description | |||
| session, are determined by negotiation between the | "This grouping defines the attributes for PCEP entity."; | |||
| peers as specified by RFC 5440, and so may differ | leaf connect-timer { | |||
| from this configured value."; | type uint32 { | |||
| reference | range "1..65535"; | |||
| "RFC 5440: Path Computation Element (PCE) | } | |||
| Communication Protocol (PCEP)"; | 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 dead-timer { | } | |||
| type uint32 { | ||||
| range "0..255"; | ||||
| } | ||||
| units "seconds"; | ||||
| must ". >= ../keep-alive-timer" { | ||||
| error-message "The dead timer must be " | ||||
| + "larger than the keep alive timer"; | ||||
| description | ||||
| "This value MUST be greater than | ||||
| keep-alive-timer."; | ||||
| } | leaf connect-max-retry { | |||
| default 120; | type uint32; | |||
| description | default 5; | |||
| "The dead timer that this PCEP entity will propose | description | |||
| in the initial OPEN message of each session it is | "The maximum number of times the system tries to | |||
| involved in. This is the time after which a peer | establish a TCP connection to a peer before the | |||
| should declare a session down if it does not | session with the peer transitions to the idle | |||
| receive any PCEP messages. Zero suggests that the | state."; | |||
| peer does not run a dead timer at all." ; | reference | |||
| reference | "RFC 5440: Path Computation Element (PCE) | |||
| "RFC 5440: Path Computation Element (PCE) | Communication Protocol (PCEP)"; | |||
| Communication Protocol (PCEP)"; | } | |||
| } | ||||
| leaf allow-negotiation{ | leaf init-backoff-timer { | |||
| type boolean; | type uint32 { | |||
| description | range "1..65535"; | |||
| "Whether the PCEP entity will permit negotiation of | } | |||
| session parameters."; | 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."; | ||||
| } | ||||
| leaf max-keep-alive-timer{ | leaf max-backoff-timer { | |||
| type uint32 { | type uint32; | |||
| range "0..255"; | units "seconds"; | |||
| } | description | |||
| units "seconds"; | "The maximum back-off time in seconds for retrying | |||
| description | a failed session setup attempt to a peer. | |||
| "In PCEP session parameter negotiation in seconds, | The back-off time increases for each failed session | |||
| the maximum value that this PCEP entity will | setup attempt, until this maximum value is reached. | |||
| accept from a peer for the interval between | Session setup attempts then repeat periodically | |||
| Keepalive transmissions. Zero means that the PCEP | without any further increase in back-off time."; | |||
| entity will allow no Keepalive transmission at | } | |||
| all." ; | ||||
| } | ||||
| leaf max-dead-timer{ | leaf open-wait-timer { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "1..65535"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| description | default 60; | |||
| "In PCEP session parameter negotiation in seconds, | description | |||
| the maximum value that this PCEP entity will accept | "The time in seconds that the PCEP entity will wait | |||
| from a peer for the Dead timer. Zero means that | to receive an Open message from a peer after the | |||
| the PCEP entity will allow not running a Dead | TCP connection has come up. | |||
| timer."; | If no Open message is received within this time then | |||
| } | PCEP terminates the TCP connection and deletes the | |||
| associated sessions."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf min-keep-alive-timer{ | leaf keep-wait-timer { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "1..65535"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| description | default 60; | |||
| "In PCEP session parameter negotiation in seconds, | description | |||
| the minimum value that this PCEP entity will | "The time in seconds that the PCEP entity will wait | |||
| accept for the interval between Keepalive | to receive a Keepalive or PCErr message from a peer | |||
| transmissions. Zero means that the PCEP entity | during session initialization after receiving an | |||
| insists on no Keepalive transmission at all."; | Open message. If no Keepalive or PCErr message is | |||
| } | received within this time then PCEP terminates the | |||
| TCP connection and deletes the associated | ||||
| sessions."; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf min-dead-timer{ | leaf keep-alive-timer { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "0..255"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| description | default 30; | |||
| "In PCEP session parameter negotiation in | description | |||
| seconds, the minimum value that this PCEP entity | "The keep alive transmission timer that this PCEP | |||
| will accept for the Dead timer. Zero means that | entity will propose in the initial OPEN message of | |||
| the PCEP entity insists on not running a Dead | each session it is involved in. This is the | |||
| timer."; | maximum time between two consecutive messages sent | |||
| } | to a peer. Zero means that the PCEP entity prefers | |||
| not to send Keepalives at all. | ||||
| Note that the actual Keepalive transmission | ||||
| intervals, in either direction of an active PCEP | ||||
| session, are determined by negotiation between the | ||||
| peers as specified by RFC 5440, and so may differ | ||||
| from this configured value."; | ||||
| leaf sync-timer{ | reference | |||
| if-feature svec; | "RFC 5440: Path Computation Element (PCE) | |||
| type uint32 { | Communication Protocol (PCEP)"; | |||
| range "0..65535"; | } | |||
| } | ||||
| 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 | leaf dead-timer { | |||
| of unused synchronized requests should one of | type uint32 { | |||
| them get lost for some reasons (for example, a | range "0..255"; | |||
| misbehaving PCC). | } | |||
| units "seconds"; | ||||
| must ". >= ../keep-alive-timer" { | ||||
| error-message "The dead timer must be " | ||||
| + "larger than the keep alive timer"; | ||||
| description | ||||
| "This value MUST be greater than | ||||
| keep-alive-timer."; | ||||
| Zero means that the PCEP entity does not use the | } | |||
| SyncTimer."; | default 120; | |||
| reference | description | |||
| "RFC 5440: Path Computation Element (PCE) | "The dead timer that this PCEP entity will propose | |||
| Communication Protocol (PCEP)"; | in the initial OPEN message of each session it is | |||
| } | involved in. This is the time after which a peer | |||
| should declare a session down if it does not | ||||
| receive any PCEP messages. Zero suggests that the | ||||
| peer does not run a dead timer at all." ; | ||||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| leaf request-timer{ | leaf allow-negotiation{ | |||
| type uint32 { | type boolean; | |||
| range "1..65535"; | description | |||
| } | "Whether the PCEP entity will permit negotiation of | |||
| units "seconds"; | session parameters."; | |||
| description | } | |||
| "The maximum time that the PCEP entity will wait | ||||
| for a response to a PCReq message."; | ||||
| } | ||||
| leaf max-sessions{ | leaf max-keep-alive-timer{ | |||
| type uint32; | type uint32 { | |||
| description | range "0..255"; | |||
| "Maximum number of sessions involving this PCEP | } | |||
| entity that can exist at any time."; | units "seconds"; | |||
| } | description | |||
| "In PCEP session parameter negotiation in seconds, | ||||
| the maximum value that this PCEP entity will | ||||
| accept from a peer for the interval between | ||||
| Keepalive transmissions. Zero means that the PCEP | ||||
| entity will allow no Keepalive transmission at | ||||
| all." ; | ||||
| } | ||||
| leaf max-unknown-reqs{ | leaf max-dead-timer{ | |||
| type uint32; | type uint32 { | |||
| default 5; | range "0..255"; | |||
| description | } | |||
| "The maximum number of unrecognized requests and | units "seconds"; | |||
| replies that any session on this PCEP entity is | description | |||
| willing to accept per minute before terminating | "In PCEP session parameter negotiation in seconds, | |||
| the session. | the maximum value that this PCEP entity will accept | |||
| from a peer for the Dead timer. Zero means that | ||||
| the PCEP entity will allow not running a Dead | ||||
| timer."; | ||||
| } | ||||
| A PCRep message contains an unrecognized reply | leaf min-keep-alive-timer{ | |||
| if it contains an RP object whose request ID | type uint32 { | |||
| does not correspond to any in-progress request | range "0..255"; | |||
| sent by this PCEP entity. | } | |||
| units "seconds"; | ||||
| description | ||||
| "In PCEP session parameter negotiation in seconds, | ||||
| the minimum value that this PCEP entity will | ||||
| accept for the interval between Keepalive | ||||
| transmissions. Zero means that the PCEP entity | ||||
| insists on no Keepalive transmission at all."; | ||||
| } | ||||
| A PCReq message contains an unrecognized request | leaf min-dead-timer{ | |||
| if it contains an RP object whose request ID is | type uint32 { | |||
| zero."; | range "0..255"; | |||
| reference | } | |||
| "RFC 5440: Path Computation Element (PCE) | units "seconds"; | |||
| Communication Protocol (PCEP)"; | 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 max-unknown-msgs{ | leaf sync-timer{ | |||
| type uint32; | if-feature svec; | |||
| default 5; | type uint32 { | |||
| description | range "0..65535"; | |||
| "The maximum number of unknown messages that any | } | |||
| session on this PCEP entity is willing to accept | units "seconds"; | |||
| per minute before terminating the session."; | default 60; | |||
| reference | description | |||
| "RFC 5440: Path Computation Element (PCE) | "The value of SyncTimer in seconds is used in the | |||
| Communication Protocol (PCEP)"; | 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)"; | ||||
| } | ||||
| }//pcep-entity-info | leaf request-timer{ | |||
| type uint32 { | ||||
| range "1..65535"; | ||||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "The maximum time that the PCEP entity will wait | ||||
| for a response to a PCReq message."; | ||||
| } | ||||
| grouping pce-scope{ | leaf max-sessions{ | |||
| description | type uint32; | |||
| "This grouping defines PCE path computation scope | description | |||
| information which maybe relevant to PCE selection. | "Maximum number of sessions involving this PCEP | |||
| This information corresponds to PCE auto-discovery | entity that can exist at any time."; | |||
| information."; | } | |||
| reference | ||||
| "RFC 5088: OSPF Protocol Extensions for Path | ||||
| Computation Element (PCE) | ||||
| Discovery | ||||
| RFC 5089: IS-IS Protocol Extensions for Path | ||||
| Computation Element (PCE) | ||||
| Discovery"; | ||||
| leaf intra-area-scope{ | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "PCE can compute intra-area paths."; | ||||
| } | ||||
| leaf intra-area-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for intra-area TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-area-scope{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can compute inter-area paths."; | ||||
| } | ||||
| leaf inter-area-scope-default{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can act as a default PCE for inter-area | ||||
| path computation."; | ||||
| } | ||||
| leaf inter-area-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-area TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-as-scope{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can compute inter-AS paths."; | ||||
| } | ||||
| leaf inter-as-scope-default{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can act as a default PCE for inter-AS | ||||
| path computation."; | ||||
| } | ||||
| leaf inter-as-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-AS TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-layer-scope{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can compute inter-layer paths."; | ||||
| } | ||||
| leaf inter-layer-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-layer TE LSP | ||||
| computation."; | ||||
| } | ||||
| }//pce-scope | ||||
| grouping domain{ | leaf max-unknown-reqs{ | |||
| description | type uint32; | |||
| "This grouping specifies a Domain where the | default 5; | |||
| PCEP speaker has topology visibility."; | description | |||
| leaf domain-type{ | "The maximum number of unrecognized requests and | |||
| type domain-type; | replies that any session on this PCEP entity is | |||
| description | willing to accept per minute before terminating | |||
| "The domain type."; | the session. | |||
| } | A PCRep message contains an unrecognized reply | |||
| leaf domain{ | if it contains an RP object whose request ID | |||
| type domain; | does not correspond to any in-progress request | |||
| description | sent by this PCEP entity. | |||
| "The domain Information."; | A PCReq message contains an unrecognized request | |||
| } | if it contains an RP object whose request ID is | |||
| }//domain | zero."; | |||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) | ||||
| Communication Protocol (PCEP)"; | ||||
| } | ||||
| grouping capability{ | leaf max-unknown-msgs{ | |||
| description | type uint32; | |||
| "This grouping specifies a capability | default 5; | |||
| information of local PCEP entity. This maybe | description | |||
| relevant to PCE selection as well. This | "The maximum number of unknown messages that any | |||
| information corresponds to PCE auto-discovery | session on this PCEP entity is willing to accept | |||
| information."; | per minute before terminating the session."; | |||
| reference | reference | |||
| "RFC 5088: OSPF Protocol Extensions for Path | "RFC 5440: Path Computation Element (PCE) | |||
| Computation Element (PCE) | Communication Protocol (PCEP)"; | |||
| Discovery | } | |||
| RFC 5089: IS-IS Protocol Extensions for Path | ||||
| Computation Element (PCE) | ||||
| Discovery"; | ||||
| leaf gmpls{ | ||||
| if-feature gmpls; | ||||
| type boolean; | ||||
| description | ||||
| "Path computation with GMPLS link | ||||
| constraints."; | ||||
| } | ||||
| leaf bi-dir{ | ||||
| type boolean; | ||||
| description | ||||
| "Bidirectional path computation."; | ||||
| } | ||||
| leaf diverse{ | ||||
| type boolean; | ||||
| description | ||||
| "Diverse path computation."; | ||||
| } | ||||
| leaf load-balance{ | ||||
| type boolean; | ||||
| description | ||||
| "Load-balanced path computation."; | ||||
| } | ||||
| leaf synchronize{ | ||||
| if-feature svec; | ||||
| type boolean; | ||||
| description | ||||
| "Synchronized paths computation."; | ||||
| } | ||||
| leaf objective-function{ | ||||
| if-feature obj-fn; | ||||
| type boolean; | ||||
| description | ||||
| "Support for multiple objective functions."; | ||||
| } | ||||
| leaf add-path-constraint{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for additive path constraints (max | ||||
| hop count, etc.)."; | ||||
| } | ||||
| leaf prioritization{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for request prioritization."; | ||||
| } | ||||
| leaf multi-request{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for multiple requests per message."; | ||||
| } | ||||
| leaf gco{ | ||||
| if-feature gco; | ||||
| type boolean; | ||||
| description | ||||
| "Support for Global Concurrent Optimization | ||||
| (GCO)."; | ||||
| } | ||||
| leaf p2mp{ | ||||
| if-feature p2mp; | ||||
| type boolean; | ||||
| description | ||||
| "Support for P2MP path computation."; | ||||
| } | ||||
| container stateful{ | }//pcep-entity-info | |||
| if-feature stateful; | ||||
| description | ||||
| "If stateful PCE feature is present"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "Enabled or Disabled"; | ||||
| } | ||||
| leaf active{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for active stateful PCE."; | ||||
| } | ||||
| leaf pce-initiated{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for PCE-initiated LSP."; | ||||
| } | ||||
| } | ||||
| }//capability | grouping pce-scope{ | |||
| description | ||||
| "This grouping defines PCE path computation scope | ||||
| information which maybe relevant to PCE selection. | ||||
| This information corresponds to PCE auto-discovery | ||||
| information."; | ||||
| reference | ||||
| "RFC 5088: OSPF Protocol Extensions for Path | ||||
| Computation Element (PCE) | ||||
| Discovery | ||||
| RFC 5089: IS-IS Protocol Extensions for Path | ||||
| Computation Element (PCE) | ||||
| Discovery"; | ||||
| leaf intra-area-scope{ | ||||
| type boolean; | ||||
| default true; | ||||
| description | ||||
| "PCE can compute intra-area paths."; | ||||
| } | ||||
| leaf intra-area-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for intra-area TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-area-scope{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can compute inter-area paths."; | ||||
| } | ||||
| leaf inter-area-scope-default{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can act as a default PCE for inter-area | ||||
| path computation."; | ||||
| } | ||||
| leaf inter-area-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-area TE LSP | ||||
| computation."; | ||||
| } | ||||
| leaf inter-as-scope{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can compute inter-AS paths."; | ||||
| } | ||||
| leaf inter-as-scope-default{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "PCE can act as a default PCE for inter-AS | ||||
| path computation."; | ||||
| } | ||||
| leaf inter-as-pref{ | ||||
| type uint8{ | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "The PCE's preference for inter-AS TE LSP | ||||
| computation."; | ||||
| grouping info{ | } | |||
| description | leaf inter-layer-scope{ | |||
| "This grouping specifies all information which | type boolean; | |||
| maybe relevant to both PCC and PCE. | default false; | |||
| This information corresponds to PCE auto-discovery | description | |||
| information."; | "PCE can compute inter-layer paths."; | |||
| container domain{ | } | |||
| description | leaf inter-layer-pref{ | |||
| "The local domain for the PCEP entity"; | type uint8{ | |||
| list domain{ | range "0..7"; | |||
| key "domain-type domain"; | } | |||
| description | description | |||
| "The local domain."; | "The PCE's preference for inter-layer TE LSP | |||
| uses domain{ | computation."; | |||
| description | } | |||
| "The local domain for the PCEP entity."; | }//pce-scope | |||
| } | ||||
| } | ||||
| } | ||||
| container capability{ | ||||
| description | ||||
| "The PCEP entity capability"; | ||||
| uses capability{ | ||||
| description | ||||
| "The PCEP entity supported | ||||
| capabilities."; | ||||
| } | ||||
| } | ||||
| }//info | ||||
| grouping pce-info{ | grouping domain{ | |||
| description | description | |||
| "This grouping specifies all PCE information | "This grouping specifies a Domain where the | |||
| which maybe relevant to the PCE selection. | PCEP speaker has topology visibility."; | |||
| This information corresponds to PCE auto-discovery | leaf domain-type{ | |||
| information."; | type domain-type; | |||
| container scope{ | description | |||
| description | "The domain type."; | |||
| "The path computation scope"; | } | |||
| uses pce-scope; | leaf domain{ | |||
| } | type domain; | |||
| description | ||||
| "The domain Information."; | ||||
| } | ||||
| }//domain | ||||
| container neigh-domains{ | grouping capability{ | |||
| description | description | |||
| "The list of neighbour PCE-Domain | "This grouping specifies a capability | |||
| toward which a PCE can compute | information of local PCEP entity. This maybe | |||
| paths"; | relevant to PCE selection as well. This | |||
| list domain{ | information corresponds to PCE auto-discovery | |||
| key "domain-type domain"; | 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 gmpls{ | ||||
| if-feature gmpls; | ||||
| type boolean; | ||||
| description | ||||
| "Path computation with GMPLS link | ||||
| constraints."; | ||||
| } | ||||
| leaf bi-dir{ | ||||
| type boolean; | ||||
| description | ||||
| "Bidirectional path computation."; | ||||
| } | ||||
| leaf diverse{ | ||||
| type boolean; | ||||
| description | ||||
| "Diverse path computation."; | ||||
| } | ||||
| leaf load-balance{ | ||||
| type boolean; | ||||
| description | ||||
| "Load-balanced path computation."; | ||||
| } | ||||
| leaf synchronize{ | ||||
| if-feature svec; | ||||
| type boolean; | ||||
| description | ||||
| "Synchronized paths computation."; | ||||
| } | ||||
| leaf objective-function{ | ||||
| if-feature obj-fn; | ||||
| type boolean; | ||||
| description | ||||
| "Support for multiple objective functions."; | ||||
| } | ||||
| leaf add-path-constraint{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for additive path constraints (max | ||||
| hop count, etc.)."; | ||||
| } | ||||
| leaf prioritization{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for request prioritization."; | ||||
| } | ||||
| leaf multi-request{ | ||||
| type boolean; | ||||
| description | ||||
| "Support for multiple requests per message."; | ||||
| description | } | |||
| "The neighbour domain."; | leaf gco{ | |||
| uses domain{ | if-feature gco; | |||
| description | type boolean; | |||
| "The PCE neighbour domain."; | description | |||
| } | "Support for Global Concurrent Optimization | |||
| } | (GCO)."; | |||
| } | } | |||
| }//pce-info | leaf p2mp{ | |||
| if-feature p2mp; | ||||
| type boolean; | ||||
| description | ||||
| "Support for P2MP path computation."; | ||||
| } | ||||
| grouping pcep-stats{ | container stateful{ | |||
| description | if-feature stateful; | |||
| "This grouping defines statistics for PCEP. It is used | description | |||
| for both peer and current session."; | "If stateful PCE feature is present"; | |||
| leaf avg-rsp-time{ | leaf enabled{ | |||
| type uint32; | type boolean; | |||
| units "milliseconds"; | description | |||
| must "(/pcep-state/entity/peers/peer/role != 'pcc'" + | "Enabled or Disabled"; | |||
| " or " + | } | |||
| "(/pcep-state/entity/peers/peer/role = 'pcc'" + | leaf active{ | |||
| " and avg-rsp-time = 0))" { | type boolean; | |||
| error-message | description | |||
| "Invalid average response time"; | "Support for active stateful PCE."; | |||
| description | } | |||
| "If role is pcc then this leaf is meaningless | leaf pce-initiated{ | |||
| and is set to zero."; | if-feature pce-initiated; | |||
| } | type boolean; | |||
| description | description | |||
| "The average response time. | "Support for PCE-initiated LSP."; | |||
| } | ||||
| } | ||||
| container sr{ | ||||
| if-feature sr; | ||||
| description | ||||
| "If segment routing is supported"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "Enabled or Disabled"; | ||||
| } | ||||
| leaf msd{ /*should be in MPLS yang model (?)*/ | ||||
| type uint8; | ||||
| must "((../../role == 'pcc')" + | ||||
| " or " + | ||||
| "(../../role == 'pcc-and-pce')))" | ||||
| { | ||||
| error-message | ||||
| "The PCEP entity must be PCC"; | ||||
| description | ||||
| "When PCEP entity is PCC for | ||||
| MSD to be applicable"; | ||||
| } | ||||
| description | ||||
| "Maximum SID Depth"; | ||||
| } | ||||
| } | ||||
| }//capability | ||||
| If an average response time has not been | grouping info{ | |||
| calculated then this leaf has the value zero."; | description | |||
| } | "This grouping specifies all information which | |||
| maybe relevant to both PCC and PCE. | ||||
| This information corresponds to PCE auto-discovery | ||||
| information."; | ||||
| container domain{ | ||||
| description | ||||
| "The local domain for the PCEP entity"; | ||||
| list domain{ | ||||
| key "domain-type domain"; | ||||
| description | ||||
| "The local domain."; | ||||
| uses domain{ | ||||
| description | ||||
| "The local domain for the PCEP entity."; | ||||
| } | ||||
| } | ||||
| } | ||||
| container capability{ | ||||
| description | ||||
| "The PCEP entity capability"; | ||||
| uses capability{ | ||||
| description | ||||
| "The PCEP entity supported | ||||
| capabilities."; | ||||
| } | ||||
| } | ||||
| }//info | ||||
| leaf lwm-rsp-time{ | grouping pce-info{ | |||
| type uint32; | description | |||
| units "milliseconds"; | "This grouping specifies all PCE information | |||
| must "(/pcep-state/entity/peers/peer/role != 'pcc'" + | which maybe relevant to the PCE selection. | |||
| " or " + | This information corresponds to PCE auto-discovery | |||
| "(/pcep-state/entity/peers/peer/role = 'pcc'" + | information."; | |||
| " and lwm-rsp-time = 0))" { | container scope{ | |||
| error-message | description | |||
| "Invalid smallest (low-water mark) | "The path computation scope"; | |||
| response time"; | uses pce-scope; | |||
| } | ||||
| description | container neigh-domains{ | |||
| "If role is pcc then this leaf is meaningless | description | |||
| and is set to zero."; | "The list of neighbour PCE-Domain | |||
| } | toward which a PCE can compute | |||
| description | paths"; | |||
| "The smallest (low-water mark) response time seen. | list domain{ | |||
| key "domain-type domain"; | ||||
| If no responses have been received then this | description | |||
| leaf has the value zero."; | "The neighbour domain."; | |||
| } | uses domain{ | |||
| description | ||||
| "The PCE neighbour domain."; | ||||
| } | ||||
| } | ||||
| } | ||||
| }//pce-info | ||||
| leaf hwm-rsp-time{ | grouping pcep-stats{ | |||
| type uint32; | description | |||
| units "milliseconds"; | "This grouping defines statistics for PCEP. It is used | |||
| must "(/pcep-state/entity/peers/peer/role != 'pcc'" + | for both peer and current session."; | |||
| " or " + | leaf avg-rsp-time{ | |||
| "(/pcep-state/entity/peers/peer/role = 'pcc'" + | type uint32; | |||
| " and hwm-rsp-time = 0))" { | units "milliseconds"; | |||
| error-message | must "(/pcep-state/entity/peers/peer/role != 'pcc'" + | |||
| "Invalid greatest (high-water mark) | " or " + | |||
| response time seen"; | "(/pcep-state/entity/peers/peer/role = 'pcc'" + | |||
| description | " and avg-rsp-time = 0))" { | |||
| "If role is pcc then this field is | error-message | |||
| meaningless and is set to zero."; | "Invalid average response time"; | |||
| } | description | |||
| description | "If role is pcc then this leaf is meaningless | |||
| "The greatest (high-water mark) response time seen. | and is set to zero."; | |||
| } | ||||
| description | ||||
| "The average response time. | ||||
| If an average response time has not been | ||||
| calculated then this leaf has the value zero."; | ||||
| If no responses have been received then this object | } | |||
| has the value zero."; | ||||
| } | ||||
| leaf num-pcreq-sent{ | leaf lwm-rsp-time{ | |||
| type yang:counter32; | type uint32; | |||
| description | units "milliseconds"; | |||
| "The number of PCReq messages sent."; | must "(/pcep-state/entity/peers/peer/role != 'pcc'" + | |||
| } | " or " + | |||
| "(/pcep-state/entity/peers/peer/role = 'pcc'" + | ||||
| " and lwm-rsp-time = 0))" { | ||||
| error-message | ||||
| "Invalid smallest (low-water mark) | ||||
| response time"; | ||||
| description | ||||
| "If role is pcc then this leaf is meaningless | ||||
| and is set to zero."; | ||||
| } | ||||
| description | ||||
| "The smallest (low-water mark) response time seen. | ||||
| If no responses have been received then this | ||||
| leaf has the value zero."; | ||||
| } | ||||
| leaf num-pcreq-rcvd{ | leaf hwm-rsp-time{ | |||
| type yang:counter32; | type uint32; | |||
| description | units "milliseconds"; | |||
| "The number of PCReq messages received."; | must "(/pcep-state/entity/peers/peer/role != 'pcc'" + | |||
| } | " or " + | |||
| "(/pcep-state/entity/peers/peer/role = 'pcc'" + | ||||
| " and hwm-rsp-time = 0))" { | ||||
| error-message | ||||
| "Invalid greatest (high-water mark) | ||||
| response time seen"; | ||||
| description | ||||
| "If role is pcc then this field is | ||||
| meaningless and is set to zero."; | ||||
| } | ||||
| description | ||||
| "The greatest (high-water mark) response time seen. | ||||
| If no responses have been received then this object | ||||
| has the value zero."; | ||||
| } | ||||
| leaf num-pcrep-sent{ | leaf num-pcreq-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCRep messages sent."; | "The number of PCReq messages sent."; | |||
| } | ||||
| leaf num-pcreq-rcvd{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCReq messages received."; | ||||
| } | ||||
| } | leaf num-pcrep-sent{ | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCRep messages sent."; | ||||
| } | ||||
| leaf num-pcrep-rcvd{ | leaf num-pcrep-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCRep messages received."; | "The number of PCRep messages received."; | |||
| } | } | |||
| leaf num-pcerr-sent{ | leaf num-pcerr-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCErr messages sent."; | "The number of PCErr messages sent."; | |||
| } | } | |||
| leaf num-pcerr-rcvd{ | leaf num-pcerr-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCErr messages received."; | "The number of PCErr messages received."; | |||
| } | } | |||
| leaf num-pcntf-sent{ | leaf num-pcntf-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCNtf messages sent."; | "The number of PCNtf messages sent."; | |||
| } | } | |||
| leaf num-pcntf-rcvd{ | leaf num-pcntf-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCNtf messages received."; | "The number of PCNtf messages received."; | |||
| } | } | |||
| leaf num-keepalive-sent{ | leaf num-keepalive-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of Keepalive messages sent."; | "The number of Keepalive messages sent."; | |||
| } | } | |||
| leaf num-keepalive-rcvd{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of Keepalive messages received."; | ||||
| } | ||||
| leaf num-keepalive-rcvd{ | leaf num-unknown-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of Keepalive messages received."; | "The number of unknown messages received."; | |||
| } | } | |||
| leaf num-unknown-rcvd{ | leaf num-corrupt-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of unknown messages received."; | "The number of corrupted PCEP message received."; | |||
| } | ||||
| } | leaf num-req-sent{ | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests sent. A request corresponds | ||||
| 1:1 with an RP object in a PCReq message. This might | ||||
| be greater than num-pcreq-sent because multiple | ||||
| requests can be batched into a single PCReq | ||||
| message."; | ||||
| } | ||||
| leaf num-corrupt-rcvd{ | leaf num-req-sent-pend-rep{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of corrupted PCEP message received."; | "The number of requests that have been sent for | |||
| } | which a response is still pending."; | |||
| } | ||||
| leaf num-req-sent{ | leaf num-req-sent-ero-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests sent. A request corresponds | "The number of requests that have been sent for | |||
| 1:1 with an RP object in a PCReq message. This might | which a response with an ERO object was received. | |||
| be greater than num-pcreq-sent because multiple | Such responses indicate that a path was | |||
| requests can be batched into a single PCReq | successfully computed by the peer."; | |||
| message."; | } | |||
| } | ||||
| leaf num-req-sent-pend-rep{ | leaf num-req-sent-nopath-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests that have been sent for | "The number of requests that have been sent for | |||
| which a response is still pending."; | which a response with a NO-PATH object was | |||
| } | received. Such responses indicate that the peer | |||
| could not find a path to satisfy the | ||||
| request."; | ||||
| } | ||||
| leaf num-req-sent-ero-rcvd{ | leaf num-req-sent-cancel-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests that have been sent for | "The number of requests that were cancelled with | |||
| which a response with an ERO object was received. | a PCNtf message. | |||
| Such responses indicate that a path was | This might be different than num-pcntf-rcvd because | |||
| successfully computed by the peer."; | not all PCNtf messages are used to cancel requests, | |||
| } | and a single PCNtf message can cancel multiple | |||
| requests."; | ||||
| } | ||||
| leaf num-req-sent-nopath-rcvd{ | leaf num-req-sent-error-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests that have been sent for | "The number of requests that were rejected with a | |||
| which a response with a NO-PATH object was | PCErr message. | |||
| received. Such responses indicate that the peer | This might be different than num-pcerr-rcvd because | |||
| could not find a path to satisfy the | not all PCErr messages are used to reject requests, | |||
| request."; | and a single PCErr message can reject multiple | |||
| } | requests."; | |||
| } | ||||
| leaf num-req-sent-cancel-rcvd{ | leaf num-req-sent-timeout{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests that were cancelled with | "The number of requests that have been sent to a peer | |||
| a PCNtf message. | and have been abandoned because the peer has taken too | |||
| long to respond to them."; | ||||
| } | ||||
| This might be different than num-pcntf-rcvd because | leaf num-req-sent-cancel-sent{ | |||
| not all PCNtf messages are used to cancel requests, | type yang:counter32; | |||
| and a single PCNtf message can cancel multiple | description | |||
| requests."; | "The number of requests that were sent to the peer and | |||
| } | explicitly cancelled by the local PCEP entity sending | |||
| a PCNtf."; | ||||
| } | ||||
| leaf num-req-sent-error-rcvd{ | leaf num-req-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests that were rejected with a | "The number of requests received. A request | |||
| PCErr message. | corresponds 1:1 with an RP object in a PCReq | |||
| message. | ||||
| This might be greater than num-pcreq-rcvd because | ||||
| multiple requests can be batched into a single | ||||
| PCReq message."; | ||||
| } | ||||
| This might be different than num-pcerr-rcvd because | leaf num-req-rcvd-pend-rep{ | |||
| not all PCErr messages are used to reject requests, | type yang:counter32; | |||
| and a single PCErr message can reject multiple | description | |||
| requests."; | "The number of requests that have been received for | |||
| } | which a response is still pending."; | |||
| } | ||||
| leaf num-req-sent-timeout{ | leaf num-req-rcvd-ero-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests that have been sent to a peer | "The number of requests that have been received for | |||
| and have been abandoned because the peer has taken too | which a response with an ERO object was sent. Such | |||
| long to respond to them."; | responses indicate that a path was successfully | |||
| } | computed by the local PCEP entity."; | |||
| } | ||||
| leaf num-req-sent-cancel-sent{ | leaf num-req-rcvd-nopath-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests that were sent to the peer and | "The number of requests that have been received for | |||
| explicitly cancelled by the local PCEP entity sending | which a response with a NO-PATH object was sent. Such | |||
| a PCNtf."; | responses indicate that the local PCEP entity could | |||
| } | not find a path to satisfy the request."; | |||
| } | ||||
| leaf num-req-rcvd{ | leaf num-req-rcvd-cancel-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests received. A request | "The number of requests received that were cancelled | |||
| corresponds 1:1 with an RP object in a PCReq | by the local PCEP entity sending a PCNtf message. | |||
| message. | This might be different than num-pcntf-sent because | |||
| not all PCNtf messages are used to cancel requests, | ||||
| and a single PCNtf message can cancel multiple | ||||
| requests."; | ||||
| } | ||||
| This might be greater than num-pcreq-rcvd because | leaf num-req-rcvd-error-sent{ | |||
| multiple requests can be batched into a single | type yang:counter32; | |||
| PCReq message."; | description | |||
| } | "The number of requests received that were cancelled | |||
| leaf num-req-rcvd-pend-rep{ | by the local PCEP entity sending a PCErr message. | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that have been received for | ||||
| which a response is still pending."; | ||||
| } | ||||
| leaf num-req-rcvd-ero-sent{ | This might be different than num-pcerr-sent because | |||
| type yang:counter32; | not all PCErr messages are used to cancel requests, | |||
| description | and a single PCErr message can cancel multiple | |||
| "The number of requests that have been received for | requests."; | |||
| which a response with an ERO object was sent. Such | } | |||
| responses indicate that a path was successfully | ||||
| computed by the local PCEP entity."; | ||||
| } | ||||
| leaf num-req-rcvd-nopath-sent{ | leaf num-req-rcvd-cancel-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests that have been received for | "The number of requests that were received from the | |||
| which a response with a NO-PATH object was sent. Such | peer and explicitly cancelled by the peer sending | |||
| responses indicate that the local PCEP entity could | a PCNtf."; | |||
| not find a path to satisfy the request."; | } | |||
| } | ||||
| leaf num-req-rcvd-cancel-sent{ | leaf num-rep-rcvd-unknown{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests received that were cancelled | "The number of responses to unknown requests | |||
| by the local PCEP entity sending a PCNtf message. | received. A response to an unknown request is a | |||
| response whose RP object does not contain the | ||||
| request ID of any request that is currently | ||||
| outstanding on the session."; | ||||
| } | ||||
| This might be different than num-pcntf-sent because | leaf num-req-rcvd-unknown{ | |||
| not all PCNtf messages are used to cancel requests, | type yang:counter32; | |||
| and a single PCNtf message can cancel multiple | description | |||
| requests."; | "The number of unknown requests that have been | |||
| } | received. An unknown request is a request | |||
| whose RP object contains a request ID of | ||||
| zero."; | ||||
| } | ||||
| leaf num-req-rcvd-error-sent{ | container svec{ | |||
| type yang:counter32; | if-feature svec; | |||
| description | description | |||
| "The number of requests received that were cancelled | "If synchronized path computation is supported"; | |||
| by the local PCEP entity sending a PCErr message. | leaf num-svec-sent{ | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of SVEC objects sent in PCReq messages. | ||||
| An SVEC object represents a set of synchronized | ||||
| requests."; | ||||
| } | ||||
| This might be different than num-pcerr-sent because | leaf num-svec-req-sent{ | |||
| not all PCErr messages are used to cancel requests, | type yang:counter32; | |||
| and a single PCErr message can cancel multiple | description | |||
| requests."; | "The number of requests sent that appeared in one | |||
| } | or more SVEC objects."; | |||
| leaf num-req-rcvd-cancel-rcvd{ | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of requests that were received from the | ||||
| peer and explicitly cancelled by the peer sending | ||||
| a PCNtf."; | ||||
| } | ||||
| leaf num-rep-rcvd-unknown{ | leaf num-svec-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of responses to unknown requests | "The number of SVEC objects received in PCReq | |||
| received. A response to an unknown request is a | messages. An SVEC object represents a set of | |||
| response whose RP object does not contain the | synchronized requests."; | |||
| request ID of any request that is currently | } | |||
| outstanding on the session."; | ||||
| } | ||||
| leaf num-req-rcvd-unknown{ | leaf num-svec-req-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of unknown requests that have been | "The number of requests received that appeared | |||
| received. An unknown request is a request | in one or more SVEC objects."; | |||
| whose RP object contains a request ID of | } | |||
| zero."; | } | |||
| } | container stateful{ | |||
| if-feature stateful; | ||||
| description | ||||
| "Stateful PCE related statistics"; | ||||
| leaf num-pcrpt-sent{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCRpt messages sent."; | ||||
| } | ||||
| container svec{ | leaf num-pcrpt-rcvd{ | |||
| if-feature svec; | type yang:counter32; | |||
| description | description | |||
| "If synchronized path computation is supported"; | "The number of PCRpt messages received."; | |||
| leaf num-svec-sent{ | } | |||
| type yang:counter32; | ||||
| description | ||||
| "The number of SVEC objects sent in PCReq messages. | ||||
| An SVEC object represents a set of synchronized | ||||
| requests."; | ||||
| } | ||||
| leaf num-svec-req-sent{ | leaf num-pcupd-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests sent that appeared in one | "The number of PCUpd messages sent."; | |||
| or more SVEC objects."; | } | |||
| } | ||||
| leaf num-svec-rcvd{ | leaf num-pcupd-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of SVEC objects received in PCReq | "The number of PCUpd messages received."; | |||
| messages. An SVEC object represents a set of | } | |||
| synchronized requests."; | ||||
| } | ||||
| leaf num-svec-req-rcvd{ | leaf num-rpt-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of requests received that appeared | "The number of LSP Reports sent. A LSP report | |||
| in one or more SVEC objects."; | corresponds 1:1 with an LSP object in a PCRpt | |||
| } | message. This might be greater than | |||
| } | num-pcrpt-sent because multiple reports can | |||
| container stateful{ | be batched into a single PCRpt message."; | |||
| if-feature stateful; | } | |||
| description | ||||
| "Stateful PCE related statistics"; | ||||
| leaf num-pcrpt-sent{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCRpt messages sent."; | ||||
| } | ||||
| leaf num-pcrpt-rcvd{ | leaf num-rpt-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCRpt messages received."; | "The number of LSP Reports received. A LSP report | |||
| } | corresponds 1:1 with an LSP object in a PCRpt | |||
| message. | ||||
| This might be greater than num-pcrpt-rcvd because | ||||
| multiple reports can be batched into a single | ||||
| PCRpt message."; | ||||
| } | ||||
| leaf num-pcupd-sent{ | leaf num-rpt-rcvd-error-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCUpd messages sent."; | "The number of reports of LSPs received that were | |||
| } | responded by the local PCEP entity by sending a | |||
| PCErr message."; | ||||
| } | ||||
| leaf num-pcupd-rcvd{ | leaf num-upd-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of PCUpd messages received."; | "The number of LSP updates sent. A LSP update | |||
| } | corresponds 1:1 with an LSP object in a PCUpd | |||
| message. This might be greater than | ||||
| num-pcupd-sent because multiple updates can | ||||
| be batched into a single PCUpd message."; | ||||
| } | ||||
| leaf num-rpt-sent{ | leaf num-upd-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of LSP Reports sent. A LSP report | "The number of LSP Updates received. A LSP update | |||
| corresponds 1:1 with an LSP object in a PCRpt | corresponds 1:1 with an LSP object in a PCUpd | |||
| message. This might be greater than | message. | |||
| num-pcrpt-sent because multiple reports can | This might be greater than num-pcupd-rcvd because | |||
| be batched into a single PCRpt message."; | multiple updates can be batched into a single | |||
| } | PCUpd message."; | |||
| } | ||||
| leaf num-upd-rcvd-unknown{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of updates to unknown LSPs | ||||
| received. An update to an unknown LSP is a | ||||
| update whose LSP object does not contain the | ||||
| PLSP-ID of any LSP that is currently | ||||
| present."; | ||||
| } | ||||
| leaf num-rpt-rcvd{ | leaf num-upd-rcvd-undelegated{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of LSP Reports received. A LSP report | "The number of updates to not delegated LSPs | |||
| corresponds 1:1 with an LSP object in a PCRpt | received. An update to an undelegated LSP is a | |||
| message. | update whose LSP object does not contain the | |||
| PLSP-ID of any LSP that is currently | ||||
| delegated to current PCEP session."; | ||||
| } | ||||
| This might be greater than num-pcrpt-rcvd because | leaf num-upd-rcvd-error-sent{ | |||
| multiple reports can be batched into a single | type yang:counter32; | |||
| PCRpt message."; | description | |||
| } | "The number of updates to LSPs received that were | |||
| responded by the local PCEP entity by sending a | ||||
| PCErr message."; | ||||
| } | ||||
| container initiation { | ||||
| if-feature pce-initiated; | ||||
| description | ||||
| "PCE-Initiated related statistics"; | ||||
| leaf num-pcinitiate-sent{ | ||||
| type yang:counter32; | ||||
| description | ||||
| "The number of PCInitiate messages sent."; | ||||
| } | ||||
| leaf num-rpt-rcvd-error-sent{ | leaf num-pcinitiate-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of reports of LSPs received that were | "The number of PCInitiate messages received."; | |||
| responded by the local PCEP entity by sending a | } | |||
| PCErr message."; | ||||
| } | ||||
| leaf num-upd-sent{ | leaf num-initiate-sent{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of LSP updates sent. A LSP update | "The number of LSP Initiation sent via PCE. | |||
| corresponds 1:1 with an LSP object in a PCUpd | A LSP initiation corresponds 1:1 with an LSP | |||
| message. This might be greater than | object in a PCInitiate message. This might be | |||
| num-pcupd-sent because multiple updates can | greater than num-pcinitiate-sent because | |||
| be batched into a single PCUpd message."; | multiple initiations can be batched into a | |||
| } | single PCInitiate message."; | |||
| } | ||||
| leaf num-upd-rcvd{ | leaf num-initiate-rcvd{ | |||
| type yang:counter32; | type yang:counter32; | |||
| description | description | |||
| "The number of LSP Updates received. A LSP update | "The number of LSP Initiation received from | |||
| corresponds 1:1 with an LSP object in a PCUpd | PCE. A LSP initiation corresponds 1:1 with | |||
| message. | an LSP object in a PCInitiate message. This | |||
| might be greater than num-pcinitiate-rcvd | ||||
| because multiple initiations can be batched | ||||
| into a single PCInitiate message."; | ||||
| } | ||||
| This might be greater than num-pcupd-rcvd because | leaf num-initiate-rcvd-error-sent{ | |||
| multiple updates can be batched into a single | type yang:counter32; | |||
| PCUpd message."; | description | |||
| } | "The number of initiations of LSPs received | |||
| that were responded by the local PCEP entity | ||||
| by sending a PCErr message."; | ||||
| } | ||||
| } | ||||
| } | ||||
| }//pcep-stats | ||||
| leaf num-upd-rcvd-unknown{ | grouping lsp-state{ | |||
| type yang:counter32; | description | |||
| description | "This grouping defines the attributes for LSP in LSP-DB. | |||
| "The number of updates to unknown LSPs | These are the attributes specifically from the PCEP | |||
| received. An update to an unknown LSP is a | perspective"; | |||
| update whose LSP object does not contain the | leaf plsp-id{ | |||
| PLSP-ID of any LSP that is currently | type uint32{ | |||
| present."; | range "1..1048575"; | |||
| } | } | |||
| description | ||||
| "A PCEP-specific identifier for the LSP. A PCC | ||||
| creates a unique PLSP-ID for each LSP that is | ||||
| constant for the lifetime of a PCEP session. | ||||
| PLSP-ID is 20 bits with 0 and 0xFFFFF are | ||||
| reserved"; | ||||
| } | ||||
| leaf pcc-id{ | ||||
| type inet:ip-address; | ||||
| description | ||||
| "The local internet address of the PCC, that | ||||
| generated the PLSP-ID."; | ||||
| } | ||||
| leaf num-upd-rcvd-undelegated{ | container lsp-ref{ | |||
| type yang:counter32; | description | |||
| description | "reference to ietf-te lsp state"; | |||
| "The number of updates to not delegated LSPs | ||||
| received. An update to an undelegated LSP is a | ||||
| update whose LSP object does not contain the | ||||
| PLSP-ID of any LSP that is currently | ||||
| delegated to current PCEP session."; | ||||
| } | ||||
| leaf num-upd-rcvd-error-sent{ | leaf source { | |||
| type yang:counter32; | type leafref { | |||
| description | path "/te:te/te:lsps-state/te:lsp/te:source"; | |||
| "The number of updates to LSPs received that were | } | |||
| responded by the local PCEP entity by sending a | description | |||
| PCErr message."; | "Tunnel sender address extracted from | |||
| } | SENDER_TEMPLATE object"; | |||
| } | reference "RFC3209"; | |||
| }//pcep-stats | } | |||
| leaf destination { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:" | ||||
| + "destination"; | ||||
| } | ||||
| description | ||||
| "Tunnel endpoint address extracted from | ||||
| SESSION object"; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| leaf tunnel-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:tunnel-id"; | ||||
| } | ||||
| description | ||||
| "Tunnel identifier used in the SESSION | ||||
| that remains constant over the life | ||||
| of the tunnel."; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| leaf lsp-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:lsp-id"; | ||||
| } | ||||
| description | ||||
| "Identifier used in the SENDER_TEMPLATE | ||||
| and the FILTER_SPEC that can be changed | ||||
| to allow a sender to share resources with | ||||
| itself."; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| leaf extended-tunnel-id { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:" | ||||
| + "extended-tunnel-id"; | ||||
| } | ||||
| description | ||||
| "Extended Tunnel ID of the LSP."; | ||||
| reference "RFC3209"; | ||||
| } | ||||
| leaf type { | ||||
| type leafref { | ||||
| path "/te:te/te:lsps-state/te:lsp/te:type"; | ||||
| } | ||||
| description "LSP type P2P or P2MP"; | ||||
| } | ||||
| } | ||||
| grouping lsp-state{ | leaf admin-state{ | |||
| description | type boolean; | |||
| "This grouping defines the attributes for LSP in LSP-DB. | description | |||
| These are the attributes specifically from the PCEP | "The desired operational state"; | |||
| perspective"; | } | |||
| leaf plsp-id{ | leaf operational-state{ | |||
| type uint32{ | type operational-state; | |||
| range "1..1048575"; | description | |||
| } | "The operational status of the LSP"; | |||
| description | } | |||
| "A PCEP-specific identifier for the LSP. A PCC | container delegated{ | |||
| creates a unique PLSP-ID for each LSP that is | description | |||
| constant for the lifetime of a PCEP session. | "The delegation related parameters"; | |||
| PLSP-ID is 20 bits with 0 and 0xFFFFF are | leaf enabled{ | |||
| reserved"; | type boolean; | |||
| } | description | |||
| leaf pcc-id{ | "LSP is delegated or not"; | |||
| type inet:ip-address; | } | |||
| description | leaf pce{ | |||
| "The local internet address of the PCC, that | type leafref { | |||
| generated the PLSP-ID."; | path "/pcep-state/entity/peers/peer/addr"; | |||
| } | ||||
| must "((../enabled == true)" + | ||||
| " and " + | ||||
| "((../../role == 'pcc')" + | ||||
| " or " + | ||||
| "(../../role == 'pcc-and-pce')))" | ||||
| { | ||||
| error-message | ||||
| "The PCEP entity must be PCC | ||||
| and the LSP be delegated"; | ||||
| description | ||||
| "When PCEP entity is PCC for | ||||
| delegated LSP"; | ||||
| } | ||||
| description | ||||
| "The reference to the PCE peer to | ||||
| which LSP is delegated"; | ||||
| } | ||||
| leaf srp-id{ | ||||
| type uint32; | ||||
| description | ||||
| "The last SRP-ID-number associated with this | ||||
| LSP."; | ||||
| } | ||||
| } | ||||
| container initiation { | ||||
| if-feature pce-initiated; | ||||
| description | ||||
| "The PCE initiation related parameters"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "LSP is PCE-initiated or not"; | ||||
| } | ||||
| leaf pce{ | ||||
| type leafref { | ||||
| path "/pcep-state/entity/peers/peer/addr"; | ||||
| } | ||||
| must "(../enabled == true)" | ||||
| { | ||||
| error-message | ||||
| "The LSP must be PCE-Initiated"; | ||||
| description | ||||
| "When the LSP must be PCE-Initiated"; | ||||
| } | ||||
| description | ||||
| "The reference to the PCE | ||||
| that initiated this LSP"; | ||||
| } | ||||
| } | ||||
| leaf symbolic-path-name{ | ||||
| type string; | ||||
| description | ||||
| "The symbolic path name associated with the LSP."; | ||||
| } | ||||
| leaf last-error{ | ||||
| type lsp-error; | ||||
| description | ||||
| "The last error for the LSP."; | ||||
| } | } | |||
| leaf pst{ | ||||
| type pst; | ||||
| default "rsvp-te"; | ||||
| description | ||||
| "The Path Setup Type"; | ||||
| leaf admin-state{ | } | |||
| type boolean; | ||||
| description | ||||
| "The desired operational state"; | ||||
| } | ||||
| leaf operational-state{ | ||||
| type operational-state; | ||||
| description | ||||
| "The operational status of the LSP"; | ||||
| } | ||||
| container delegated{ | ||||
| description | ||||
| "The delegation related parameters"; | ||||
| leaf enabled{ | ||||
| type boolean; | ||||
| description | ||||
| "LSP is delegated or not"; | ||||
| } | ||||
| leaf pce{ | ||||
| type leafref { | ||||
| path "/pcep-state/entity/peers/peer/addr"; | ||||
| } | ||||
| must "((../enabled == true)" + | ||||
| " and " + | ||||
| "((../../role == 'pcc')" + | ||||
| " or " + | ||||
| "(../../role == 'pcc-and-pce')))" | ||||
| { | ||||
| error-message | ||||
| "The PCEP entity must be PCC | ||||
| and the LSP be delegated"; | ||||
| description | ||||
| "When PCEP entity is PCC for | ||||
| delegated LSP"; | ||||
| } | ||||
| description | ||||
| "The reference to the PCE peer to | ||||
| which LSP is delegated"; | ||||
| } | ||||
| leaf srp-id{ | ||||
| type uint32; | ||||
| description | ||||
| "The last SRP-ID-number associated with this | ||||
| LSP."; | ||||
| } | ||||
| } | ||||
| leaf symbolic-path-name{ | ||||
| type string; | ||||
| description | ||||
| "The symbolic path name associated with the LSP."; | ||||
| } | ||||
| leaf last-error{ | ||||
| type lsp-error; | ||||
| description | ||||
| "The last error for the LSP."; | ||||
| } | ||||
| }//lsp-state | ||||
| grouping notification-instance-hdr { | }//lsp-state | |||
| description | ||||
| "This group describes common instance specific data | ||||
| for notifications."; | ||||
| leaf peer-addr { | grouping notification-instance-hdr { | |||
| type leafref { | description | |||
| path "/pcep-state/entity/peers/peer/addr"; | "This group describes common instance specific data | |||
| } | for notifications."; | |||
| description | ||||
| "Reference to peer address"; | ||||
| } | ||||
| }// notification-instance-hdr | leaf peer-addr { | |||
| type leafref { | ||||
| path "/pcep-state/entity/peers/peer/addr"; | ||||
| } | ||||
| description | ||||
| "Reference to peer address"; | ||||
| } | ||||
| grouping notification-session-hdr { | }// notification-instance-hdr | |||
| description | ||||
| "This group describes common session instance specific | ||||
| data for notifications."; | ||||
| leaf session-initiator { | grouping notification-session-hdr { | |||
| type leafref { | description | |||
| path "/pcep-state/entity/peers/peer/sessions/" + | "This group describes common session instance specific | |||
| "session/initiator"; | data for notifications."; | |||
| } | ||||
| description | ||||
| "Reference to pcep session initiator leaf"; | ||||
| } | ||||
| }// notification-session-hdr | ||||
| grouping stateful-pce-parameter { | leaf session-initiator { | |||
| description | type leafref { | |||
| "This group describes stateful PCE specific | path "/pcep-state/entity/peers/peer/sessions/" + | |||
| parameters."; | "session/initiator"; | |||
| leaf state-timeout{ | } | |||
| type uint32; | description | |||
| units "seconds"; | "Reference to pcep session initiator leaf"; | |||
| description | } | |||
| "When a PCEP session is terminated, a PCC | }// notification-session-hdr | |||
| 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{ | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| must "((../role == 'pcc')" + | ||||
| " or " + | ||||
| "(../role == 'pcc-and-pce'))" | ||||
| { | ||||
| error-message "The PCEP entity must be PCC"; | ||||
| description | ||||
| "When PCEP entity is PCC"; | ||||
| } | ||||
| 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{ | ||||
| type boolean; | ||||
| must "((../role == 'pcc')" + | ||||
| " or " + | ||||
| "(../role == 'pcc-and-pce'))" | ||||
| { | ||||
| error-message "The PCEP entity must be PCC"; | ||||
| description | ||||
| "When PCEP entity is PCC"; | ||||
| } | ||||
| description | ||||
| "If set, a PCC reports LSPs that are not | ||||
| controlled by any PCE (for example, LSPs | ||||
| that are statically configured at the | ||||
| PCC). "; | ||||
| } | ||||
| } | grouping stateful-pce-parameter { | |||
| description | ||||
| "This group describes stateful PCE specific | ||||
| 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{ | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| must "((../role == 'pcc')" + | ||||
| " or " + | ||||
| "(../role == 'pcc-and-pce'))" | ||||
| { | ||||
| error-message "The PCEP entity must be PCC"; | ||||
| description | ||||
| "When PCEP entity is PCC"; | ||||
| } | ||||
| 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{ | ||||
| type boolean; | ||||
| must "((../role == 'pcc')" + | ||||
| " or " + | ||||
| "(../role == 'pcc-and-pce'))" | ||||
| { | ||||
| error-message "The PCEP entity must be PCC"; | ||||
| description | ||||
| "When PCEP entity is PCC"; | ||||
| } | ||||
| description | ||||
| "If set, a PCC reports LSPs that are not | ||||
| controlled by any PCE (for example, LSPs | ||||
| that are statically configured at the | ||||
| PCC). "; | ||||
| } | ||||
| /* | } | |||
| * Configuration data nodes | ||||
| */ | ||||
| container pcep{ | ||||
| description | grouping authentication { | |||
| "Parameters for list of configured PCEP entities | description "Authentication Information"; | |||
| on the device."; | choice auth-type-selection { | |||
| 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 key { | ||||
| type string; | ||||
| description | ||||
| "Key string in ASCII format."; | ||||
| } | ||||
| container crypto-algorithm { | ||||
| uses key-chain:crypto-algorithm-types; | ||||
| description | ||||
| "Cryptographic algorithm associated | ||||
| with key."; | ||||
| } | ||||
| } | ||||
| case auth-tls { | ||||
| if-feature tls; | ||||
| container tls { | ||||
| description | ||||
| "TLS related information - TBD"; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| container entity { | grouping association { | |||
| description | ||||
| "Generic Association parameters"; | ||||
| leaf type { | ||||
| type "assoc-type"; | ||||
| description | ||||
| "The PCEP association type"; | ||||
| } | ||||
| leaf id { | ||||
| type uint16; | ||||
| description | ||||
| "PCEP Association ID"; | ||||
| } | ||||
| leaf source { | ||||
| type inet:ip-address; | ||||
| description | ||||
| "PCEP Association Source."; | ||||
| } | ||||
| leaf global-source { | ||||
| type uint32; | ||||
| description | ||||
| "PCEP Association Global | ||||
| Source."; | ||||
| } | ||||
| leaf extended-id{ | ||||
| type string; | ||||
| description | ||||
| "Additional information to | ||||
| support unique identification."; | ||||
| } | ||||
| } | ||||
| grouping association-ref { | ||||
| description | ||||
| "Generic Association parameters"; | ||||
| leaf id { | ||||
| type leafref { | ||||
| path "/pcep-state/entity/lsp-db/" | ||||
| + "association-list/id"; | ||||
| } | ||||
| description | ||||
| "PCEP Association ID"; | ||||
| } | ||||
| leaf source { | ||||
| type leafref { | ||||
| path "/pcep-state/entity/lsp-db/" | ||||
| + "association-list/source"; | ||||
| } | ||||
| description | ||||
| "PCEP Association Source."; | ||||
| } | ||||
| leaf global-source { | ||||
| type leafref { | ||||
| path "/pcep-state/entity/lsp-db/" | ||||
| + "association-list/global-source"; | ||||
| } | ||||
| description | ||||
| "PCEP Association Global | ||||
| Source."; | ||||
| } | ||||
| leaf extended-id{ | ||||
| type leafref { | ||||
| path "/pcep-state/entity/lsp-db/" | ||||
| + "association-list/extended-id"; | ||||
| } | ||||
| description | ||||
| "Additional information to | ||||
| support unique identification."; | ||||
| } | ||||
| } | ||||
| /* | ||||
| * Configuration data nodes | ||||
| */ | ||||
| container pcep{ | ||||
| description | presence | |||
| "The configured PCEP entity on the device."; | "The PCEP is enabled"; | |||
| leaf addr { | description | |||
| type inet:ip-address; | "Parameters for list of configured PCEP entities | |||
| mandatory true; | on the device."; | |||
| description | ||||
| "The local Internet address of this PCEP | ||||
| entity. | ||||
| If operating as a PCE server, the PCEP | container entity { | |||
| entity listens on this address. | ||||
| If operating as a PCC, the PCEP entity | description | |||
| binds outgoing TCP connections to this | "The configured PCEP entity on the device."; | |||
| address. | ||||
| It is possible for the PCEP entity to | leaf addr { | |||
| operate both as a PCC and a PCE Server, in | type inet:ip-address; | |||
| which case it uses this address both to | mandatory true; | |||
| listen for incoming TCP connections and to | description | |||
| bind outgoing TCP connections."; | "The local Internet address of this PCEP | |||
| } | entity. | |||
| If operating as a PCE server, the PCEP | ||||
| entity listens on this address. | ||||
| If operating as a PCC, the PCEP entity | ||||
| binds outgoing TCP connections to this | ||||
| address. | ||||
| It is possible for the PCEP entity to | ||||
| operate both as a PCC and a PCE Server, in | ||||
| which case it uses this address both to | ||||
| listen for incoming TCP connections and to | ||||
| bind outgoing TCP connections."; | ||||
| } | ||||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default true; | default true; | |||
| description | description | |||
| "The administrative status of this PCEP | "The administrative status of this PCEP | |||
| Entity."; | 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 role { | leaf description { | |||
| type pcep-role; | type string; | |||
| mandatory true; | description | |||
| description | "Description of the PCEP entity configured | |||
| "The role that this entity can play. | by the user"; | |||
| 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 { | uses info { | |||
| type string; | description | |||
| description | "Local PCEP entity information"; | |||
| "Description of the PCEP entity configured | } | |||
| by the user"; | ||||
| } | ||||
| uses info { | container pce-info { | |||
| description | must "((../role == 'pce')" + | |||
| "Local PCEP entity information"; | " or " + | |||
| } | "(../role == 'pcc-and-pce'))" | |||
| { | ||||
| error-message "The PCEP entity must be PCE"; | ||||
| description | ||||
| "When PCEP entity is PCE"; | ||||
| } | ||||
| uses pce-info { | ||||
| description | ||||
| "Local PCE information"; | ||||
| } | ||||
| uses authentication { | ||||
| description | ||||
| "Local PCE authentication information"; | ||||
| } | ||||
| container pce-info { | description | |||
| must "((../role == 'pce')" + | "The Local PCE Entity PCE information"; | |||
| " or " + | ||||
| "(../role == 'pcc-and-pce'))" | ||||
| { | ||||
| error-message "The PCEP entity must be PCE"; | ||||
| description | ||||
| "When PCEP entity is PCE"; | ||||
| } | ||||
| uses pce-info { | ||||
| description | ||||
| "Local PCE information"; | ||||
| } | ||||
| description | ||||
| "The Local PCE Entity PCE information"; | ||||
| } | ||||
| uses pcep-entity-info { | } | |||
| description | ||||
| "The configuration related to the PCEP | ||||
| entity."; | ||||
| } | ||||
| leaf pcep-notification-max-rate { | uses pcep-entity-info { | |||
| type uint32; | description | |||
| mandatory true; | "The configuration related to the PCEP | |||
| description | entity."; | |||
| "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{ | leaf pcep-notification-max-rate { | |||
| if-feature stateful; | type uint32; | |||
| must "(../info/capability/stateful/active == true)" | mandatory true; | |||
| { | description | |||
| error-message | "This variable indicates the maximum number of | |||
| "The Active Stateful PCE must be enabled"; | notifications issued per second. If events occur | |||
| description | more rapidly, the implementation may simply fail | |||
| "When PCEP entity is active stateful | to emit these notifications during that period, | |||
| enabled"; | or may queue them until an appropriate time. A | |||
| } | value of 0 means no notifications are emitted | |||
| uses stateful-pce-parameter; | and all should be discarded (that is, not | |||
| queued)."; | ||||
| } | ||||
| description | container stateful-parameter{ | |||
| "The configured stateful parameters"; | if-feature stateful; | |||
| } | must "(../info/capability/stateful/active == true)" | |||
| { | ||||
| error-message | ||||
| "The Active Stateful PCE must be enabled"; | ||||
| description | ||||
| "When PCEP entity is active stateful | ||||
| enabled"; | ||||
| } | ||||
| uses stateful-pce-parameter; | ||||
| container peers{ | description | |||
| must "((../role == 'pcc')" + | "The configured stateful parameters"; | |||
| " or " + | } | |||
| "(../role == 'pcc-and-pce'))" | ||||
| { | ||||
| error-message | ||||
| "The PCEP entity must be PCC"; | ||||
| description | ||||
| "When PCEP entity is PCC, as remote | ||||
| PCE peers are configured."; | ||||
| } | ||||
| description | ||||
| "The list of configured peers for the | ||||
| entity (remote PCE)"; | ||||
| list peer{ | ||||
| key "addr"; | ||||
| description | container peers{ | |||
| "The peer configured for the entity. | must "((../role == 'pcc')" + | |||
| (remote PCE)"; | " or " + | |||
| "(../role == 'pcc-and-pce'))" | ||||
| { | ||||
| error-message | ||||
| "The PCEP entity must be PCC"; | ||||
| leaf addr { | description | |||
| type inet:ip-address; | "When PCEP entity is PCC, as remote | |||
| description | PCE peers are configured."; | |||
| "The local Internet address of this | } | |||
| PCEP peer."; | description | |||
| } | "The list of configured peers for the | |||
| entity (remote PCE)"; | ||||
| list peer{ | ||||
| key "addr"; | ||||
| leaf description { | description | |||
| type string; | "The peer configured for the entity. | |||
| description | (remote PCE)"; | |||
| "Description of the PCEP peer | ||||
| configured by the user"; | ||||
| } | ||||
| uses info { | ||||
| description | ||||
| "PCE Peer information"; | ||||
| } | ||||
| uses pce-info { | ||||
| description | ||||
| "PCE Peer information"; | ||||
| } | ||||
| leaf delegation-pref{ | leaf addr { | |||
| if-feature stateful; | type inet:ip-address; | |||
| type uint8{ | description | |||
| range "0..7"; | "The local Internet address of this | |||
| } | PCEP peer."; | |||
| must "(../../info/capability/stateful/active" | } | |||
| + "== true)" | ||||
| { | ||||
| error-message | ||||
| "The Active Stateful PCE must be | ||||
| enabled"; | ||||
| description | ||||
| "When PCEP entity is active stateful | ||||
| enabled"; | ||||
| } | ||||
| description | ||||
| "The PCE peer delegation preference."; | ||||
| } | ||||
| }//peer | ||||
| }//peers | ||||
| }//entity | ||||
| }//pcep | ||||
| /* | leaf description { | |||
| * Operational data nodes | type string; | |||
| */ | description | |||
| "Description of the PCEP peer | ||||
| configured by the user"; | ||||
| } | ||||
| uses info { | ||||
| description | ||||
| "PCE Peer information"; | ||||
| } | ||||
| uses pce-info { | ||||
| description | ||||
| "PCE Peer information"; | ||||
| } | ||||
| container pcep-state{ | leaf delegation-pref{ | |||
| config false; | if-feature stateful; | |||
| description | type uint8{ | |||
| "The list of operational PCEP entities on the | range "0..7"; | |||
| device."; | } | |||
| must "(../../info/capability/stateful/active" | ||||
| + "== true)" | ||||
| { | ||||
| error-message | ||||
| "The Active Stateful PCE must be | ||||
| enabled"; | ||||
| description | ||||
| "When PCEP entity is active stateful | ||||
| enabled"; | ||||
| } | ||||
| description | ||||
| "The PCE peer delegation preference."; | ||||
| } | ||||
| uses authentication { | ||||
| description | ||||
| "PCE Peer authentication"; | ||||
| } | ||||
| }//peer | ||||
| }//peers | ||||
| }//entity | ||||
| }//pcep | ||||
| container entity{ | /* | |||
| description | * Operational data nodes | |||
| "The operational PCEP entity on the device."; | */ | |||
| leaf addr { | container pcep-state{ | |||
| type inet:ip-address; | config false; | |||
| description | description | |||
| "The local Internet address of this PCEP | "The list of operational PCEP entities on the | |||
| entity. | device."; | |||
| If operating as a PCE server, the PCEP | container entity{ | |||
| entity listens on this address. | description | |||
| "The operational PCEP entity on the device."; | ||||
| If operating as a PCC, the PCEP entity | leaf addr { | |||
| binds outgoing TCP connections to this | type inet:ip-address; | |||
| address. | description | |||
| "The local Internet address of this PCEP | ||||
| entity. | ||||
| If operating as a PCE server, the PCEP | ||||
| entity listens on this address. | ||||
| If operating as a PCC, the PCEP entity | ||||
| binds outgoing TCP connections to this | ||||
| address. | ||||
| It is possible for the PCEP entity to | ||||
| operate both as a PCC and a PCE Server, in | ||||
| which case it uses this address both to | ||||
| listen for incoming TCP connections and to | ||||
| bind outgoing TCP connections."; | ||||
| } | ||||
| It is possible for the PCEP entity to | leaf index{ | |||
| operate both as a PCC and a PCE Server, in | type uint32; | |||
| which case it uses this address both to | description | |||
| listen for incoming TCP connections and to | "The index of the operational PECP | |||
| bind outgoing TCP connections."; | entity"; | |||
| } | } | |||
| leaf index{ | leaf admin-status { | |||
| type uint32; | type pcep-admin-status; | |||
| description | description | |||
| "The index of the operational PECP | "The administrative status of this PCEP Entity. | |||
| entity"; | This is the desired operational status as | |||
| } | currently set by an operator or by default in | |||
| the implementation. The value of enabled | ||||
| represents the current status of an attempt | ||||
| to reach this desired status."; | ||||
| } | ||||
| leaf admin-status { | leaf oper-status { | |||
| type pcep-admin-status; | type pcep-admin-status; | |||
| description | description | |||
| "The administrative status of this PCEP Entity. | "The operational status of the PCEP entity. | |||
| This is the desired operational status as | Takes one of the following values. | |||
| currently set by an operator or by default in | - oper-status-up(1): the PCEP entity is | |||
| the implementation. The value of enabled | active. | |||
| represents the current status of an attempt | - oper-status-down(2): the PCEP entity is | |||
| to reach this desired status."; | inactive. | |||
| } | - oper-status-going-up(3): the PCEP entity is | |||
| leaf oper-status { | activating. | |||
| type pcep-admin-status; | - oper-status-going-down(4): the PCEP entity is | |||
| description | deactivating. | |||
| "The operational status of the PCEP entity. | - oper-status-failed(5): the PCEP entity has | |||
| Takes one of the following values. | failed and will recover when possible. | |||
| - oper-status-up(1): the PCEP entity is | - oper-status-failed-perm(6): the PCEP entity | |||
| active. | has failed and will not recover without | |||
| - oper-status-down(2): the PCEP entity is | operator intervention."; | |||
| 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."; | ||||
| } | ||||
| leaf role { | leaf role { | |||
| type pcep-role; | type pcep-role; | |||
| description | description | |||
| "The role that this entity can play. | "The role that this entity can play. | |||
| Takes one of the following values. | Takes one of the following values. | |||
| - unknown(0): this PCEP entity role is | - unknown(0): this PCEP entity role is | |||
| not known. | not known. | |||
| - pcc(1): this PCEP entity is a PCC. | - pcc(1): this PCEP entity is a PCC. | |||
| - pce(2): this PCEP entity is a PCE. | - pce(2): this PCEP entity is a PCE. | |||
| - pcc-and-pce(3): this PCEP entity is | - pcc-and-pce(3): this PCEP entity is | |||
| both a PCC and a PCE."; | both a PCC and a PCE."; | |||
| } | ||||
| uses info { | } | |||
| description | ||||
| "Local PCEP entity information"; | ||||
| } | ||||
| container pce-info { | uses info { | |||
| when "((../role == 'pce')" + | description | |||
| " or " + | "Local PCEP entity information"; | |||
| "(../role == 'pcc-and-pce'))" | } | |||
| { | ||||
| description | ||||
| "When PCEP entity is PCE"; | ||||
| } | ||||
| uses pce-info { | ||||
| description | ||||
| "Local PCE information"; | ||||
| } | ||||
| description | ||||
| "The Local PCE Entity PCE information"; | ||||
| } | ||||
| uses pcep-entity-info{ | container pce-info { | |||
| description | when "((../role == 'pce')" + | |||
| "The operational information related to the | " or " + | |||
| PCEP entity."; | "(../role == 'pcc-and-pce'))" | |||
| } | { | |||
| description | ||||
| "When PCEP entity is PCE"; | ||||
| } | ||||
| uses pce-info { | ||||
| description | ||||
| "Local PCE information"; | ||||
| } | ||||
| uses authentication { | ||||
| description | ||||
| "Local PCE authentication information"; | ||||
| } | ||||
| description | ||||
| "The Local PCE Entity PCE information"; | ||||
| } | ||||
| container stateful-parameter{ | uses pcep-entity-info{ | |||
| if-feature stateful; | description | |||
| must "(../info/capability/stateful/active == true)" | "The operational information related to the | |||
| { | PCEP entity."; | |||
| error-message | } | |||
| "The Active Stateful PCE must be enabled"; | ||||
| description | ||||
| "When PCEP entity is active stateful | ||||
| enabled"; | ||||
| } | ||||
| uses stateful-pce-parameter; | ||||
| description | container stateful-parameter{ | |||
| "The operational stateful parameters"; | if-feature stateful; | |||
| } | must "(../info/capability/stateful/active == true)" | |||
| { | ||||
| error-message | ||||
| "The Active Stateful PCE must be enabled"; | ||||
| description | ||||
| "When PCEP entity is active stateful | ||||
| enabled"; | ||||
| } | ||||
| uses stateful-pce-parameter; | ||||
| container lsp-db{ | description | |||
| if-feature stateful; | "The operational stateful parameters"; | |||
| description | } | |||
| "The LSP-DB"; | container lsp-db{ | |||
| list lsp{ | if-feature stateful; | |||
| key "plsp-id pcc-id"; | description | |||
| description | "The LSP-DB"; | |||
| "List of all LSPs in LSP-DB"; | list association-list { | |||
| uses lsp-state{ | key "id source global-source extended-id"; | |||
| description | description | |||
| "The PCEP specific attributes for | "List of all PCEP associations"; | |||
| LSP-DB."; | uses association { | |||
| } | description | |||
| // To Do - add groupings and useful information | "The Association attributes"; | |||
| // from TE yang model, once ready | } | |||
| } | list lsp { | |||
| } | key "plsp-id pcc-id"; | |||
| container peers{ | description | |||
| description | "List of all LSP in this association"; | |||
| "The list of peers for the entity"; | leaf plsp-id { | |||
| type leafref { | ||||
| path "/pcep-state/entity/lsp-db/" | ||||
| + "lsp/plsp-id"; | ||||
| } | ||||
| description | ||||
| "Reference to PLSP-ID in LSP-DB"; | ||||
| } | ||||
| leaf pcc-id { | ||||
| type leafref { | ||||
| path "/pcep-state/entity/lsp-db/" | ||||
| + "lsp/pcc-id"; | ||||
| } | ||||
| description | ||||
| "Reference to PCC-ID in LSP-DB"; | ||||
| } | ||||
| } | ||||
| } | ||||
| list lsp{ | ||||
| key "plsp-id pcc-id"; | ||||
| description | ||||
| "List of all LSPs in LSP-DB"; | ||||
| uses lsp-state{ | ||||
| description | ||||
| "The PCEP specific attributes for | ||||
| LSP-DB."; | ||||
| } | ||||
| list association-list { | ||||
| key "id source global-source extended-id"; | ||||
| description | ||||
| "List of all PCEP associations"; | ||||
| uses association-ref { | ||||
| description | ||||
| "Reference to the Association | ||||
| attributes"; | ||||
| } | ||||
| } | ||||
| list peer{ | } | |||
| key "addr"; | } | |||
| container peers{ | ||||
| description | ||||
| "The list of peers for the entity"; | ||||
| description | list peer{ | |||
| "The peer for the entity."; | key "addr"; | |||
| leaf addr { | description | |||
| type inet:ip-address; | "The peer for the entity."; | |||
| description | ||||
| "The local Internet address of this PCEP | ||||
| peer."; | ||||
| } | ||||
| leaf role { | leaf addr { | |||
| type pcep-role; | type inet:ip-address; | |||
| description | description | |||
| "The role of the PCEP Peer. | "The local Internet address of this PCEP | |||
| Takes one of the following values. | peer."; | |||
| - unknown(0): this PCEP peer role | } | |||
| is not known. | ||||
| - pcc(1): this PCEP peer is a PCC. | ||||
| - pce(2): this PCEP peer is a PCE. | ||||
| - pcc-and-pce(3): this PCEP peer | ||||
| is both a PCC and a PCE."; | ||||
| } | ||||
| uses info { | leaf role { | |||
| description | type pcep-role; | |||
| "PCEP peer information"; | description | |||
| } | "The role of the PCEP Peer. | |||
| Takes one of the following values. | ||||
| - unknown(0): this PCEP peer role | ||||
| is not known. | ||||
| - pcc(1): this PCEP peer is a PCC. | ||||
| - pce(2): this PCEP peer is a PCE. | ||||
| - pcc-and-pce(3): this PCEP peer | ||||
| is both a PCC and a PCE."; | ||||
| } | ||||
| container pce-info { | uses info { | |||
| when "((../role == 'pce')" + | description | |||
| " or " + | "PCEP peer information"; | |||
| "(../role == 'pcc-and-pce'))" | } | |||
| { | ||||
| description | ||||
| "When PCEP entity is PCE"; | ||||
| } | ||||
| uses pce-info { | ||||
| description | ||||
| "PCE Peer information"; | ||||
| } | container pce-info { | |||
| description | when "((../role == 'pce')" + | |||
| "The PCE Peer information"; | " or " + | |||
| } | "(../role == 'pcc-and-pce'))" | |||
| { | ||||
| description | ||||
| "When PCEP entity is PCE"; | ||||
| } | ||||
| uses pce-info { | ||||
| description | ||||
| "PCE Peer information"; | ||||
| } | ||||
| description | ||||
| "The PCE Peer information"; | ||||
| } | ||||
| leaf delegation-pref{ | leaf delegation-pref{ | |||
| if-feature stateful; | if-feature stateful; | |||
| type uint8{ | type uint8{ | |||
| range "0..7"; | range "0..7"; | |||
| } | } | |||
| must "((../../role == 'pcc')" + | must "((../../role == 'pcc')" + | |||
| " or " + | " or " + | |||
| "(../../role == 'pcc-and-pce'))" | "(../../role == 'pcc-and-pce'))" | |||
| { | { | |||
| error-message | error-message | |||
| "The PCEP entity must be PCC"; | "The PCEP entity must be PCC"; | |||
| description | description | |||
| "When PCEP entity is PCC"; | "When PCEP entity is PCC"; | |||
| } | } | |||
| must "(../../info/capability/stateful/active" | must "(../../info/capability/stateful/active" | |||
| + " == true)" | + " == true)" | |||
| { | { | |||
| error-message | error-message | |||
| "The Active Stateful PCE must be | "The Active Stateful PCE must be | |||
| enabled"; | enabled"; | |||
| description | description | |||
| "When PCEP entity is active stateful | "When PCEP entity is active stateful | |||
| enabled"; | enabled"; | |||
| } | } | |||
| description | description | |||
| "The PCE peer delegation preference."; | "The PCE peer delegation preference."; | |||
| } | } | |||
| leaf discontinuity-time { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp of the time when the | ||||
| information and statistics were | ||||
| last reset."; | ||||
| } | ||||
| leaf initiate-session { | uses authentication { | |||
| type boolean; | description | |||
| description | "PCE Peer authentication"; | |||
| "Indicates whether the local PCEP | } | |||
| entity initiates sessions to this peer, | ||||
| or waits for the peer to initiate a | ||||
| session."; | ||||
| } | ||||
| leaf session-exists{ | ||||
| type boolean; | ||||
| description | ||||
| "Indicates whether a session with | ||||
| this peer currently exists."; | ||||
| } | ||||
| leaf num-sess-setup-ok{ | leaf discontinuity-time { | |||
| type yang:counter32; | type yang:timestamp; | |||
| description | description | |||
| "The number of PCEP sessions successfully | "The timestamp of the time when the | |||
| successfully established with the peer, | information and statistics were | |||
| including any current session. This | last reset."; | |||
| counter is incremented each time a | } | |||
| session with this peer is successfully | ||||
| established."; | ||||
| } | ||||
| leaf num-sess-setup-fail{ | leaf initiate-session { | |||
| type yang:counter32; | type boolean; | |||
| description | description | |||
| "The number of PCEP sessions with the peer | "Indicates whether the local PCEP | |||
| that have been attempted but failed | entity initiates sessions to this peer, | |||
| before being fully established. This | or waits for the peer to initiate a | |||
| counter is incremented each time a | session."; | |||
| session retry to this peer fails."; | } | |||
| } | ||||
| leaf session-up-time{ | leaf session-exists{ | |||
| type yang:timestamp; | type boolean; | |||
| must "(../num-sess-setup-ok != 0 or " + | description | |||
| "(../num-sess-setup-ok = 0 and " + | "Indicates whether a session with | |||
| "session-up-time = 0))" { | this peer currently exists."; | |||
| error-message | } | |||
| "Invalid Session Up timestamp"; | ||||
| description | ||||
| "If num-sess-setup-ok is zero, | ||||
| then this leaf contains zero."; | ||||
| } | ||||
| description | ||||
| "The timestamp value of the last time a | ||||
| session with this peer was successfully | ||||
| established."; | ||||
| } | ||||
| leaf session-fail-time{ | leaf num-sess-setup-ok{ | |||
| type yang:timestamp; | type yang:counter32; | |||
| must "(../num-sess-setup-fail != 0 or " + | description | |||
| "(../num-sess-setup-fail = 0 and " + | "The number of PCEP sessions successfully | |||
| "session-fail-time = 0))" { | successfully established with the peer, | |||
| error-message | including any current session. This | |||
| "Invalid Session Fail timestamp"; | counter is incremented each time a | |||
| description | session with this peer is successfully | |||
| "If num-sess-setup-fail is zero, | established."; | |||
| then this leaf contains zero."; | } | |||
| } | ||||
| description | ||||
| "The timestamp value of the last time a | ||||
| session with this peer failed to be | ||||
| established."; | ||||
| } | ||||
| leaf session-fail-up-time{ | leaf num-sess-setup-fail{ | |||
| type yang:timestamp; | type yang:counter32; | |||
| must "(../num-sess-setup-ok != 0 or " + | description | |||
| "(../num-sess-setup-ok = 0 and " + | "The number of PCEP sessions with the peer | |||
| "session-fail-up-time = 0))" { | that have been attempted but failed | |||
| error-message | before being fully established. This | |||
| "Invalid Session Fail from | counter is incremented each time a | |||
| Up timestamp"; | session retry to this peer fails."; | |||
| description | } | |||
| "If num-sess-setup-ok is zero, | ||||
| then this leaf contains zero."; | ||||
| } | ||||
| description | ||||
| "The timestamp value of the last time a | ||||
| session with this peer failed from | ||||
| active."; | ||||
| } | ||||
| container pcep-stats { | leaf session-up-time{ | |||
| description | type yang:timestamp; | |||
| "The container for all statistics at peer | must "(../num-sess-setup-ok != 0 or " + | |||
| level."; | "(../num-sess-setup-ok = 0 and " + | |||
| uses pcep-stats{ | "session-up-time = 0))" { | |||
| description | error-message | |||
| "Since PCEP sessions can be | "Invalid Session Up timestamp"; | |||
| ephemeral, the peer statistics tracks | description | |||
| a peer even when no PCEP session | "If num-sess-setup-ok is zero, | |||
| currently exists to that peer. The | then this leaf contains zero."; | |||
| statistics contained are an aggregate | } | |||
| of the statistics for all successive | description | |||
| sessions to that peer."; | "The timestamp value of the last time a | |||
| } | session with this peer was successfully | |||
| established."; | ||||
| } | ||||
| leaf num-req-sent-closed{ | leaf session-fail-time{ | |||
| type yang:counter32; | type yang:timestamp; | |||
| description | must "(../num-sess-setup-fail != 0 or " + | |||
| "The number of requests that were | "(../num-sess-setup-fail = 0 and " + | |||
| sent to the peer and implicitly | "session-fail-time = 0))" { | |||
| cancelled when the session they were | error-message | |||
| sent over was closed."; | "Invalid Session Fail timestamp"; | |||
| } | description | |||
| "If num-sess-setup-fail is zero, | ||||
| then this leaf contains zero."; | ||||
| } | ||||
| description | ||||
| "The timestamp value of the last time a | ||||
| session with this peer failed to be | ||||
| established."; | ||||
| } | ||||
| leaf num-req-rcvd-closed{ | leaf session-fail-up-time{ | |||
| type yang:counter32; | type yang:timestamp; | |||
| description | must "(../num-sess-setup-ok != 0 or " + | |||
| "The number of requests that were | "(../num-sess-setup-ok = 0 and " + | |||
| received from the peer and | "session-fail-up-time = 0))" { | |||
| implicitly cancelled when the | error-message | |||
| session they were received over | "Invalid Session Fail from | |||
| was closed."; | Up timestamp"; | |||
| } | description | |||
| }//pcep-stats | "If num-sess-setup-ok is zero, | |||
| then this leaf contains zero."; | ||||
| } | ||||
| description | ||||
| "The timestamp value of the last time a | ||||
| session with this peer failed from | ||||
| active."; | ||||
| } | ||||
| container sessions { | container pcep-stats { | |||
| description | description | |||
| "This entry represents a single PCEP | "The container for all statistics at peer | |||
| session in which the local PCEP entity | level."; | |||
| participates. | uses pcep-stats{ | |||
| description | ||||
| "Since PCEP sessions can be | ||||
| ephemeral, the peer statistics tracks | ||||
| a peer even when no PCEP session | ||||
| currently exists to that peer. The | ||||
| statistics contained are an aggregate | ||||
| of the statistics for all successive | ||||
| sessions to that peer."; | ||||
| } | ||||
| This entry exists only if the | leaf num-req-sent-closed{ | |||
| corresponding PCEP session has been | type yang:counter32; | |||
| initialized by some event, such as | description | |||
| manual user configuration, auto- | "The number of requests that were | |||
| discovery of a peer, or an incoming | sent to the peer and implicitly | |||
| TCP connection."; | cancelled when the session they were | |||
| sent over was closed."; | ||||
| } | ||||
| list session { | leaf num-req-rcvd-closed{ | |||
| key "initiator"; | type yang:counter32; | |||
| description | ||||
| "The number of requests that were | ||||
| received from the peer and | ||||
| implicitly cancelled when the | ||||
| session they were received over | ||||
| was closed."; | ||||
| } | ||||
| }//pcep-stats | ||||
| description | container sessions { | |||
| "The list of sessions, note that | description | |||
| for a time being two sessions | "This entry represents a single PCEP | |||
| may exist for a peer"; | session in which the local PCEP entity | |||
| participates. | ||||
| This entry exists only if the | ||||
| corresponding PCEP session has been | ||||
| initialized by some event, such as | ||||
| manual user configuration, auto- | ||||
| discovery of a peer, or an incoming | ||||
| TCP connection."; | ||||
| leaf initiator { | list session { | |||
| type pcep-initiator; | key "initiator"; | |||
| description | ||||
| "The initiator of the session, | ||||
| that is, whether the TCP | ||||
| connection was initiated by | ||||
| the local PCEP entity or the | ||||
| peer. | ||||
| There is a window during | description | |||
| session initialization where | "The list of sessions, note that | |||
| two sessions can exist between | for a time being two sessions | |||
| a pair of PCEP speakers, each | may exist for a peer"; | |||
| initiated by one of the | ||||
| speakers. One of these | ||||
| sessions is always discarded | ||||
| before it leaves OpenWait state. | ||||
| However, before it is discarded, | ||||
| two sessions to the given peer | ||||
| appear transiently in this MIB | ||||
| module. The sessions are | ||||
| distinguished by who initiated | ||||
| them, and so this field is the | ||||
| key."; | ||||
| } | ||||
| leaf state-last-change { | leaf initiator { | |||
| type yang:timestamp; | type pcep-initiator; | |||
| description | description | |||
| "The timestamp value at the | "The initiator of the session, | |||
| time this session entered its | that is, whether the TCP | |||
| current state as denoted by | connection was initiated by | |||
| the state leaf."; | the local PCEP entity or the | |||
| } | peer. | |||
| There is a window during | ||||
| session initialization where | ||||
| two sessions can exist between | ||||
| a pair of PCEP speakers, each | ||||
| initiated by one of the | ||||
| speakers. One of these | ||||
| sessions is always discarded | ||||
| before it leaves OpenWait state. | ||||
| However, before it is discarded, | ||||
| two sessions to the given peer | ||||
| appear transiently in this MIB | ||||
| module. The sessions are | ||||
| distinguished by who initiated | ||||
| them, and so this field is the | ||||
| key."; | ||||
| } | ||||
| leaf state { | leaf state-last-change { | |||
| type pcep-sess-state; | type yang:timestamp; | |||
| description | description | |||
| "The current state of the | "The timestamp value at the | |||
| session. | time this session entered its | |||
| current state as denoted by | ||||
| the state leaf."; | ||||
| } | ||||
| The set of possible states | leaf state { | |||
| excludes the idle state since | type pcep-sess-state; | |||
| entries do not exist in the | description | |||
| idle state."; | "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 { | leaf session-creation { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "The timestamp value at the | "The timestamp value at the | |||
| time this session was | time this session was | |||
| created."; | 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 { | leaf connect-retry { | |||
| type uint32 { | type yang:counter32; | |||
| range "0..255"; | description | |||
| } | "The number of times that the | |||
| description | local PCEP entity has | |||
| "The value of the PCEP session | attempted to establish a TCP | |||
| ID used by the local PCEP | connection for this session | |||
| entity in the Open message | without success. The PCEP | |||
| for this session. | entity gives up when this | |||
| reaches connect-max-retry."; | ||||
| } | ||||
| If state is tcp-pending then | leaf local-id { | |||
| this is the session ID that | type uint32 { | |||
| will be used in the Open | range "0..255"; | |||
| message. Otherwise, this is | } | |||
| the session ID that was sent | description | |||
| in the Open message."; | "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."; | ||||
| } | ||||
| leaf remote-id { | leaf remote-id { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "0..255"; | |||
| } | } | |||
| must "((../state != 'tcp-pending'" + | must "((../state != 'tcp-pending'" + | |||
| "and " + | "and " + | |||
| "../state != 'open-wait' )" + | "../state != 'open-wait' )" + | |||
| "or " + | "or " + | |||
| "((../state = 'tcp-pending'" + | "((../state = 'tcp-pending'" + | |||
| " or " + | " or " + | |||
| "../state = 'open-wait' )" + | "../state = 'open-wait' )" + | |||
| "and remote-id = 0))" { | "and remote-id = 0))" { | |||
| error-message | error-message | |||
| "Invalid remote-id"; | "Invalid remote-id"; | |||
| description | description | |||
| "If state is tcp-pending | "If state is tcp-pending | |||
| or open-wait then this | or open-wait then this | |||
| leaf is not used and | leaf is not used and | |||
| MUST be set to zero."; | MUST be set to zero."; | |||
| } | } | |||
| description | description | |||
| "The value of the PCEP session | "The value of the PCEP session | |||
| ID used by the peer in its | ID used by the peer in its | |||
| Open message for this | Open message for this | |||
| session."; | session."; | |||
| } | } | |||
| leaf keepalive-timer { | leaf keepalive-timer { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "0..255"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| must "(../state = 'session-up'" + | must "(../state = 'session-up'" + | |||
| "or " + | "or " + | |||
| "(../state != 'session-up'" + | "(../state != 'session-up'" + | |||
| "and keepalive-timer = 0))" { | "and keepalive-timer = 0))" { | |||
| error-message | error-message | |||
| "Invalid keepalive | "Invalid keepalive | |||
| timer"; | timer"; | |||
| description | description | |||
| "This field is used if | "This field is used if | |||
| and only if state is | and only if state is | |||
| session-up. Otherwise, | session-up. Otherwise, | |||
| it is not used and | it is not used and | |||
| MUST be set to | MUST be set to | |||
| zero."; | zero."; | |||
| } | } | |||
| description | description | |||
| "The agreed maximum interval at | "The agreed maximum interval at | |||
| which the local PCEP entity | which the local PCEP entity | |||
| transmits PCEP messages on this | transmits PCEP messages on this | |||
| PCEP session. Zero means that | PCEP session. Zero means that | |||
| the local PCEP entity never | the local PCEP entity never | |||
| sends Keepalives on this | sends Keepalives on this | |||
| session."; | session."; | |||
| } | } | |||
| leaf peer-keepalive-timer { | leaf peer-keepalive-timer { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "0..255"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| must "(../state = 'session-up'" + | must "(../state = 'session-up'" + | |||
| "or " + | "or " + | |||
| "(../state != 'session-up'" + | "(../state != 'session-up'" + | |||
| "and " + | "and " + | |||
| "peer-keepalive-timer = 0))" { | "peer-keepalive-timer = 0))" { | |||
| error-message | error-message | |||
| "Invalid Peer keepalive | "Invalid Peer keepalive | |||
| timer"; | timer"; | |||
| description | description | |||
| "This field is used if | "This field is used if | |||
| and only if state is | and only if state is | |||
| session-up. Otherwise, | session-up. Otherwise, | |||
| it is not used and MUST | it is not used and MUST | |||
| be set to zero."; | be set to zero."; | |||
| } | } | |||
| description | description | |||
| "The agreed maximum interval at | "The agreed maximum interval at | |||
| which the peer transmits PCEP | which the peer transmits PCEP | |||
| messages on this PCEP session. | messages on this PCEP session. | |||
| Zero means that the peer never | Zero means that the peer never | |||
| sends Keepalives on this | sends Keepalives on this | |||
| session."; | session."; | |||
| } | } | |||
| leaf dead-timer { | leaf dead-timer { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "0..255"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| description | description | |||
| "The dead timer interval for | "The dead timer interval for | |||
| this PCEP session."; | this PCEP session."; | |||
| } | } | |||
| leaf peer-dead-timer { | leaf peer-dead-timer { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "0..255"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| must "((../state != 'tcp-pending'" + | must "((../state != 'tcp-pending'" + | |||
| "and " + | "and " + | |||
| "../state != 'open-wait' )" + | "../state != 'open-wait' )" + | |||
| "or " + | "or " + | |||
| "((../state = 'tcp-pending'" + | "((../state = 'tcp-pending'" + | |||
| " or " + | " or " + | |||
| "../state = 'open-wait' )" + | "../state = 'open-wait' )" + | |||
| "and " + | "and " + | |||
| "peer-dead-timer = 0))" { | "peer-dead-timer = 0))" { | |||
| error-message | error-message | |||
| "Invalid Peer Dead | "Invalid Peer Dead | |||
| timer"; | timer"; | |||
| description | description | |||
| "If state is tcp- | "If state is tcp- | |||
| pending or open-wait | pending or open-wait | |||
| then this leaf is not | then this leaf is not | |||
| used and MUST be set to | used and MUST be set to | |||
| zero."; | zero."; | |||
| } | } | |||
| description | description | |||
| "The peer's dead-timer interval | "The peer's dead-timer interval | |||
| for this PCEP session."; | for this PCEP session."; | |||
| } | } | |||
| leaf ka-hold-time-rem { | leaf ka-hold-time-rem { | |||
| type uint32 { | type uint32 { | |||
| range "0..255"; | range "0..255"; | |||
| } | } | |||
| units "seconds"; | units "seconds"; | |||
| must "((../state != 'tcp-pending'" + | must "((../state != 'tcp-pending'" + | |||
| "and " + | "and " + | |||
| "../state != 'open-wait' ) " + | "../state != 'open-wait' ) " + | |||
| "or " + | "or " + | |||
| "((../state = 'tcp-pending'" + | "((../state = 'tcp-pending'" + | |||
| "or " + | "or " + | |||
| "../state = 'open-wait' )" + | "../state = 'open-wait' )" + | |||
| "and " + | "and " + | |||
| "ka-hold-time-rem = 0))" { | "ka-hold-time-rem = 0))" { | |||
| error-message | error-message | |||
| "Invalid Keepalive hold | "Invalid Keepalive hold | |||
| time remaining"; | time remaining"; | |||
| description | description | |||
| "If state is tcp-pending | "If state is tcp-pending | |||
| or open-wait then this | or open-wait then this | |||
| field is not used and | field is not used and | |||
| MUST be set to zero."; | MUST be set to zero."; | |||
| } | } | |||
| description | description | |||
| "The keep alive hold time | "The keep alive hold time | |||
| remaining for this session."; | remaining for this session."; | |||
| } | } | |||
| leaf overloaded { | leaf overloaded { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "If the local PCEP entity has | "If the local PCEP entity has | |||
| informed the peer that it is | informed the peer that it is | |||
| currently overloaded, then this | currently overloaded, then this | |||
| is set to true. Otherwise, it | is set to true. Otherwise, it | |||
| is set to false."; | is set to false."; | |||
| } | } | |||
| leaf overload-time { | ||||
| type uint32; | ||||
| units "seconds"; | ||||
| must "(../overloaded = true or" + | ||||
| "(../overloaded != true and" + | ||||
| " overload-time = 0))" { | ||||
| error-message | ||||
| "Invalid overload-time"; | ||||
| description | ||||
| "This field is only used | ||||
| if overloaded is set to | ||||
| true. Otherwise, it is | ||||
| not used and MUST be set | ||||
| to zero."; | ||||
| } | ||||
| description | ||||
| "The interval of time that is | ||||
| remaining until the local PCEP | ||||
| entity will cease to be | ||||
| overloaded on this session."; | ||||
| } | ||||
| leaf peer-overloaded { | leaf overload-time { | |||
| type boolean; | type uint32; | |||
| description | units "seconds"; | |||
| "If the peer has informed the | must "(../overloaded = true or" + | |||
| local PCEP entity that it is | "(../overloaded != true and" + | |||
| currently overloaded, then this | " overload-time = 0))" { | |||
| is set to true. Otherwise, it | error-message | |||
| is set to false."; | "Invalid overload-time"; | |||
| } | description | |||
| "This field is only used | ||||
| if overloaded is set to | ||||
| true. Otherwise, it is | ||||
| not used and MUST be set | ||||
| to zero."; | ||||
| } | ||||
| description | ||||
| "The interval of time that is | ||||
| remaining until the local PCEP | ||||
| entity will cease to be | ||||
| overloaded on this session."; | ||||
| } | ||||
| leaf peer-overload-time { | leaf peer-overloaded { | |||
| type uint32; | type boolean; | |||
| units "seconds"; | description | |||
| must "(../peer-overloaded = true" + | "If the peer has informed the | |||
| " or " + | local PCEP entity that it is | |||
| "(../peer-overloaded != true" + | currently overloaded, then this | |||
| " and " + | is set to true. Otherwise, it | |||
| "peer-overload-time = 0))" { | is set to false."; | |||
| error-message | } | |||
| "Invalid peer overload | ||||
| time"; | ||||
| description | ||||
| "This field is only used | ||||
| if peer-overloaded is | ||||
| set to true. Otherwise, | ||||
| it is not used and MUST | ||||
| be set to zero."; | ||||
| } | ||||
| description | ||||
| "The interval of time that is | ||||
| remaining until the peer will | ||||
| cease to be overloaded. If it | ||||
| is not known how long the peer | ||||
| will stay in overloaded state, | ||||
| this leaf is set to zero."; | ||||
| } | ||||
| leaf lspdb-sync { | ||||
| if-feature stateful; | ||||
| type sync-state; | ||||
| description | ||||
| "The LSP-DB state synchronization | ||||
| status."; | ||||
| } | ||||
| leaf discontinuity-time { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value of the time | ||||
| when the statistics were last | ||||
| reset."; | ||||
| } | ||||
| container pcep-stats { | leaf peer-overload-time { | |||
| description | type uint32; | |||
| "The container for all statistics | units "seconds"; | |||
| at session level."; | must "(../peer-overloaded = true" + | |||
| uses pcep-stats{ | " or " + | |||
| description | "(../peer-overloaded != true" + | |||
| "The statistics contained are | " and " + | |||
| for the current sessions to | "peer-overload-time = 0))" { | |||
| that peer. These are lost | error-message | |||
| when the session goes down. | "Invalid peer overload | |||
| "; | time"; | |||
| } | description | |||
| }//pcep-stats | "This field is only used | |||
| if peer-overloaded is | ||||
| set to true. Otherwise, | ||||
| it is not used and MUST | ||||
| be set to zero."; | ||||
| } | ||||
| description | ||||
| "The interval of time that is | ||||
| remaining until the peer will | ||||
| cease to be overloaded. If it | ||||
| is not known how long the peer | ||||
| will stay in overloaded state, | ||||
| this leaf is set to zero."; | ||||
| } | ||||
| leaf lspdb-sync { | ||||
| if-feature stateful; | ||||
| type sync-state; | ||||
| description | ||||
| "The LSP-DB state synchronization | ||||
| status."; | ||||
| } | ||||
| leaf discontinuity-time { | ||||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value of the time | ||||
| when the statistics were last | ||||
| reset."; | ||||
| } | ||||
| } // session | container pcep-stats { | |||
| } // sessions | description | |||
| }//peer | "The container for all statistics | |||
| }//peers | at session level."; | |||
| }//entity | uses pcep-stats{ | |||
| }//pcep-state | description | |||
| "The statistics contained are | ||||
| for the current sessions to | ||||
| that peer. These are lost | ||||
| when the session goes down. | ||||
| /* | "; | |||
| * Notifications | } | |||
| */ | }//pcep-stats | |||
| notification pcep-session-up { | ||||
| description | ||||
| "This notification is sent when the value of | ||||
| '/pcep/pcep-state/peers/peer/sessions/session/state' | ||||
| enters the 'session-up' state."; | ||||
| uses notification-instance-hdr; | } // session | |||
| } // sessions | ||||
| }//peer | ||||
| }//peers | ||||
| }//entity | ||||
| }//pcep-state | ||||
| uses notification-session-hdr; | /* | |||
| * Notifications | ||||
| */ | ||||
| notification pcep-session-up { | ||||
| description | ||||
| "This notification is sent when the value of | ||||
| '/pcep/pcep-state/peers/peer/sessions/session/state' | ||||
| enters the 'session-up' state."; | ||||
| leaf state-last-change { | uses notification-instance-hdr; | |||
| type yang:timestamp; | ||||
| description | ||||
| "The timestamp value at the time this session entered | ||||
| its current state as denoted by the state leaf."; | ||||
| } | ||||
| leaf state { | uses notification-session-hdr; | |||
| type pcep-sess-state; | ||||
| description | ||||
| "The current state of the session. | ||||
| The set of possible states excludes the idle state | leaf state-last-change { | |||
| since entries do not exist in the idle state."; | type yang:timestamp; | |||
| } | description | |||
| } //notification | "The timestamp value at the time this session entered | |||
| its current state as denoted by the state leaf."; | ||||
| } | ||||
| notification pcep-session-down { | leaf state { | |||
| description | type pcep-sess-state; | |||
| "This notification is sent when the value of | description | |||
| '/pcep/pcep-state/peers/peer/sessions/session/state' | "The current state of the session. | |||
| leaves the 'session-up' state."; | The set of possible states excludes the idle state | |||
| since entries do not exist in the idle state."; | ||||
| } | ||||
| } //notification | ||||
| uses notification-instance-hdr; | notification pcep-session-down { | |||
| description | ||||
| "This notification is sent when the value of | ||||
| '/pcep/pcep-state/peers/peer/sessions/session/state' | ||||
| leaves the 'session-up' state."; | ||||
| leaf session-initiator { | uses notification-instance-hdr; | |||
| type pcep-initiator; | leaf session-initiator { | |||
| description | type pcep-initiator; | |||
| "The initiator of the session."; | description | |||
| } | "The initiator of the session."; | |||
| } | ||||
| leaf state-last-change { | leaf state-last-change { | |||
| type yang:timestamp; | type yang:timestamp; | |||
| description | description | |||
| "The timestamp value at the time this session entered | "The timestamp value at the time this session entered | |||
| its current state as denoted by the state leaf."; | 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 | leaf state { | |||
| since entries do not exist in the idle state."; | type pcep-sess-state; | |||
| } | description | |||
| } //notification | "The current state of the session. | |||
| The set of possible states excludes the idle state | ||||
| since entries do not exist in the idle state."; | ||||
| } | ||||
| } //notification | ||||
| notification pcep-session-local-overload { | notification pcep-session-local-overload { | |||
| description | description | |||
| "This notification is sent when the local PCEP entity | "This notification is sent when the local PCEP entity | |||
| enters overload state for a peer."; | enters overload state for a peer."; | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-session-hdr; | uses notification-session-hdr; | |||
| leaf overloaded { | leaf overloaded { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "If the local PCEP entity has informed the peer that | "If the local PCEP entity has informed the peer that | |||
| it is currently overloaded, then this is set to | it is currently overloaded, then this is set to | |||
| true. Otherwise, it is set to false."; | true. Otherwise, it is set to false."; | |||
| } | } | |||
| leaf overload-time { | leaf overload-time { | |||
| type uint32; | type uint32; | |||
| units "seconds"; | units "seconds"; | |||
| must "(../overloaded = true or " + | must "(../overloaded = true or " + | |||
| "(../overloaded != true and " + | "(../overloaded != true and " + | |||
| "overload-time = 0))" { | "overload-time = 0))" { | |||
| error-message | error-message | |||
| "Invalid overload-time"; | "Invalid overload-time"; | |||
| description | description | |||
| "This field is only used if overloaded is | "This field is only used if overloaded is | |||
| set to true. Otherwise, it is not used | set to true. Otherwise, it is not used | |||
| and MUST be set to zero."; | and MUST be set to zero."; | |||
| } | } | |||
| description | description | |||
| "The interval of time that is remaining until the | "The interval of time that is remaining until the | |||
| local PCEP entity will cease to be overloaded on | local PCEP entity will cease to be overloaded on | |||
| this session."; | this session."; | |||
| } | } | |||
| } //notification | } //notification | |||
| notification pcep-session-local-overload-clear { | notification pcep-session-local-overload-clear { | |||
| description | description | |||
| "This notification is sent when the local PCEP entity | "This notification is sent when the local PCEP entity | |||
| leaves overload state for a peer."; | leaves overload state for a peer."; | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| leaf overloaded { | leaf overloaded { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "If the local PCEP entity has informed the peer | "If the local PCEP entity has informed the peer | |||
| that it is currently overloaded, then this is set | that it is currently overloaded, then this is set | |||
| to true. Otherwise, it is set to false."; | to true. Otherwise, it is set to false."; | |||
| } | } | |||
| } //notification | } //notification | |||
| notification pcep-session-peer-overload { | notification pcep-session-peer-overload { | |||
| description | description | |||
| "This notification is sent when a peer enters overload | "This notification is sent when a peer enters overload | |||
| state."; | state."; | |||
| uses notification-instance-hdr; | uses notification-instance-hdr; | |||
| uses notification-session-hdr; | uses notification-session-hdr; | |||
| leaf peer-overloaded { | leaf peer-overloaded { | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "If the peer has informed the local PCEP entity that | "If the peer has informed the local PCEP entity that | |||
| it is currently overloaded, then this is set to true. | it is currently overloaded, then this is set to true. | |||
| Otherwise, it is set to false."; | Otherwise, it is set to false."; | |||
| } | } | |||
| leaf peer-overload-time { | leaf peer-overload-time { | |||
| type uint32; | type uint32; | |||
| units "seconds"; | units "seconds"; | |||
| must "(../peer-overloaded = true or " + | must "(../peer-overloaded = true or " + | |||
| "(../peer-overloaded != true and " + | "(../peer-overloaded != true and " + | |||
| "peer-overload-time = 0))" { | "peer-overload-time = 0))" { | |||
| error-message | error-message | |||
| "Invalid peer-overload-time"; | "Invalid peer-overload-time"; | |||
| description | description | |||
| "This field is only used if | "This field is only used if | |||
| peer-overloaded is set to true. | peer-overloaded is set to true. | |||
| Otherwise, it is not used and MUST | Otherwise, it is not used and MUST | |||
| be set to zero."; | be set to zero."; | |||
| } | } | |||
| description | description | |||
| "The interval of time that is remaining until the | "The interval of time that is remaining until the | |||
| peer will cease to be overloaded. If it is not known | peer will cease to be overloaded. If it is not known | |||
| how long the peer will stay in overloaded state, this | how long the peer will stay in overloaded state, this | |||
| leaf is set to zero."; | leaf is set to zero."; | |||
| } | } | |||
| } //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 true. | it is currently overloaded, then this is set to true. | |||
| Otherwise, it is set to false."; | Otherwise, it is set to false."; | |||
| } | } | |||
| } //notification | } //notification | |||
| }//module | }//module | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 9. Security Considerations | 9. Security Considerations | |||
| The YANG module defined in this memo is designed to be accessed via | The YANG module defined in this memo is designed to be accessed via | |||
| the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the | the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the | |||
| secure transport layer and the mandatory-to-implement secure | secure transport layer and the mandatory-to-implement secure | |||
| transport is SSH [RFC6242]. The NETCONF access control model | transport is SSH [RFC6242]. The NETCONF access control model | |||
| [RFC6536] provides the means to restrict access for particular | [RFC6536] provides the means to restrict access for particular | |||
| NETCONF users to a pre-configured subset of all available NETCONF | NETCONF users to a pre-configured subset of all available NETCONF | |||
| protocol operations and content. | protocol operations and content. | |||
| skipping to change at page 74, line 31 ¶ | skipping to change at page 85, line 42 ¶ | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <http://www.rfc-editor.org/info/rfc6020>. | <http://www.rfc-editor.org/info/rfc6020>. | |||
| [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
| RFC 6991, DOI 10.17487/RFC6991, July 2013, | RFC 6991, DOI 10.17487/RFC6991, July 2013, | |||
| <http://www.rfc-editor.org/info/rfc6991>. | <http://www.rfc-editor.org/info/rfc6991>. | |||
| [I-D.ietf-pce-stateful-pce] | [I-D.ietf-pce-stateful-pce] | |||
| Crabbe, E., Minei, I., Medved, J., and R. Varga, "PCEP | Crabbe, E., Minei, I., Medved, J., and R. Varga, "PCEP | |||
| Extensions for Stateful PCE", draft-ietf-pce-stateful- | Extensions for Stateful PCE", draft-ietf-pce-stateful- | |||
| pce-13 (work in progress), December 2015. | pce-14 (work in progress), March 2016. | |||
| [I-D.ietf-pce-pce-initiated-lsp] | ||||
| Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "PCEP | ||||
| Extensions for PCE-initiated LSP Setup in a Stateful PCE | ||||
| Model", draft-ietf-pce-pce-initiated-lsp-05 (work in | ||||
| progress), October 2015. | ||||
| [I-D.ietf-pce-lsp-setup-type] | ||||
| Sivabalan, S., Medved, J., Minei, I., Crabbe, E., Varga, | ||||
| R., Tantsura, J., and J. Hardwick, "Conveying path setup | ||||
| type in PCEP messages", draft-ietf-pce-lsp-setup-type-03 | ||||
| (work in progress), June 2015. | ||||
| [I-D.ietf-pce-segment-routing] | ||||
| Sivabalan, S., Medved, J., Filsfils, C., Crabbe, E., | ||||
| Lopez, V., Tantsura, J., Henderickx, W., and J. Hardwick, | ||||
| "PCEP Extensions for Segment Routing", draft-ietf-pce- | ||||
| segment-routing-07 (work in progress), March 2016. | ||||
| 13.2. Informative References | 13.2. Informative References | |||
| [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | |||
| Element (PCE)-Based Architecture", RFC 4655, | Element (PCE)-Based Architecture", RFC 4655, | |||
| DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
| <http://www.rfc-editor.org/info/rfc4655>. | <http://www.rfc-editor.org/info/rfc4655>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| skipping to change at page 75, line 13 ¶ | skipping to change at page 86, line 46 ¶ | |||
| <http://www.rfc-editor.org/info/rfc6536>. | <http://www.rfc-editor.org/info/rfc6536>. | |||
| [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, | |||
| <http://www.rfc-editor.org/info/rfc7420>. | <http://www.rfc-editor.org/info/rfc7420>. | |||
| [I-D.ietf-netmod-routing-cfg] | [I-D.ietf-netmod-routing-cfg] | |||
| Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
| Management", draft-ietf-netmod-routing-cfg-20 (work in | Management", draft-ietf-netmod-routing-cfg-22 (work in | |||
| progress), October 2015. | progress), July 2016. | |||
| [I-D.ietf-netmod-rfc6087bis] | [I-D.ietf-netmod-rfc6087bis] | |||
| Bierman, A., "Guidelines for Authors and Reviewers of YANG | Bierman, A., "Guidelines for Authors and Reviewers of YANG | |||
| Data Model Documents", draft-ietf-netmod-rfc6087bis-05 | Data Model Documents", draft-ietf-netmod-rfc6087bis-06 | |||
| (work in progress), October 2015. | (work in progress), March 2016. | |||
| [I-D.ietf-teas-yang-te] | [I-D.ietf-teas-yang-te] | |||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, | Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, | |||
| X., Jones, R., and B. Wen, "A YANG Data Model for Traffic | X., Jones, R., and B. Wen, "A YANG Data Model for Traffic | |||
| Engineering Tunnels and Interfaces", draft-ietf-teas-yang- | Engineering Tunnels and Interfaces", draft-ietf-teas-yang- | |||
| te-02 (work in progress), October 2015. | te-03 (work in progress), March 2016. | |||
| Appendix A. Contributor Addresses | Appendix A. Contributor Addresses | |||
| Rohit Pobbathi | Rohit Pobbathi | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560037 | Bangalore, Karnataka 560066 | |||
| India | India | |||
| EMail: rohit.pobbathi@huawei.com | EMail: rohit.pobbathi@huawei.com | |||
| Vinod KumarS | Vinod KumarS | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560037 | 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 | |||
| skipping to change at page 76, line 48 ¶ | skipping to change at page 88, line 48 ¶ | |||
| Huawei Technologies | Huawei Technologies | |||
| 5340 Legacy Drive, Building 3 | 5340 Legacy Drive, Building 3 | |||
| Plano, TX 75023, USA | Plano, TX 75023, USA | |||
| Phone: (469) 277-5838 | Phone: (469) 277-5838 | |||
| EMail: leeyoung@huawei.com | EMail: leeyoung@huawei.com | |||
| Udayasree Palle | Udayasree Palle | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560037 | Bangalore, Karnataka 560066 | |||
| India | India | |||
| EMail: udayasree.palle@huawei.com | EMail: udayasree.palle@huawei.com | |||
| Xian Zhang | Xian Zhang | |||
| Huawei Technologies | Huawei Technologies | |||
| Bantian, Longgang District | Bantian, Longgang District | |||
| Shenzhen 518129 | Shenzhen 518129 | |||
| P.R.China | P.R.China | |||
| EMail: zhang.xian@huawei.com | EMail: zhang.xian@huawei.com | |||
| Avantika | Avantika | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560037 | Bangalore, Karnataka 560066 | |||
| India | India | |||
| EMail: avantika.sushilkumar@huawei.com | EMail: avantika.sushilkumar@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 560037 | Bangalore, Karnataka 560066 | |||
| 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 EN2 6BQ | |||
| UK | UK | |||
| skipping to change at page 78, line 4 ¶ | skipping to change at page 89, line 43 ¶ | |||
| Enfield EN2 6BQ | Enfield EN2 6BQ | |||
| UK | UK | |||
| EMail: jonathan.hardwick@metaswitch.com | EMail: jonathan.hardwick@metaswitch.com | |||
| Vishnu Pavan Beeram | Vishnu Pavan Beeram | |||
| Juniper Networks | Juniper Networks | |||
| USA | USA | |||
| EMail: vbeeram@juniper.net | EMail: vbeeram@juniper.net | |||
| Jeff Tantsura | Jeff Tantsura | |||
| Ericsson | USA | |||
| 300 Holger Way | ||||
| San Jose, CA 95134 | ||||
| US | ||||
| EMail: Jeff.Tantsura@ericsson.com | EMail: jefftant@gmail.com | |||
| End of changes. 273 change blocks. | ||||
| 2857 lines changed or deleted | 3414 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/ | ||||