| < draft-ietf-pce-pcep-yang-15.txt | draft-ietf-pce-pcep-yang-16.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: May 4, 2021 Metaswitch | Expires: August 26, 2021 Metaswitch | |||
| V. Beeram | V. Beeram | |||
| Juniper Networks | Juniper Networks | |||
| J. Tantsura | J. Tantsura | |||
| Apstra, Inc. | Apstra, Inc. | |||
| October 31, 2020 | February 22, 2021 | |||
| A YANG Data Model for Path Computation Element Communications Protocol | A YANG Data Model for Path Computation Element Communications Protocol | |||
| (PCEP) | (PCEP) | |||
| draft-ietf-pce-pcep-yang-15 | draft-ietf-pce-pcep-yang-16 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model for the management of Path | This document defines a YANG data model for the management of Path | |||
| Computation Element communications Protocol (PCEP) for communications | Computation Element communications Protocol (PCEP) for communications | |||
| between a Path Computation Client (PCC) and a Path Computation | between a Path Computation Client (PCC) and a Path Computation | |||
| Element (PCE), or between two PCEs. The data model includes | Element (PCE), or between two PCEs. The data model includes | |||
| configuration and state data. | configuration and state data. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 4, 2021. | This Internet-Draft will expire on August 26, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 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 . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | |||
| 3.3. Refrences in the Model . . . . . . . . . . . . . . . . . 5 | 3.3. Refrences in the Model . . . . . . . . . . . . . . . . . 5 | |||
| 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 8 | 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 7 | |||
| 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 8 | 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 8 | |||
| 5.2. The Entity . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.2. The Entity . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.3. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 13 | 5.3. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5.4. The Session Lists . . . . . . . . . . . . . . . . . . . . 15 | 5.4. The Session Lists . . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 17 | 5.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.6. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 5.6. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5.7. The Full PCEP Data Model . . . . . . . . . . . . . . . . 18 | 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 17 | |||
| 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 24 | 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 20 | |||
| 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 27 | 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 21 | |||
| 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 27 | 8. Other Considerations . . . . . . . . . . . . . . . . . . . . 21 | |||
| 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 28 | 8.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 21 | |||
| 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 28 | 9. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 8.2. LSP-ID . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 9.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 22 | |||
| 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 28 | 9.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 76 | |||
| 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 28 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 94 | |||
| 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 28 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 95 | |||
| 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 28 | 12. Implementation Status . . . . . . . . . . . . . . . . . . . . 96 | |||
| 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 83 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 97 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 101 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 97 | |||
| 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 102 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 97 | |||
| 13. Implementation Status . . . . . . . . . . . . . . . . . . . . 103 | 14.2. Informative References . . . . . . . . . . . . . . . . . 101 | |||
| 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 104 | Appendix A. The Full PCEP Data Model . . . . . . . . . . . . . . 102 | |||
| 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 104 | Appendix B. Example . . . . . . . . . . . . . . . . . . . . . . 108 | |||
| 15.1. Normative References . . . . . . . . . . . . . . . . . . 104 | Appendix C. Contributor Addresses . . . . . . . . . . . . . . . 111 | |||
| 15.2. Informative References . . . . . . . . . . . . . . . . . 108 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 112 | |||
| Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 109 | ||||
| Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 112 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 113 | ||||
| 1. Introduction | 1. Introduction | |||
| The Path Computation Element (PCE) defined in [RFC4655] is an entity | The Path Computation Element (PCE) defined in [RFC4655] is an entity | |||
| that is capable of computing a network path or route based on a | that is capable of computing a network path or route based on a | |||
| network graph, and applying computational constraints. A Path | network graph, and applying computational constraints. A Path | |||
| Computation Client (PCC) may make requests to a PCE for paths to be | Computation Client (PCC) may make requests to a PCE for paths to be | |||
| computed. | computed. | |||
| PCEP is the communication protocol between a PCC and PCE and is | PCEP is the communication protocol between a PCC and PCE and is | |||
| skipping to change at page 3, line 31 ¶ | skipping to change at page 3, line 25 ¶ | |||
| This document defines a YANG [RFC7950] data model for the management | This document defines a YANG [RFC7950] data model for the management | |||
| of PCEP speakers. It is important to establish a common data model | of PCEP speakers. It is important to establish a common data model | |||
| for how PCEP speakers are identified, configured, and monitored. The | for how PCEP speakers are identified, configured, and monitored. The | |||
| data model includes configuration data and state data. | data model includes configuration data and state data. | |||
| This document contains a specification of the PCEP YANG module, | This document contains a specification of the PCEP YANG module, | |||
| "ietf-pcep" which provides the PCEP [RFC5440] data model. | "ietf-pcep" which provides the PCEP [RFC5440] data model. | |||
| The PCEP operational state is included in the same tree as the PCEP | The PCEP operational state is included in the same tree as the PCEP | |||
| configuration consistent with Network Management Datastore | configuration consistent with Network Management Datastore | |||
| Architecture [RFC8342]. The origin of the data is indicated as per | Architecture (NMDA) [RFC8342]. The origin of the data is indicated | |||
| the origin metadata annotation. | as per the origin metadata annotation. | |||
| 2. Requirements Language | 2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Terminology and Notation | 3. Terminology and Notation | |||
| skipping to change at page 5, line 24 ¶ | skipping to change at page 5, line 18 ¶ | |||
| are often used without a prefix, as long as it is clear from the | are often used without a prefix, as long as it is clear from the | |||
| context in which YANG module each name is defined. Otherwise, names | context in which YANG module each name is defined. Otherwise, names | |||
| are prefixed using the standard prefix associated with the | are prefixed using the standard prefix associated with the | |||
| corresponding YANG module, as shown in Table 1. | corresponding YANG module, as shown in Table 1. | |||
| +----------+------------------+-------------------------------------+ | +----------+------------------+-------------------------------------+ | |||
| | Prefix | YANG module | Reference | | | Prefix | YANG module | Reference | | |||
| +----------+------------------+-------------------------------------+ | +----------+------------------+-------------------------------------+ | |||
| | yang | ietf-yang-types | [RFC6991] | | | yang | ietf-yang-types | [RFC6991] | | |||
| | inet | ietf-inet-types | [RFC6991] | | | inet | ietf-inet-types | [RFC6991] | | |||
| | te | ietf-te | [I-D.ietf-teas-yang-te] | | ||||
| | te-types | ietf-te-types | [RFC8776] | | | te-types | ietf-te-types | [RFC8776] | | |||
| | key- | ietf-key-chain | [RFC8177] | | | key- | ietf-key-chain | [RFC8177] | | |||
| | chain | | | | | chain | | | | |||
| | nacm | ietf-netconf-acm | [RFC8341] | | | nacm | ietf-netconf-acm | [RFC8341] | | |||
| | tlss | ietf-tls-server | [I-D.ietf-netconf-tls-client-server | | | tlss | ietf-tls-server | [I-D.ietf-netconf-tls-client-server | | |||
| | | | ] | | | | | ] | | |||
| | tlsc | ietf-tls-client | [I-D.ietf-netconf-tls-client-server | | | tlsc | ietf-tls-client | [I-D.ietf-netconf-tls-client-server | | |||
| | | | ] | | | | | ] | | |||
| | ospf | ietf-ospf | [I-D.ietf-ospf-yang] | | | ospf | ietf-ospf | [I-D.ietf-ospf-yang] | | |||
| | isis | ietf-isis | [I-D.ietf-isis-yang-isis-cfg] | | | isis | ietf-isis | [I-D.ietf-isis-yang-isis-cfg] | | |||
| skipping to change at page 5, line 47 ¶ | skipping to change at page 5, line 40 ¶ | |||
| Table 1: Prefixes and corresponding YANG modules | Table 1: Prefixes and corresponding YANG modules | |||
| 3.3. Refrences in the Model | 3.3. Refrences in the Model | |||
| Following documents are refrenced in the model defined in this | Following documents are refrenced in the model defined in this | |||
| document - | document - | |||
| +----------------------------+--------------------------------------+ | +----------------------------+--------------------------------------+ | |||
| | Documents | Reference | | | Documents | Reference | | |||
| +----------------------------+--------------------------------------+ | +----------------------------+--------------------------------------+ | |||
| | RSVP-TE: Extensions to | [RFC3209] | | ||||
| | RSVP for LSP Tunnels | | | ||||
| | OSPF Protocol Extensions | [RFC5088] | | | OSPF Protocol Extensions | [RFC5088] | | |||
| | for Path Computation | | | | for Path Computation | | | |||
| | Element (PCE) Discovery | | | | Element (PCE) Discovery | | | |||
| | IS-IS Protocol Extensions | [RFC5089] | | | IS-IS Protocol Extensions | [RFC5089] | | |||
| | for Path Computation | | | | for Path Computation | | | |||
| | Element (PCE) Discovery | | | | Element (PCE) Discovery | | | |||
| | Path Computation Element | [RFC5440] | | | Path Computation Element | [RFC5440] | | |||
| | (PCE) Communication | | | | (PCE) Communication | | | |||
| | Protocol (PCEP) | | | | Protocol (PCEP) | | | |||
| | Preserving Topology | [RFC5520] | | | Preserving Topology | [RFC5520] | | |||
| skipping to change at page 8, line 9 ¶ | skipping to change at page 8, line 4 ¶ | |||
| o The data model should include read-only counters in order to | o The data model should include read-only counters in order to | |||
| gather statistics for sent and received PCEP messages, received | gather statistics for sent and received PCEP messages, received | |||
| messages with errors, and messages that could not be sent due to | messages with errors, and messages that could not be sent due to | |||
| errors. This could be in a separate model which augments the base | errors. This could be in a separate model which augments the base | |||
| data model. | data model. | |||
| o It should be fairly straightforward to augment the base data model | 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 | |||
| 5.1. The Overview of PCEP Data Model | 5.1. The Overview of PCEP Data Model | |||
| The PCEP YANG module defined in this document has all the common | The PCEP YANG module defined in this document has all the common | |||
| building blocks for the PCEP protocol. | building blocks for the PCEP protocol. | |||
| module: ietf-pcep | module: ietf-pcep | |||
| +--rw pcep! | +--rw pcep! | |||
| +--rw entity | +--rw entity | |||
| +--rw addr inet:ip-address | +--rw addr inet:ip-address | |||
| +--rw enabled? boolean | +--rw enabled? boolean | |||
| +--rw role pcep-role | +--rw role pcep-role | |||
| +--rw description? string | +--rw description? string | |||
| +--rw speaker-entity-id? string | +--rw speaker-entity-id? string {sync-opt}? | |||
| | {stateful-sync-opt}? | +--rw admin-status? boolean | |||
| +--rw admin-status? pcep-admin-status | +--ro index? uint32 | |||
| +--ro index? uint32 | +--ro oper-status? pcep-oper-status | |||
| +--ro oper-status? pcep-oper-status | +--rw domain | |||
| +--rw domain | | +--rw domain* [domain-type domain] | |||
| | +--rw domain* [domain-type domain] | | ... | |||
| | ... | +--rw capability | |||
| +--rw capability | | ... | |||
| +--rw pce-info | ||||
| | ... | | +--rw scope | |||
| +--rw pce-info | | | ... | |||
| | +--rw scope | | +--rw neigh-domains | |||
| | | ... | | | ... | |||
| | +--rw neigh-domains | | +--rw path-key {path-key}? | |||
| | | ... | | | ... | |||
| | +--rw path-key {path-key}? | | ... | |||
| | ... | +--ro lsp-db {stateful}? | |||
| | +--ro db-ver? uint64 {sync-opt}? | ||||
| +--ro lsp-db {stateful}? | | +--ro association-list* | |||
| | +--ro db-ver? uint64 | | | [type id source global-source extended-id] | |||
| | | {stateful-sync-opt}? | | | {association}? | |||
| | +--ro association-list* | | | ... | |||
| | | [id source global-source extended-id] | | | +--ro lsp* [plsp-id pcc-id lsp-id] | |||
| | | ... | | | ... | |||
| | +--ro lsp* [plsp-id pcc-id lsp-id] | | +--ro lsp* [plsp-id pcc-id lsp-id] | |||
| | ... | | ... | |||
| +--ro path-keys {path-key}? | +--ro path-keys {path-key}? | |||
| | +--ro path-keys* [path-key] | | +--ro path-keys* [path-key] | |||
| | ... | | +--... | |||
| +--rw peers | | ... | |||
| +--rw peer* [addr] | +--rw peers | |||
| +--rw peer* [addr] | ||||
| +--ro sessions | ... | |||
| +--ro session* [initiator] | +--ro sessions | |||
| ... | +--ro session* [initiator] | |||
| ... | ||||
| rpcs: | rpcs: | |||
| +---x trigger-resync {stateful,stateful-sync-opt}? | +---x trigger-resync {stateful,sync-opt}? | |||
| +---w input | +---w input | |||
| +---w pcc? -> /pcep/entity/peers/peer/addr | +---w pcc? -> /pcep/entity/peers/peer/addr | |||
| notifications: | notifications: | |||
| +---n pcep-session-up | +---n pcep-session-up | |||
| | ... | | ... | |||
| +---n pcep-session-down | +---n pcep-session-down | |||
| | ... | | ... | |||
| +---n pcep-session-local-overload | +---n pcep-session-local-overload | |||
| | ... | | ... | |||
| +---n pcep-session-local-overload-clear | +---n pcep-session-local-overload-clear | |||
| | ... | | ... | |||
| +---n pcep-session-peer-overload | +---n pcep-session-peer-overload | |||
| | ... | | ... | |||
| +---n pcep-session-peer-overload-clear | +---n pcep-session-peer-overload-clear | |||
| ... | | ... | |||
| 5.2. The Entity | 5.2. The Entity | |||
| The PCEP yang module may contain status information for the local | The PCEP yang module may contain status information for the local | |||
| PCEP entity. | PCEP entity. | |||
| The entity has an IP address (using ietf-inet-types [RFC6991]) and a | The entity has an IP address (using ietf-inet-types [RFC6991]) and a | |||
| "role" leaf (the local entity PCEP role) as mandatory. | "role" leaf (the local entity PCEP role) as mandatory. | |||
| Note that, the PCEP MIB module [RFC7420] uses an entity list and a | Note that, the PCEP MIB module [RFC7420] uses an entity list and a | |||
| skipping to change at page 10, line 12 ¶ | skipping to change at page 10, line 8 ¶ | |||
| +--rw addr inet:ip-address | +--rw addr inet:ip-address | |||
| +--rw enabled? boolean | +--rw enabled? boolean | |||
| +--rw role pcep-role | +--rw role pcep-role | |||
| +--rw description? string | +--rw description? string | |||
| +--rw speaker-entity-id? string {sync-opt}? | +--rw speaker-entity-id? string {sync-opt}? | |||
| +--rw admin-status? boolean | +--rw admin-status? boolean | |||
| +--ro index? uint32 | +--ro index? uint32 | |||
| +--ro oper-status? pcep-oper-status | +--ro oper-status? pcep-oper-status | |||
| +--rw domain | +--rw domain | |||
| | +--rw domain* [domain-type domain] | | +--rw domain* [domain-type domain] | |||
| | +--rw domain-type domain-type | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw capability? bits | | +--rw capability? bits | |||
| | +--rw pce-initiated? boolean {pce-initiated}? | | +--rw pce-initiated? boolean {pce-initiated}? | |||
| | +--rw include-db-ver? boolean | | +--rw include-db-ver? boolean {stateful,sync-opt}? | |||
| | | {stateful,sync-opt}? | | +--rw trigger-resync? boolean {stateful,sync-opt}? | |||
| | +--rw trigger-resync? boolean | | +--rw trigger-initial-sync? boolean {stateful,sync-opt}? | |||
| | | {stateful,sync-opt}? | | +--rw incremental-sync? boolean {stateful,sync-opt}? | |||
| | +--rw trigger-initial-sync? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw incremental-sync? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw sr {sr}? | | +--rw sr {sr}? | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw msd-limit? boolean | | +--rw msd-limit? boolean | |||
| | +--rw nai? boolean | | +--rw nai? boolean | |||
| +--rw msd? uint8 {sr}? | +--rw msd? uint8 {sr}? | |||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw path-scope? bits | | | +--rw path-scope? bits | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | +--rw neigh-domains | | +--rw neigh-domains | |||
| | | +--rw domain* [domain-type domain] | | | +--rw domain* [domain-type domain] | |||
| | | +--rw domain-type domain-type | | | +--rw domain-type identityref | |||
| | | +--rw domain domain | | | +--rw domain domain | |||
| | +--rw path-key {path-key}? | | +--rw path-key {path-key}? | |||
| | +--rw enabled? boolean | | +--rw enabled? boolean | |||
| | +--rw discard-timer? uint32 | | +--rw discard-timer? uint32 | |||
| | +--rw reuse-time? uint32 | | +--rw reuse-time? uint32 | |||
| | +--rw pce-id? inet:ip-address | | +--rw pce-id? inet:ip-address | |||
| +--rw connect-timer? uint16 | +--rw connect-timer? uint16 | |||
| +--rw connect-max-retry? uint32 | +--rw connect-max-retry? uint32 | |||
| +--rw init-backoff-timer? uint16 | +--rw init-backoff-timer? uint16 | |||
| +--rw max-backoff-timer? uint32 | +--rw max-backoff-timer? uint32 | |||
| +--rw open-wait-timer? uint16 | +--ro open-wait-timer? uint16 | |||
| +--rw keep-wait-timer? uint16 | +--ro keep-wait-timer? uint16 | |||
| +--rw keep-alive-timer? uint8 | +--rw keep-alive-timer? uint8 | |||
| +--rw dead-timer? uint8 | +--rw dead-timer? uint8 | |||
| +--rw allow-negotiation? boolean | +--rw allow-negotiation? boolean | |||
| +--rw max-keep-alive-timer? uint8 | +--rw max-keep-alive-timer? uint8 | |||
| +--rw max-dead-timer? uint8 | +--rw max-dead-timer? uint8 | |||
| +--rw min-keep-alive-timer? uint8 | +--rw min-keep-alive-timer? uint8 | |||
| +--rw min-dead-timer? uint8 | +--rw min-dead-timer? uint8 | |||
| +--rw sync-timer? uint16 {svec}? | +--rw sync-timer? uint16 {svec}? | |||
| +--rw request-timer? uint16 | +--rw request-timer? uint16 | |||
| +--rw max-sessions? uint32 | +--rw max-sessions? uint32 | |||
| skipping to change at page 11, line 41 ¶ | skipping to change at page 11, line 33 ¶ | |||
| | | +--ro source inet:ip-address | | | +--ro source inet:ip-address | |||
| | | +--ro global-source uint32 | | | +--ro global-source uint32 | |||
| | | +--ro extended-id string | | | +--ro extended-id string | |||
| | | +--ro lsp* [plsp-id pcc-id lsp-id] | | | +--ro lsp* [plsp-id pcc-id lsp-id] | |||
| | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | |||
| | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | |||
| | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id | | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id | |||
| | +--ro lsp* [plsp-id pcc-id lsp-id] | | +--ro lsp* [plsp-id pcc-id lsp-id] | |||
| | +--ro plsp-id uint32 | | +--ro plsp-id uint32 | |||
| | +--ro pcc-id inet:ip-address | | +--ro pcc-id inet:ip-address | |||
| | +--ro source? | | +--ro source? inet:ip-address | |||
| | | -> /te:te/lsps/lsp/source | | +--ro destination? inet:ip-address | |||
| | +--ro destination? | | +--ro tunnel-id? uint16 | |||
| | | -> /te:te/lsps/lsp/destination | | +--ro lsp-id uint16 | |||
| | +--ro tunnel-id? | | +--ro extended-tunnel-id? inet:ip-address | |||
| | | -> /te:te/lsps/lsp/tunnel-id | ||||
| | +--ro lsp-id | ||||
| | | -> /te:te/lsps/lsp/lsp-id | ||||
| | +--ro extended-tunnel-id? | ||||
| | | -> /te:te/lsps/lsp/extended-tunnel-id | ||||
| | +--ro admin-state? boolean | | +--ro admin-state? boolean | |||
| | +--ro operational-state? operational-state | | +--ro operational-state? operational-state | |||
| | +--ro delegated | | +--ro delegated | |||
| | | +--ro enabled? boolean | | | +--ro enabled? boolean | |||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | | | +--ro peer? -> /pcep/entity/peers/peer/addr | |||
| | | +--ro srp-id? uint32 | | | +--ro srp-id? uint32 | |||
| | +--ro initiation {pce-initiated}? | | +--ro initiation {pce-initiated}? | |||
| | | +--ro enabled? boolean | | | +--ro enabled? boolean | |||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | | | +--ro peer? -> /pcep/entity/peers/peer/addr | |||
| | +--ro symbolic-path-name? string | | +--ro symbolic-path-name? string | |||
| skipping to change at page 13, line 6 ¶ | skipping to change at page 12, line 41 ¶ | |||
| | | | +--ro node-id te-node-id | | | | +--ro node-id te-node-id | |||
| | | | +--ro hop-type? te-hop-type | | | | +--ro hop-type? te-hop-type | |||
| | | | +--ro direction? te-link-direction | | | | +--ro direction? te-link-direction | |||
| | | +--:(as-number) | | | +--:(as-number) | |||
| | | | +--ro as-number-hop | | | | +--ro as-number-hop | |||
| | | | +--ro as-number inet:as-number | | | | +--ro as-number inet:as-number | |||
| | | | +--ro hop-type? te-hop-type | | | | +--ro hop-type? te-hop-type | |||
| | | +--:(label) | | | +--:(label) | |||
| | | +--ro label-hop | | | +--ro label-hop | |||
| | | +--ro te-label | | | +--ro te-label | |||
| | | +--ro (technology)? | | | ... | |||
| | | | +--:(generic) | ||||
| | | | ... | ||||
| | | +--ro direction? | ||||
| | | te-label-direction | ||||
| | +--ro pcc-original? -> /pcep/entity/peers/peer/addr | | +--ro pcc-original? -> /pcep/entity/peers/peer/addr | |||
| | +--ro req-id? uint32 | | +--ro req-id? uint32 | |||
| | +--ro retrieved? boolean | | +--ro retrieved? boolean | |||
| | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | |||
| | +--ro creation-time? yang:timestamp | | +--ro creation-time? yang:timestamp | |||
| | +--ro discard-time? uint32 | | +--ro discard-time? uint32 | |||
| | +--ro reuse-time? uint32 | | +--ro reuse-time? uint32 | |||
| +--rw peers | +--rw peers | |||
| +--rw peer* [addr] | +--rw peer* [addr] | |||
| ... | ... | |||
| skipping to change at page 14, line 13 ¶ | skipping to change at page 13, line 44 ¶ | |||
| +--rw pcep! | +--rw pcep! | |||
| +--rw entity | +--rw entity | |||
| ... | ... | |||
| +--rw peers | +--rw peers | |||
| +--rw peer* [addr] | +--rw peer* [addr] | |||
| +--rw addr inet:ip-address | +--rw addr inet:ip-address | |||
| +--rw role pcep-role | +--rw role pcep-role | |||
| +--rw description? string | +--rw description? string | |||
| +--rw domain | +--rw domain | |||
| | +--rw domain* [domain-type domain] | | +--rw domain* [domain-type domain] | |||
| | +--rw domain-type domain-type | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain domain | |||
| +--rw capability | +--rw capability | |||
| | +--rw capability? bits | | +--rw capability? bits | |||
| | +--rw pce-initiated? boolean | | +--rw pce-initiated? boolean | |||
| | | {pce-initiated}? | | | {pce-initiated}? | |||
| | +--rw include-db-ver? boolean | | +--rw include-db-ver? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-resync? boolean | | +--rw trigger-resync? boolean | |||
| | | {stateful,sync-opt}? | | | {stateful,sync-opt}? | |||
| | +--rw trigger-initial-sync? boolean | | +--rw trigger-initial-sync? boolean | |||
| skipping to change at page 14, line 41 ¶ | skipping to change at page 14, line 23 ¶ | |||
| +--rw msd? uint8 {sr}? | +--rw msd? uint8 {sr}? | |||
| +--rw pce-info | +--rw pce-info | |||
| | +--rw scope | | +--rw scope | |||
| | | +--rw path-scope? bits | | | +--rw path-scope? bits | |||
| | | +--rw intra-area-pref? uint8 | | | +--rw intra-area-pref? uint8 | |||
| | | +--rw inter-area-pref? uint8 | | | +--rw inter-area-pref? uint8 | |||
| | | +--rw inter-as-pref? uint8 | | | +--rw inter-as-pref? uint8 | |||
| | | +--rw inter-layer-pref? uint8 | | | +--rw inter-layer-pref? uint8 | |||
| | +--rw neigh-domains | | +--rw neigh-domains | |||
| | +--rw domain* [domain-type domain] | | +--rw domain* [domain-type domain] | |||
| | +--rw domain-type domain-type | | +--rw domain-type identityref | |||
| | +--rw domain domain | | +--rw domain domain | |||
| +--rw delegation-pref? uint8 {stateful}? | +--rw delegation-pref? uint8 {stateful}? | |||
| +--rw auth | +--rw auth | |||
| | +--rw (auth-type-selection)? | | +--rw (auth-type-selection)? | |||
| | +--:(auth-key-chain) | | +--:(auth-key-chain) | |||
| | | +--rw key-chain? | | | +--rw key-chain? | |||
| | | key-chain:key-chain-ref | | | key-chain:key-chain-ref | |||
| | +--:(auth-key) | | +--:(auth-key) | |||
| | | +--rw crypto-algorithm identityref | | | +--rw crypto-algorithm identityref | |||
| | | +--rw (key-string-style)? | | | +--rw (key-string-style)? | |||
| skipping to change at page 18, line 5 ¶ | skipping to change at page 17, line 46 ¶ | |||
| 5.6. RPC | 5.6. RPC | |||
| This YANG model defines a RPC to trigger state resynchronization to a | This YANG model defines a RPC to trigger state resynchronization to a | |||
| particular PCEP peer. | particular PCEP peer. | |||
| rpcs: | rpcs: | |||
| +---x trigger-resync {stateful,sync-opt}? | +---x trigger-resync {stateful,sync-opt}? | |||
| +---w input | +---w input | |||
| +---w pcc? -> /pcep/entity/peers/peer/addr | +---w pcc? -> /pcep/entity/peers/peer/addr | |||
| 5.7. The Full PCEP Data Model | ||||
| The module, "ietf-pcep", defines the basic components of a PCE | ||||
| speaker. The tree depth in the tree is set to 10. | ||||
| module: ietf-pcep | ||||
| +--rw pcep! | ||||
| +--rw entity | ||||
| +--rw addr inet:ip-address | ||||
| +--rw enabled? boolean | ||||
| +--rw role pcep-role | ||||
| +--rw description? string | ||||
| +--rw speaker-entity-id? string {sync-opt}? | ||||
| +--rw admin-status? boolean | ||||
| +--ro index? uint32 | ||||
| +--ro oper-status? pcep-oper-status | ||||
| +--rw domain | ||||
| | +--rw domain* [domain-type domain] | ||||
| | +--rw domain-type domain-type | ||||
| | +--rw domain domain | ||||
| +--rw capability | ||||
| | +--rw capability? bits | ||||
| | +--rw pce-initiated? boolean {pce-initiated}? | ||||
| | +--rw include-db-ver? boolean {stateful,sync-opt}? | ||||
| | +--rw trigger-resync? boolean {stateful,sync-opt}? | ||||
| | +--rw trigger-initial-sync? boolean {stateful,sync-opt}? | ||||
| | +--rw incremental-sync? boolean {stateful,sync-opt}? | ||||
| | +--rw sr {sr}? | ||||
| | +--rw enabled? boolean | ||||
| | +--rw msd-limit? boolean | ||||
| | +--rw nai? boolean | ||||
| +--rw msd? uint8 {sr}? | ||||
| +--rw pce-info | ||||
| | +--rw scope | ||||
| | | +--rw path-scope? bits | ||||
| | | +--rw intra-area-pref? uint8 | ||||
| | | +--rw inter-area-pref? uint8 | ||||
| | | +--rw inter-as-pref? uint8 | ||||
| | | +--rw inter-layer-pref? uint8 | ||||
| | +--rw neigh-domains | ||||
| | | +--rw domain* [domain-type domain] | ||||
| | | +--rw domain-type domain-type | ||||
| | | +--rw domain domain | ||||
| | +--rw path-key {path-key}? | ||||
| | +--rw enabled? boolean | ||||
| | +--rw discard-timer? uint32 | ||||
| | +--rw reuse-time? uint32 | ||||
| | +--rw pce-id? inet:ip-address | ||||
| +--rw connect-timer? uint16 | ||||
| +--rw connect-max-retry? uint32 | ||||
| +--rw init-backoff-timer? uint16 | ||||
| +--rw max-backoff-timer? uint32 | ||||
| +--ro open-wait-timer? uint16 | ||||
| +--ro keep-wait-timer? uint16 | ||||
| +--rw keep-alive-timer? uint8 | ||||
| +--rw dead-timer? uint8 | ||||
| +--rw allow-negotiation? boolean | ||||
| +--rw max-keep-alive-timer? uint8 | ||||
| +--rw max-dead-timer? uint8 | ||||
| +--rw min-keep-alive-timer? uint8 | ||||
| +--rw min-dead-timer? uint8 | ||||
| +--rw sync-timer? uint16 {svec}? | ||||
| +--rw request-timer? uint16 | ||||
| +--rw max-sessions? uint32 | ||||
| +--rw max-unknown-reqs? uint32 | ||||
| +--rw max-unknown-msgs? uint32 | ||||
| +--rw pcep-notification-max-rate uint32 | ||||
| +--rw stateful-parameter {stateful}? | ||||
| | +--rw state-timeout? uint32 | ||||
| | +--rw redelegation-timeout? uint32 | ||||
| | +--rw rpt-non-pcep-lsp? boolean | ||||
| +--rw of-list {objective-function}? | ||||
| | +--rw objective-function* [of] | ||||
| | +--rw of identityref | ||||
| +--ro lsp-db {stateful}? | ||||
| | +--ro db-ver? uint64 {sync-opt}? | ||||
| | +--ro association-list* | ||||
| | | [type id source global-source extended-id] | ||||
| | | {association}? | ||||
| | | +--ro type identityref | ||||
| | | +--ro id uint16 | ||||
| | | +--ro source inet:ip-address | ||||
| | | +--ro global-source uint32 | ||||
| | | +--ro extended-id string | ||||
| | | +--ro lsp* [plsp-id pcc-id lsp-id] | ||||
| | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | ||||
| | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | ||||
| | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id | ||||
| | +--ro lsp* [plsp-id pcc-id lsp-id] | ||||
| | +--ro plsp-id uint32 | ||||
| | +--ro pcc-id inet:ip-address | ||||
| | +--ro source? -> /te:te/lsps/lsp/source | ||||
| | +--ro destination? | ||||
| | | -> /te:te/lsps/lsp/destination | ||||
| | +--ro tunnel-id? | ||||
| | | -> /te:te/lsps/lsp/tunnel-id | ||||
| | +--ro lsp-id -> /te:te/lsps/lsp/lsp-id | ||||
| | +--ro extended-tunnel-id? | ||||
| | | -> /te:te/lsps/lsp/extended-tunnel-id | ||||
| | +--ro admin-state? boolean | ||||
| | +--ro operational-state? operational-state | ||||
| | +--ro delegated | ||||
| | | +--ro enabled? boolean | ||||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | ||||
| | | +--ro srp-id? uint32 | ||||
| | +--ro initiation {pce-initiated}? | ||||
| | | +--ro enabled? boolean | ||||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro symbolic-path-name? string | ||||
| | +--ro last-error? identityref | ||||
| | +--ro pst? identityref | ||||
| | +--ro association-list* | ||||
| | [type id source global-source extended-id] | ||||
| | {association}? | ||||
| | +--ro type | ||||
| | | -> /pcep/entity/lsp-db/association-list/type | ||||
| | +--ro id | ||||
| | | -> /pcep/entity/lsp-db/association-list/id | ||||
| | +--ro source leafref | ||||
| | +--ro global-source leafref | ||||
| | +--ro extended-id leafref | ||||
| +--ro path-keys {path-key}? | ||||
| | +--ro path-keys* [path-key] | ||||
| | +--ro path-key uint16 | ||||
| | +--ro cps | ||||
| | | +--ro explicit-route-objects* [index] | ||||
| | | +--ro index uint32 | ||||
| | | +--ro (type)? | ||||
| | | +--:(numbered-node-hop) | ||||
| | | | +--ro numbered-node-hop | ||||
| | | | +--ro node-id te-node-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | +--:(numbered-link-hop) | ||||
| | | | +--ro numbered-link-hop | ||||
| | | | +--ro link-tp-id te-tp-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | | +--ro direction? te-link-direction | ||||
| | | +--:(unnumbered-link-hop) | ||||
| | | | +--ro unnumbered-link-hop | ||||
| | | | +--ro link-tp-id te-tp-id | ||||
| | | | +--ro node-id te-node-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | | +--ro direction? te-link-direction | ||||
| | | +--:(as-number) | ||||
| | | | +--ro as-number-hop | ||||
| | | | +--ro as-number inet:as-number | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | +--:(label) | ||||
| | | +--ro label-hop | ||||
| | | +--ro te-label | ||||
| | | ... | ||||
| | +--ro pcc-original? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro req-id? uint32 | ||||
| | +--ro retrieved? boolean | ||||
| | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro creation-time? yang:timestamp | ||||
| | +--ro discard-time? uint32 | ||||
| | +--ro reuse-time? uint32 | ||||
| +--rw peers | ||||
| +--rw peer* [addr] | ||||
| +--rw addr inet:ip-address | ||||
| +--rw role pcep-role | ||||
| +--rw description? string | ||||
| +--rw domain | ||||
| | +--rw domain* [domain-type domain] | ||||
| | +--rw domain-type domain-type | ||||
| | +--rw domain domain | ||||
| +--rw capability | ||||
| | +--rw capability? bits | ||||
| | +--rw pce-initiated? boolean | ||||
| | | {pce-initiated}? | ||||
| | +--rw include-db-ver? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw trigger-resync? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw trigger-initial-sync? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw incremental-sync? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw sr {sr}? | ||||
| | +--rw enabled? boolean | ||||
| | +--rw msd-limit? boolean | ||||
| | +--rw nai? boolean | ||||
| +--rw msd? uint8 {sr}? | ||||
| +--rw pce-info | ||||
| | +--rw scope | ||||
| | | +--rw path-scope? bits | ||||
| | | +--rw intra-area-pref? uint8 | ||||
| | | +--rw inter-area-pref? uint8 | ||||
| | | +--rw inter-as-pref? uint8 | ||||
| | | +--rw inter-layer-pref? uint8 | ||||
| | +--rw neigh-domains | ||||
| | +--rw domain* [domain-type domain] | ||||
| | +--rw domain-type domain-type | ||||
| | +--rw domain domain | ||||
| +--rw delegation-pref? uint8 {stateful}? | ||||
| +--rw auth | ||||
| | +--rw (auth-type-selection)? | ||||
| | +--:(auth-key-chain) | ||||
| | | +--rw key-chain? | ||||
| | | key-chain:key-chain-ref | ||||
| | +--:(auth-key) | ||||
| | | +--rw crypto-algorithm identityref | ||||
| | | +--rw (key-string-style)? | ||||
| | | +--:(keystring) | ||||
| | | | +--rw keystring? string | ||||
| | | +--:(hexadecimal) | ||||
| | | {key-chain:hex-key-string}? | ||||
| | | +--rw hexadecimal-string? | ||||
| | | yang:hex-string | ||||
| | +--:(auth-tls) {tls}? | ||||
| | +--rw (role)? | ||||
| | +--:(server) | ||||
| | | +--rw tls-server | ||||
| | | ... | ||||
| | +--:(client) | ||||
| | +--rw tls-client | ||||
| | ... | ||||
| +--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? uint8 | ||||
| +--ro remote-id? uint8 | ||||
| +--ro keepalive-timer? uint8 | ||||
| +--ro peer-keepalive-timer? uint8 | ||||
| +--ro dead-timer? uint8 | ||||
| +--ro peer-dead-timer? uint8 | ||||
| +--ro ka-hold-time-rem? uint8 | ||||
| +--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,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 {sync-opt}? | ||||
| +--ro discontinuity-time? yang:timestamp | ||||
| rpcs: | ||||
| +---x trigger-resync {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 | ||||
| 6. The Design of PCEP Statistics Data Model | 6. The Design of PCEP Statistics Data Model | |||
| The module, "ietf-pcep-stats", augments the ietf-pcep module to | The module, "ietf-pcep-stats", augments the ietf-pcep module to | |||
| include statistics at the PCEP peer and session level. | include statistics at the PCEP peer and session level. | |||
| module: ietf-pcep-stats | module: ietf-pcep-stats | |||
| augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer: | augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer: | |||
| +--ro num-sess-setup-ok? yang:counter32 | +--ro num-sess-setup-ok? yang:counter32 | |||
| +--ro num-sess-setup-fail? yang:counter32 | +--ro num-sess-setup-fail? yang:counter32 | |||
| +--ro pcep-stats | +--ro pcep-stats | |||
| +--ro avg-rsp-time? uint32 | +--ro avg-rsp-time? uint32 | |||
| +--ro lwm-rsp-time? uint32 | +--ro lwm-rsp-time? uint32 | |||
| +--ro hwm-rsp-time? uint32 | +--ro hwm-rsp-time? uint32 | |||
| +--ro num-pcreq-sent? yang:counter32 | +--ro num-pcreq-sent? yang:counter32 | |||
| +--ro num-pcreq-rcvd? yang:counter32 | +--ro num-pcreq-rcvd? yang:counter32 | |||
| +--ro num-pcrep-sent? yang:counter32 | +--ro num-pcrep-sent? yang:counter32 | |||
| +--ro num-pcrep-rcvd? yang:counter32 | +--ro num-pcrep-rcvd? yang:counter32 | |||
| skipping to change at page 28, line 5 ¶ | skipping to change at page 21, line 32 ¶ | |||
| In the operational state of PCEP which supports stateful PCE mode, | In the operational state of PCEP which supports stateful PCE mode, | |||
| the list of LSP state are maintained in LSP-DB. The key is the PLSP- | the list of LSP state are maintained in LSP-DB. The key is the PLSP- | |||
| ID and the PCC IP address. | ID and the PCC IP address. | |||
| The PCEP data model contains the operational state of LSPs | The PCEP data model contains the operational state of LSPs | |||
| (/pcep/entity/lsp-db/lsp/) with PCEP specific attributes. The | (/pcep/entity/lsp-db/lsp/) with PCEP specific attributes. The | |||
| generic TE attributes of the LSP are defined in | generic TE attributes of the LSP are defined in | |||
| [I-D.ietf-teas-yang-te]. A reference to LSP state in TE model is | [I-D.ietf-teas-yang-te]. A reference to LSP state in TE model is | |||
| maintained. | maintained. | |||
| 8. Open Issues and Next Step | 8. Other Considerations | |||
| This section is added so that open issues can be tracked. This | ||||
| section would be removed when the document is ready for publication. | ||||
| 8.1. The PCE-Initiated LSP | ||||
| The TE Model at [I-D.ietf-teas-yang-te] should support creating of | ||||
| tunnels at the controller (PCE) and marking them as PCE-Initiated. | ||||
| The LSP-DB in the PCEP Yang (/pcep/entity/lsp-db/lsp/initiation) also | ||||
| marks the LSPs which are PCE-initiated. | ||||
| 8.2. LSP-ID | ||||
| Use of lsp-id as a key in the LSPDB could be an issue for a non-RSVP- | ||||
| TE path setup type. The lsp-id filed is currently a leafref to the | ||||
| TE model [I-D.ietf-teas-yang-te]. Need to a confirm if this is | ||||
| problematic. | ||||
| 9. Other Considerations | ||||
| 9.1. PCEP over TLS (PCEPS) | 8.1. PCEP over TLS (PCEPS) | |||
| [RFC8253] describe the use of TLS in PCEP. The peer acting as the | [RFC8253] describe the use of TLS in PCEP. The peer acting as the | |||
| PCEP client must act as the TLS client. The TLS client actively | PCEP client must act as the TLS client. The TLS client actively | |||
| opens the TLS connection and the TLS server passively listens for the | opens the TLS connection and the TLS server passively listens for the | |||
| incoming TLS connections. The well-known TCP port number 4189 is | incoming TLS connections. The well-known TCP port number 4189 is | |||
| used by PCEP servers to listen for TCP connections established by | used by PCEP servers to listen for TCP connections established by | |||
| PCEP over TLS clients. The TLS client sends the TLS ClientHello | PCEP over TLS clients. The TLS client sends the TLS ClientHello | |||
| message to begin the TLS handshake. The TLS server sends a | message to begin the TLS handshake. The TLS server sends a | |||
| CertificateRequest in order to request a certificate from the TLS | CertificateRequest in order to request a certificate from the TLS | |||
| client. Once the TLS handshake has finished, the client and the | client. Once the TLS handshake has finished, the client and the | |||
| server begin to exchange PCEP messages. Client and server identity | server begin to exchange PCEP messages. Client and server identity | |||
| verification is done before the PCEP open message is sent. This | verification is done before the PCEP open message is sent. This | |||
| means that the identity verification is completed before the PCEP | means that the identity verification is completed before the PCEP | |||
| session is started. | session is started. | |||
| 10. PCEP YANG Modules | 9. PCEP YANG Modules | |||
| 10.1. ietf-pcep module | 9.1. ietf-pcep module | |||
| RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | |||
| actual RFC number and all occurrences of the revision date below with | actual RFC number and all occurrences of the revision date below with | |||
| the date of RFC publication (and remove this note). | the date of RFC publication (and remove this note). | |||
| <CODE BEGINS> file "ietf-pcep@2020-10-31.yang" | <CODE BEGINS> file "ietf-pcep@2021-02-22.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 | reference | |||
| "RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
| } | } | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix yang; | prefix yang; | |||
| reference | reference | |||
| "RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
| } | } | |||
| import ietf-te { | ||||
| prefix te; | ||||
| reference | ||||
| "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic | ||||
| Engineering Tunnels and Interfaces"; | ||||
| } | ||||
| import ietf-te-types { | import ietf-te-types { | |||
| prefix te-types; | prefix te-types; | |||
| reference | reference | |||
| "RFC 8776: Common YANG Data Types for Traffic Engineering"; | "RFC 8776: Common YANG Data Types for Traffic Engineering"; | |||
| } | } | |||
| import ietf-key-chain { | import ietf-key-chain { | |||
| prefix key-chain; | prefix key-chain; | |||
| reference | reference | |||
| "RFC 8177: YANG Data Model for Key Chains"; | "RFC 8177: YANG Data Model for Key Chains"; | |||
| } | } | |||
| skipping to change at page 30, line 33 ¶ | skipping to change at page 23, line 38 ¶ | |||
| description | description | |||
| "The YANG module defines a generic configuration and | "The YANG module defines a generic configuration and | |||
| operational model for PCEP. | operational model for PCEP. | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | 'MAY', and 'OPTIONAL' in this document are to be interpreted as | |||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | |||
| they appear in all capitals, as shown here. | they appear in all capitals, as shown here. | |||
| Copyright (c) 2020 IETF Trust and the persons identified as | Copyright (c) 2021 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
| RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
| revision 2020-10-31 { | revision 2021-02-22 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Path Computation | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol (PCEP)"; | Element Communications Protocol (PCEP)"; | |||
| } | } | |||
| /* | /* | |||
| * Typedefs | * Typedefs | |||
| */ | */ | |||
| typedef pcep-role { | typedef pcep-role { | |||
| type enumeration { | type enumeration { | |||
| enum unknown { | enum unknown { | |||
| value 0; | value 0; | |||
| skipping to change at page 31, line 45 ¶ | skipping to change at page 24, line 49 ¶ | |||
| description | description | |||
| "The role of a PCEP speaker. | "The role of a PCEP speaker. | |||
| Takes one of the following values | Takes one of the following values | |||
| - unknown(0): the role is not known. | - unknown(0): the role is not known. | |||
| - pcc(1): the role is of a Path Computation | - pcc(1): the role is of a Path Computation | |||
| Client (PCC). | Client (PCC). | |||
| - pce(2): the role is of a Path Computation | - pce(2): the role is of a Path Computation | |||
| Server (PCE). | Server (PCE). | |||
| - pccAndPce(3): the role is of both a PCC and | - pccAndPce(3): the role is of both a PCC and | |||
| a PCE."; | a PCE."; | |||
| reference | ||||
| "RFC 5440: Path Computation Element (PCE) Communication | ||||
| Protocol (PCEP)"; | ||||
| } | } | |||
| typedef pcep-oper-status { | typedef pcep-oper-status { | |||
| type enumeration { | type enumeration { | |||
| enum oper-status-up { | enum oper-status-up { | |||
| value 1; | value 1; | |||
| description | description | |||
| "The PCEP entity is active"; | "The PCEP entity is active"; | |||
| } | } | |||
| enum oper-status-down { | enum oper-status-down { | |||
| value 2; | value 2; | |||
| description | description | |||
| "The PCEP entity is inactive"; | "The PCEP entity is inactive"; | |||
| } | } | |||
| enum oper-status-going-up { | enum oper-status-going-up { | |||
| value 3; | value 3; | |||
| description | description | |||
| "The PCEP entity is activating"; | "The PCEP entity is activating"; | |||
| skipping to change at page 34, line 10 ¶ | skipping to change at page 27, line 18 ¶ | |||
| 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 | reference | |||
| "RFC 5440: Path Computation Element (PCE) Communication | "RFC 5440: Path Computation Element (PCE) Communication | |||
| Protocol (PCEP)"; | Protocol (PCEP)"; | |||
| } | } | |||
| typedef domain-type { | ||||
| type enumeration { | ||||
| enum ospf-area { | ||||
| value 1; | ||||
| description | ||||
| "The OSPF area."; | ||||
| } | ||||
| enum isis-area { | ||||
| value 2; | ||||
| description | ||||
| "The IS-IS area."; | ||||
| } | ||||
| enum as { | ||||
| value 3; | ||||
| description | ||||
| "The Autonomous System (AS)."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "The PCE Domain Type"; | ||||
| } | ||||
| typedef domain-ospf-area { | typedef domain-ospf-area { | |||
| type ospf:area-id-type; | type ospf:area-id-type; | |||
| description | description | |||
| "OSPF Area ID."; | "OSPF Area ID."; | |||
| reference | reference | |||
| "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; | |||
| } | } | |||
| typedef domain-isis-area { | typedef domain-isis-area { | |||
| type isis:area-address; | type isis:area-address; | |||
| skipping to change at page 38, line 48 ¶ | skipping to change at page 31, line 35 ¶ | |||
| reference | reference | |||
| "RFC 8697: Path Computation Element Communication Protocol | "RFC 8697: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Establishing Relationships between | (PCEP) Extensions for Establishing Relationships between | |||
| Sets of Label Switched Paths (LSPs)"; | Sets of Label Switched Paths (LSPs)"; | |||
| } | } | |||
| /* | /* | |||
| * Identities | * Identities | |||
| */ | */ | |||
| identity domain-type { | ||||
| description | ||||
| "Base Domain Type for PCE"; | ||||
| } | ||||
| identity ospf-area { | ||||
| base domain-type; | ||||
| description | ||||
| "The OSPF area."; | ||||
| } | ||||
| identity isis-area { | ||||
| base domain-type; | ||||
| description | ||||
| "The IS-IS area."; | ||||
| } | ||||
| identity autonomous-system { | ||||
| base domain-type; | ||||
| description | ||||
| "The Autonomous System (AS)."; | ||||
| } | ||||
| identity lsp-error { | identity lsp-error { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| description | description | |||
| "Base LSP error"; | "Base LSP error"; | |||
| reference | reference | |||
| "RFC 8231: Path Computation Element Communication Protocol | "RFC 8231: Path Computation Element Communication Protocol | |||
| (PCEP) Extensions for Stateful PCE"; | (PCEP) Extensions for Stateful PCE"; | |||
| } | } | |||
| identity no-error-lsp-error { | identity no-error-lsp-error { | |||
| if-feature "stateful"; | if-feature "stateful"; | |||
| base lsp-error; | base lsp-error; | |||
| description | description | |||
| "No error, LSP is fine."; | "No error, LSP is fine."; | |||
| skipping to change at page 42, line 42 ¶ | skipping to change at page 36, line 4 ¶ | |||
| computation."; | computation."; | |||
| } | } | |||
| } | } | |||
| //pce-scope | //pce-scope | |||
| grouping domain { | grouping domain { | |||
| description | description | |||
| "This grouping specifies a Domain where the | "This grouping specifies a Domain where the | |||
| PCEP speaker has topology visibility."; | PCEP speaker has topology visibility."; | |||
| leaf domain-type { | leaf domain-type { | |||
| type domain-type; | type identityref { | |||
| base domain-type; | ||||
| } | ||||
| description | description | |||
| "The domain type."; | "The domain type."; | |||
| } | } | |||
| leaf domain { | leaf domain { | |||
| type domain; | type domain; | |||
| description | description | |||
| "The domain Information."; | "The domain Information."; | |||
| } | } | |||
| } | } | |||
| //domain | //domain | |||
| 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 61, line 23 ¶ | skipping to change at page 54, line 35 ¶ | |||
| PLSP-ID is 20 bits with 0 and 0xFFFFF are | PLSP-ID is 20 bits with 0 and 0xFFFFF are | |||
| reserved"; | reserved"; | |||
| } | } | |||
| leaf pcc-id { | leaf pcc-id { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "The local internet address of the PCC, that | "The local internet address of the PCC, that | |||
| generated the PLSP-ID."; | generated the PLSP-ID."; | |||
| } | } | |||
| leaf source { | leaf source { | |||
| type leafref { | type inet:ip-address; | |||
| path "/te:te/te:lsps/te:lsp/te:source"; | ||||
| } | ||||
| description | description | |||
| "Tunnel sender address extracted from | "Tunnel sender address extracted from | |||
| SENDER_TEMPLATE object"; | LSP-IDENTIFIERS TLV"; | |||
| reference | reference | |||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | "RFC 8231: Path Computation Element | |||
| LSP Tunnels"; | Communication Protocol (PCEP) Extensions | |||
| for Stateful PCE"; | ||||
| } | } | |||
| leaf destination { | leaf destination { | |||
| type leafref { | type inet:ip-address; | |||
| path "/te:te/te:lsps/te:lsp/te:" | ||||
| + "destination"; | ||||
| } | ||||
| description | description | |||
| "Tunnel endpoint address extracted from | "Tunnel endpoint address extracted from | |||
| SESSION object"; | LSP-IDENTIFIERS TLV"; | |||
| reference | reference | |||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | "RFC 8231: Path Computation Element | |||
| LSP Tunnels"; | Communication Protocol (PCEP) Extensions | |||
| for Stateful PCE"; | ||||
| } | } | |||
| leaf tunnel-id { | leaf tunnel-id { | |||
| type leafref { | type uint16; | |||
| path "/te:te/te:lsps/te:lsp/te:tunnel-id"; | ||||
| } | ||||
| description | description | |||
| "Tunnel identifier used in the SESSION | "Tunnel identifier used in the LSP-IDENTIFIERS | |||
| that remains constant over the life | TLV that remains constant over the life | |||
| of the tunnel."; | of the tunnel."; | |||
| reference | reference | |||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | "RFC 8231: Path Computation Element | |||
| LSP Tunnels"; | Communication Protocol (PCEP) Extensions | |||
| for Stateful PCE"; | ||||
| } | } | |||
| leaf lsp-id { | leaf lsp-id { | |||
| type leafref { | type uint16; | |||
| path "/te:te/te:lsps/te:lsp/te:lsp-id"; | ||||
| } | ||||
| description | description | |||
| "Identifier used in the SENDER_TEMPLATE | "Identifier used in the LSP-IDENTIFIERS TLV | |||
| and the FILTER_SPEC that can be changed | that can be changed to allow a sender to share | |||
| to allow a sender to share resources with | resources with itself."; | |||
| itself."; | ||||
| reference | reference | |||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | "RFC 8231: Path Computation Element | |||
| LSP Tunnels"; | Communication Protocol (PCEP) Extensions | |||
| for Stateful PCE"; | ||||
| } | } | |||
| leaf extended-tunnel-id { | leaf extended-tunnel-id { | |||
| type leafref { | type inet:ip-address; | |||
| path "/te:te/te:lsps/te:lsp/te:" | ||||
| + "extended-tunnel-id"; | ||||
| } | ||||
| description | description | |||
| "Extended Tunnel ID of the LSP."; | "Extended Tunnel ID of the LSP in LSP-IDENTIFIERS | |||
| TLV."; | ||||
| reference | reference | |||
| "RFC 3209: RSVP-TE: Extensions to RSVP for | "RFC 8231: Path Computation Element | |||
| LSP Tunnels"; | Communication Protocol (PCEP) Extensions | |||
| for Stateful PCE"; | ||||
| } | } | |||
| leaf admin-state { | leaf admin-state { | |||
| type boolean; | type boolean; | |||
| default "true"; | ||||
| description | description | |||
| "The desired operational state"; | "The desired operational state"; | |||
| } | } | |||
| leaf operational-state { | leaf operational-state { | |||
| type operational-state; | type operational-state; | |||
| description | description | |||
| "The operational status of the LSP"; | "The operational status of the LSP"; | |||
| } | } | |||
| container delegated { | container delegated { | |||
| description | description | |||
| skipping to change at page 62, line 46 ¶ | skipping to change at page 56, line 4 ¶ | |||
| "The desired operational state"; | "The desired operational state"; | |||
| } | } | |||
| leaf operational-state { | leaf operational-state { | |||
| type operational-state; | type operational-state; | |||
| description | description | |||
| "The operational status of the LSP"; | "The operational status of the LSP"; | |||
| } | } | |||
| container delegated { | container delegated { | |||
| description | description | |||
| "The delegation related parameters"; | "The delegation related parameters"; | |||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default "false"; | ||||
| description | description | |||
| "LSP is delegated or not"; | "LSP is delegated or not"; | |||
| } | } | |||
| leaf peer { | leaf peer { | |||
| type leafref { | type leafref { | |||
| path "/pcep/entity/peers/peer/addr"; | path "/pcep/entity/peers/peer/addr"; | |||
| } | } | |||
| must '(../enabled = true())' { | must '(../enabled = true())' { | |||
| error-message "The LSP must be delegated"; | error-message "The LSP must be delegated"; | |||
| } | } | |||
| skipping to change at page 63, line 33 ¶ | skipping to change at page 56, line 41 ¶ | |||
| container initiation { | container initiation { | |||
| if-feature "pce-initiated"; | if-feature "pce-initiated"; | |||
| description | description | |||
| "The PCE initiation related parameters"; | "The PCE initiation related parameters"; | |||
| reference | reference | |||
| "RFC 8281: Path Computation Element Communication | "RFC 8281: Path Computation Element Communication | |||
| Protocol (PCEP) Extensions for PCE-Initiated LSP | Protocol (PCEP) Extensions for PCE-Initiated LSP | |||
| Setup in a Stateful PCE Model"; | Setup in a Stateful PCE Model"; | |||
| leaf enabled { | leaf enabled { | |||
| type boolean; | type boolean; | |||
| default "false"; | ||||
| description | description | |||
| "Set to true if this LSP is initiated by a PCE"; | "Set to true if this LSP is initiated by a PCE"; | |||
| } | } | |||
| leaf peer { | leaf peer { | |||
| type leafref { | type leafref { | |||
| path "/pcep/entity/peers/peer/addr"; | path "/pcep/entity/peers/peer/addr"; | |||
| } | } | |||
| must '(../enabled = true())' { | must '(../enabled = true())' { | |||
| error-message "The LSP must be PCE-Initiated"; | error-message "The LSP must be PCE-Initiated"; | |||
| } | } | |||
| skipping to change at page 83, line 21 ¶ | skipping to change at page 76, line 29 ¶ | |||
| "The IP address to identify the PCC. The state | "The IP address to identify the PCC. The state | |||
| syncronization is re-triggered for all LSPs from | syncronization is re-triggered for all LSPs from | |||
| the PCC. The rpc on the PCC will be ignored."; | the PCC. The rpc on the PCC will be ignored."; | |||
| } | } | |||
| } | } | |||
| //input | //input | |||
| } | } | |||
| //rpc | //rpc | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 10.2. ietf-pcep-stats module | 9.2. ietf-pcep-stats module | |||
| <CODE BEGINS> file "ietf-pcep-stats@2020-10-31.yang" | <CODE BEGINS> file "ietf-pcep-stats@2021-02-22.yang" | |||
| module ietf-pcep-stats { | module ietf-pcep-stats { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; | namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; | |||
| prefix pcep-stats; | prefix pcep-stats; | |||
| import ietf-pcep { | import ietf-pcep { | |||
| prefix pcep; | prefix pcep; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Path Computation | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol (PCEP)"; | Element Communications Protocol (PCEP)"; | |||
| skipping to change at page 84, line 4 ¶ | skipping to change at page 77, line 10 ¶ | |||
| "RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
| } | } | |||
| organization | organization | |||
| "IETF PCE (Path Computation Element) Working Group"; | "IETF PCE (Path Computation Element) Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://tools.ietf.org/wg/pce/> | "WG Web: <https://tools.ietf.org/wg/pce/> | |||
| WG List: <mailto:pce@ietf.org> | WG List: <mailto:pce@ietf.org> | |||
| 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. | |||
| Copyright (c) 2020 IETF Trust and the persons identified as | Copyright (c) 2021 IETF Trust and the persons identified as | |||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
| RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
| revision 2020-10-31 { | revision 2021-02-22 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Path Computation | "RFC XXXX: A YANG Data Model for Path Computation | |||
| Element Communications Protocol (PCEP)"; | Element Communications Protocol (PCEP)"; | |||
| } | } | |||
| /* | /* | |||
| * Groupings | * Groupings | |||
| */ | */ | |||
| skipping to change at page 101, line 4 ¶ | skipping to change at page 94, line 10 ¶ | |||
| + "pcep:sessions/pcep:session" { | + "pcep:sessions/pcep:session" { | |||
| description | description | |||
| "Augmenting the statistics"; | "Augmenting the statistics"; | |||
| container pcep-stats { | container pcep-stats { | |||
| description | description | |||
| "The container for all statistics at session level."; | "The container for all statistics at session level."; | |||
| uses pcep-stats { | uses pcep-stats { | |||
| description | description | |||
| "The statistics contained are for the current sessions to | "The statistics contained are for the current sessions to | |||
| that peer. These are lost when the session goes down."; | that peer. These are lost when the session goes down."; | |||
| } | } | |||
| } | } | |||
| //pcep-stats | //pcep-stats | |||
| } | } | |||
| //augment | //augment | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 11. Security Considerations | 10. Security Considerations | |||
| The YANG modules defined in this document is designed to be accessed | The YANG modules defined in this document is designed to be accessed | |||
| via network management protocol such as NETCONF [RFC6241] or RESTCONF | via network management protocol such as NETCONF [RFC6241] or RESTCONF | |||
| [RFC8040]. The lowest NETCONF layer is the secure transport layer | [RFC8040]. The lowest NETCONF layer is the secure transport layer | |||
| and the mandatory-to-implement secure transport is SSH [RFC6242]. | and the mandatory-to-implement secure transport is SSH [RFC6242]. | |||
| The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement | The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement | |||
| secure transport is TLS [RFC8446] | secure transport is TLS [RFC8446] | |||
| 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- | |||
| skipping to change at page 102, line 43 ¶ | skipping to change at page 95, line 46 ¶ | |||
| unauthorized parties; compromise of the key data would allow an | unauthorized parties; compromise of the key data would allow an | |||
| attacker to forge PCEP traffic that would be accepted as authentic, | attacker to forge PCEP traffic that would be accepted as authentic, | |||
| potentially compromising the TE domain. | potentially compromising the TE domain. | |||
| The model describes several notifications, implementations must rate- | The model describes several notifications, implementations must rate- | |||
| limit the generation of these notifications to avoid creating | limit the generation of these notifications to avoid creating | |||
| significant notification load. Otherwise, this notification load may | significant notification load. Otherwise, this notification load may | |||
| have some side effects on the system stability and may be exploited | have some side effects on the system stability and may be exploited | |||
| as an attack vector. | as an attack vector. | |||
| 12. IANA Considerations | 11. IANA Considerations | |||
| This document request the IANA to register two URIs in the "IETF XML | This document request the IANA to register two URIs in the "IETF XML | |||
| Registry" [RFC3688]. Following the format in RFC 3688, the following | Registry" [RFC3688]. Following the format in RFC 3688, the following | |||
| registrations are requested - | registrations are requested - | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-pcep | URI: urn:ietf:params:xml:ns:yang:ietf-pcep | |||
| Registrant Contact: The IESG | Registrant Contact: The IESG | |||
| XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-pcep-stats | URI: urn:ietf:params:xml:ns:yang:ietf-pcep-stats | |||
| Registrant Contact: The IESG | Registrant Contact: The IESG | |||
| skipping to change at page 103, line 25 ¶ | skipping to change at page 96, line 25 ¶ | |||
| Name: ietf-pcep | Name: ietf-pcep | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep | Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep | |||
| Prefix: pcep | Prefix: pcep | |||
| Reference: [This.I-D] | Reference: [This.I-D] | |||
| Name: ietf-pcep-stats | Name: ietf-pcep-stats | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep-stats | Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep-stats | |||
| Prefix: pcep-stats | Prefix: pcep-stats | |||
| Reference: [This.I-D] | Reference: [This.I-D] | |||
| 13. Implementation Status | 12. Implementation Status | |||
| [Note to the RFC Editor - remove this section before publication, as | [Note to the RFC Editor - remove this section before publication, as | |||
| well as remove the reference to RFC 7942.] | well as remove the reference to RFC 7942.] | |||
| This section records the status of known implementations of the | This section records the status of known implementations of the | |||
| protocol defined by this specification at the time of posting of this | protocol defined by this specification at the time of posting of this | |||
| Internet-Draft, and is based on a proposal described in [RFC7942]. | Internet-Draft, and is based on a proposal described in [RFC7942]. | |||
| The description of implementations in this section is intended to | The description of implementations in this section is intended to | |||
| assist the IETF in its decision processes in progressing drafts to | assist the IETF in its decision processes in progressing drafts to | |||
| RFCs. Please note that the listing of any individual implementation | RFCs. Please note that the listing of any individual implementation | |||
| skipping to change at page 104, line 8 ¶ | skipping to change at page 97, line 8 ¶ | |||
| According to [RFC7942], "this will allow reviewers and working groups | According to [RFC7942], "this will allow reviewers and working groups | |||
| to assign due consideration to documents that have the benefit of | to assign due consideration to documents that have the benefit of | |||
| running code, which may serve as evidence of valuable experimentation | running code, which may serve as evidence of valuable experimentation | |||
| and feedback that have made the implemented protocols more mature. | and feedback that have made the implemented protocols more mature. | |||
| It is up to the individual working groups to use this information as | It is up to the individual working groups to use this information as | |||
| they see fit". | they see fit". | |||
| Currently, there are no known implementations of the YANG Module as | Currently, there are no known implementations of the YANG Module as | |||
| specified. | specified. | |||
| 14. Acknowledgements | 13. Acknowledgements | |||
| The initial document is based on the PCEP MIB [RFC7420]. We would | The initial document is based on the PCEP MIB [RFC7420]. We would | |||
| like to thank the authors of aforementioned documents. | like to thank the authors of aforementioned documents. | |||
| Thanks to Mahesh Jethmalani for the Yang Doctor review. | Thanks to Mahesh Jethmalani for the Yang Doctor review. | |||
| Thanks to Martin Bjorklund and Tom Petch for providing guidance | Thanks to Martin Bjorklund and Tom Petch for providing guidance | |||
| regarding the Yang guidelines. | regarding the Yang guidelines. | |||
| 15. References | 14. References | |||
| 15.1. Normative References | 14.1. Normative References | |||
| [I-D.ietf-isis-yang-isis-cfg] | [I-D.ietf-isis-yang-isis-cfg] | |||
| Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. | Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. | |||
| Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf- | Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf- | |||
| isis-yang-isis-cfg-42 (work in progress), October 2019. | isis-yang-isis-cfg-42 (work in progress), October 2019. | |||
| [I-D.ietf-netconf-tls-client-server] | [I-D.ietf-netconf-tls-client-server] | |||
| Watsen, K., "YANG Groupings for TLS Clients and TLS | Watsen, K., "YANG Groupings for TLS Clients and TLS | |||
| Servers", draft-ietf-netconf-tls-client-server-22 (work in | Servers", draft-ietf-netconf-tls-client-server-22 (work in | |||
| progress), August 2020. | progress), August 2020. | |||
| skipping to change at page 104, line 48 ¶ | skipping to change at page 97, line 48 ¶ | |||
| Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, | Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, | |||
| "A YANG Data Model for Traffic Engineering Tunnels, Label | "A YANG Data Model for Traffic Engineering Tunnels, Label | |||
| Switched Paths and Interfaces", draft-ietf-teas-yang-te-25 | Switched Paths and Interfaces", draft-ietf-teas-yang-te-25 | |||
| (work in progress), July 2020. | (work in progress), July 2020. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | ||||
| and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | ||||
| Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | ||||
| <https://www.rfc-editor.org/info/rfc3209>. | ||||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC5088] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | [RFC5088] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | |||
| Zhang, "OSPF Protocol Extensions for Path Computation | Zhang, "OSPF Protocol Extensions for Path Computation | |||
| Element (PCE) Discovery", RFC 5088, DOI 10.17487/RFC5088, | Element (PCE) Discovery", RFC 5088, DOI 10.17487/RFC5088, | |||
| January 2008, <https://www.rfc-editor.org/info/rfc5088>. | January 2008, <https://www.rfc-editor.org/info/rfc5088>. | |||
| [RFC5089] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | [RFC5089] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. | |||
| skipping to change at page 108, line 5 ¶ | skipping to change at page 101, line 5 ¶ | |||
| "Common YANG Data Types for Traffic Engineering", | "Common YANG Data Types for Traffic Engineering", | |||
| RFC 8776, DOI 10.17487/RFC8776, June 2020, | RFC 8776, DOI 10.17487/RFC8776, June 2020, | |||
| <https://www.rfc-editor.org/info/rfc8776>. | <https://www.rfc-editor.org/info/rfc8776>. | |||
| [RFC8779] Margaria, C., Ed., Gonzalez de Dios, O., Ed., and F. | [RFC8779] Margaria, C., Ed., Gonzalez de Dios, O., Ed., and F. | |||
| Zhang, Ed., "Path Computation Element Communication | Zhang, Ed., "Path Computation Element Communication | |||
| Protocol (PCEP) Extensions for GMPLS", RFC 8779, | Protocol (PCEP) Extensions for GMPLS", RFC 8779, | |||
| DOI 10.17487/RFC8779, July 2020, | DOI 10.17487/RFC8779, July 2020, | |||
| <https://www.rfc-editor.org/info/rfc8779>. | <https://www.rfc-editor.org/info/rfc8779>. | |||
| 15.2. Informative References | 14.2. Informative References | |||
| [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | |||
| Element (PCE)-Based Architecture", RFC 4655, | Element (PCE)-Based Architecture", RFC 4655, | |||
| DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
| <https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
| [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. | |||
| Hardwick, "Path Computation Element Communication Protocol | Hardwick, "Path Computation Element Communication Protocol | |||
| (PCEP) Management Information Base (MIB) Module", | (PCEP) Management Information Base (MIB) Module", | |||
| RFC 7420, DOI 10.17487/RFC7420, December 2014, | RFC 7420, DOI 10.17487/RFC7420, December 2014, | |||
| skipping to change at page 109, line 5 ¶ | skipping to change at page 102, line 5 ¶ | |||
| [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | |||
| Code: The Implementation Status Section", BCP 205, | Code: The Implementation Status Section", BCP 205, | |||
| RFC 7942, DOI 10.17487/RFC7942, July 2016, | RFC 7942, DOI 10.17487/RFC7942, July 2016, | |||
| <https://www.rfc-editor.org/info/rfc7942>. | <https://www.rfc-editor.org/info/rfc7942>. | |||
| [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
| and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
| (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
| <https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
| Appendix A. Example | Appendix A. The Full PCEP Data Model | |||
| The module, "ietf-pcep", defines the basic components of a PCE | ||||
| speaker. The tree depth in the tree is set to 10. | ||||
| module: ietf-pcep | ||||
| +--rw pcep! | ||||
| +--rw entity | ||||
| +--rw addr inet:ip-address | ||||
| +--rw enabled? boolean | ||||
| +--rw role pcep-role | ||||
| +--rw description? string | ||||
| +--rw speaker-entity-id? string {sync-opt}? | ||||
| +--rw admin-status? boolean | ||||
| +--ro index? uint32 | ||||
| +--ro oper-status? pcep-oper-status | ||||
| +--rw domain | ||||
| | +--rw domain* [domain-type domain] | ||||
| | +--rw domain-type identityref | ||||
| | +--rw domain domain | ||||
| +--rw capability | ||||
| | +--rw capability? bits | ||||
| | +--rw pce-initiated? boolean {pce-initiated}? | ||||
| | +--rw include-db-ver? boolean {stateful,sync-opt}? | ||||
| | +--rw trigger-resync? boolean {stateful,sync-opt}? | ||||
| | +--rw trigger-initial-sync? boolean {stateful,sync-opt}? | ||||
| | +--rw incremental-sync? boolean {stateful,sync-opt}? | ||||
| | +--rw sr {sr}? | ||||
| | +--rw enabled? boolean | ||||
| | +--rw msd-limit? boolean | ||||
| | +--rw nai? boolean | ||||
| +--rw msd? uint8 {sr}? | ||||
| +--rw pce-info | ||||
| | +--rw scope | ||||
| | | +--rw path-scope? bits | ||||
| | | +--rw intra-area-pref? uint8 | ||||
| | | +--rw inter-area-pref? uint8 | ||||
| | | +--rw inter-as-pref? uint8 | ||||
| | | +--rw inter-layer-pref? uint8 | ||||
| | +--rw neigh-domains | ||||
| | | +--rw domain* [domain-type domain] | ||||
| | | +--rw domain-type identityref | ||||
| | | +--rw domain domain | ||||
| | +--rw path-key {path-key}? | ||||
| | +--rw enabled? boolean | ||||
| | +--rw discard-timer? uint32 | ||||
| | +--rw reuse-time? uint32 | ||||
| | +--rw pce-id? inet:ip-address | ||||
| +--rw connect-timer? uint16 | ||||
| +--rw connect-max-retry? uint32 | ||||
| +--rw init-backoff-timer? uint16 | ||||
| +--rw max-backoff-timer? uint32 | ||||
| +--ro open-wait-timer? uint16 | ||||
| +--ro keep-wait-timer? uint16 | ||||
| +--rw keep-alive-timer? uint8 | ||||
| +--rw dead-timer? uint8 | ||||
| +--rw allow-negotiation? boolean | ||||
| +--rw max-keep-alive-timer? uint8 | ||||
| +--rw max-dead-timer? uint8 | ||||
| +--rw min-keep-alive-timer? uint8 | ||||
| +--rw min-dead-timer? uint8 | ||||
| +--rw sync-timer? uint16 {svec}? | ||||
| +--rw request-timer? uint16 | ||||
| +--rw max-sessions? uint32 | ||||
| +--rw max-unknown-reqs? uint32 | ||||
| +--rw max-unknown-msgs? uint32 | ||||
| +--rw pcep-notification-max-rate uint32 | ||||
| +--rw stateful-parameter {stateful}? | ||||
| | +--rw state-timeout? uint32 | ||||
| | +--rw redelegation-timeout? uint32 | ||||
| | +--rw rpt-non-pcep-lsp? boolean | ||||
| +--rw of-list {objective-function}? | ||||
| | +--rw objective-function* [of] | ||||
| | +--rw of identityref | ||||
| +--ro lsp-db {stateful}? | ||||
| | +--ro db-ver? uint64 {sync-opt}? | ||||
| | +--ro association-list* | ||||
| | | [type id source global-source extended-id] | ||||
| | | {association}? | ||||
| | | +--ro type identityref | ||||
| | | +--ro id uint16 | ||||
| | | +--ro source inet:ip-address | ||||
| | | +--ro global-source uint32 | ||||
| | | +--ro extended-id string | ||||
| | | +--ro lsp* [plsp-id pcc-id lsp-id] | ||||
| | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | ||||
| | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | ||||
| | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id | ||||
| | +--ro lsp* [plsp-id pcc-id lsp-id] | ||||
| | +--ro plsp-id uint32 | ||||
| | +--ro pcc-id inet:ip-address | ||||
| | +--ro source? inet:ip-address | ||||
| | +--ro destination? inet:ip-address | ||||
| | +--ro tunnel-id? uint16 | ||||
| | +--ro lsp-id uint16 | ||||
| | +--ro extended-tunnel-id? inet:ip-address | ||||
| | +--ro admin-state? boolean | ||||
| | +--ro operational-state? operational-state | ||||
| | +--ro delegated | ||||
| | | +--ro enabled? boolean | ||||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | ||||
| | | +--ro srp-id? uint32 | ||||
| | +--ro initiation {pce-initiated}? | ||||
| | | +--ro enabled? boolean | ||||
| | | +--ro peer? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro symbolic-path-name? string | ||||
| | +--ro last-error? identityref | ||||
| | +--ro pst? identityref | ||||
| | +--ro association-list* | ||||
| | [type id source global-source extended-id] | ||||
| | {association}? | ||||
| | +--ro type | ||||
| | | -> /pcep/entity/lsp-db/association-list/type | ||||
| | +--ro id | ||||
| | | -> /pcep/entity/lsp-db/association-list/id | ||||
| | +--ro source leafref | ||||
| | +--ro global-source leafref | ||||
| | +--ro extended-id leafref | ||||
| +--ro path-keys {path-key}? | ||||
| | +--ro path-keys* [path-key] | ||||
| | +--ro path-key uint16 | ||||
| | +--ro cps | ||||
| | | +--ro explicit-route-objects* [index] | ||||
| | | +--ro index uint32 | ||||
| | | +--ro (type)? | ||||
| | | +--:(numbered-node-hop) | ||||
| | | | +--ro numbered-node-hop | ||||
| | | | +--ro node-id te-node-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | +--:(numbered-link-hop) | ||||
| | | | +--ro numbered-link-hop | ||||
| | | | +--ro link-tp-id te-tp-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | | +--ro direction? te-link-direction | ||||
| | | +--:(unnumbered-link-hop) | ||||
| | | | +--ro unnumbered-link-hop | ||||
| | | | +--ro link-tp-id te-tp-id | ||||
| | | | +--ro node-id te-node-id | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | | +--ro direction? te-link-direction | ||||
| | | +--:(as-number) | ||||
| | | | +--ro as-number-hop | ||||
| | | | +--ro as-number inet:as-number | ||||
| | | | +--ro hop-type? te-hop-type | ||||
| | | +--:(label) | ||||
| | | +--ro label-hop | ||||
| | | +--ro te-label | ||||
| | | ... | ||||
| | +--ro pcc-original? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro req-id? uint32 | ||||
| | +--ro retrieved? boolean | ||||
| | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | ||||
| | +--ro creation-time? yang:timestamp | ||||
| | +--ro discard-time? uint32 | ||||
| | +--ro reuse-time? uint32 | ||||
| +--rw peers | ||||
| +--rw peer* [addr] | ||||
| +--rw addr inet:ip-address | ||||
| +--rw role pcep-role | ||||
| +--rw description? string | ||||
| +--rw domain | ||||
| | +--rw domain* [domain-type domain] | ||||
| | +--rw domain-type identityref | ||||
| | +--rw domain domain | ||||
| +--rw capability | ||||
| | +--rw capability? bits | ||||
| | +--rw pce-initiated? boolean | ||||
| | | {pce-initiated}? | ||||
| | +--rw include-db-ver? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw trigger-resync? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw trigger-initial-sync? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw incremental-sync? boolean | ||||
| | | {stateful,sync-opt}? | ||||
| | +--rw sr {sr}? | ||||
| | +--rw enabled? boolean | ||||
| | +--rw msd-limit? boolean | ||||
| | +--rw nai? boolean | ||||
| +--rw msd? uint8 {sr}? | ||||
| +--rw pce-info | ||||
| | +--rw scope | ||||
| | | +--rw path-scope? bits | ||||
| | | +--rw intra-area-pref? uint8 | ||||
| | | +--rw inter-area-pref? uint8 | ||||
| | | +--rw inter-as-pref? uint8 | ||||
| | | +--rw inter-layer-pref? uint8 | ||||
| | +--rw neigh-domains | ||||
| | +--rw domain* [domain-type domain] | ||||
| | +--rw domain-type identityref | ||||
| | +--rw domain domain | ||||
| +--rw delegation-pref? uint8 {stateful}? | ||||
| +--rw auth | ||||
| | +--rw (auth-type-selection)? | ||||
| | +--:(auth-key-chain) | ||||
| | | +--rw key-chain? | ||||
| | | key-chain:key-chain-ref | ||||
| | +--:(auth-key) | ||||
| | | +--rw crypto-algorithm identityref | ||||
| | | +--rw (key-string-style)? | ||||
| | | +--:(keystring) | ||||
| | | | +--rw keystring? string | ||||
| | | +--:(hexadecimal) | ||||
| | | {key-chain:hex-key-string}? | ||||
| | | +--rw hexadecimal-string? | ||||
| | | yang:hex-string | ||||
| | +--:(auth-tls) {tls}? | ||||
| | +--rw (role)? | ||||
| | +--:(server) | ||||
| | | +--rw tls-server | ||||
| | | ... | ||||
| | +--:(client) | ||||
| | +--rw tls-client | ||||
| | ... | ||||
| +--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? uint8 | ||||
| +--ro remote-id? uint8 | ||||
| +--ro keepalive-timer? uint8 | ||||
| +--ro peer-keepalive-timer? uint8 | ||||
| +--ro dead-timer? uint8 | ||||
| +--ro peer-dead-timer? uint8 | ||||
| +--ro ka-hold-time-rem? uint8 | ||||
| +--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,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 {sync-opt}? | ||||
| +--ro discontinuity-time? yang:timestamp | ||||
| rpcs: | ||||
| +---x trigger-resync {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 | ||||
| Appendix B. Example | ||||
| The example below provide an overview of PCEP peer session | The example below provide an overview of PCEP peer session | |||
| informations and LSP-DB in the Yang Module. | informations and LSP-DB in the Yang Module. | |||
| +-------+ +-------+ | +-------+ +-------+ | |||
| | | | | | | | | | | |||
| | PCC1 |<---------------->| | | | PCC1 |<---------------->| | | |||
| | | | | | | | | | | |||
| +-------+ | | | +-------+ | | | |||
| IP:192.0.2.1 | | | IP:192.0.2.1 | | | |||
| skipping to change at page 111, line 47 ¶ | skipping to change at page 111, line 4 ¶ | |||
| "session": { | "session": { | |||
| "initiator": "remote", | "initiator": "remote", | |||
| "role": "pcc", | "role": "pcc", | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| Appendix B. Contributor Addresses | Appendix C. Contributor Addresses | |||
| Rohit Pobbathi | Rohit Pobbathi | |||
| Huawei Technologies | Huawei Technologies | |||
| Divyashree Techno Park, Whitefield | Divyashree Techno Park, Whitefield | |||
| Bangalore, Karnataka 560066 | Bangalore, Karnataka 560066 | |||
| India | India | |||
| EMail: rohit.pobbathi@huawei.com | EMail: rohit.pobbathi@huawei.com | |||
| Vinod KumarS | Vinod KumarS | |||
| End of changes. 82 change blocks. | ||||
| 523 lines changed or deleted | 469 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/ | ||||