| < draft-ietf-pce-pcep-yang-03.txt | draft-ietf-pce-pcep-yang-04.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 31, 2017 Metaswitch | Expires: January 1, 2018 Metaswitch | |||
| V. Beeram | V. Beeram | |||
| Juniper Networks | Juniper Networks | |||
| J. Tantsura | J. Tantsura | |||
| June 29, 2017 | June 30, 2017 | |||
| 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-03 | draft-ietf-pce-pcep-yang-04 | |||
| 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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on December 31, 2017. | This Internet-Draft will expire on January 1, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 20 ¶ | skipping to change at page 2, line 20 ¶ | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | |||
| 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6 | 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6 | |||
| 5.1. The Entity . . . . . . . . . . . . . . . . . . . . . . . 15 | 5.1. The Entity . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5.2. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 15 | 5.2. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5.3. The Session Lists . . . . . . . . . . . . . . . . . . . . 16 | 5.3. The Session Lists . . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.4. Notifications . . . . . . . . . . . . . . . . . . . . . . 16 | 5.4. Notifications . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.5. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 5.5. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 16 | 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 15 | |||
| 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 19 | 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 18 | |||
| 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 20 | 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 19 | |||
| 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 20 | 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 19 | |||
| 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 20 | 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 19 | |||
| 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 20 | 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 19 | |||
| 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 20 | 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 19 | |||
| 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 21 | 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 21 | 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 20 | |||
| 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 77 | 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 76 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 97 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 96 | |||
| 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 98 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 97 | |||
| 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 98 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 97 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 98 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 98 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 98 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 98 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 100 | 14.2. Informative References . . . . . . . . . . . . . . . . . 99 | |||
| Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 102 | Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 101 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 103 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 102 | |||
| 1. Introduction | 1. Introduction | |||
| The Path Computation Element (PCE) defined in [RFC4655] is an entity | The Path Computation Element (PCE) defined in [RFC4655] is an entity | |||
| that is capable of computing a network path or route based on a | that is capable of computing a network path or route based on a | |||
| network graph, and applying computational constraints. A Path | network graph, and applying computational constraints. A Path | |||
| Computation Client (PCC) may make requests to a PCE for paths to be | Computation Client (PCC) may make requests to a PCE for paths to be | |||
| computed. | computed. | |||
| PCEP is the communication protocol between a PCC and PCE and is | PCEP is the communication protocol between a PCC and PCE and is | |||
| skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 5 ¶ | |||
| data model. | data model. | |||
| o It should be fairly straightforward to augment the base data model | o It should be fairly straightforward to augment the base data model | |||
| for advanced PCE features. | for advanced PCE features. | |||
| 5. The Design of PCEP Data Model | 5. The Design of PCEP Data Model | |||
| The module, "ietf-pcep", defines the basic components of a PCE | The module, "ietf-pcep", defines the basic components of a PCE | |||
| speaker. | speaker. | |||
| module: ietf-pcep | module: ietf-pcep | |||
| +--rw pcep! | +--rw pcep! | |||
| +--rw entity | +--rw entity | |||
| +--rw addr inet:ip-address | +--rw addr inet:ip-address | |||
| +--rw enabled? boolean | +--rw enabled? boolean | |||
| +--rw role pcep-role | +--rw role pcep-role | |||
| +--rw description? string | +--rw description? string | |||
| +--rw 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 | | | +--rw pce-initiated? boolean | |||
| | | | {pce-initiated}? | | | | {pce-initiated}? | |||
| | | +--rw include-db-ver? boolean | | | +--rw include-db-ver? boolean | |||
| | | | {stateful-sync-opt}? | | | | {stateful-sync-opt}? | |||
| | | +--rw trigger-resync? boolean | | | +--rw trigger-resync? boolean | |||
| | | | {stateful-sync-opt}? | | | | {stateful-sync-opt}? | |||
| | | +--rw trigger-initial-sync? boolean | | | +--rw trigger-initial-sync? boolean | |||
| | | | {stateful-sync-opt}? | | | | {stateful-sync-opt}? | |||
| | | +--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 pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw intra-area-scope? boolean | | | +--rw intra-area-scope? boolean | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-scope? boolean | | | +--rw inter-area-scope? boolean | |||
| | | +--rw inter-area-scope-default? boolean | | | +--rw inter-area-scope-default? boolean | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-as-scope? boolean | | | +--rw inter-as-scope? boolean | |||
| | | +--rw inter-as-scope-default? boolean | | | +--rw inter-as-scope-default? boolean | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-layer-scope? boolean | | | +--rw inter-layer-scope? boolean | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | +--rw neigh-domains | | +--rw neigh-domains | |||
| | | +--rw domain* [domain-type domain] | | | +--rw domain* [domain-type domain] | |||
| | | +--rw domain-type domain-type | | | +--rw domain-type domain-type | |||
| | | +--rw domain domain | | | +--rw domain domain | |||
| | +--rw path-key {path-key}? | | +--rw path-key {path-key}? | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw discard-timer? uint32 | | +--rw discard-timer? uint32 | |||
| | +--rw reuse-time? uint32 | | +--rw reuse-time? uint32 | |||
| | +--rw pce-id? inet:ip-address | | +--rw pce-id? inet:ip-address | |||
| +--rw (auth-type-selection)? | +--rw connect-timer? uint32 | |||
| | +--:(auth-key-chain) | +--rw connect-max-retry? uint32 | |||
| | | +--rw key-chain? | +--rw init-backoff-timer? uint32 | |||
| | | key-chain:key-chain-ref | +--rw max-backoff-timer? uint32 | |||
| | +--:(auth-key) | +--rw open-wait-timer? uint32 | |||
| | | +--rw crypto-algorithm identityref | +--rw keep-wait-timer? uint32 | |||
| | | +--rw key-string | +--rw keep-alive-timer? uint32 | |||
| | | +--rw (key-string-style)? | +--rw dead-timer? uint32 | |||
| | | +--:(keystring) | +--rw allow-negotiation? boolean | |||
| | | | +--rw keystring? string | +--rw max-keep-alive-timer? uint32 | |||
| | | +--:(hexadecimal) | +--rw max-dead-timer? uint32 | |||
| | | {key-chain:hex-key-string}? | +--rw min-keep-alive-timer? uint32 | |||
| | | +--rw hexadecimal-string? | +--rw min-dead-timer? uint32 | |||
| | | yang:hex-string | +--rw sync-timer? uint32 {svec}? | |||
| | +--:(auth-tls) {tls}? | +--rw request-timer? uint32 | |||
| | +--rw tls-pce | +--rw max-sessions? uint32 | |||
| | | +--rw certificates | +--rw max-unknown-reqs? uint32 | |||
| | | | +--rw certificate* [name] | +--rw max-unknown-msgs? uint32 | |||
| | | | +--rw name leafref | +--rw pcep-notification-max-rate uint32 | |||
| | | +--rw client-auth | +--rw stateful-parameter {stateful}? | |||
| | | | +--rw trusted-ca-certs? leafref | | +--rw state-timeout? uint32 | |||
| | | | +--rw trusted-client-certs? leafref | | +--rw redelegation-timeout? uint32 | |||
| | | +--rw hello-params | | +--rw rpt-non-pcep-lsp? boolean | |||
| | | {tls-server-hello-params-config}? | +--rw of-list {objective-function}? | |||
| | | +--rw tls-versions | | +--rw objective-function* [of] | |||
| | | | +--rw tls-version* identityref | | +--rw of objective-function | |||
| | | +--rw cipher-suites | +--ro lsp-db {stateful}? | |||
| | | +--rw cipher-suite* identityref | | +--ro db-ver? uint64 | |||
| | +--rw tls-pcc | | | {stateful-sync-opt}? | |||
| | +--rw server-auth | | +--ro association-list* | |||
| | | +--rw trusted-ca-certs? leafref | | | [id source global-source extended-id] | |||
| | | +--rw trusted-server-certs? leafref | | | +--ro type? assoc-type | |||
| | +--rw client-auth | | | +--ro id uint16 | |||
| | | +--rw (auth-type)? | | | +--ro source inet:ip-address | |||
| | | +--:(certificate) | | | +--ro global-source uint32 | |||
| | | +--rw certificate? leafref | | | +--ro extended-id string | |||
| | +--rw hello-params | | | +--ro lsp* [plsp-id pcc-id] | |||
| | {tls-client-hello-params-config}? | | | +--ro plsp-id | |||
| | +--rw tls-versions | | | | -> /pcep/entity/lsp-db/lsp/plsp-id | |||
| | | +--rw tls-version* identityref | | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | |||
| | +--rw cipher-suites | | +--ro lsp* [plsp-id pcc-id] | |||
| | +--rw cipher-suite* identityref | | +--ro plsp-id uint32 | |||
| +--rw connect-timer? uint32 | | +--ro pcc-id inet:ip-address | |||
| +--rw connect-max-retry? uint32 | | +--ro lsp-ref | |||
| +--rw init-backoff-timer? uint32 | | | +--ro source? | |||
| +--rw max-backoff-timer? uint32 | | | | -> /te:te/lsps-state/lsp/source | |||
| +--rw open-wait-timer? uint32 | | | +--ro destination? | |||
| +--rw keep-wait-timer? uint32 | | | | -> /te:te/lsps-state/lsp/destination | |||
| +--rw keep-alive-timer? uint32 | | | +--ro tunnel-id? | |||
| +--rw dead-timer? uint32 | | | | -> /te:te/lsps-state/lsp/tunnel-id | |||
| +--rw allow-negotiation? boolean | | | +--ro lsp-id? | |||
| +--rw max-keep-alive-timer? uint32 | | | | -> /te:te/lsps-state/lsp/lsp-id | |||
| +--rw max-dead-timer? uint32 | | | +--ro extended-tunnel-id? leafref | |||
| +--rw min-keep-alive-timer? uint32 | | | +--ro type? | |||
| +--rw min-dead-timer? uint32 | | | -> /te:te/lsps-state/lsp/type | |||
| +--rw sync-timer? uint32 {svec}? | | +--ro admin-state? boolean | |||
| +--rw request-timer? uint32 | | +--ro operational-state? operational-state | |||
| +--rw max-sessions? uint32 | | +--ro delegated | |||
| +--rw max-unknown-reqs? uint32 | | | +--ro enabled? boolean | |||
| +--rw max-unknown-msgs? uint32 | | | +--ro peer? -> /pcep/entity/peers/peer/addr | |||
| +--rw pcep-notification-max-rate uint32 | | | +--ro srp-id? uint32 | |||
| +--rw stateful-parameter {stateful}? | | +--ro initiation {pce-initiated}? | |||
| | +--rw state-timeout? uint32 | | | +--ro enabled? boolean | |||
| | +--rw redelegation-timeout? uint32 | | | +--ro peer? -> /pcep/entity/peers/peer/addr | |||
| | +--rw rpt-non-pcep-lsp? boolean | | +--ro symbolic-path-name? string | |||
| +--rw of-list {objective-function}? | | +--ro last-error? lsp-error | |||
| | +--rw objective-function* [of] | | +--ro pst? pst | |||
| | +--rw of objective-function | | +--ro association-list* | |||
| +--ro lsp-db {stateful}? | | [id source global-source extended-id] | |||
| | +--ro db-ver? uint64 | | +--ro id leafref | |||
| | | {stateful-sync-opt}? | | +--ro source leafref | |||
| | +--ro association-list* | | +--ro global-source leafref | |||
| | | [id source global-source extended-id] | | +--ro extended-id leafref | |||
| | | +--ro type? assoc-type | +--ro path-keys {path-key}? | |||
| | | +--ro id uint16 | | +--ro path-keys* [path-key] | |||
| | | +--ro source inet:ip-address | | +--ro path-key uint16 | |||
| | | +--ro global-source uint32 | | +--ro cps | |||
| | | +--ro extended-id string | | | +--ro explicit-route-objects* [index] | |||
| | | +--ro lsp* [plsp-id pcc-id] | | | +--ro explicit-route-usage? identityref | |||
| | | +--ro plsp-id | | | +--ro index uint32 | |||
| | | | -> /pcep/entity/lsp-db/lsp/plsp-id | | | +--ro (type)? | |||
| | | +--ro pcc-id | | | +--:(numbered) | |||
| | | -> /pcep/entity/lsp-db/lsp/pcc-id | | | | +--ro numbered-hop | |||
| | +--ro lsp* [plsp-id pcc-id] | | | | +--ro address? te-types:te-tp-id | |||
| | +--ro plsp-id uint32 | | | | +--ro hop-type? te-hop-type | |||
| | +--ro pcc-id inet:ip-address | | | +--:(as-number) | |||
| | +--ro lsp-ref | | | | +--ro as-number-hop | |||
| | | +--ro source? | | | | +--ro as-number? binary | |||
| | | | -> /te:te/lsps-state/lsp/source | | | | +--ro hop-type? te-hop-type | |||
| | | +--ro destination? | | | +--:(unnumbered) | |||
| | | | -> /te:te/lsps-state/lsp/destination | | | | +--ro unnumbered-hop | |||
| | | +--ro tunnel-id? | | | | +--ro node-id? | |||
| | | | -> /te:te/lsps-state/lsp/tunnel-id | | | | | te-types:te-node-id | |||
| | | +--ro lsp-id? | | | | +--ro link-tp-id? te-types:te-tp-id | |||
| | | | -> /te:te/lsps-state/lsp/lsp-id | | | | +--ro hop-type? te-hop-type | |||
| | | +--ro extended-tunnel-id? leafref | | | +--:(label) | |||
| | | +--ro type? | | | | +--ro label-hop | |||
| | | -> /te:te/lsps-state/lsp/type | | | | +--ro value? | |||
| | +--ro admin-state? boolean | | | | rt-types:generalized-label | |||
| | +--ro operational-state? operational-state | | | +--:(sid) | |||
| | +--ro delegated | | | +--ro sid-hop | |||
| | | +--ro enabled? boolean | | | +--ro sid? | |||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | | | rt-types:generalized-label | |||
| | | +--ro srp-id? uint32 | | +--ro pcc-original? | |||
| | +--ro initiation {pce-initiated}? | | | -> /pcep/entity/peers/peer/addr | |||
| | | +--ro enabled? boolean | | +--ro req-id? uint32 | |||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro retrieved? boolean | |||
| | +--ro symbolic-path-name? string | | +--ro pcc-retrieved? | |||
| | +--ro last-error? lsp-error | | | -> /pcep/entity/peers/peer/addr | |||
| | +--ro pst? pst | | +--ro creation-time? yang:timestamp | |||
| | +--ro association-list* | | +--ro discard-time? uint32 | |||
| | [id source global-source extended-id] | | +--ro reuse-time? uint32 | |||
| | +--ro id leafref | +--rw peers | |||
| | +--ro source leafref | +--rw peer* [addr] | |||
| | +--ro global-source leafref | +--rw addr inet:ip-address | |||
| | +--ro extended-id leafref | +--rw role? pcep-role | |||
| +--ro path-keys {path-key}? | +--rw description? string | |||
| | +--ro path-keys* [path-key] | +--rw domain | |||
| | +--ro path-key uint16 | | +--rw domain* [domain-type domain] | |||
| | +--ro cps | | +--rw domain-type domain-type | |||
| | | +--ro explicit-route-objects* [index] | | +--rw domain domain | |||
| | | +--ro explicit-route-usage? identityref | +--rw capability | |||
| | | +--ro index uint32 | | +--rw gmpls? boolean {gmpls}? | |||
| | | +--ro (type)? | | +--rw bi-dir? boolean | |||
| | | +--:(ip-address) | | +--rw diverse? boolean | |||
| | | | +--ro ip-address-hop | | +--rw load-balance? boolean | |||
| | | | +--ro address? inet:ip-address | | +--rw synchronize? boolean {svec}? | |||
| | | | +--ro hop-type? te-hop-type | | +--rw objective-function? boolean | |||
| | | +--:(as-number) | | | {objective-function}? | |||
| | | | +--ro as-number-hop | | +--rw add-path-constraint? boolean | |||
| | | | +--ro as-number? binary | | +--rw prioritization? boolean | |||
| | | | +--ro hop-type? te-hop-type | | +--rw multi-request? boolean | |||
| | | +--:(unnumbered-link) | | +--rw gco? boolean {gco}? | |||
| | | | +--ro unnumbered-hop | | +--rw p2mp? boolean {p2mp}? | |||
| | | | +--ro router-id? | | +--rw stateful {stateful}? | |||
| | | | | inet:ip-address | | | +--rw enabled? boolean | |||
| | | | +--ro interface-id? uint32 | | | +--rw active? boolean | |||
| | | | +--ro hop-type? te-hop-type | | | +--rw pce-initiated? boolean | |||
| | | +--:(label) | | | | {pce-initiated}? | |||
| | | | +--ro label-hop | | | +--rw include-db-ver? boolean | |||
| | | | +--ro value? | | | | {stateful-sync-opt}? | |||
| | | | rt-types:generalized-label | | | +--rw trigger-resync? boolean | |||
| | | +--:(sid) | | | | {stateful-sync-opt}? | |||
| | | +--ro sid-hop | | | +--rw trigger-initial-sync? boolean | |||
| | | +--ro sid? | | | | {stateful-sync-opt}? | |||
| | | rt-types:generalized-label | | | +--rw incremental-sync? boolean | |||
| | +--ro pcc-original? | | | {stateful-sync-opt}? | |||
| | | -> /pcep/entity/peers/peer/addr | | +--rw sr {sr}? | |||
| | +--ro req-id? uint32 | | +--rw enabled? boolean | |||
| | +--ro retrieved? boolean | +--rw pce-info | |||
| | +--ro pcc-retrieved? | | +--rw scope | |||
| | | -> /pcep/entity/peers/peer/addr | | | +--rw intra-area-scope? boolean | |||
| | +--ro creation-time? yang:timestamp | | | +--rw intra-area-pref? uint8 | |||
| | +--ro discard-time? uint32 | | | +--rw inter-area-scope? boolean | |||
| | +--ro reuse-time? uint32 | | | +--rw inter-area-scope-default? boolean | |||
| +--rw peers | | | +--rw inter-area-pref? uint8 | |||
| +--rw peer* [addr] | | | +--rw inter-as-scope? boolean | |||
| +--rw addr inet:ip-address | | | +--rw inter-as-scope-default? boolean | |||
| +--ro role? pcep-role | | | +--rw inter-as-pref? uint8 | |||
| +--rw description? string | | | +--rw inter-layer-scope? boolean | |||
| +--rw domain | | | +--rw inter-layer-pref? uint8 | |||
| | +--rw domain* [domain-type domain] | | +--rw neigh-domains | |||
| | +--rw domain-type domain-type | | +--rw domain* [domain-type domain] | |||
| | +--rw domain domain | | +--rw domain-type domain-type | |||
| +--rw capability | | +--rw domain domain | |||
| | +--rw gmpls? boolean | +--rw delegation-pref? uint8 {stateful}? | |||
| | | {gmpls}? | +--rw auth | |||
| | +--rw bi-dir? boolean | | +--rw (auth-type-selection)? | |||
| | +--rw diverse? boolean | | +--:(auth-key-chain) | |||
| | +--rw load-balance? boolean | | | +--rw key-chain? | |||
| | +--rw synchronize? boolean {svec}? | | | key-chain:key-chain-ref | |||
| | +--rw objective-function? boolean | | +--:(auth-key) | |||
| | | {objective-function}? | | | +--rw crypto-algorithm identityref | |||
| | +--rw add-path-constraint? boolean | | | +--rw key-string | |||
| | +--rw prioritization? boolean | | | +--rw (key-string-style)? | |||
| | +--rw multi-request? boolean | | | +--:(keystring) | |||
| | +--rw gco? boolean {gco}? | | | | +--rw keystring? string | |||
| | +--rw p2mp? boolean {p2mp}? | | | +--:(hexadecimal) | |||
| | +--rw stateful {stateful}? | | | {key-chain:hex-key-string}? | |||
| | | +--rw enabled? boolean | | | +--rw hexadecimal-string? | |||
| | | +--rw active? boolean | | | yang:hex-string | |||
| | | +--rw pce-initiated? boolean | | +--:(auth-tls) {tls}? | |||
| | | | {pce-initiated}? | | +--rw (role)? | |||
| | | +--rw include-db-ver? boolean | | +--:(server) | |||
| | | | {stateful-sync-opt}? | | | +--rw tls-server | |||
| | | +--rw trigger-resync? boolean | | | +--rw certificates | |||
| | | | {stateful-sync-opt}? | | | | +--rw certificate* [name] | |||
| | | +--rw trigger-initial-sync? boolean | | | | +--rw name leafref | |||
| | | | {stateful-sync-opt}? | | | +--rw client-auth | |||
| | | +--rw incremental-sync? boolean | | | | +--rw trusted-ca-certs? leafref | |||
| | | {stateful-sync-opt}? | | | | +--rw trusted-client-certs? leafref | |||
| | +--rw sr {sr}? | | | +--rw hello-params | |||
| | +--rw enabled? boolean | | | {tls-server-hello-params-config}? | |||
| +--rw pce-info | | | +--rw tls-versions | |||
| | +--rw scope | | | | +--rw tls-version* | |||
| | | +--rw intra-area-scope? boolean | | | | identityref | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw cipher-suites | |||
| | | +--rw inter-area-scope? boolean | | | +--rw cipher-suite* | |||
| | | +--rw inter-area-scope-default? boolean | | | identityref | |||
| | | +--rw inter-area-pref? uint8 | | +--:(client) | |||
| | | +--rw inter-as-scope? boolean | | +--rw tls-client | |||
| | | +--rw inter-as-scope-default? boolean | | +--rw server-auth | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw trusted-ca-certs? leafref | |||
| | | +--rw inter-layer-scope? boolean | | | +--rw trusted-server-certs? leafref | |||
| | | +--rw inter-layer-pref? uint8 | | +--rw client-auth | |||
| | +--rw neigh-domains | | | +--rw (auth-type)? | |||
| | +--rw domain* [domain-type domain] | | | +--:(certificate) | |||
| | +--rw domain-type domain-type | | | +--rw certificate? leafref | |||
| | +--rw domain domain | | +--rw hello-params | |||
| +--rw delegation-pref? uint8 {stateful}? | | {tls-client-hello-params-config}? | |||
| +--rw (auth-type-selection)? | | +--rw tls-versions | |||
| | +--:(auth-key-chain) | | | +--rw tls-version* | |||
| | | +--rw key-chain? | | | identityref | |||
| | | key-chain:key-chain-ref | | +--rw cipher-suites | |||
| | +--:(auth-key) | | +--rw cipher-suite* | |||
| | | +--rw crypto-algorithm identityref | | identityref | |||
| | | +--rw key-string | +--ro discontinuity-time? yang:timestamp | |||
| | | +--rw (key-string-style)? | +--ro initiate-session? boolean | |||
| | | +--:(keystring) | +--ro session-exists? boolean | |||
| | | | +--rw keystring? string | +--ro session-up-time? yang:timestamp | |||
| | | +--:(hexadecimal) | +--ro session-fail-time? yang:timestamp | |||
| | | {key-chain:hex-key-string}? | +--ro session-fail-up-time? yang:timestamp | |||
| | | +--rw hexadecimal-string? | +--ro sessions | |||
| | | yang:hex-string | +--ro session* [initiator] | |||
| | +--:(auth-tls) {tls}? | +--ro initiator pcep-initiator | |||
| | +--rw tls-pce | +--ro role? | |||
| | | +--rw certificates | | -> /pcep/entity/role | |||
| | | | +--rw certificate* [name] | +--ro state-last-change? yang:timestamp | |||
| | | | +--rw name leafref | +--ro state? pcep-sess-state | |||
| | | +--rw client-auth | +--ro session-creation? yang:timestamp | |||
| | | | +--rw trusted-ca-certs? leafref | +--ro connect-retry? yang:counter32 | |||
| | | | +--rw trusted-client-certs? leafref | +--ro local-id? uint32 | |||
| | | +--rw hello-params | +--ro remote-id? uint32 | |||
| | | {tls-server-hello-params-config}? | +--ro keepalive-timer? uint32 | |||
| | | +--rw tls-versions | +--ro peer-keepalive-timer? uint32 | |||
| | | | +--rw tls-version* identityref | +--ro dead-timer? uint32 | |||
| | | +--rw cipher-suites | +--ro peer-dead-timer? uint32 | |||
| | | +--rw cipher-suite* identityref | +--ro ka-hold-time-rem? uint32 | |||
| | +--rw tls-pcc | +--ro overloaded? boolean | |||
| | +--rw server-auth | +--ro overload-time? uint32 | |||
| | | +--rw trusted-ca-certs? leafref | +--ro peer-overloaded? boolean | |||
| | | +--rw trusted-server-certs? leafref | +--ro peer-overload-time? uint32 | |||
| | +--rw client-auth | +--ro lspdb-sync? sync-state | |||
| | | +--rw (auth-type)? | | {stateful}? | |||
| | | +--:(certificate) | +--ro recv-db-ver? uint64 | |||
| | | +--rw certificate? leafref | | {stateful,stateful-sync-opt}? | |||
| | +--rw hello-params | +--ro of-list {objective-function}? | |||
| | {tls-client-hello-params-config}? | | +--ro objective-function* [of] | |||
| | +--rw tls-versions | | +--ro of objective-function | |||
| | | +--rw tls-version* identityref | +--ro speaker-entity-id? string | |||
| | +--rw cipher-suites | | {stateful-sync-opt}? | |||
| | +--rw cipher-suite* identityref | +--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 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 speaker-entity-id? string | ||||
| | {stateful-sync-opt}? | ||||
| +--ro discontinuity-time? yang:timestamp | ||||
| rpcs: | rpcs: | |||
| +---x trigger-resync {stateful,stateful-sync-opt}? | +---x trigger-resync {stateful,stateful-sync-opt}? | |||
| +---w input | +---w input | |||
| +---w pcc? -> /pcep/entity/peers/peer/addr | +---w pcc? -> /pcep/entity/peers/peer/addr | |||
| notifications: | notifications: | |||
| +---n pcep-session-up | +---n pcep-session-up | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | +--ro session-initiator? leafref | | +--ro session-initiator? leafref | |||
| | +--ro state-last-change? yang:timestamp | | +--ro state-last-change? yang:timestamp | |||
| | +--ro state? pcep-sess-state | | +--ro state? pcep-sess-state | |||
| +---n pcep-session-down | +---n pcep-session-down | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | +--ro session-initiator? pcep-initiator | | +--ro session-initiator? pcep-initiator | |||
| | +--ro state-last-change? yang:timestamp | | +--ro state-last-change? yang:timestamp | |||
| | +--ro state? pcep-sess-state | | +--ro state? pcep-sess-state | |||
| +---n pcep-session-local-overload | +---n pcep-session-local-overload | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | +--ro session-initiator? leafref | | +--ro session-initiator? leafref | |||
| | +--ro overloaded? boolean | | +--ro overloaded? boolean | |||
| | +--ro overload-time? uint32 | | +--ro overload-time? uint32 | |||
| +---n pcep-session-local-overload-clear | +---n pcep-session-local-overload-clear | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | +--ro overloaded? boolean | | +--ro overloaded? boolean | |||
| +---n pcep-session-peer-overload | +---n pcep-session-peer-overload | |||
| | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| | +--ro session-initiator? leafref | | +--ro session-initiator? leafref | |||
| | +--ro peer-overloaded? boolean | | +--ro peer-overloaded? boolean | |||
| | +--ro peer-overload-time? uint32 | | +--ro peer-overload-time? uint32 | |||
| +---n pcep-session-peer-overload-clear | +---n pcep-session-peer-overload-clear | |||
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr | |||
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean | |||
| 5.1. The Entity | 5.1. The Entity | |||
| The PCEP yang module may contain status information for the local | The PCEP yang module may contain status information for the local | |||
| PCEP entity. | PCEP entity. | |||
| The entity has an IP address (using ietf-inet-types [RFC6991]) and a | The entity has an IP address (using ietf-inet-types [RFC6991]) and a | |||
| "role" leaf (the local entity PCEP role) as mandatory. | "role" leaf (the local entity PCEP role) as mandatory. | |||
| Note that, the PCEP MIB module [RFC7420] uses an entity list and a | Note that, the PCEP MIB module [RFC7420] uses an entity list and a | |||
| skipping to change at page 21, line 13 ¶ | skipping to change at page 20, line 22 ¶ | |||
| 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@2017-06-29.yang" | <CODE BEGINS> file "ietf-pcep@2017-06-30.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"; | |||
| } | } | |||
| skipping to change at page 22, line 4 ¶ | skipping to change at page 21, line 14 ¶ | |||
| prefix "nacm"; | prefix "nacm"; | |||
| } | } | |||
| import ietf-tls-server { | import ietf-tls-server { | |||
| prefix "tls-server"; | prefix "tls-server"; | |||
| } | } | |||
| import ietf-tls-client { | import ietf-tls-client { | |||
| prefix "tls-client"; | prefix "tls-client"; | |||
| } | } | |||
| organization | organization | |||
| "IETF PCE (Path Computation Element) Working Group"; | "IETF PCE (Path Computation Element) Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/pce/> | "WG Web: <http://tools.ietf.org/wg/pce/> | |||
| WG List: <mailto:pce@ietf.org> | WG List: <mailto:pce@ietf.org> | |||
| WG Chair: JP Vasseur | WG Chair: JP Vasseur | |||
| <mailto:jpv@cisco.com> | <mailto:jpv@cisco.com> | |||
| WG Chair: Julien Meuric | WG Chair: Julien Meuric | |||
| <mailto:julien.meuric@orange.com> | <mailto:julien.meuric@orange.com> | |||
| WG Chair: Jonathan Hardwick | WG Chair: Jonathan Hardwick | |||
| <mailto:Jonathan.Hardwick@metaswitch.com> | <mailto:Jonathan.Hardwick@metaswitch.com> | |||
| Editor: Dhruv Dhody | Editor: Dhruv Dhody | |||
| <mailto:dhruv.ietf@gmail.com>"; | <mailto:dhruv.ietf@gmail.com>"; | |||
| description | description | |||
| "The YANG module defines a generic configuration and | "The YANG module defines a generic configuration and | |||
| operational model for PCEP common across all of the | operational model for PCEP common across all of the | |||
| vendor implementations."; | vendor implementations."; | |||
| revision 2017-06-29 { | revision 2017-06-30 { | |||
| 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 50, line 38 ¶ | skipping to change at page 49, line 49 ¶ | |||
| "If set, a PCC reports LSPs that are not | "If set, a PCC reports LSPs that are not | |||
| controlled by any PCE (for example, LSPs | controlled by any PCE (for example, LSPs | |||
| that are statically configured at the | that are statically configured at the | |||
| PCC). "; | PCC). "; | |||
| } | } | |||
| } | } | |||
| grouping authentication { | grouping authentication { | |||
| description "Authentication Information"; | description "Authentication Information"; | |||
| choice auth-type-selection { | container auth { | |||
| description | description | |||
| "Options for expressing authentication setting."; | "The Authentication options"; | |||
| case auth-key-chain { | ||||
| leaf key-chain { | ||||
| type key-chain:key-chain-ref; | ||||
| description | ||||
| "key-chain name."; | ||||
| } | ||||
| } | ||||
| case auth-key { | ||||
| leaf crypto-algorithm { | ||||
| type identityref { | ||||
| base key-chain:crypto-algorithm; | ||||
| } | choice auth-type-selection { | |||
| mandatory true; | description | |||
| description | "Options for expressing authentication setting."; | |||
| "Cryptographic algorithm associated with key."; | case auth-key-chain { | |||
| } | leaf key-chain { | |||
| container key-string { | type key-chain:key-chain-ref; | |||
| description | description | |||
| "The key string."; | "key-chain name."; | |||
| nacm:default-deny-all; | } | |||
| choice key-string-style { | } | |||
| description | case auth-key { | |||
| "Key string styles"; | leaf crypto-algorithm { | |||
| case keystring { | type identityref { | |||
| leaf keystring { | base key-chain:crypto-algorithm; | |||
| type string; | ||||
| description | ||||
| "Key string in ASCII format."; | ||||
| } | } | |||
| mandatory true; | ||||
| description | ||||
| "Cryptographic algorithm associated with key."; | ||||
| } | } | |||
| case hexadecimal { | container key-string { | |||
| if-feature "key-chain:hex-key-string"; | description | |||
| leaf hexadecimal-string { | "The key string."; | |||
| type yang:hex-string; | nacm:default-deny-all; | |||
| choice key-string-style { | ||||
| description | description | |||
| "Key in hexadecimal string format. When | "Key string styles"; | |||
| compared to ASCII, specification in | case keystring { | |||
| hexadecimal affords greater key | leaf keystring { | |||
| entropy with the same number of | type string; | |||
| octets. Additionally, it discourages | description | |||
| usage of well-known words or | "Key string in ASCII format."; | |||
| numbers."; | } | |||
| } | ||||
| 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 { | ||||
| if-feature tls; | ||||
| container tls-pce { | ||||
| when "../role = 'pce' " | ||||
| + "or ../role = 'pcc-and-pce'" { | ||||
| description | ||||
| "Valid for PCEP Peer as PCE/PCC-PCE"; | ||||
| } | ||||
| uses tls-server:tls-server-grouping { | } | |||
| description | ||||
| "Server TLS information."; | ||||
| } | ||||
| description | ||||
| "TLS related information"; | ||||
| } | } | |||
| case auth-tls { | ||||
| container tls-pcc { | if-feature tls; | |||
| when "../role = 'pcc' " | choice role{ | |||
| + "or ../role = 'pcc-and-pce'" { | ||||
| description | ||||
| "Valid for PCEP Peer as PCC/PCC_PCE"; | ||||
| } | ||||
| uses tls-client:tls-client-grouping { | ||||
| description | description | |||
| "Client TLS information."; | "The role of the local entity"; | |||
| case server { | ||||
| container tls-server { | ||||
| uses tls-server:tls-server-grouping { | ||||
| description | ||||
| "Server TLS information."; | ||||
| } | ||||
| description | ||||
| "TLS related information"; | ||||
| } | ||||
| } | ||||
| case client{ | ||||
| container tls-client { | ||||
| uses tls-client:tls-client-grouping { | ||||
| description | ||||
| "Client TLS information."; | ||||
| } | ||||
| description | ||||
| "TLS related information"; | ||||
| } | ||||
| } | ||||
| } | } | |||
| description | ||||
| "TLS related information"; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping path-key { | grouping path-key { | |||
| description "Path-key related information"; | description "Path-key related information"; | |||
| leaf enabled{ | leaf enabled{ | |||
| type boolean; | type boolean; | |||
| description | description | |||
| skipping to change at page 61, line 42 ¶ | skipping to change at page 61, line 4 ¶ | |||
| "(. = 0)))" { | "(. = 0)))" { | |||
| error-message | error-message | |||
| "Invalid Keepalive hold | "Invalid Keepalive hold | |||
| time remaining"; | time remaining"; | |||
| description | description | |||
| "If state is tcp-pending | "If state is tcp-pending | |||
| or open-wait then this | or open-wait then this | |||
| field is not used and | field is not used and | |||
| MUST be set to zero."; | MUST be set to zero."; | |||
| } | } | |||
| description | description | |||
| "The keep alive hold time | "The keep alive hold time | |||
| remaining for this session."; | remaining for this session."; | |||
| } | } | |||
| leaf overloaded { | ||||
| type boolean; | ||||
| description | ||||
| "If the local PCEP entity has | ||||
| informed the peer that it is | ||||
| currently overloaded, then | ||||
| this is set to true. | ||||
| Otherwise, it is set to | ||||
| false."; | ||||
| } | ||||
| leaf overload-time { | leaf overload-time { | |||
| type uint32; | type uint32; | |||
| units "seconds"; | units "seconds"; | |||
| must "((../overloaded = true()) " + | must "((../overloaded = true()) " + | |||
| "or ((../overloaded != true()) " + | "or ((../overloaded != true()) " + | |||
| "and (. = 0)))" { | "and (. = 0)))" { | |||
| error-message | error-message | |||
| "Invalid overload-time"; | "Invalid overload-time"; | |||
| description | description | |||
| "This field is only used | "This field is only used | |||
| skipping to change at page 67, line 4 ¶ | skipping to change at page 66, line 24 ¶ | |||
| "Local PCEP entity information"; | "Local PCEP entity information"; | |||
| } | } | |||
| container pce-info { | container pce-info { | |||
| when "../role = 'pce'" + | when "../role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../role = 'pcc-and-pce'" | "../role = 'pcc-and-pce'" | |||
| { | { | |||
| description | description | |||
| "Valid at PCE"; | "Valid at PCE"; | |||
| } | } | |||
| uses pce-info { | uses pce-info { | |||
| description | description | |||
| "Local PCE information"; | "Local PCE information"; | |||
| } | } | |||
| container path-key { | container path-key { | |||
| if-feature path-key; | if-feature path-key; | |||
| uses path-key { | uses path-key { | |||
| description | description | |||
| "Path-Key Configuration"; | "Path-Key Configuration"; | |||
| } | } | |||
| description | description | |||
| "Path-Key Configuration"; | "Path-Key Configuration"; | |||
| } | } | |||
| description | description | |||
| "The Local PCE Entity PCE information"; | "The Local PCE Entity PCE information"; | |||
| } | } | |||
| uses authentication { | ||||
| description | ||||
| "Local PCEP entity authentication information"; | ||||
| } | ||||
| uses pcep-entity-info { | uses pcep-entity-info { | |||
| description | description | |||
| "The configuration related to the PCEP | "The configuration related to the PCEP | |||
| entity."; | entity."; | |||
| } | } | |||
| leaf pcep-notification-max-rate { | leaf pcep-notification-max-rate { | |||
| type uint32; | type uint32; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| skipping to change at page 70, line 37 ¶ | skipping to change at page 70, line 4 ¶ | |||
| description | description | |||
| "The peer configured for the entity. | "The peer configured for the entity. | |||
| (remote PCE)"; | (remote PCE)"; | |||
| leaf addr { | leaf addr { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "The local Internet address of this | "The local Internet address of this | |||
| PCEP peer."; | PCEP peer."; | |||
| } | } | |||
| leaf role { | leaf role { | |||
| type pcep-role; | type pcep-role; | |||
| config false; | ||||
| description | description | |||
| "The role of the PCEP Peer. | "The role of the PCEP Peer. | |||
| Takes one of the following values. | Takes one of the following values. | |||
| - unknown(0): this PCEP peer role is not | - unknown(0): this PCEP peer role is not | |||
| known. | known. | |||
| - pcc(1): this PCEP peer is a PCC. | - pcc(1): this PCEP peer is a PCC. | |||
| - pce(2): this PCEP peer is a PCE. | - pce(2): this PCEP peer is a PCE. | |||
| - pcc-and-pce(3): this PCEP peer | - pcc-and-pce(3): this PCEP peer | |||
| is both a PCC and a PCE."; | is both a PCC and a PCE."; | |||
| } | } | |||
| skipping to change at page 71, line 20 ¶ | skipping to change at page 70, line 34 ¶ | |||
| description | description | |||
| "PCE Peer information"; | "PCE Peer information"; | |||
| } | } | |||
| container pce-info { | container pce-info { | |||
| when "../role = 'pce'" + | when "../role = 'pce'" + | |||
| "or " + | "or " + | |||
| "../role = 'pcc-and-pce'" | "../role = 'pcc-and-pce'" | |||
| { | { | |||
| description | description | |||
| "When the peer is PCE"; | "Valid at PCE"; | |||
| } | } | |||
| uses pce-info { | uses pce-info { | |||
| description | description | |||
| "PCE Peer information"; | "PCE Peer information"; | |||
| } | } | |||
| description | description | |||
| "The PCE Peer information"; | "The PCE Peer information"; | |||
| } | } | |||
| skipping to change at page 76, line 38 ¶ | skipping to change at page 76, line 4 ¶ | |||
| rpc trigger-resync { | rpc trigger-resync { | |||
| if-feature stateful; | if-feature stateful; | |||
| if-feature stateful-sync-opt; | if-feature stateful-sync-opt; | |||
| description | description | |||
| "Trigger the resyncrinization at the PCE"; | "Trigger the resyncrinization at the PCE"; | |||
| input { | input { | |||
| leaf pcc { | leaf pcc { | |||
| type leafref { | type leafref { | |||
| path "/pcep/entity/peers/peer/addr"; | path "/pcep/entity/peers/peer/addr"; | |||
| } | } | |||
| description | description | |||
| "The IP address to identify the PCC. The state | "The IP address to identify the PCC. The state | |||
| syncronization is re-triggered for all LSPs from | syncronization is re-triggered for all LSPs from | |||
| the PCC. The rpc on the PCC will be ignored."; | the PCC. The rpc on the PCC will be ignored."; | |||
| } | } | |||
| } | } | |||
| }//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@2017-06-29.yang" | <CODE BEGINS> file "ietf-pcep-stats@2017-06-30.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; | |||
| } | } | |||
| skipping to change at page 77, line 41 ¶ | skipping to change at page 77, line 9 ¶ | |||
| <mailto:julien.meuric@orange.com> | <mailto:julien.meuric@orange.com> | |||
| WG Chair: Jonathan Hardwick | WG Chair: Jonathan Hardwick | |||
| <mailto:Jonathan.Hardwick@metaswitch.com> | <mailto:Jonathan.Hardwick@metaswitch.com> | |||
| Editor: Dhruv Dhody | Editor: Dhruv Dhody | |||
| <mailto:dhruv.ietf@gmail.com>"; | <mailto:dhruv.ietf@gmail.com>"; | |||
| description | description | |||
| "The YANG module augments the PCEP yang operational | "The YANG module augments the PCEP yang operational | |||
| model with statistics, counters and telemetry data"; | model with statistics, counters and telemetry data"; | |||
| revision 2017-06-29 { | revision 2017-06-30 { | |||
| 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 | |||
| */ | */ | |||
| grouping pcep-stats{ | grouping pcep-stats{ | |||
| description | description | |||
| "This grouping defines statistics for PCEP. It is used | "This grouping defines statistics for PCEP. It is used | |||
| for both peer and current session."; | for both peer and current session."; | |||
| End of changes. 36 change blocks. | ||||
| 497 lines changed or deleted | 463 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/ | ||||