| < draft-ietf-pce-pcep-yang-08.txt | draft-ietf-pce-pcep-yang-09.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: December 24, 2018 Metaswitch | Expires: April 18, 2019 Metaswitch | |||
| V. Beeram | V. Beeram | |||
| Juniper Networks | Juniper Networks | |||
| J. Tantsura | J. Tantsura | |||
| June 22, 2018 | October 15, 2018 | |||
| A YANG Data Model for Path Computation Element Communications Protocol | A YANG Data Model for Path Computation Element Communications Protocol | |||
| (PCEP) | (PCEP) | |||
| draft-ietf-pce-pcep-yang-08 | draft-ietf-pce-pcep-yang-09 | |||
| 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 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on December 24, 2018. | This Internet-Draft will expire on April 18, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 28 ¶ | skipping to change at page 2, line 28 ¶ | |||
| 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6 | 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6 | |||
| 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 6 | 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 6 | |||
| 5.2. The Full PCEP Data Model . . . . . . . . . . . . . . . . 7 | 5.2. The Full PCEP Data Model . . . . . . . . . . . . . . . . 7 | |||
| 5.3. The Entity . . . . . . . . . . . . . . . . . . . . . . . 22 | 5.3. The Entity . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 5.4. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 22 | 5.4. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 5.5. The Session Lists . . . . . . . . . . . . . . . . . . . . 23 | 5.5. The Session Lists . . . . . . . . . . . . . . . . . . . . 23 | |||
| 5.6. Notifications . . . . . . . . . . . . . . . . . . . . . . 23 | 5.6. Notifications . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 5.7. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 5.7. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 23 | 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 23 | |||
| 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 27 | 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 28 | |||
| 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 28 | 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 28 | |||
| 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 28 | 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 28 | |||
| 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 28 | 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 29 | |||
| 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 29 | 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 29 | |||
| 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 29 | 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 29 | |||
| 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 29 | 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 29 | 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 29 | |||
| 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 87 | 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 86 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 107 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 106 | |||
| 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 108 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 107 | |||
| 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 109 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 107 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 109 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 108 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 109 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 108 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 111 | 14.2. Informative References . . . . . . . . . . . . . . . . . 110 | |||
| Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 112 | Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 111 | |||
| Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 115 | Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 114 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 116 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 115 | |||
| 1. Introduction | 1. Introduction | |||
| The Path Computation Element (PCE) defined in [RFC4655] is an entity | The Path Computation Element (PCE) defined in [RFC4655] is an entity | |||
| that is capable of computing a network path or route based on a | that is capable of computing a network path or route based on a | |||
| network graph, and applying computational constraints. A Path | network graph, and applying computational constraints. A Path | |||
| Computation Client (PCC) may make requests to a PCE for paths to be | Computation Client (PCC) may make requests to a PCE for paths to be | |||
| computed. | computed. | |||
| PCEP is the communication protocol between a PCC and PCE and is | PCEP is the communication protocol between a PCC and PCE and is | |||
| defined in [RFC5440]. PCEP interactions include path computation | defined in [RFC5440]. PCEP interactions include path computation | |||
| requests and path computation replies as well as notifications of | requests and path computation replies as well as notifications of | |||
| specific states related to the use of a PCE in the context of | specific states related to the use of a PCE in the context of | |||
| Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) | Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) | |||
| Traffic Engineering (TE). [RFC8231] specifies extensions to PCEP to | Traffic Engineering (TE). [RFC8231] specifies extensions to PCEP to | |||
| enable stateful control of MPLS TE LSPs. | enable stateful control of MPLS TE LSPs. | |||
| This document defines a YANG [RFC6020] data model for the management | This document defines a YANG [RFC7950] data model for the management | |||
| of PCEP speakers. It is important to establish a common data model | of PCEP speakers. It is important to establish a common data model | |||
| for how PCEP speakers are identified, configured, and monitored. The | for how PCEP speakers are identified, configured, and monitored. The | |||
| data model includes configuration data and state data (status | data model includes configuration data and state data (status | |||
| information and counters for the collection of statistics). | information and counters for the collection of statistics). | |||
| This document contains a specification of the PCEP YANG module, | This document contains a specification of the PCEP YANG module, | |||
| "ietf-pcep" which provides the PCEP [RFC5440] data model. | "ietf-pcep" which provides the PCEP [RFC5440] data model. | |||
| The PCEP operational state is included in the same tree as the PCEP | The PCEP operational state is included in the same tree as the PCEP | |||
| configuration consistent with Network Management Datastore | configuration consistent with Network Management Datastore | |||
| skipping to change at page 4, line 34 ¶ | skipping to change at page 4, line 34 ¶ | |||
| 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). | |||
| [RFC8281] : | [RFC8281] : | |||
| o PCE-initiated LSP, Path Computation LSP Initiate Message | o PCE-initiated LSP, Path Computation LSP Initiate Message | |||
| (PCInitiate). | (PCInitiate). | |||
| [I-D.ietf-pce-lsp-setup-type] : | [RFC8408] : | |||
| o Path Setup Type (PST). | o Path Setup Type (PST). | |||
| [I-D.ietf-pce-segment-routing] : | [I-D.ietf-pce-segment-routing] : | |||
| o Segment Routing (SR). | o Segment Routing (SR). | |||
| 3.1. Tree Diagrams | 3.1. Tree Diagrams | |||
| A simplified graphical representation of the data model is used in | A simplified graphical representation of the data model is used in | |||
| skipping to change at page 7, line 32 ¶ | skipping to change at page 7, line 32 ¶ | |||
| | ... | | ... | |||
| +---n pcep-session-peer-overload-clear | +---n pcep-session-peer-overload-clear | |||
| ... | ... | |||
| 5.2. The Full PCEP Data Model | 5.2. The Full PCEP Data Model | |||
| The module, "ietf-pcep", defines the basic components of a PCE | The module, "ietf-pcep", defines the basic components of a PCE | |||
| speaker. | speaker. | |||
| module: ietf-pcep | module: ietf-pcep | |||
| +--rw pcep! | +--rw pcep! | |||
| +--rw entity | +--rw entity | |||
| +--rw addr inet:ip-address | +--rw addr inet:ip-address | |||
| +--rw enabled? boolean | +--rw enabled? boolean | |||
| +--rw role pcep-role | +--rw role pcep-role | |||
| +--rw description? string | +--rw description? string | |||
| +--rw speaker-entity-id? string | +--rw speaker-entity-id? string | |||
| | {stateful-sync-opt}? | | {stateful-sync-opt}? | |||
| +--rw admin-status? pcep-admin-status | +--rw admin-status? pcep-admin-status | |||
| +--ro index? uint32 | +--ro index? uint32 | |||
| +--ro oper-status? pcep-oper-status | +--ro oper-status? pcep-oper-status | |||
| +--rw domain | +--rw domain | |||
| | +--rw domain* [domain-type domain] | | +--rw domain* [domain-type domain] | |||
| | +--rw domain-type domain-type | | +--rw domain-type domain-type | |||
| | +--rw domain domain | | +--rw domain domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw gmpls? boolean {gmpls}? | | +--rw 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 | | +--rw objective-function? boolean {objective-function}? | |||
| | | {objective-function}? | | +--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 {pce-initiated}? | |||
| | | +--rw pce-initiated? boolean {pce-initiated}? | | | +--rw include-db-ver? boolean | |||
| | | +--rw include-db-ver? boolean | | | | {stateful-sync-opt}? | |||
| | | | {stateful-sync-opt}? | | | +--rw trigger-resync? boolean | |||
| | | +--rw trigger-resync? boolean | | | | {stateful-sync-opt}? | |||
| | | | {stateful-sync-opt}? | | | +--rw trigger-initial-sync? boolean | |||
| | | +--rw trigger-initial-sync? boolean | | | | {stateful-sync-opt}? | |||
| | | | {stateful-sync-opt}? | | | +--rw incremental-sync? boolean | |||
| | | +--rw incremental-sync? boolean | | | {stateful-sync-opt}? | |||
| | | {stateful-sync-opt}? | | +--rw sr {sr}? | |||
| | +--rw sr {sr}? | | +--rw enabled? boolean | |||
| | +--rw enabled? boolean | | +--rw msd? uint8 | |||
| +--rw pce-info | | +--rw msd-limit? boolean | |||
| | +--rw scope | | +--rw nai? boolean | |||
| | | +--rw intra-area-scope? boolean | +--rw pce-info | |||
| | | +--rw intra-area-pref? uint8 | | +--rw scope | |||
| | | +--rw inter-area-scope? boolean | | | +--rw intra-area-scope? boolean | |||
| | | +--rw inter-area-scope-default? boolean | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-area-scope? boolean | |||
| | | +--rw inter-as-scope? boolean | | | +--rw inter-area-scope-default? boolean | |||
| | | +--rw inter-as-scope-default? boolean | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-as-scope? boolean | |||
| | | +--rw inter-layer-scope? boolean | | | +--rw inter-as-scope-default? boolean | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-as-pref? uint8 | |||
| | +--rw neigh-domains | | | +--rw inter-layer-scope? boolean | |||
| | | +--rw domain* [domain-type domain] | | | +--rw inter-layer-pref? uint8 | |||
| | | +--rw domain-type domain-type | | +--rw neigh-domains | |||
| | | +--rw domain domain | | | +--rw domain* [domain-type domain] | |||
| | +--rw path-key {path-key}? | | | +--rw domain-type domain-type | |||
| | +--rw enabled? boolean | | | +--rw domain domain | |||
| | +--rw discard-timer? uint32 | | +--rw path-key {path-key}? | |||
| | +--rw reuse-time? uint32 | | +--rw enabled? boolean | |||
| | +--rw pce-id? inet:ip-address | | +--rw discard-timer? uint32 | |||
| +--rw connect-timer? uint32 | | +--rw reuse-time? uint32 | |||
| +--rw connect-max-retry? uint32 | | +--rw pce-id? inet:ip-address | |||
| +--rw init-backoff-timer? uint32 | +--rw connect-timer? uint32 | |||
| +--rw max-backoff-timer? uint32 | +--rw connect-max-retry? uint32 | |||
| +--rw open-wait-timer? uint32 | +--rw init-backoff-timer? uint32 | |||
| +--rw keep-wait-timer? uint32 | +--rw max-backoff-timer? uint32 | |||
| +--rw keep-alive-timer? uint32 | +--rw open-wait-timer? uint32 | |||
| +--rw dead-timer? uint32 | +--rw keep-wait-timer? uint32 | |||
| +--rw allow-negotiation? boolean | +--rw keep-alive-timer? uint32 | |||
| +--rw max-keep-alive-timer? uint32 | +--rw dead-timer? uint32 | |||
| +--rw max-dead-timer? uint32 | +--rw allow-negotiation? boolean | |||
| +--rw min-keep-alive-timer? uint32 | +--rw max-keep-alive-timer? uint32 | |||
| +--rw min-dead-timer? uint32 | +--rw max-dead-timer? uint32 | |||
| +--rw sync-timer? uint32 {svec}? | +--rw min-keep-alive-timer? uint32 | |||
| +--rw request-timer? uint32 | +--rw min-dead-timer? uint32 | |||
| +--rw max-sessions? uint32 | +--rw sync-timer? uint32 {svec}? | |||
| +--rw max-unknown-reqs? uint32 | +--rw request-timer? uint32 | |||
| +--rw max-unknown-msgs? uint32 | +--rw max-sessions? uint32 | |||
| +--rw pcep-notification-max-rate uint32 | +--rw max-unknown-reqs? uint32 | |||
| +--rw stateful-parameter {stateful}? | +--rw max-unknown-msgs? uint32 | |||
| | +--rw state-timeout? uint32 | +--rw pcep-notification-max-rate uint32 | |||
| | +--rw redelegation-timeout? uint32 | +--rw stateful-parameter {stateful}? | |||
| | +--rw rpt-non-pcep-lsp? boolean | | +--rw state-timeout? uint32 | |||
| +--rw of-list {objective-function}? | | +--rw redelegation-timeout? uint32 | |||
| | +--rw objective-function* [of] | | +--rw rpt-non-pcep-lsp? boolean | |||
| | +--rw of objective-function | +--rw of-list {objective-function}? | |||
| +--ro lsp-db {stateful}? | | +--rw objective-function* [of] | |||
| | +--ro db-ver? uint64 {stateful-sync-opt}? | | +--rw of identityref | |||
| | +--ro association-list* | +--ro lsp-db {stateful}? | |||
| | | [type id source global-source extended-id] | | +--ro db-ver? uint64 {stateful-sync-opt}? | |||
| | | {association}? | | +--ro association-list* | |||
| | | +--ro type assoc-type | | | [type id source global-source extended-id] | |||
| | | +--ro id uint16 | | | {association}? | |||
| | | +--ro source inet:ip-address | | | +--ro type identityref | |||
| | | +--ro global-source uint32 | | | +--ro id uint16 | |||
| | | +--ro extended-id string | | | +--ro source inet:ip-address | |||
| | | +--ro lsp* [plsp-id pcc-id] | | | +--ro global-source uint32 | |||
| | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | | | +--ro extended-id string | |||
| | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | | | +--ro lsp* [plsp-id pcc-id] | |||
| | +--ro lsp* [plsp-id pcc-id] | | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | |||
| | +--ro plsp-id uint32 | | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | |||
| | +--ro pcc-id inet:ip-address | | +--ro lsp* [plsp-id pcc-id] | |||
| | +--ro lsp-ref | | +--ro plsp-id uint32 | |||
| | | +--ro source? | | +--ro pcc-id inet:ip-address | |||
| | | | -> /te:te/lsps-state/lsp/source | | +--ro lsp-ref | |||
| | | +--ro destination? | | | +--ro source? | |||
| | | | -> /te:te/lsps-state/lsp/destination | | | | -> /te:te/lsps-state/lsp/source | |||
| | | +--ro tunnel-id? | | | +--ro destination? | |||
| | | | -> /te:te/lsps-state/lsp/tunnel-id | | | | -> /te:te/lsps-state/lsp/destination | |||
| | | +--ro lsp-id? | | | +--ro tunnel-id? | |||
| | | | -> /te:te/lsps-state/lsp/lsp-id | | | | -> /te:te/lsps-state/lsp/tunnel-id | |||
| | | +--ro extended-tunnel-id? | | | +--ro lsp-id? | |||
| | | -> /te:te/lsps-state/lsp/extended-tunnel-id | | | | -> /te:te/lsps-state/lsp/lsp-id | |||
| | +--ro admin-state? boolean | | | +--ro extended-tunnel-id? | |||
| | +--ro operational-state? operational-state | | | -> /te:te/lsps-state/lsp/extended-tunnel-id | |||
| | +--ro delegated | | +--ro admin-state? boolean | |||
| | | +--ro enabled? boolean | | +--ro operational-state? operational-state | |||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro delegated | |||
| | | +--ro srp-id? uint32 | | | +--ro enabled? boolean | |||
| | +--ro initiation {pce-initiated}? | | | +--ro peer? -> /pcep/entity/peers/peer/addr | |||
| | | +--ro enabled? boolean | | | +--ro srp-id? uint32 | |||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro initiation {pce-initiated}? | |||
| | +--ro symbolic-path-name? string | | | +--ro enabled? boolean | |||
| | +--ro last-error? lsp-error | | | +--ro peer? -> /pcep/entity/peers/peer/addr | |||
| | +--ro pst? pst | | +--ro symbolic-path-name? string | |||
| | +--ro association-list* | | +--ro last-error? identityref | |||
| | [type id source global-source extended-id] | | +--ro pst? identityref | |||
| | {association}? | | +--ro association-list* | |||
| | +--ro type | | [type id source global-source extended-id] | |||
| | | -> /pcep/entity/lsp-db/association-list/type | | {association}? | |||
| | +--ro id | | +--ro type | |||
| | | -> /pcep/entity/lsp-db/association-list/id | | | -> /pcep/entity/lsp-db/association-list/type | |||
| | +--ro source leafref | | +--ro id | |||
| | +--ro global-source leafref | | | -> /pcep/entity/lsp-db/association-list/id | |||
| | +--ro extended-id leafref | | +--ro source | |||
| +--ro path-keys {path-key}? | | | -> /pcep/entity/lsp-db/association-list/source | |||
| | +--ro path-keys* [path-key] | | +--ro global-source leafref | |||
| | +--ro path-key uint16 | | +--ro extended-id leafref | |||
| | +--ro cps | +--ro path-keys {path-key}? | |||
| | | +--ro explicit-route-objects* [index] | | +--ro path-keys* [path-key] | |||
| | | +--ro index uint32 | | +--ro path-key uint16 | |||
| | | +--ro (type)? | | +--ro cps | |||
| | | +--:(num-unnum-hop) | | | +--ro explicit-route-objects* [index] | |||
| | | | +--ro num-unnum-hop | | | +--ro index uint32 | |||
| | | | +--ro node-id? te-types:te-node-id | | | +--ro (type)? | |||
| | | | +--ro link-tp-id? te-types:te-tp-id | | | +--:(num-unnum-hop) | |||
| | | | +--ro hop-type? te-hop-type | | | | +--ro num-unnum-hop | |||
| | | | +--ro direction? te-link-direction | | | | +--ro node-id? te-types:te-node-id | |||
| | | +--:(as-number) | | | | +--ro link-tp-id? te-types:te-tp-id | |||
| | | | +--ro as-number-hop | | | | +--ro hop-type? te-hop-type | |||
| | | | +--ro as-number? binary | | | | +--ro direction? te-link-direction | |||
| | | | +--ro hop-type? te-hop-type | | | +--:(as-number) | |||
| | | +--:(label) | | | | +--ro as-number-hop | |||
| | | +--ro label-hop | | | | +--ro as-number? binary | |||
| | | +--ro te-label | | | | +--ro hop-type? te-hop-type | |||
| | | +--ro (technology)? | | | +--:(label) | |||
| | | | +--:(generic) | | | +--ro label-hop | |||
| | | | +--ro generic? | | | +--ro te-label | |||
| | | | rt-types:generalized-label | | | +--ro (technology)? | |||
| | | +--ro direction? | | | | +--:(generic) | |||
| | | te-label-direction | | | | +--ro generic? | |||
| | +--ro pcc-original? -> /pcep/entity/peers/peer/addr | | | | rt-types:generalized-label | |||
| | +--ro req-id? uint32 | | | +--ro direction? te-label-direction | |||
| | +--ro retrieved? boolean | | +--ro pcc-original? -> /pcep/entity/peers/peer/addr | |||
| | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | | +--ro req-id? uint32 | |||
| | +--ro creation-time? yang:timestamp | | +--ro retrieved? boolean | |||
| | +--ro discard-time? uint32 | | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | |||
| | +--ro reuse-time? uint32 | | +--ro creation-time? yang:timestamp | |||
| +--rw peers | | +--ro discard-time? uint32 | |||
| +--rw peer* [addr] | | +--ro reuse-time? uint32 | |||
| +--rw addr inet:ip-address | +--rw peers | |||
| +--rw role pcep-role | +--rw peer* [addr] | |||
| +--rw description? string | +--rw addr inet:ip-address | |||
| +--rw domain | +--rw role pcep-role | |||
| | +--rw domain* [domain-type domain] | +--rw description? string | |||
| | +--rw domain-type domain-type | +--rw domain | |||
| | +--rw domain domain | | +--rw domain* [domain-type domain] | |||
| +--rw capability | | +--rw domain-type domain-type | |||
| | +--rw gmpls? boolean {gmpls}? | | +--rw domain domain | |||
| | +--rw bi-dir? boolean | +--rw capability | |||
| | +--rw diverse? boolean | | +--rw gmpls? boolean {gmpls}? | |||
| | +--rw load-balance? boolean | | +--rw bi-dir? boolean | |||
| | +--rw synchronize? boolean {svec}? | | +--rw diverse? boolean | |||
| | +--rw objective-function? boolean | | +--rw load-balance? boolean | |||
| | | {objective-function}? | | +--rw synchronize? boolean {svec}? | |||
| | +--rw add-path-constraint? boolean | | +--rw objective-function? boolean | |||
| | +--rw prioritization? boolean | | | {objective-function}? | |||
| | +--rw multi-request? boolean | | +--rw add-path-constraint? boolean | |||
| | +--rw gco? boolean {gco}? | | +--rw prioritization? boolean | |||
| | +--rw p2mp? boolean {p2mp}? | | +--rw multi-request? boolean | |||
| | +--rw stateful {stateful}? | | +--rw gco? boolean {gco}? | |||
| | | +--rw enabled? boolean | | +--rw p2mp? boolean {p2mp}? | |||
| | | +--rw active? boolean | | +--rw stateful {stateful}? | |||
| | | +--rw pce-initiated? boolean | | | +--rw enabled? boolean | |||
| | | | {pce-initiated}? | | | +--rw active? boolean | |||
| | | +--rw include-db-ver? boolean | | | +--rw pce-initiated? boolean | |||
| | | | {stateful-sync-opt}? | | | | {pce-initiated}? | |||
| | | +--rw trigger-resync? boolean | | | +--rw include-db-ver? boolean | |||
| | | | {stateful-sync-opt}? | | | | {stateful-sync-opt}? | |||
| | | +--rw trigger-initial-sync? boolean | | | +--rw trigger-resync? boolean | |||
| | | | {stateful-sync-opt}? | | | | {stateful-sync-opt}? | |||
| | | +--rw incremental-sync? boolean | | | +--rw trigger-initial-sync? boolean | |||
| | | {stateful-sync-opt}? | | | | {stateful-sync-opt}? | |||
| | +--rw sr {sr}? | | | +--rw incremental-sync? boolean | |||
| | +--rw enabled? boolean | | | {stateful-sync-opt}? | |||
| +--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 msd-limit? boolean | |||
| | | +--rw inter-area-scope? boolean | | +--rw nai? boolean | |||
| | | +--rw inter-area-scope-default? boolean | +--rw pce-info | |||
| | | +--rw inter-area-pref? uint8 | | +--rw scope | |||
| | | +--rw inter-as-scope? boolean | | | +--rw intra-area-scope? boolean | |||
| | | +--rw inter-as-scope-default? boolean | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-area-scope? boolean | |||
| | | +--rw inter-layer-scope? boolean | | | +--rw inter-area-scope-default? boolean | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-area-pref? uint8 | |||
| | +--rw neigh-domains | | | +--rw inter-as-scope? boolean | |||
| | +--rw domain* [domain-type domain] | | | +--rw inter-as-scope-default? boolean | |||
| | +--rw domain-type domain-type | | | +--rw inter-as-pref? uint8 | |||
| | +--rw domain domain | | | +--rw inter-layer-scope? boolean | |||
| +--rw delegation-pref? uint8 {stateful}? | | | +--rw inter-layer-pref? uint8 | |||
| +--rw auth | | +--rw neigh-domains | |||
| | +--rw (auth-type-selection)? | | +--rw domain* [domain-type domain] | |||
| | +--:(auth-key-chain) | | +--rw domain-type domain-type | |||
| | | +--rw key-chain? | | +--rw domain domain | |||
| | | key-chain:key-chain-ref | +--rw delegation-pref? uint8 {stateful}? | |||
| | +--:(auth-key) | +--rw auth | |||
| | | +--rw crypto-algorithm identityref | | +--rw (auth-type-selection)? | |||
| | | +--rw key-string | | +--:(auth-key-chain) | |||
| | | +--rw (key-string-style)? | | | +--rw key-chain? key-chain:key-chain-ref | |||
| | | +--:(keystring) | | +--:(auth-key) | |||
| | | | +--rw keystring? string | | | +--rw crypto-algorithm identityref | |||
| | | +--:(hexadecimal) | | | +--rw key? string | |||
| | | {key-chain:hex-key-string}? | | +--:(auth-tls) {tls}? | |||
| | | +--rw hexadecimal-string? | | +--rw (role)? | |||
| | | yang:hex-string | | +--:(server) | |||
| | +--:(auth-tls) {tls}? | | | +--rw tls-server | |||
| | +--rw (role)? | | | +--rw server-identity | |||
| | +--:(server) | | | | +--rw (local-or-keystore) | |||
| | | +--rw tls-server | | | | +--:(local) | |||
| | | +--rw server-identity | | | | | +--rw algorithm | |||
| | | | +--rw (local-or-keystore) | | | | | | ct:key-algorithm-ref | |||
| | | | +--:(local) | | | | | +--rw public-key | |||
| | | | | +--rw algorithm | | | | | | binary | |||
| | | | | | ct:key-algorithm-ref | | | | | +--rw private-key | |||
| | | | | +--rw public-key | | | | | | union | |||
| | | | | | binary | | | | | +--rw cert | |||
| | | | | +--rw private-key | | | | | | ct:end-entity-cert-cms | |||
| | | | | | union | | | | | +---n certificate-expiration | |||
| | | | | +--rw cert | | | | | +---- expiration-date? | |||
| | | | | | ct:end-entity-cert-cms | | | | | yang:date-and-time | |||
| | | | | +---n certificate-expiration | | | | +--:(keystore) | |||
| | | | | +-- expiration-date? | | | | {keystore-implemented}? | |||
| | | | | yang:date-and-time | | | | +--rw reference | |||
| | | | +--:(keystore) | | | | ks:asymmetric-key-certificate-ref | |||
| | | | {keystore-implemented}? | | | +--rw client-auth | |||
| | | | +--rw reference | | | | +--rw pinned-ca-certs? | |||
| | | | ks:asymmetric-key-certificate-ref | | | | | ta:pinned-certificates-ref | |||
| | | +--rw client-auth | | | | +--rw pinned-client-certs? | |||
| | | | +--rw pinned-ca-certs? | | | | ta:pinned-certificates-ref | |||
| | | | | ta:pinned-certificates-ref | | | +--rw hello-params | |||
| | | | +--rw pinned-client-certs? | | | {tls-server-hello-params-config}? | |||
| | | | ta:pinned-certificates-ref | | | +--rw tls-versions | |||
| | | +--rw hello-params | | | | +--rw tls-version* identityref | |||
| | | {tls-server-hello-params-config}? | | | +--rw cipher-suites | |||
| | | +--rw tls-versions | | | +--rw cipher-suite* identityref | |||
| | | | +--rw tls-version* | | +--:(client) | |||
| | | | identityref | | +--rw tls-client | |||
| | | +--rw cipher-suites | | +--rw client-identity | |||
| | | +--rw cipher-suite* | | | +--rw (auth-type)? | |||
| | | identityref | | | +--:(certificate) | |||
| | +--:(client) | | | +--rw certificate | |||
| | +--rw tls-client | | | +--rw (local-or-keystore) | |||
| | +--rw client-identity | | | +--:(local) | |||
| | | +--rw (auth-type)? | | | | +--rw algorithm | |||
| | | +--:(certificate) | | | | | ct:key-algorithm-ref | |||
| | | +--rw certificate | | | | +--rw public-key | |||
| | | +--rw (local-or-keystore) | | | | | binary | |||
| | | +--:(local) | | | | +--rw private-key | |||
| | | | +--rw algorithm | | | | | union | |||
| | | | | ct:key-algorithm-ref | | | | +--rw cert | |||
| | | | +--rw public-key | | | | | ct:end-entity-cert-cms | |||
| | | | | binary | | | | +---n certificate-expiration | |||
| | | | +--rw private-key | | | | +---- expiration-date? | |||
| | | | | union | | | | yang:date-and-time | |||
| | | | +--rw cert | | | +--:(keystore) | |||
| | | | | ct:end-entity-cert-cms | | | {keystore-implemented}? | |||
| | | | +---n certificate-expiration | | | +--rw reference | |||
| | | | +-- expiration-date? | | | ks:asymmetric-key-certificate-ref | |||
| | | | yang:date-and-time | | +--rw server-auth | |||
| | | +--:(keystore) | | | +--rw pinned-ca-certs? | |||
| | | {keystore-implemented}? | | | | ta:pinned-certificates-ref | |||
| | | +--rw reference | | | +--rw pinned-server-certs? | |||
| | | ks:asymmetric-key-certificate-ref | | | ta:pinned-certificates-ref | |||
| | +--rw server-auth | | +--rw hello-params | |||
| | | +--rw pinned-ca-certs? | | {tls-client-hello-params-config}? | |||
| | | | ta:pinned-certificates-ref | | +--rw tls-versions | |||
| | | +--rw pinned-server-certs? | | | +--rw tls-version* identityref | |||
| | | ta:pinned-certificates-ref | | +--rw cipher-suites | |||
| | +--rw hello-params | | +--rw cipher-suite* identityref | |||
| | {tls-client-hello-params-config}? | +--ro discontinuity-time? yang:timestamp | |||
| | +--rw tls-versions | +--ro initiate-session? boolean | |||
| | | +--rw tls-version* | +--ro session-exists? boolean | |||
| | | identityref | +--ro session-up-time? yang:timestamp | |||
| | +--rw cipher-suites | +--ro session-fail-time? yang:timestamp | |||
| | +--rw cipher-suite* | +--ro session-fail-up-time? yang:timestamp | |||
| | identityref | +--ro sessions | |||
| +--ro session* [initiator] | ||||
| +--ro initiator pcep-initiator | ||||
| +--ro role? -> /pcep/entity/role | ||||
| +--ro state-last-change? yang:timestamp | ||||
| +--ro state? pcep-sess-state | ||||
| +--ro session-creation? yang:timestamp | ||||
| +--ro connect-retry? yang:counter32 | ||||
| +--ro local-id? uint32 | ||||
| +--ro remote-id? uint32 | ||||
| +--ro keepalive-timer? uint32 | ||||
| +--ro peer-keepalive-timer? uint32 | ||||
| +--ro dead-timer? uint32 | ||||
| +--ro peer-dead-timer? uint32 | ||||
| +--ro ka-hold-time-rem? uint32 | ||||
| +--ro overloaded? boolean | ||||
| +--ro overload-time? uint32 | ||||
| +--ro peer-overloaded? boolean | ||||
| +--ro peer-overload-time? uint32 | ||||
| +--ro lspdb-sync? sync-state | ||||
| | {stateful}? | ||||
| +--ro recv-db-ver? uint64 | ||||
| | {stateful,stateful-sync-opt}? | ||||
| +--ro of-list {objective-function}? | ||||
| | +--ro objective-function* [of] | ||||
| | +--ro of identityref | ||||
| +--ro pst-list | ||||
| | +--ro path-setup-type* [pst] | ||||
| | +--ro pst identityref | ||||
| +--ro assoc-type-list {association}? | ||||
| | +--ro assoc-type* [at] | ||||
| | +--ro at identityref | ||||
| +--ro speaker-entity-id? string | ||||
| | {stateful-sync-opt}? | ||||
| +--ro discontinuity-time? yang:timestamp | ||||
| rpcs: | ||||
| +---x trigger-resync {stateful,stateful-sync-opt}? | ||||
| +---w input | ||||
| +---w pcc? -> /pcep/entity/peers/peer/addr | ||||
| notifications: | ||||
| +---n pcep-session-up | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro session-initiator? | ||||
| | | -> /pcep/entity/peers/peer/sessions/session/initiator | ||||
| | +--ro state-last-change? yang:timestamp | ||||
| | +--ro state? pcep-sess-state | ||||
| +---n pcep-session-down | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro session-initiator? pcep-initiator | ||||
| | +--ro state-last-change? yang:timestamp | ||||
| | +--ro state? pcep-sess-state | ||||
| +---n pcep-session-local-overload | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro session-initiator? | ||||
| | | -> /pcep/entity/peers/peer/sessions/session/initiator | ||||
| | +--ro overloaded? boolean | ||||
| | +--ro overload-time? uint32 | ||||
| +---n pcep-session-local-overload-clear | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro overloaded? boolean | ||||
| +---n pcep-session-peer-overload | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro session-initiator? | ||||
| | | -> /pcep/entity/peers/peer/sessions/session/initiator | ||||
| | +--ro peer-overloaded? boolean | ||||
| | +--ro peer-overload-time? uint32 | ||||
| +---n pcep-session-peer-overload-clear | ||||
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| +--ro peer-overloaded? boolean | ||||
| groupings: | ||||
| info | ||||
| +---- domain | ||||
| | +---- domain* [domain-type domain] | ||||
| | +---- domain-type? domain-type | ||||
| | +---- domain? domain | ||||
| +---- capability | ||||
| +---- gmpls? boolean {gmpls}? | ||||
| +---- bi-dir? boolean | ||||
| +---- diverse? boolean | ||||
| +---- load-balance? boolean | ||||
| +---- synchronize? boolean {svec}? | ||||
| +---- objective-function? boolean {objective-function}? | ||||
| +---- add-path-constraint? boolean | ||||
| +---- prioritization? boolean | ||||
| +---- multi-request? boolean | ||||
| +---- gco? boolean {gco}? | ||||
| +---- p2mp? boolean {p2mp}? | ||||
| +---- stateful {stateful}? | ||||
| | +---- enabled? boolean | ||||
| | +---- active? boolean | ||||
| | +---- pce-initiated? boolean {pce-initiated}? | ||||
| | +---- include-db-ver? boolean {stateful-sync-opt}? | ||||
| | +---- trigger-resync? boolean {stateful-sync-opt}? | ||||
| | +---- trigger-initial-sync? boolean {stateful-sync-opt}? | ||||
| | +---- incremental-sync? boolean {stateful-sync-opt}? | ||||
| +---- sr {sr}? | ||||
| +---- enabled? boolean | ||||
| +---- msd? uint8 | ||||
| +---- msd-limit? boolean | ||||
| +---- nai? boolean | ||||
| lsp-state | ||||
| +---- plsp-id? uint32 | ||||
| +---- pcc-id? inet:ip-address | ||||
| +---- lsp-ref | ||||
| | +---- source? -> /te:te/lsps-state/lsp/source | ||||
| | +---- destination? -> /te:te/lsps-state/lsp/destination | ||||
| | +---- tunnel-id? -> /te:te/lsps-state/lsp/tunnel-id | ||||
| | +---- lsp-id? -> /te:te/lsps-state/lsp/lsp-id | ||||
| | +---- extended-tunnel-id? | ||||
| | -> /te:te/lsps-state/lsp/extended-tunnel-id | ||||
| +---- admin-state? boolean | ||||
| +---- operational-state? operational-state | ||||
| +---- delegated | ||||
| | +---- enabled? boolean | ||||
| | +---- peer? -> /pcep/entity/peers/peer/addr | ||||
| | +---- srp-id? uint32 | ||||
| +---- initiation {pce-initiated}? | ||||
| | +---- enabled? boolean | ||||
| | +---- peer? -> /pcep/entity/peers/peer/addr | ||||
| +---- symbolic-path-name? string | ||||
| +---- last-error? identityref | ||||
| +---- pst? identityref | ||||
| pce-scope | ||||
| +---- intra-area-scope? boolean | ||||
| +---- intra-area-pref? uint8 | ||||
| +---- inter-area-scope? boolean | ||||
| +---- inter-area-scope-default? boolean | ||||
| +---- inter-area-pref? uint8 | ||||
| +---- inter-as-scope? boolean | ||||
| +---- inter-as-scope-default? boolean | ||||
| +---- inter-as-pref? uint8 | ||||
| +---- inter-layer-scope? boolean | ||||
| +---- inter-layer-pref? uint8 | ||||
| of-list | ||||
| +---- objective-function* [of] | ||||
| +---- of? identityref | ||||
| pst-list | ||||
| +---- path-setup-type* [pst] | ||||
| +---- pst? identityref | ||||
| session-grouping | ||||
| +--ro sessions | ||||
| +--ro session* [initiator] | ||||
| +--ro initiator? pcep-initiator | ||||
| +--ro role? -> /pcep/entity/role | ||||
| +--ro state-last-change? yang:timestamp | ||||
| +--ro state? pcep-sess-state | ||||
| +--ro session-creation? yang:timestamp | ||||
| +--ro connect-retry? yang:counter32 | ||||
| +--ro local-id? uint32 | ||||
| +--ro remote-id? uint32 | ||||
| +--ro keepalive-timer? uint32 | ||||
| +--ro peer-keepalive-timer? uint32 | ||||
| +--ro dead-timer? uint32 | ||||
| +--ro peer-dead-timer? uint32 | ||||
| +--ro ka-hold-time-rem? uint32 | ||||
| +--ro overloaded? boolean | ||||
| +--ro overload-time? uint32 | ||||
| +--ro peer-overloaded? boolean | ||||
| +--ro peer-overload-time? uint32 | ||||
| +--ro lspdb-sync? sync-state {stateful}? | ||||
| +--ro recv-db-ver? uint64 | ||||
| | {stateful,stateful-sync-opt}? | ||||
| +--ro of-list {objective-function}? | ||||
| | +--ro objective-function* [of] | ||||
| | +--ro of? identityref | ||||
| +--ro pst-list | ||||
| | +--ro path-setup-type* [pst] | ||||
| | +--ro pst? identityref | ||||
| +--ro assoc-type-list {association}? | ||||
| | +--ro assoc-type* [at] | ||||
| | +--ro at? identityref | ||||
| +--ro speaker-entity-id? string {stateful-sync-opt}? | ||||
| +--ro discontinuity-time? yang:timestamp | +--ro discontinuity-time? yang:timestamp | |||
| +--ro initiate-session? boolean | ||||
| +--ro session-exists? boolean | ||||
| +--ro session-up-time? yang:timestamp | ||||
| +--ro session-fail-time? yang:timestamp | ||||
| +--ro session-fail-up-time? yang:timestamp | ||||
| +--ro sessions | ||||
| +--ro session* [initiator] | ||||
| +--ro initiator pcep-initiator | ||||
| +--ro role? | ||||
| | -> /pcep/entity/role | ||||
| +--ro state-last-change? yang:timestamp | ||||
| +--ro state? pcep-sess-state | ||||
| +--ro session-creation? yang:timestamp | ||||
| +--ro connect-retry? yang:counter32 | ||||
| +--ro local-id? uint32 | ||||
| +--ro remote-id? uint32 | ||||
| +--ro keepalive-timer? uint32 | ||||
| +--ro peer-keepalive-timer? uint32 | ||||
| +--ro dead-timer? uint32 | ||||
| +--ro peer-dead-timer? uint32 | ||||
| +--ro ka-hold-time-rem? uint32 | ||||
| +--ro overloaded? boolean | ||||
| +--ro overload-time? uint32 | ||||
| +--ro peer-overloaded? boolean | ||||
| +--ro peer-overload-time? uint32 | ||||
| +--ro lspdb-sync? sync-state | ||||
| | {stateful}? | ||||
| +--ro recv-db-ver? uint64 | ||||
| | {stateful,stateful-sync-opt}? | ||||
| +--ro of-list {objective-function}? | ||||
| | +--ro objective-function* [of] | ||||
| | +--ro of objective-function | ||||
| +--ro pst-list | ||||
| | +--ro path-setup-type* [pst] | ||||
| | +--ro pst pst | ||||
| +--ro assoc-type-list {association}? | ||||
| | +--ro assoc-type* [at] | ||||
| | +--ro at assoc-type | ||||
| +--ro speaker-entity-id? string | ||||
| | {stateful-sync-opt}? | ||||
| +--ro discontinuity-time? yang:timestamp | ||||
| rpcs: | pcep-entity-info | |||
| +---x trigger-resync {stateful,stateful-sync-opt}? | +---- connect-timer? uint32 | |||
| +---w input | +---- connect-max-retry? uint32 | |||
| +---w pcc? -> /pcep/entity/peers/peer/addr | +---- init-backoff-timer? uint32 | |||
| +---- max-backoff-timer? uint32 | ||||
| +---- open-wait-timer? uint32 | ||||
| +---- keep-wait-timer? uint32 | ||||
| +---- keep-alive-timer? uint32 | ||||
| +---- dead-timer? uint32 | ||||
| +---- allow-negotiation? boolean | ||||
| +---- max-keep-alive-timer? uint32 | ||||
| +---- max-dead-timer? uint32 | ||||
| +---- min-keep-alive-timer? uint32 | ||||
| +---- min-dead-timer? uint32 | ||||
| +---- sync-timer? uint32 {svec}? | ||||
| +---- request-timer? uint32 | ||||
| +---- max-sessions? uint32 | ||||
| +---- max-unknown-reqs? uint32 | ||||
| +---- max-unknown-msgs? uint32 | ||||
| notifications: | path-key | |||
| +---n pcep-session-up | +---- enabled? boolean | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +---- discard-timer? uint32 | |||
| | +--ro session-initiator? | +---- reuse-time? uint32 | |||
| | | -> /pcep/entity/peers/peer/sessions/session/initiator | +---- pce-id? inet:ip-address | |||
| | +--ro state-last-change? yang:timestamp | ||||
| | +--ro state? pcep-sess-state | ||||
| +---n pcep-session-down | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro session-initiator? pcep-initiator | ||||
| | +--ro state-last-change? yang:timestamp | ||||
| | +--ro state? pcep-sess-state | ||||
| +---n pcep-session-local-overload | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro session-initiator? | ||||
| | | -> /pcep/entity/peers/peer/sessions/session/initiator | ||||
| | +--ro overloaded? boolean | ||||
| | +--ro overload-time? uint32 | ||||
| +---n pcep-session-local-overload-clear | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro overloaded? boolean | ||||
| +---n pcep-session-peer-overload | ||||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro session-initiator? | ||||
| | | -> /pcep/entity/peers/peer/sessions/session/initiator | ||||
| | +--ro peer-overloaded? boolean | ||||
| | +--ro peer-overload-time? uint32 | ||||
| +---n pcep-session-peer-overload-clear | ||||
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| +--ro peer-overloaded? boolean | ||||
| grouping info | capability | |||
| +-- domain | +---- gmpls? boolean {gmpls}? | |||
| | +-- domain* [domain-type domain] | +---- bi-dir? boolean | |||
| | +-- domain-type? domain-type | +---- diverse? boolean | |||
| | +-- domain? domain | +---- load-balance? boolean | |||
| +-- capability | +---- synchronize? boolean {svec}? | |||
| +-- gmpls? boolean {gmpls}? | +---- objective-function? boolean {objective-function}? | |||
| +-- bi-dir? boolean | +---- add-path-constraint? boolean | |||
| +-- diverse? boolean | +---- prioritization? boolean | |||
| +-- load-balance? boolean | +---- multi-request? boolean | |||
| +-- synchronize? boolean {svec}? | +---- gco? boolean {gco}? | |||
| +-- objective-function? boolean {objective-function}? | +---- p2mp? boolean {p2mp}? | |||
| +-- add-path-constraint? boolean | +---- stateful {stateful}? | |||
| +-- prioritization? boolean | | +---- enabled? boolean | |||
| +-- multi-request? boolean | | +---- active? boolean | |||
| +-- gco? boolean {gco}? | | +---- pce-initiated? boolean {pce-initiated}? | |||
| +-- p2mp? boolean {p2mp}? | | +---- include-db-ver? boolean {stateful-sync-opt}? | |||
| +-- stateful {stateful}? | | +---- trigger-resync? boolean {stateful-sync-opt}? | |||
| | +-- enabled? boolean | | +---- trigger-initial-sync? boolean {stateful-sync-opt}? | |||
| | +-- active? boolean | | +---- incremental-sync? boolean {stateful-sync-opt}? | |||
| | +-- pce-initiated? boolean {pce-initiated}? | +---- sr {sr}? | |||
| | +-- include-db-ver? boolean {stateful-sync-opt}? | +---- enabled? boolean | |||
| | +-- trigger-resync? boolean {stateful-sync-opt}? | +---- msd? uint8 | |||
| | +-- trigger-initial-sync? boolean {stateful-sync-opt}? | +---- msd-limit? boolean | |||
| | +-- incremental-sync? boolean {stateful-sync-opt}? | +---- nai? boolean | |||
| +-- sr {sr}? | ||||
| +-- enabled? boolean | path-key-state | |||
| grouping lsp-state | +---- path-keys* [path-key] | |||
| +-- plsp-id? uint32 | +---- path-key? uint16 | |||
| +-- pcc-id? inet:ip-address | +---- cps | |||
| +-- lsp-ref | | +---- explicit-route-objects* [index] | |||
| | +-- source? -> /te:te/lsps-state/lsp/source | | +---- index? uint32 | |||
| | +-- destination? | | +---- (type)? | |||
| | | -> /te:te/lsps-state/lsp/destination | | +--:(num-unnum-hop) | |||
| | +-- tunnel-id? -> /te:te/lsps-state/lsp/tunnel-id | | | +---- num-unnum-hop | |||
| | +-- lsp-id? -> /te:te/lsps-state/lsp/lsp-id | | | +---- node-id? te-types:te-node-id | |||
| | +-- extended-tunnel-id? | | | +---- link-tp-id? te-types:te-tp-id | |||
| | -> /te:te/lsps-state/lsp/extended-tunnel-id | | | +---- hop-type? te-hop-type | |||
| +-- admin-state? boolean | | | +---- direction? te-link-direction | |||
| +-- operational-state? operational-state | | +--:(as-number) | |||
| +-- delegated | | | +---- as-number-hop | |||
| | +-- enabled? boolean | | | +---- as-number? binary | |||
| | +-- peer? -> /pcep/entity/peers/peer/addr | | | +---- hop-type? te-hop-type | |||
| | +-- srp-id? uint32 | | +--:(label) | |||
| +-- initiation {pce-initiated}? | | +---- label-hop | |||
| | +-- enabled? boolean | | +---- te-label | |||
| | +-- peer? -> /pcep/entity/peers/peer/addr | | +---- (technology)? | |||
| +-- symbolic-path-name? string | | | +--:(generic) | |||
| +-- last-error? lsp-error | | | +---- generic? | |||
| +-- pst? pst | | | rt-types:generalized-label | |||
| grouping pce-scope | | +---- direction? te-label-direction | |||
| +-- intra-area-scope? boolean | +---- pcc-original? -> /pcep/entity/peers/peer/addr | |||
| +-- intra-area-pref? uint8 | +---- req-id? uint32 | |||
| +-- inter-area-scope? boolean | +---- retrieved? boolean | |||
| +-- inter-area-scope-default? boolean | +---- pcc-retrieved? -> /pcep/entity/peers/peer/addr | |||
| +-- inter-area-pref? uint8 | +---- creation-time? yang:timestamp | |||
| +-- inter-as-scope? boolean | +---- discard-time? uint32 | |||
| +-- inter-as-scope-default? boolean | +---- reuse-time? uint32 | |||
| +-- inter-as-pref? uint8 | ||||
| +-- inter-layer-scope? boolean | authentication | |||
| +-- inter-layer-pref? uint8 | +---- auth | |||
| grouping of-list | +---- (auth-type-selection)? | |||
| +-- objective-function* [of] | +--:(auth-key-chain) | |||
| +-- of? objective-function | | +---- key-chain? key-chain:key-chain-ref | |||
| grouping pst-list | +--:(auth-key) | |||
| +-- path-setup-type* [pst] | | +---- crypto-algorithm identityref | |||
| +-- pst? pst | | +---- key? string | |||
| grouping session-grouping | +--:(auth-tls) {tls}? | |||
| +--ro sessions | +---- (role)? | |||
| +--ro session* [initiator] | +--:(server) | |||
| +--ro initiator? pcep-initiator | | +---- tls-server | |||
| +--ro role? -> /pcep/entity/role | | +---- server-identity | |||
| +--ro state-last-change? yang:timestamp | | | +---- (local-or-keystore) | |||
| +--ro state? pcep-sess-state | | | +--:(local) | |||
| +--ro session-creation? yang:timestamp | | | | +---- algorithm | |||
| +--ro connect-retry? yang:counter32 | | | | | ct:key-algorithm-ref | |||
| +--ro local-id? uint32 | | | | +---- public-key binary | |||
| +--ro remote-id? uint32 | | | | +---- private-key union | |||
| +--ro keepalive-timer? uint32 | | | | +---- cert | |||
| +--ro peer-keepalive-timer? uint32 | | | | | ct:end-entity-cert-cms | |||
| +--ro dead-timer? uint32 | | | | +---n certificate-expiration | |||
| +--ro peer-dead-timer? uint32 | | | | +---- expiration-date? | |||
| +--ro ka-hold-time-rem? uint32 | | | | yang:date-and-time | |||
| +--ro overloaded? boolean | | | +--:(keystore) {keystore-implemented}? | |||
| +--ro overload-time? uint32 | | | +---- reference | |||
| +--ro peer-overloaded? boolean | | | ks:asymmetric-key-certificate-ref | |||
| +--ro peer-overload-time? uint32 | | +---- client-auth | |||
| +--ro lspdb-sync? sync-state {stateful}? | | | +---- pinned-ca-certs? | |||
| +--ro recv-db-ver? uint64 | | | | ta:pinned-certificates-ref | |||
| | {stateful,stateful-sync-opt}? | | | +---- pinned-client-certs? | |||
| +--ro of-list {objective-function}? | | | ta:pinned-certificates-ref | |||
| | +--ro objective-function* [of] | | +---- hello-params | |||
| | +--ro of? objective-function | | {tls-server-hello-params-config}? | |||
| +--ro pst-list | | +---- tls-versions | |||
| | +--ro path-setup-type* [pst] | | | +---- tls-version* identityref | |||
| | +--ro pst? pst | | +---- cipher-suites | |||
| +--ro assoc-type-list {association}? | | +---- cipher-suite* identityref | |||
| | +--ro assoc-type* [at] | +--:(client) | |||
| | +--ro at? assoc-type | +---- tls-client | |||
| +--ro speaker-entity-id? string {stateful-sync-opt}? | +---- client-identity | |||
| +--ro discontinuity-time? yang:timestamp | | +---- (auth-type)? | |||
| grouping pcep-entity-info | | +--:(certificate) | |||
| +-- connect-timer? uint32 | | +---- certificate | |||
| +-- connect-max-retry? uint32 | | +---- (local-or-keystore) | |||
| +-- init-backoff-timer? uint32 | | +--:(local) | |||
| +-- max-backoff-timer? uint32 | | | +---- algorithm | |||
| +-- open-wait-timer? uint32 | | | | ct:key-algorithm-ref | |||
| +-- keep-wait-timer? uint32 | | | +---- public-key | |||
| +-- keep-alive-timer? uint32 | | | | binary | |||
| +-- dead-timer? uint32 | | | +---- private-key | |||
| +-- allow-negotiation? boolean | | | | union | |||
| +-- max-keep-alive-timer? uint32 | | | +---- cert | |||
| +-- max-dead-timer? uint32 | | | | ct:end-entity-cert-cms | |||
| +-- min-keep-alive-timer? uint32 | | | +---n certificate-expiration | |||
| +-- min-dead-timer? uint32 | | | +---- expiration-date? | |||
| +-- sync-timer? uint32 {svec}? | | | yang:date-and-time | |||
| +-- request-timer? uint32 | | +--:(keystore) | |||
| +-- max-sessions? uint32 | | {keystore-implemented}? | |||
| +-- max-unknown-reqs? uint32 | | +---- reference | |||
| +-- max-unknown-msgs? uint32 | | ks:asymmetric-key-certificate-ref | |||
| grouping path-key | +---- server-auth | |||
| +-- enabled? boolean | | +---- pinned-ca-certs? | |||
| +-- discard-timer? uint32 | | | ta:pinned-certificates-ref | |||
| +-- reuse-time? uint32 | | +---- pinned-server-certs? | |||
| +-- pce-id? inet:ip-address | | ta:pinned-certificates-ref | |||
| grouping capability | +---- hello-params | |||
| +-- gmpls? boolean {gmpls}? | {tls-client-hello-params-config}? | |||
| +-- bi-dir? boolean | ||||
| +-- diverse? boolean | +---- tls-versions | |||
| +-- load-balance? boolean | | +---- tls-version* identityref | |||
| +-- synchronize? boolean {svec}? | +---- cipher-suites | |||
| +-- objective-function? boolean {objective-function}? | +---- cipher-suite* identityref | |||
| +-- add-path-constraint? boolean | ||||
| +-- prioritization? boolean | notification-session-hdr | |||
| +-- multi-request? boolean | +---- session-initiator? | |||
| +-- gco? boolean {gco}? | -> /pcep/entity/peers/peer/sessions/session/initiator | |||
| +-- p2mp? boolean {p2mp}? | ||||
| +-- stateful {stateful}? | assoc-type-list | |||
| | +-- enabled? boolean | +---- assoc-type* [at] | |||
| | +-- active? boolean | +---- at? identityref | |||
| | +-- pce-initiated? boolean {pce-initiated}? | ||||
| | +-- include-db-ver? boolean {stateful-sync-opt}? | association | |||
| | +-- trigger-resync? boolean {stateful-sync-opt}? | +---- type? identityref | |||
| | +-- trigger-initial-sync? boolean {stateful-sync-opt}? | +---- id? uint16 | |||
| | +-- incremental-sync? boolean {stateful-sync-opt}? | +---- source? inet:ip-address | |||
| +-- sr {sr}? | +---- global-source? uint32 | |||
| +-- enabled? boolean | +---- extended-id? string | |||
| grouping path-key-state | ||||
| +-- path-keys* [path-key] | domain | |||
| +-- path-key? uint16 | +---- domain-type? domain-type | |||
| +-- cps | +---- domain? domain | |||
| | +-- explicit-route-objects* [index] | ||||
| | +-- index? uint32 | association-ref | |||
| | +-- (type)? | +---- type? -> /pcep/entity/lsp-db/association-list/type | |||
| | +--:(num-unnum-hop) | +---- id? -> /pcep/entity/lsp-db/association-list/id | |||
| | | +-- num-unnum-hop | +---- source? -> /pcep/entity/lsp-db/association-list/source | |||
| | | +-- node-id? te-types:te-node-id | +---- global-source? | |||
| | | +-- link-tp-id? te-types:te-tp-id | | -> /pcep/entity/lsp-db/association-list/global-source | |||
| | | +-- hop-type? te-hop-type | +---- extended-id? | |||
| | | +-- direction? te-link-direction | -> /pcep/entity/lsp-db/association-list/extended-id | |||
| | +--:(as-number) | ||||
| | | +-- as-number-hop | notification-instance-hdr | |||
| | | +-- as-number? binary | +---- peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | | +-- hop-type? te-hop-type | ||||
| | +--:(label) | pce-info | |||
| | +-- label-hop | +---- scope | |||
| | +-- te-label | | +---- intra-area-scope? boolean | |||
| | +-- (technology)? | | +---- intra-area-pref? uint8 | |||
| | | +--:(generic) | | +---- inter-area-scope? boolean | |||
| | | +-- generic? | | +---- inter-area-scope-default? boolean | |||
| | | rt-types:generalized-label | | +---- inter-area-pref? uint8 | |||
| | +-- direction? te-label-direction | | +---- inter-as-scope? boolean | |||
| +-- pcc-original? -> /pcep/entity/peers/peer/addr | | +---- inter-as-scope-default? boolean | |||
| +-- req-id? uint32 | | +---- inter-as-pref? uint8 | |||
| +-- retrieved? boolean | | +---- inter-layer-scope? boolean | |||
| +-- pcc-retrieved? -> /pcep/entity/peers/peer/addr | | +---- inter-layer-pref? uint8 | |||
| +-- creation-time? yang:timestamp | +---- neigh-domains | |||
| +-- discard-time? uint32 | +---- domain* [domain-type domain] | |||
| +-- reuse-time? uint32 | +---- domain-type? domain-type | |||
| grouping authentication | +---- domain? domain | |||
| +-- auth | ||||
| +-- (auth-type-selection)? | stateful-pce-parameter | |||
| +--:(auth-key-chain) | +---- state-timeout? uint32 | |||
| | +-- key-chain? key-chain:key-chain-ref | +---- redelegation-timeout? uint32 | |||
| +--:(auth-key) | +---- rpt-non-pcep-lsp? boolean | |||
| | +-- crypto-algorithm identityref | ||||
| | +-- key-string | ||||
| | +-- (key-string-style)? | ||||
| | +--:(keystring) | ||||
| | | +-- keystring? string | ||||
| | +--:(hexadecimal) {key-chain:hex-key-string}? | ||||
| | +-- hexadecimal-string? yang:hex-string | ||||
| +--:(auth-tls) {tls}? | ||||
| +-- (role)? | ||||
| +--:(server) | ||||
| | +-- tls-server | ||||
| | +-- server-identity | ||||
| | | +-- (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | +-- algorithm | ||||
| | | | | ct:key-algorithm-ref | ||||
| | | | +-- public-key binary | ||||
| | | | +-- private-key union | ||||
| | | | +-- cert | ||||
| | | | | ct:end-entity-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | +-- expiration-date? | ||||
| | | | yang:date-and-time | ||||
| | | +--:(keystore) {keystore-implemented}? | ||||
| | | +-- reference | ||||
| | | ks:asymmetric-key-certificate-ref | ||||
| | +-- client-auth | ||||
| | | +-- pinned-ca-certs? | ||||
| | | | ta:pinned-certificates-ref | ||||
| | | +-- pinned-client-certs? | ||||
| | | ta:pinned-certificates-ref | ||||
| | +-- hello-params | ||||
| | {tls-server-hello-params-config}? | ||||
| | +-- tls-versions | ||||
| | | +-- tls-version* identityref | ||||
| | +-- cipher-suites | ||||
| | +-- cipher-suite* identityref | ||||
| +--:(client) | ||||
| +-- tls-client | ||||
| +-- client-identity | ||||
| | +-- (auth-type)? | ||||
| | +--:(certificate) | ||||
| | +-- certificate | ||||
| | +-- (local-or-keystore) | ||||
| | +--:(local) | ||||
| | | +-- algorithm | ||||
| | | | ct:key-algorithm-ref | ||||
| | | +-- public-key | ||||
| | | | binary | ||||
| | | +-- private-key | ||||
| | | | union | ||||
| | | +-- cert | ||||
| | | | ct:end-entity-cert-cms | ||||
| | | +---n certificate-expiration | ||||
| | | +-- expiration-date? | ||||
| | | yang:date-and-time | ||||
| | +--:(keystore) | ||||
| | {keystore-implemented}? | ||||
| | +-- reference | ||||
| | ks:asymmetric-key-certificate-ref | ||||
| +-- server-auth | ||||
| | +-- pinned-ca-certs? | ||||
| | | ta:pinned-certificates-ref | ||||
| | +-- pinned-server-certs? | ||||
| | ta:pinned-certificates-ref | ||||
| +-- hello-params | ||||
| {tls-client-hello-params-config}? | ||||
| +-- tls-versions | ||||
| | +-- tls-version* identityref | ||||
| +-- cipher-suites | ||||
| +-- cipher-suite* identityref | ||||
| grouping notification-session-hdr | ||||
| +-- session-initiator? | ||||
| -> /pcep/entity/peers/peer/sessions/session/initiator | ||||
| grouping assoc-type-list | ||||
| +-- assoc-type* [at] | ||||
| +-- at? assoc-type | ||||
| grouping association | ||||
| +-- type? assoc-type | ||||
| +-- id? uint16 | ||||
| +-- source? inet:ip-address | ||||
| +-- global-source? uint32 | ||||
| +-- extended-id? string | ||||
| grouping domain | ||||
| +-- domain-type? domain-type | ||||
| +-- domain? domain | ||||
| grouping association-ref | ||||
| +-- type? | ||||
| | -> /pcep/entity/lsp-db/association-list/type | ||||
| +-- id? -> /pcep/entity/lsp-db/association-list/id | ||||
| +-- source? | ||||
| | -> /pcep/entity/lsp-db/association-list/source | ||||
| +-- global-source? | ||||
| | -> /pcep/entity/lsp-db/association-list/global-source | ||||
| +-- extended-id? | ||||
| -> /pcep/entity/lsp-db/association-list/extended-id | ||||
| grouping notification-instance-hdr | ||||
| +-- peer-addr? -> /pcep/entity/peers/peer/addr | ||||
| grouping pce-info | ||||
| +-- scope | ||||
| | +-- intra-area-scope? boolean | ||||
| | +-- intra-area-pref? uint8 | ||||
| | +-- inter-area-scope? boolean | ||||
| | +-- inter-area-scope-default? boolean | ||||
| | +-- inter-area-pref? uint8 | ||||
| | +-- inter-as-scope? boolean | ||||
| | +-- inter-as-scope-default? boolean | ||||
| | +-- inter-as-pref? uint8 | ||||
| | +-- inter-layer-scope? boolean | ||||
| | +-- inter-layer-pref? uint8 | ||||
| +-- neigh-domains | ||||
| +-- domain* [domain-type domain] | ||||
| +-- domain-type? domain-type | ||||
| +-- domain? domain | ||||
| grouping stateful-pce-parameter | ||||
| +-- state-timeout? uint32 | ||||
| +-- redelegation-timeout? uint32 | ||||
| +-- rpt-non-pcep-lsp? boolean | ||||
| 5.3. The Entity | 5.3. 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 26, line 29 ¶ | skipping to change at page 26, line 36 ¶ | |||
| | +--ro num-pcinitiate-sent? yang:counter32 | | +--ro num-pcinitiate-sent? yang:counter32 | |||
| | +--ro num-pcinitiate-rcvd? yang:counter32 | | +--ro num-pcinitiate-rcvd? yang:counter32 | |||
| | +--ro num-initiate-sent? yang:counter32 | | +--ro num-initiate-sent? yang:counter32 | |||
| | +--ro num-initiate-rcvd? yang:counter32 | | +--ro num-initiate-rcvd? yang:counter32 | |||
| | +--ro num-initiate-rcvd-error-sent? yang:counter32 | | +--ro num-initiate-rcvd-error-sent? yang:counter32 | |||
| +--ro path-key {p:path-key}? | +--ro path-key {p:path-key}? | |||
| +--ro num-unknown-path-key? yang:counter32 | +--ro num-unknown-path-key? yang:counter32 | |||
| +--ro num-exp-path-key? yang:counter32 | +--ro num-exp-path-key? yang:counter32 | |||
| +--ro num-dup-path-key? yang:counter32 | +--ro num-dup-path-key? yang:counter32 | |||
| +--ro num-path-key-no-attempt? yang:counter32 | +--ro num-path-key-no-attempt? yang:counter32 | |||
| groupings: | ||||
| grouping pcep-stats | pcep-stats | |||
| +-- avg-rsp-time? uint32 | +---- avg-rsp-time? uint32 | |||
| +-- lwm-rsp-time? uint32 | +---- lwm-rsp-time? uint32 | |||
| +-- hwm-rsp-time? uint32 | +---- hwm-rsp-time? uint32 | |||
| +-- num-pcreq-sent? yang:counter32 | +---- num-pcreq-sent? yang:counter32 | |||
| +-- num-pcreq-rcvd? yang:counter32 | +---- num-pcreq-rcvd? yang:counter32 | |||
| +-- num-pcrep-sent? yang:counter32 | +---- num-pcrep-sent? yang:counter32 | |||
| +-- num-pcrep-rcvd? yang:counter32 | +---- num-pcrep-rcvd? yang:counter32 | |||
| +-- num-pcerr-sent? yang:counter32 | +---- num-pcerr-sent? yang:counter32 | |||
| +-- num-pcerr-rcvd? yang:counter32 | +---- num-pcerr-rcvd? yang:counter32 | |||
| +-- num-pcntf-sent? yang:counter32 | +---- num-pcntf-sent? yang:counter32 | |||
| +-- num-pcntf-rcvd? yang:counter32 | +---- num-pcntf-rcvd? yang:counter32 | |||
| +-- num-keepalive-sent? yang:counter32 | +---- num-keepalive-sent? yang:counter32 | |||
| +-- num-keepalive-rcvd? yang:counter32 | +---- num-keepalive-rcvd? yang:counter32 | |||
| +-- num-unknown-rcvd? yang:counter32 | +---- num-unknown-rcvd? yang:counter32 | |||
| +-- num-corrupt-rcvd? yang:counter32 | +---- num-corrupt-rcvd? yang:counter32 | |||
| +-- num-req-sent? yang:counter32 | +---- num-req-sent? yang:counter32 | |||
| +-- num-req-sent-pend-rep? yang:counter32 | +---- num-req-sent-pend-rep? yang:counter32 | |||
| +-- num-req-sent-ero-rcvd? yang:counter32 | +---- num-req-sent-ero-rcvd? yang:counter32 | |||
| +-- num-req-sent-nopath-rcvd? yang:counter32 | +---- num-req-sent-nopath-rcvd? yang:counter32 | |||
| +-- num-req-sent-cancel-rcvd? yang:counter32 | +---- num-req-sent-cancel-rcvd? yang:counter32 | |||
| +-- num-req-sent-error-rcvd? yang:counter32 | +---- num-req-sent-error-rcvd? yang:counter32 | |||
| +-- num-req-sent-timeout? yang:counter32 | +---- num-req-sent-timeout? yang:counter32 | |||
| +-- num-req-sent-cancel-sent? yang:counter32 | +---- num-req-sent-cancel-sent? yang:counter32 | |||
| +-- num-req-rcvd? yang:counter32 | +---- num-req-rcvd? yang:counter32 | |||
| +-- num-req-rcvd-pend-rep? yang:counter32 | +---- num-req-rcvd-pend-rep? yang:counter32 | |||
| +-- num-req-rcvd-ero-sent? yang:counter32 | +---- num-req-rcvd-ero-sent? yang:counter32 | |||
| +-- num-req-rcvd-nopath-sent? yang:counter32 | +---- num-req-rcvd-nopath-sent? yang:counter32 | |||
| +-- num-req-rcvd-cancel-sent? yang:counter32 | +---- num-req-rcvd-cancel-sent? yang:counter32 | |||
| +-- num-req-rcvd-error-sent? yang:counter32 | +---- num-req-rcvd-error-sent? yang:counter32 | |||
| +-- num-req-rcvd-cancel-rcvd? yang:counter32 | +---- num-req-rcvd-cancel-rcvd? yang:counter32 | |||
| +-- num-rep-rcvd-unknown? yang:counter32 | +---- num-rep-rcvd-unknown? yang:counter32 | |||
| +-- num-req-rcvd-unknown? yang:counter32 | +---- num-req-rcvd-unknown? yang:counter32 | |||
| +-- svec {p:svec}? | +---- svec {p:svec}? | |||
| | +-- num-svec-sent? yang:counter32 | | +---- num-svec-sent? yang:counter32 | |||
| | +-- num-svec-req-sent? yang:counter32 | | +---- num-svec-req-sent? yang:counter32 | |||
| | +-- num-svec-rcvd? yang:counter32 | | +---- num-svec-rcvd? yang:counter32 | |||
| | +-- num-svec-req-rcvd? yang:counter32 | | +---- num-svec-req-rcvd? yang:counter32 | |||
| +-- stateful {p:stateful}? | +---- stateful {p:stateful}? | |||
| | +-- num-pcrpt-sent? yang:counter32 | | +---- num-pcrpt-sent? yang:counter32 | |||
| | +-- num-pcrpt-rcvd? yang:counter32 | | +---- num-pcrpt-rcvd? yang:counter32 | |||
| | +-- num-pcupd-sent? yang:counter32 | | +---- num-pcupd-sent? yang:counter32 | |||
| | +-- num-pcupd-rcvd? yang:counter32 | | +---- num-pcupd-rcvd? yang:counter32 | |||
| | +-- num-rpt-sent? yang:counter32 | | +---- num-rpt-sent? yang:counter32 | |||
| | +-- num-rpt-rcvd? yang:counter32 | | +---- num-rpt-rcvd? yang:counter32 | |||
| | +-- num-rpt-rcvd-error-sent? yang:counter32 | | +---- num-rpt-rcvd-error-sent? yang:counter32 | |||
| | +-- num-upd-sent? yang:counter32 | | +---- num-upd-sent? yang:counter32 | |||
| | +-- num-upd-rcvd? yang:counter32 | | +---- num-upd-rcvd? yang:counter32 | |||
| | +-- num-upd-rcvd-unknown? yang:counter32 | | +---- num-upd-rcvd-unknown? yang:counter32 | |||
| | +-- num-upd-rcvd-undelegated? yang:counter32 | | +---- num-upd-rcvd-undelegated? yang:counter32 | |||
| | +-- num-upd-rcvd-error-sent? yang:counter32 | | +---- num-upd-rcvd-error-sent? yang:counter32 | |||
| | +-- initiation {p:pce-initiated}? | | +---- initiation {p:pce-initiated}? | |||
| | +-- num-pcinitiate-sent? yang:counter32 | | +---- num-pcinitiate-sent? yang:counter32 | |||
| | +-- num-pcinitiate-rcvd? yang:counter32 | | +---- num-pcinitiate-rcvd? yang:counter32 | |||
| | +-- num-initiate-sent? yang:counter32 | | +---- num-initiate-sent? yang:counter32 | |||
| | +-- num-initiate-rcvd? yang:counter32 | | +---- num-initiate-rcvd? yang:counter32 | |||
| | +-- num-initiate-rcvd-error-sent? yang:counter32 | | +---- num-initiate-rcvd-error-sent? yang:counter32 | |||
| +-- path-key {p:path-key}? | +---- path-key {p:path-key}? | |||
| +-- num-unknown-path-key? yang:counter32 | +---- num-unknown-path-key? yang:counter32 | |||
| +-- num-exp-path-key? yang:counter32 | +---- num-exp-path-key? yang:counter32 | |||
| +-- num-dup-path-key? yang:counter32 | +---- num-dup-path-key? yang:counter32 | |||
| +-- num-path-key-no-attempt? yang:counter32 | +---- num-path-key-no-attempt? yang:counter32 | |||
| 7. Advanced PCE Features | 7. Advanced PCE Features | |||
| This document contains a specification of the base PCEP YANG module, | This document contains a specification of the base PCEP YANG module, | |||
| "ietf-pcep" which provides the basic PCEP [RFC5440] data model. | "ietf-pcep" which provides the basic PCEP [RFC5440] data model. | |||
| This document further handles advanced PCE features like - | This document further handles advanced PCE features like - | |||
| o Capability and Scope | o Capability and Scope | |||
| o Domain information (local/neighbour) | o Domain information (local/neighbour) | |||
| o Path-Key | o Path-Key | |||
| o OF | o OF | |||
| o GCO | o GCO | |||
| skipping to change at page 29, line 31 ¶ | skipping to change at page 29, line 38 ¶ | |||
| PCEP session is started.. | PCEP session is started.. | |||
| 10. PCEP YANG Modules | 10. PCEP YANG Modules | |||
| 10.1. ietf-pcep module | 10.1. ietf-pcep module | |||
| RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | |||
| actual RFC number and all occurrences of the revision date below with | actual RFC number and all occurrences of the revision date below with | |||
| the date of RFC publication (and remove this note). | the date of RFC publication (and remove this note). | |||
| <CODE BEGINS> file "ietf-pcep@2018-06-22.yang" | <CODE BEGINS> file "ietf-pcep@2018-10-15.yang" | |||
| module ietf-pcep { | module ietf-pcep { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; | namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; | |||
| prefix pcep; | prefix pcep; | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| reference "RFC 6991"; | reference "RFC 6991"; | |||
| skipping to change at page 30, line 4 ¶ | skipping to change at page 30, line 11 ¶ | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix "yang"; | prefix "yang"; | |||
| reference "RFC 6991"; | reference "RFC 6991"; | |||
| } | } | |||
| import ietf-te { | import ietf-te { | |||
| prefix "te"; | prefix "te"; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| } | } | |||
| import ietf-te-types { | import ietf-te-types { | |||
| prefix "te-types"; | prefix "te-types"; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| } | } | |||
| import ietf-key-chain { | import ietf-key-chain { | |||
| prefix "key-chain"; | prefix "key-chain"; | |||
| reference "RFC 8177"; | reference "RFC 8177"; | |||
| } | } | |||
| import ietf-netconf-acm { | import ietf-netconf-acm { | |||
| prefix "nacm"; | prefix "nacm"; | |||
| reference "RFC 8341"; | reference "RFC 6536"; | |||
| } | } | |||
| import ietf-tls-server { | import ietf-tls-server { | |||
| prefix "tls-server"; | prefix "tls-server"; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| } | } | |||
| import ietf-tls-client { | import ietf-tls-client { | |||
| prefix "tls-client"; | prefix "tls-client"; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| skipping to change at page 31, line 10 ¶ | skipping to change at page 31, line 18 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
| RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
| revision 2018-06-22 { | revision 2018-10-15 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Path Computation | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol | Element Communications Protocol | |||
| (PCEP)"; | (PCEP)"; | |||
| } | } | |||
| /* | /* | |||
| * Identities | * Identities | |||
| */ | */ | |||
| skipping to change at page 34, line 50 ¶ | skipping to change at page 35, line 10 ¶ | |||
| } | } | |||
| description | description | |||
| "The current state of the session. | "The current state of the session. | |||
| The set of possible states excludes the idle state | The set of possible states excludes the idle state | |||
| since entries do not exist in the idle state. | since entries do not exist in the idle state. | |||
| Takes one of the following values | Takes one of the following values | |||
| - tcp-pending(1): PCEP TCP Pending state | - tcp-pending(1): PCEP TCP Pending state | |||
| - open-wait(2): PCEP Open Wait state | - open-wait(2): PCEP Open Wait state | |||
| - keep-wait(3): PCEP Keep Wait state | - keep-wait(3): PCEP Keep Wait state | |||
| - session-up(4): PCEP Session Up state"; | - session-up(4): PCEP Session Up state"; | |||
| reference | ||||
| "RFC 5440"; | ||||
| } | } | |||
| typedef domain-type { | typedef domain-type { | |||
| type enumeration { | type enumeration { | |||
| enum ospf-area { | enum ospf-area { | |||
| value "1"; | value "1"; | |||
| description | description | |||
| "The OSPF area."; | "The OSPF area."; | |||
| } | } | |||
| enum isis-area { | enum isis-area { | |||
| skipping to change at page 36, line 42 ¶ | skipping to change at page 37, line 4 ¶ | |||
| being released."; | being released."; | |||
| } | } | |||
| enum going-up { | enum going-up { | |||
| value "4"; | value "4"; | |||
| description | description | |||
| "LSP is being signalled."; | "LSP is being signalled."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "The operational status of the LSP"; | "The operational status of the LSP"; | |||
| } | ||||
| typedef lsp-error { | ||||
| type enumeration { | ||||
| 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."; | ||||
| } | } | |||
| typedef sync-state { | typedef sync-state { | |||
| type enumeration { | type enumeration { | |||
| enum pending { | enum pending { | |||
| value "0"; | value "0"; | |||
| description | description | |||
| "The state synchronization | "The state synchronization | |||
| has not started."; | has not started."; | |||
| } | } | |||
| skipping to change at page 38, line 26 ¶ | skipping to change at page 37, line 33 ¶ | |||
| description | description | |||
| "The state synchronization | "The state synchronization | |||
| is finished."; | is finished."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "The LSP-DB state synchronization operational | "The LSP-DB state synchronization operational | |||
| status."; | status."; | |||
| } | } | |||
| typedef pst{ | ||||
| type enumeration{ | ||||
| enum rsvp-te{ | ||||
| value "0"; | ||||
| description | ||||
| "RSVP-TE signaling protocol"; | ||||
| } | ||||
| enum sr{ | ||||
| value "1"; | ||||
| description | ||||
| "Segment Routing Traffic Engineering"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The Path Setup Type"; | ||||
| } | ||||
| typedef assoc-type{ | ||||
| type enumeration{ | ||||
| enum protection{ | ||||
| value "1"; | ||||
| description | ||||
| "Path Protection Association Type"; | ||||
| } | ||||
| enum policy{ | ||||
| value "2"; | ||||
| description | ||||
| "Policy Association Type"; | ||||
| } | ||||
| enum double-bidir{ | ||||
| value "3"; | ||||
| description | ||||
| "Double-Sided Bidirectional | ||||
| Association Type"; | ||||
| } | ||||
| enum single-bidir{ | ||||
| value "4"; | ||||
| description | ||||
| "Single-Sided Bidirectional | ||||
| Association Type"; | ||||
| } | ||||
| enum diversity{ | ||||
| value "5"; | ||||
| description | ||||
| "Diversity Association Type"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The PCEP Association Type"; | ||||
| } | ||||
| typedef objective-function{ | ||||
| type enumeration{ | ||||
| enum mcp{ | ||||
| value "1"; | ||||
| description | ||||
| "Minimum Cost Path (MCP)"; | ||||
| } | ||||
| enum mlp{ | ||||
| value "2"; | ||||
| description | ||||
| "Minimum Load Path (MLP)"; | ||||
| } | ||||
| enum mbp{ | ||||
| value "3"; | ||||
| description | ||||
| "Maximum residual Bandwidth Path (MBP)"; | ||||
| } | ||||
| enum mbc{ | ||||
| value "4"; | ||||
| description | ||||
| "Minimize aggregate Bandwidth Consumption | ||||
| (MBC)"; | ||||
| } | ||||
| enum mll{ | ||||
| value "5"; | ||||
| description | ||||
| "Minimize the Load of the most loaded Link | ||||
| (MLL)"; | ||||
| } | ||||
| enum mcc{ | ||||
| value "6"; | ||||
| description | ||||
| "Minimize the Cumulative Cost of a set of | ||||
| paths (MCC)"; | ||||
| } | ||||
| enum spt{ | ||||
| value "7"; | ||||
| description | ||||
| "Shortest Path Tree (SPT)"; | ||||
| } | ||||
| enum mct{ | ||||
| value "8"; | ||||
| description | ||||
| "Minimum Cost Tree (MCT)"; | ||||
| } | ||||
| enum mplp{ | ||||
| value "9"; | ||||
| description | ||||
| "Minimum Packet Loss Path (MPLP)"; | ||||
| } | ||||
| enum mup{ | ||||
| value "10"; | ||||
| description | ||||
| "Maximum Under-Utilized Path (MUP)"; | ||||
| } | ||||
| enum mrup{ | ||||
| value "11"; | ||||
| description | ||||
| "Maximum Reserved Under-Utilized Path | ||||
| (MRUP)"; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The PCEP Objective functions"; | ||||
| reference | ||||
| "RFC 5541"; | ||||
| } | ||||
| /* | /* | |||
| * Features | * Features | |||
| */ | */ | |||
| feature svec { | feature svec { | |||
| description | description | |||
| "Support synchronized path computation."; | "Support synchronized path computation."; | |||
| reference | reference | |||
| "RFC 5440"; | "RFC 5440"; | |||
| } | } | |||
| skipping to change at page 42, line 36 ¶ | skipping to change at page 39, line 20 ¶ | |||
| feature sr { | feature sr { | |||
| description | description | |||
| "Support Segment Routing for PCE."; | "Support Segment Routing for PCE."; | |||
| } | } | |||
| feature association { | feature association { | |||
| description | description | |||
| "Support Association in PCEP."; | "Support Association in PCEP."; | |||
| } | } | |||
| /* | ||||
| * Identities | ||||
| */ | ||||
| identity lsp-error { | ||||
| if-feature stateful; | ||||
| description | ||||
| "Base LSP error"; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity no-error-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "No error, LSP is fine."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity unknown-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "Unknown reason."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity limit-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "Limit reached for PCE-controlled LSPs."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity pending-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "Too many pending LSP update requests."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity unacceptable-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "Unacceptable parameters."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity internal-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "Internal error."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity admin-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "LSP administratively brought down."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity preempted-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "LSP preempted."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| identity rsvp-lsp-error { | ||||
| base lsp-error; | ||||
| if-feature stateful; | ||||
| description | ||||
| "RSVP signaling error."; | ||||
| reference "RFC8231"; | ||||
| } | ||||
| /* | /* | |||
| * Groupings | * Groupings | |||
| */ | */ | |||
| grouping pcep-entity-info{ | grouping pcep-entity-info{ | |||
| description | description | |||
| "This grouping defines the attributes for PCEP entity."; | "This grouping defines the attributes for PCEP entity."; | |||
| leaf connect-timer { | leaf connect-timer { | |||
| type uint32 { | type uint32 { | |||
| range "1..65535"; | range "1..65535"; | |||
| } | } | |||
| skipping to change at page 53, line 29 ¶ | skipping to change at page 51, line 52 ¶ | |||
| } | } | |||
| container sr{ | container sr{ | |||
| if-feature sr; | if-feature sr; | |||
| description | description | |||
| "If segment routing is supported"; | "If segment routing is supported"; | |||
| leaf enabled{ | leaf enabled{ | |||
| type boolean; | type boolean; | |||
| description | description | |||
| "Enabled or Disabled"; | "Enabled or Disabled"; | |||
| } | } | |||
| leaf msd{ | ||||
| type uint8; | ||||
| description | ||||
| "Maximum SID Depth"; | ||||
| } | ||||
| leaf msd-limit{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "True indicates no limit on MSD, the | ||||
| leaf msd is ignored"; | ||||
| } | ||||
| leaf nai{ | ||||
| type boolean; | ||||
| default false; | ||||
| description | ||||
| "True indicates capability to resolve NAI | ||||
| to SID"; | ||||
| } | ||||
| } | } | |||
| }//capability | }//capability | |||
| grouping info{ | grouping info{ | |||
| description | description | |||
| "This grouping specifies all information which | "This grouping specifies all information which | |||
| maybe relevant to both PCC and PCE. | maybe relevant to both PCC and PCE. | |||
| This information corresponds to PCE auto-discovery | This information corresponds to PCE auto-discovery | |||
| information."; | information."; | |||
| skipping to change at page 58, line 7 ¶ | skipping to change at page 56, line 48 ¶ | |||
| reference to the PCEP peer where the LSP | reference to the PCEP peer where the LSP | |||
| is initiated"; | is initiated"; | |||
| } | } | |||
| } | } | |||
| leaf symbolic-path-name{ | leaf symbolic-path-name{ | |||
| type string; | type string; | |||
| description | description | |||
| "The symbolic path name associated with the LSP."; | "The symbolic path name associated with the LSP."; | |||
| } | } | |||
| leaf last-error{ | leaf last-error{ | |||
| type lsp-error; | type identityref { | |||
| base lsp-error; | ||||
| } | ||||
| description | description | |||
| "The last error for the LSP."; | "The last error for the LSP."; | |||
| } | } | |||
| leaf pst{ | leaf pst{ | |||
| type pst; | type identityref{ | |||
| default "rsvp-te"; | base te-types:path-signaling-type; | |||
| } | ||||
| default "te-types:path-setup-rsvp"; | ||||
| description | description | |||
| "The Path Setup Type"; | "The Path Setup Type"; | |||
| } | } | |||
| }//lsp-state | }//lsp-state | |||
| grouping notification-instance-hdr { | grouping notification-instance-hdr { | |||
| description | description | |||
| "This group describes common instance specific data | "This group describes common instance specific data | |||
| skipping to change at page 60, line 31 ¶ | skipping to change at page 59, line 27 ¶ | |||
| } | } | |||
| case auth-key { | case auth-key { | |||
| leaf crypto-algorithm { | leaf crypto-algorithm { | |||
| type identityref { | type identityref { | |||
| base key-chain:crypto-algorithm; | base key-chain:crypto-algorithm; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Cryptographic algorithm associated with key."; | "Cryptographic algorithm associated with key."; | |||
| } | } | |||
| container key-string { | leaf key { | |||
| description | ||||
| "The key string."; | ||||
| nacm:default-deny-all; | nacm:default-deny-all; | |||
| choice key-string-style { | type string; | |||
| description | description | |||
| "Key string styles"; | "This leaf specifies the authentication key."; | |||
| case keystring { | ||||
| leaf keystring { | ||||
| type string; | ||||
| description | ||||
| "Key string in ASCII format."; | ||||
| } | ||||
| } | ||||
| case hexadecimal { | ||||
| if-feature "key-chain:hex-key-string"; | ||||
| leaf hexadecimal-string { | ||||
| type yang:hex-string; | ||||
| description | ||||
| "Key in hexadecimal string format. When | ||||
| compared to ASCII, specification in | ||||
| hexadecimal affords greater key | ||||
| entropy with the same number of | ||||
| octets. Additionally, it discourages | ||||
| usage of well-known words or | ||||
| numbers."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | } | |||
| } | } | |||
| case auth-tls { | case auth-tls { | |||
| if-feature tls; | if-feature tls; | |||
| choice role{ | choice role{ | |||
| description | description | |||
| "The role of the local entity"; | "The role of the local entity"; | |||
| case server { | case server { | |||
| container tls-server { | container tls-server { | |||
| uses tls-server:tls-server-grouping { | uses tls-server:tls-server-grouping { | |||
| skipping to change at page 62, line 47 ¶ | skipping to change at page 61, line 20 ¶ | |||
| the Confidential Path Segment (CPS) within | the Confidential Path Segment (CPS) within | |||
| the context of the PCE"; | the context of the PCE"; | |||
| } | } | |||
| container cps { | container cps { | |||
| description | description | |||
| "The Confidential Path Segment (CPS)"; | "The Confidential Path Segment (CPS)"; | |||
| list explicit-route-objects { | list explicit-route-objects { | |||
| key "index"; | key "index"; | |||
| description | description | |||
| "List of explicit route objects"; | "List of explicit route objects"; | |||
| leaf index { | ||||
| type uint32; | ||||
| description | ||||
| "ERO subobject index"; | ||||
| } | ||||
| uses te-types:explicit-route-hop; | uses te-types:explicit-route-hop; | |||
| } | } | |||
| } | } | |||
| leaf pcc-original { | leaf pcc-original { | |||
| type leafref { | type leafref { | |||
| path "/pcep/entity/peers/peer/addr"; | path "/pcep/entity/peers/peer/addr"; | |||
| } | } | |||
| description | description | |||
| "Reference to PCC peer address of | "Reference to PCC peer address of | |||
| the original request"; | the original request"; | |||
| skipping to change at page 64, line 20 ¶ | skipping to change at page 62, line 45 ¶ | |||
| grouping of-list { | grouping of-list { | |||
| description "List of OF"; | description "List of OF"; | |||
| list objective-function{ | list objective-function{ | |||
| key "of"; | key "of"; | |||
| description | description | |||
| "The list of authorized OF"; | "The list of authorized OF"; | |||
| leaf of { | leaf of { | |||
| type objective-function; | type identityref{ | |||
| base te-types:objective-function-type; | ||||
| } | ||||
| description | description | |||
| "The OF authorized"; | "The OF authorized"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping pst-list { | grouping pst-list { | |||
| description "List of PST"; | description "List of PST"; | |||
| list path-setup-type{ | list path-setup-type{ | |||
| key "pst"; | key "pst"; | |||
| description | description | |||
| "The list of authorized PST"; | "The list of authorized PST"; | |||
| leaf pst { | leaf pst { | |||
| type pst; | type identityref{ | |||
| base te-types:path-signaling-type; | ||||
| } | ||||
| description | description | |||
| "The PST authorized"; | "The PST authorized"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping assoc-type-list { | grouping assoc-type-list { | |||
| description "List of Association Type"; | description "List of Association Type"; | |||
| list assoc-type{ | list assoc-type{ | |||
| key "at"; | key "at"; | |||
| description | description | |||
| "The list of authorized association | "The list of authorized association | |||
| types"; | types"; | |||
| leaf at { | leaf at { | |||
| type assoc-type; | type identityref { | |||
| base te-types:association-type; | ||||
| } | ||||
| description | description | |||
| "The association type authorized"; | "The association type authorized"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping association { | grouping association { | |||
| description | description | |||
| "Generic Association parameters"; | "Generic Association parameters"; | |||
| leaf type { | leaf type { | |||
| type "assoc-type"; | type identityref { | |||
| base te-types:association-type; | ||||
| } | ||||
| description | description | |||
| "The PCEP association type"; | "The PCEP association type"; | |||
| } | } | |||
| leaf id { | leaf id { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "PCEP Association ID"; | "PCEP Association ID"; | |||
| } | } | |||
| leaf source { | leaf source { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "PCEP Association Source."; | "PCEP Association Source."; | |||
| skipping to change at page 87, line 18 ¶ | skipping to change at page 86, line 4 ¶ | |||
| input { | input { | |||
| leaf pcc { | leaf pcc { | |||
| type leafref { | type leafref { | |||
| path "/pcep/entity/peers/peer/addr"; | path "/pcep/entity/peers/peer/addr"; | |||
| } | } | |||
| description | description | |||
| "The IP address to identify the PCC. The state | "The IP address to identify the PCC. The state | |||
| syncronization is re-triggered for all LSPs from | syncronization is re-triggered for all LSPs from | |||
| the PCC. The rpc on the PCC will be ignored."; | the PCC. The rpc on the PCC will be ignored."; | |||
| } | } | |||
| } | } | |||
| }//rpc | }//rpc | |||
| }//module | }//module | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 10.2. ietf-pcep-stats module | 10.2. ietf-pcep-stats module | |||
| <CODE BEGINS> file "ietf-pcep-stats@2018-06-22.yang" | <CODE BEGINS> file "ietf-pcep-stats@2018-10-15.yang" | |||
| module ietf-pcep-stats { | module ietf-pcep-stats { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; | namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; | |||
| prefix ps; | prefix ps; | |||
| import ietf-pcep { | import ietf-pcep { | |||
| prefix p; | prefix p; | |||
| reference "RFC XXXX"; | ||||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix "yang"; | prefix "yang"; | |||
| reference "RFC 6991"; | reference "RFC 6991"; | |||
| } | } | |||
| organization | organization | |||
| "IETF PCE (Path Computation Element) Working Group"; | "IETF PCE (Path Computation Element) Working Group"; | |||
| skipping to change at page 88, line 24 ¶ | skipping to change at page 87, line 13 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
| RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
| revision 2018-06-22 { | revision 2018-10-15 { | |||
| description "Initial revision."; | description "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Path Computation | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol | Element Communications Protocol | |||
| (PCEP)"; | (PCEP)"; | |||
| } | } | |||
| /* | /* | |||
| * Groupings | * Groupings | |||
| */ | */ | |||
| skipping to change at page 107, line 39 ¶ | skipping to change at page 106, line 28 ¶ | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 11. Security Considerations | 11. Security Considerations | |||
| The YANG module defined in this document is designed to be accessed | The YANG module defined in this document is designed to be accessed | |||
| via network management protocol such as NETCONF [RFC6241] or RESTCONF | via network management protocol such as NETCONF [RFC6241] or RESTCONF | |||
| [RFC8040]. The lowest NETCONF layer is the secure transport layer | [RFC8040]. The lowest NETCONF layer is the secure transport layer | |||
| and the mandatory-to-implement secure transport is SSH [RFC6242]. | and the mandatory-to-implement secure transport is SSH [RFC6242]. | |||
| The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement | The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement | |||
| secure transport is TLS [RFC5246] | secure transport is TLS [RFC8446] | |||
| The NETCONF access control model [RFC8341] provides the means to | The NETCONF access control model [RFC8341] provides the means to | |||
| restrict access for particular NETCONF or RESTCONF users to a pre- | restrict access for particular NETCONF or RESTCONF users to a pre- | |||
| configured subset of all available NETCONF or RESTCONF protocol | configured subset of all available NETCONF or RESTCONF protocol | |||
| operations and content. | operations and content. | |||
| There are a number of data nodes defined in the YANG module which are | There are a number of data nodes defined in the YANG module which are | |||
| writable/creatable/deletable (i.e., config true, which is the | writable/creatable/deletable (i.e., config true, which is the | |||
| default). These data nodes may be considered sensitive or vulnerable | default). These data nodes may be considered sensitive or vulnerable | |||
| in some network environments. Write operations (e.g., <edit-config>) | in some network environments. Write operations (e.g., <edit-config>) | |||
| skipping to change at page 109, line 33 ¶ | skipping to change at page 108, line 23 ¶ | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | |||
| Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
| DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
| <https://www.rfc-editor.org/info/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | ||||
| (TLS) Protocol Version 1.2", RFC 5246, | ||||
| DOI 10.17487/RFC5246, August 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5246>. | ||||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
| <https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
| Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
| <https://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc6991>. | <https://www.rfc-editor.org/info/rfc6991>. | |||
| [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | ||||
| RFC 7950, DOI 10.17487/RFC7950, August 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7950>. | ||||
| [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. | |||
| Zhang, "YANG Data Model for Key Chains", RFC 8177, | Zhang, "YANG Data Model for Key Chains", RFC 8177, | |||
| DOI 10.17487/RFC8177, June 2017, | DOI 10.17487/RFC8177, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8177>. | <https://www.rfc-editor.org/info/rfc8177>. | |||
| [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
| Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
| <https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| skipping to change at page 110, line 43 ¶ | skipping to change at page 109, line 30 ¶ | |||
| [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
| BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
| [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
| Access Control Model", STD 91, RFC 8341, | Access Control Model", STD 91, RFC 8341, | |||
| DOI 10.17487/RFC8341, March 2018, | DOI 10.17487/RFC8341, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8341>. | <https://www.rfc-editor.org/info/rfc8341>. | |||
| [I-D.ietf-pce-lsp-setup-type] | [RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. | |||
| Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. | Hardwick, "Conveying Path Setup Type in PCE Communication | |||
| Hardwick, "Conveying path setup type in PCEP messages", | Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408, | |||
| draft-ietf-pce-lsp-setup-type-10 (work in progress), May | July 2018, <https://www.rfc-editor.org/info/rfc8408>. | |||
| 2018. | ||||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8446>. | ||||
| [I-D.ietf-pce-segment-routing] | [I-D.ietf-pce-segment-routing] | |||
| Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | |||
| and J. Hardwick, "PCEP Extensions for Segment Routing", | and J. Hardwick, "PCEP Extensions for Segment Routing", | |||
| draft-ietf-pce-segment-routing-11 (work in progress), | draft-ietf-pce-segment-routing-14 (work in progress), | |||
| November 2017. | October 2018. | |||
| [I-D.ietf-teas-yang-te] | [I-D.ietf-teas-yang-te] | |||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and | Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and | |||
| I. Bryskin, "A YANG Data Model for Traffic Engineering | I. Bryskin, "A YANG Data Model for Traffic Engineering | |||
| Tunnels and Interfaces", draft-ietf-teas-yang-te-15 (work | Tunnels and Interfaces", draft-ietf-teas-yang-te-16 (work | |||
| in progress), June 2018. | in progress), July 2018. | |||
| [I-D.ietf-netconf-tls-client-server] | [I-D.ietf-netconf-tls-client-server] | |||
| Watsen, K. and G. Wu, "YANG Groupings for TLS Clients and | Watsen, K. and G. Wu, "YANG Groupings for TLS Clients and | |||
| TLS Servers", draft-ietf-netconf-tls-client-server-06 | TLS Servers", draft-ietf-netconf-tls-client-server-07 | |||
| (work in progress), June 2018. | (work in progress), September 2018. | |||
| 14.2. Informative References | 14.2. Informative References | |||
| [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | |||
| Element (PCE)-Based Architecture", RFC 4655, | Element (PCE)-Based Architecture", RFC 4655, | |||
| DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
| <https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
| [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | |||
| Hardwick, "Path Computation Element Communication Protocol | Hardwick, "Path Computation Element Communication Protocol | |||
| End of changes. 48 change blocks. | ||||
| 999 lines changed or deleted | 941 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/ | ||||