draft-ietf-pce-pcep-yang-07.txt   draft-ietf-pce-pcep-yang-08.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: September 6, 2018 Metaswitch Expires: December 24, 2018 Metaswitch
V. Beeram V. Beeram
Juniper Networks Juniper Networks
J. Tantsura J. Tantsura
March 5, 2018 June 22, 2018
A YANG Data Model for Path Computation Element Communications Protocol A YANG Data Model for Path Computation Element Communications Protocol
(PCEP) (PCEP)
draft-ietf-pce-pcep-yang-07 draft-ietf-pce-pcep-yang-08
Abstract Abstract
This document defines a YANG data model for the management of Path This document defines a YANG data model for the management of Path
Computation Element communications Protocol (PCEP) for communications Computation Element communications Protocol (PCEP) for communications
between a Path Computation Client (PCC) and a Path Computation between a Path Computation Client (PCC) and a Path Computation
Element (PCE), or between two PCEs. The data model includes Element (PCE), or between two PCEs. The data model includes
configuration data and state data (status information and counters configuration data and state data (status information and counters
for the collection of statistics). for the collection of statistics).
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 6, 2018. This Internet-Draft will expire on December 24, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 22 skipping to change at page 2, line 22
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3
3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4
4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6
5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 6 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 6
5.2. The Full PCEP Data Model . . . . . . . . . . . . . . . . 7 5.2. The Full PCEP Data Model . . . . . . . . . . . . . . . . 7
5.3. The Entity . . . . . . . . . . . . . . . . . . . . . . . 15 5.3. The Entity . . . . . . . . . . . . . . . . . . . . . . . 22
5.4. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 16 5.4. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 22
5.5. The Session Lists . . . . . . . . . . . . . . . . . . . . 16 5.5. The Session Lists . . . . . . . . . . . . . . . . . . . . 23
5.6. Notifications . . . . . . . . . . . . . . . . . . . . . . 17 5.6. Notifications . . . . . . . . . . . . . . . . . . . . . . 23
5.7. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.7. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6. The Design of PCEP Statistics Data Model . . . . . . . . . . 17 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 23
7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 20 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 27
7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 20 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 28
8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 21 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 28
8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 21 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 28
9. Other Considerations . . . . . . . . . . . . . . . . . . . . 21 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 29
9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 21 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 29
10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 21 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 29
10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 21 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 29
10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 77 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 87
11. Security Considerations . . . . . . . . . . . . . . . . . . . 97 11. Security Considerations . . . . . . . . . . . . . . . . . . . 107
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 98 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 108
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 98 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 109
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 98 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 109
14.1. Normative References . . . . . . . . . . . . . . . . . . 98 14.1. Normative References . . . . . . . . . . . . . . . . . . 109
14.2. Informative References . . . . . . . . . . . . . . . . . 100 14.2. Informative References . . . . . . . . . . . . . . . . . 111
Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 102 Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 112
Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 104 Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 115
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 105 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 116
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 26 skipping to change at page 3, line 26
of PCEP speakers. It is important to establish a common data model of PCEP speakers. It is important to establish a common data model
for how PCEP speakers are identified, configured, and monitored. The for how PCEP speakers are identified, configured, and monitored. The
data model includes configuration data and state data (status data model includes configuration data and state data (status
information and counters for the collection of statistics). information and counters for the collection of statistics).
This document contains a specification of the PCEP YANG module, This document contains a specification of the PCEP YANG module,
"ietf-pcep" which provides the PCEP [RFC5440] data model. "ietf-pcep" which provides the PCEP [RFC5440] data model.
The PCEP operational state is included in the same tree as the PCEP The PCEP operational state is included in the same tree as the PCEP
configuration consistent with Network Management Datastore configuration consistent with Network Management Datastore
Architecture [I-D.ietf-netmod-revised-datastores]. The origin of the Architecture [RFC8342]. The origin of the data is indicated as per
data is indicated as per the origin metadata annotation. 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 4, line 46 skipping to change at page 4, line 46
o Path Setup Type (PST). o Path Setup Type (PST).
[I-D.ietf-pce-segment-routing] : [I-D.ietf-pce-segment-routing] :
o Segment Routing (SR). o Segment Routing (SR).
3.1. Tree Diagrams 3.1. Tree Diagrams
A simplified graphical representation of the data model is used in A simplified graphical representation of the data model is used in
this document. The meaning of the symbols in these diagrams is this document. The meaning of the symbols in these diagrams is
defined in [I-D.ietf-netmod-yang-tree-diagrams]. defined in [RFC8340].
3.2. Prefixes in Data Node Names 3.2. Prefixes in Data Node Names
In this document, names of data nodes and other data model objects In this document, names of data nodes and other data model objects
are often used without a prefix, as long as it is clear from the are often used without a prefix, as long as it is clear from the
context in which YANG module each name is defined. Otherwise, names context in which YANG module each name is defined. Otherwise, names
are prefixed using the standard prefix associated with the are prefixed using the standard prefix associated with the
corresponding YANG module, as shown in Table 1. corresponding YANG module, as shown in Table 1.
+-----------+-----------------+-------------------------------------+ +-----------+-----------------+-------------------------------------+
| Prefix | YANG module | Reference | | Prefix | YANG module | Reference |
+-----------+-----------------+-------------------------------------+ +-----------+-----------------+-------------------------------------+
| yang | ietf-yang-types | [RFC6991] | | yang | ietf-yang-types | [RFC6991] |
| inet | ietf-inet-types | [RFC6991] | | inet | ietf-inet-types | [RFC6991] |
| te | ietf-te | [I-D.ietf-teas-yang-te] | | te | ietf-te | [I-D.ietf-teas-yang-te] |
| te-types | ietf-te-types | [I-D.ietf-teas-yang-te] | | te-types | ietf-te-types | [I-D.ietf-teas-yang-te] |
| key-chain | ietf-key-chain | [RFC8177] | | key-chain | ietf-key-chain | [RFC8177] |
| nacm | ietf-netconf- | [RFC6536] | | nacm | ietf-netconf- | [RFC8341] |
| | acm | | | | acm | |
| tls- | ietf-tls-server | [I-D.ietf-netconf-tls-client-server | | tls- | ietf-tls-server | [I-D.ietf-netconf-tls-client-server |
| server | | ] | | server | | ] |
| tls- | ietf-tls-client | [I-D.ietf-netconf-tls-client-server | | tls- | ietf-tls-client | [I-D.ietf-netconf-tls-client-server |
| client | | ] | | client | | ] |
+-----------+-----------------+-------------------------------------+ +-----------+-----------------+-------------------------------------+
Table 1: Prefixes and corresponding YANG modules Table 1: Prefixes and corresponding YANG modules
4. Objectives 4. Objectives
skipping to change at page 7, line 32 skipping to change at page 7, line 32
| ... | ...
+---n pcep-session-peer-overload-clear +---n pcep-session-peer-overload-clear
... ...
5.2. The Full PCEP Data Model 5.2. The Full PCEP Data Model
The module, "ietf-pcep", defines the basic components of a PCE The module, "ietf-pcep", defines the basic components of a PCE
speaker. speaker.
module: ietf-pcep module: ietf-pcep
+--rw pcep! +--rw pcep!
+--rw entity +--rw entity
+--rw addr inet:ip-address +--rw addr inet:ip-address
+--rw enabled? boolean +--rw enabled? boolean
+--rw role pcep-role +--rw role pcep-role
+--rw description? string +--rw description? string
+--rw speaker-entity-id? string +--rw speaker-entity-id? string
| {stateful-sync-opt}? | {stateful-sync-opt}?
+--rw admin-status? pcep-admin-status +--rw admin-status? pcep-admin-status
+--ro index? uint32 +--ro index? uint32
+--ro oper-status? pcep-oper-status +--ro oper-status? pcep-oper-status
+--rw domain +--rw domain
| +--rw domain* [domain-type domain] | +--rw domain* [domain-type domain]
| +--rw domain-type domain-type | +--rw domain-type domain-type
| +--rw domain domain | +--rw domain domain
+--rw capability +--rw capability
| +--rw gmpls? boolean {gmpls}? | +--rw gmpls? boolean {gmpls}?
| +--rw bi-dir? boolean | +--rw bi-dir? boolean
| +--rw diverse? boolean | +--rw diverse? boolean
| +--rw load-balance? boolean | +--rw load-balance? boolean
| +--rw synchronize? boolean {svec}? | +--rw synchronize? boolean {svec}?
| +--rw objective-function? boolean | +--rw objective-function? boolean
| | {objective-function}? | | {objective-function}?
| +--rw add-path-constraint? boolean | +--rw add-path-constraint? boolean
| +--rw prioritization? boolean | +--rw prioritization? boolean
| +--rw multi-request? boolean | +--rw multi-request? boolean
| +--rw gco? boolean {gco}? | +--rw gco? boolean {gco}?
| +--rw p2mp? boolean {p2mp}? | +--rw p2mp? boolean {p2mp}?
| +--rw stateful {stateful}? | +--rw stateful {stateful}?
| | +--rw enabled? boolean | | +--rw enabled? boolean
| | +--rw active? boolean | | +--rw active? boolean
| | +--rw pce-initiated? boolean | | +--rw pce-initiated? boolean {pce-initiated}?
| | | {pce-initiated}? | | +--rw include-db-ver? boolean
| | +--rw include-db-ver? boolean | | | {stateful-sync-opt}?
| | | {stateful-sync-opt}? | | +--rw trigger-resync? boolean
| | +--rw trigger-resync? boolean | | | {stateful-sync-opt}?
| | | {stateful-sync-opt}? | | +--rw trigger-initial-sync? boolean
| | +--rw trigger-initial-sync? boolean | | | {stateful-sync-opt}?
| | | {stateful-sync-opt}? | | +--rw incremental-sync? boolean
| | +--rw incremental-sync? boolean | | {stateful-sync-opt}?
| | {stateful-sync-opt}? | +--rw sr {sr}?
| +--rw sr {sr}? | +--rw enabled? boolean
| +--rw enabled? boolean +--rw pce-info
+--rw pce-info | +--rw scope
| +--rw scope | | +--rw intra-area-scope? boolean
| | +--rw intra-area-scope? boolean | | +--rw intra-area-pref? uint8
| | +--rw intra-area-pref? uint8 | | +--rw inter-area-scope? boolean
| | +--rw inter-area-scope? boolean | | +--rw inter-area-scope-default? boolean
| | +--rw inter-area-scope-default? boolean | | +--rw inter-area-pref? uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-as-scope? boolean
| | +--rw inter-as-scope? boolean | | +--rw inter-as-scope-default? boolean
| | +--rw inter-as-scope-default? boolean | | +--rw inter-as-pref? uint8
| | +--rw inter-as-pref? uint8 | | +--rw inter-layer-scope? boolean
| | +--rw inter-layer-scope? boolean | | +--rw inter-layer-pref? uint8
| | +--rw inter-layer-pref? uint8 | +--rw neigh-domains
| +--rw neigh-domains | | +--rw domain* [domain-type domain]
| | +--rw domain* [domain-type domain] | | +--rw domain-type domain-type
| | +--rw domain-type domain-type | | +--rw domain domain
| | +--rw domain domain | +--rw path-key {path-key}?
| +--rw path-key {path-key}? | +--rw enabled? boolean
| +--rw enabled? boolean | +--rw discard-timer? uint32
| +--rw discard-timer? uint32 | +--rw reuse-time? uint32
| +--rw reuse-time? uint32 | +--rw pce-id? inet:ip-address
| +--rw pce-id? inet:ip-address +--rw connect-timer? uint32
+--rw connect-timer? uint32 +--rw connect-max-retry? uint32
+--rw connect-max-retry? uint32 +--rw init-backoff-timer? uint32
+--rw init-backoff-timer? uint32 +--rw max-backoff-timer? uint32
+--rw max-backoff-timer? uint32 +--rw open-wait-timer? uint32
+--rw open-wait-timer? uint32 +--rw keep-wait-timer? uint32
+--rw keep-wait-timer? uint32 +--rw keep-alive-timer? uint32
+--rw keep-alive-timer? uint32 +--rw dead-timer? uint32
+--rw dead-timer? uint32 +--rw allow-negotiation? boolean
+--rw allow-negotiation? boolean +--rw max-keep-alive-timer? uint32
+--rw max-keep-alive-timer? uint32 +--rw max-dead-timer? uint32
+--rw max-dead-timer? uint32 +--rw min-keep-alive-timer? uint32
+--rw min-keep-alive-timer? uint32 +--rw min-dead-timer? uint32
+--rw min-dead-timer? uint32 +--rw sync-timer? uint32 {svec}?
+--rw sync-timer? uint32 {svec}? +--rw request-timer? uint32
+--rw request-timer? uint32 +--rw max-sessions? uint32
+--rw max-sessions? uint32 +--rw max-unknown-reqs? uint32
+--rw max-unknown-reqs? uint32 +--rw max-unknown-msgs? uint32
+--rw max-unknown-msgs? uint32 +--rw pcep-notification-max-rate uint32
+--rw pcep-notification-max-rate uint32 +--rw stateful-parameter {stateful}?
+--rw stateful-parameter {stateful}? | +--rw state-timeout? uint32
| +--rw state-timeout? uint32 | +--rw redelegation-timeout? uint32
| +--rw redelegation-timeout? uint32 | +--rw rpt-non-pcep-lsp? boolean
| +--rw rpt-non-pcep-lsp? boolean +--rw of-list {objective-function}?
+--rw of-list {objective-function}? | +--rw objective-function* [of]
| +--rw objective-function* [of] | +--rw of objective-function
| +--rw of objective-function +--ro lsp-db {stateful}?
+--ro lsp-db {stateful}? | +--ro db-ver? uint64 {stateful-sync-opt}?
| +--ro db-ver? uint64 {stateful-sync-opt}? | +--ro association-list*
| +--ro association-list* | | [type id source global-source extended-id]
| | [id source global-source extended-id] | | {association}?
| | +--ro type? assoc-type | | +--ro type assoc-type
| | +--ro id uint16 | | +--ro id uint16
| | +--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] | | +--ro lsp* [plsp-id pcc-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* [plsp-id pcc-id] | +--ro lsp* [plsp-id pcc-id]
| +--ro plsp-id uint32 | +--ro plsp-id uint32
| +--ro pcc-id inet:ip-address | +--ro pcc-id inet:ip-address
| +--ro lsp-ref | +--ro lsp-ref
| | +--ro source? | | +--ro source?
| | | -> /te:te/lsps-state/lsp/source | | | -> /te:te/lsps-state/lsp/source
| | +--ro destination? | | +--ro destination?
| | | -> /te:te/lsps-state/lsp/destination | | | -> /te:te/lsps-state/lsp/destination
| | +--ro tunnel-id? | | +--ro tunnel-id?
| | | -> /te:te/lsps-state/lsp/tunnel-id | | | -> /te:te/lsps-state/lsp/tunnel-id
| | +--ro lsp-id? | | +--ro lsp-id?
| | | -> /te:te/lsps-state/lsp/lsp-id | | | -> /te:te/lsps-state/lsp/lsp-id
| | +--ro extended-tunnel-id? leafref | | +--ro extended-tunnel-id?
| +--ro admin-state? boolean | | -> /te:te/lsps-state/lsp/extended-tunnel-id
| +--ro operational-state? operational-state | +--ro admin-state? boolean
| +--ro delegated | +--ro operational-state? operational-state
| | +--ro enabled? boolean | +--ro delegated
| | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro enabled? boolean
| | +--ro srp-id? uint32 | | +--ro peer? -> /pcep/entity/peers/peer/addr
| +--ro initiation {pce-initiated}? | | +--ro srp-id? uint32
| | +--ro enabled? boolean | +--ro initiation {pce-initiated}?
| | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro enabled? boolean
| +--ro symbolic-path-name? string | | +--ro peer? -> /pcep/entity/peers/peer/addr
| +--ro last-error? lsp-error | +--ro symbolic-path-name? string
| +--ro pst? pst | +--ro last-error? lsp-error
| +--ro association-list* | +--ro pst? pst
| [id source global-source extended-id] | +--ro association-list*
| +--ro id | [type id source global-source extended-id]
| | -> /pcep/entity/lsp-db/association-list/id | {association}?
| +--ro source leafref | +--ro type
| +--ro global-source leafref | | -> /pcep/entity/lsp-db/association-list/type
| +--ro extended-id leafref | +--ro id
+--ro path-keys {path-key}? | | -> /pcep/entity/lsp-db/association-list/id
| +--ro path-keys* [path-key] | +--ro source leafref
| +--ro path-key uint16 | +--ro global-source leafref
| +--ro cps | +--ro extended-id leafref
| | +--ro explicit-route-objects* [index] +--ro path-keys {path-key}?
| | +--ro explicit-route-usage? identityref | +--ro path-keys* [path-key]
| | +--ro index uint32 | +--ro path-key uint16
| | +--ro (type)? | +--ro cps
| | +--:(numbered) | | +--ro explicit-route-objects* [index]
| | | +--ro numbered-hop | | +--ro index uint32
| | | +--ro address? te-types:te-tp-id | | +--ro (type)?
| | | +--ro hop-type? te-hop-type | | +--:(num-unnum-hop)
| | | +--ro direction? te-link-direction | | | +--ro num-unnum-hop
| | +--:(as-number) | | | +--ro node-id? te-types:te-node-id
| | | +--ro as-number-hop | | | +--ro link-tp-id? te-types:te-tp-id
| | | +--ro as-number? binary | | | +--ro hop-type? te-hop-type
| | | +--ro hop-type? te-hop-type | | | +--ro direction? te-link-direction
| | +--:(unnumbered) | | +--:(as-number)
| | | +--ro unnumbered-hop | | | +--ro as-number-hop
| | | +--ro node-id? te-types:te-node-id | | | +--ro as-number? binary
| | | +--ro link-tp-id? te-types:te-tp-id | | | +--ro hop-type? te-hop-type
| | | +--ro hop-type? te-hop-type | | +--:(label)
| | | +--ro direction? te-link-direction | | +--ro label-hop
| | +--:(label) | | +--ro te-label
| | +--ro label-hop | | +--ro (technology)?
| | +--ro te-label | | | +--:(generic)
| | +--ro (technology)? | | | +--ro generic?
| | | +--:(generic) | | | rt-types:generalized-label
| | | +--ro generic? | | +--ro direction?
| | | rt-types:generalized-label | | te-label-direction
| | +--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] +--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 domain-type | +--rw domain domain
| +--rw domain domain +--rw capability
+--rw capability | +--rw gmpls? boolean {gmpls}?
| +--rw gmpls? boolean {gmpls}? | +--rw bi-dir? boolean
| +--rw bi-dir? boolean | +--rw diverse? boolean
| +--rw diverse? boolean | +--rw load-balance? boolean
| +--rw load-balance? boolean | +--rw synchronize? boolean {svec}?
| +--rw synchronize? boolean {svec}? | +--rw objective-function? boolean
| +--rw objective-function? boolean | | {objective-function}?
| | {objective-function}? | +--rw add-path-constraint? boolean
| +--rw add-path-constraint? boolean | +--rw prioritization? boolean
| +--rw prioritization? boolean | +--rw multi-request? boolean
| +--rw multi-request? boolean | +--rw gco? boolean {gco}?
| +--rw gco? boolean {gco}? | +--rw p2mp? boolean {p2mp}?
| +--rw p2mp? boolean {p2mp}? | +--rw stateful {stateful}?
| +--rw stateful {stateful}? | | +--rw enabled? boolean
| | +--rw enabled? boolean | | +--rw active? boolean
| | +--rw active? boolean | | +--rw pce-initiated? boolean
| | +--rw pce-initiated? boolean | | | {pce-initiated}?
| | | {pce-initiated}? | | +--rw include-db-ver? boolean
| | +--rw include-db-ver? boolean | | | {stateful-sync-opt}?
| | | {stateful-sync-opt}? | | +--rw trigger-resync? boolean
| | +--rw trigger-resync? boolean | | | {stateful-sync-opt}?
| | | {stateful-sync-opt}? | | +--rw trigger-initial-sync? boolean
| | +--rw trigger-initial-sync? boolean | | | {stateful-sync-opt}?
| | | {stateful-sync-opt}? | | +--rw incremental-sync? boolean
| | +--rw incremental-sync? boolean | | {stateful-sync-opt}?
| | {stateful-sync-opt}? | +--rw sr {sr}?
| +--rw sr {sr}? | +--rw enabled? boolean
| +--rw enabled? boolean +--rw pce-info
+--rw pce-info | +--rw scope
| +--rw scope | | +--rw intra-area-scope? boolean
| | +--rw intra-area-scope? boolean | | +--rw intra-area-pref? uint8
| | +--rw intra-area-pref? uint8 | | +--rw inter-area-scope? boolean
| | +--rw inter-area-scope? boolean | | +--rw inter-area-scope-default? boolean
| | +--rw inter-area-scope-default? boolean | | +--rw inter-area-pref? uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-as-scope? boolean
| | +--rw inter-as-scope? boolean | | +--rw inter-as-scope-default? boolean
| | +--rw inter-as-scope-default? boolean | | +--rw inter-as-pref? uint8
| | +--rw inter-as-pref? uint8 | | +--rw inter-layer-scope? boolean
| | +--rw inter-layer-scope? boolean | | +--rw inter-layer-pref? uint8
| | +--rw inter-layer-pref? uint8 | +--rw neigh-domains
| +--rw neigh-domains | +--rw domain* [domain-type domain]
| +--rw domain* [domain-type domain] | +--rw domain-type domain-type
| +--rw domain-type domain-type | +--rw domain domain
| +--rw domain domain +--rw 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
| | +--rw key-string | | +--rw (key-string-style)?
| | +--rw (key-string-style)? | | +--:(keystring)
| | +--:(keystring) | | | +--rw keystring? string
| | | +--rw keystring? string | | +--:(hexadecimal)
| | +--:(hexadecimal) | | {key-chain:hex-key-string}?
| | {key-chain:hex-key-string}? | | +--rw hexadecimal-string?
| | +--rw hexadecimal-string? | | yang:hex-string
| | yang:hex-string | +--:(auth-tls) {tls}?
| +--:(auth-tls) {tls}? | +--rw (role)?
| +--rw (role)? | +--:(server)
| +--:(server) | | +--rw tls-server
| | +--rw tls-server | | +--rw server-identity
| | +--rw server-identity | | | +--rw (local-or-keystore)
| | | +--rw algorithm? | | | +--:(local)
| | | | identityref | | | | +--rw algorithm
| | | +--rw private-key? | | | | | ct:key-algorithm-ref
| | | | union | | | | +--rw public-key
| | | +--rw public-key? | | | | | binary
| | | | binary | | | | +--rw private-key
| | | +---x generate-private-key | | | | | union
| | | | +---w input | | | | +--rw cert
| | | | +---w algorithm | | | | | ct:end-entity-cert-cms
| | | | identityref | | | | +---n certificate-expiration
| | | +--rw certificates | | | | +-- expiration-date?
| | | | +--rw certificate* [name] | | | | yang:date-and-time
| | | | +--rw name string | | | +--:(keystore)
| | | | +--rw value? binary | | | {keystore-implemented}?
| | | +---x generate-certificate-signing-request | | | +--rw reference
| | | +---w input | | | ks:asymmetric-key-certificate-ref
| | | | +---w subject binary | | +--rw client-auth
| | | | +---w attributes? binary | | | +--rw pinned-ca-certs?
| | | +--ro output | | | | ta:pinned-certificates-ref
| | | +--ro certificate-signing-request | | | +--rw pinned-client-certs?
| | | binary | | | ta:pinned-certificates-ref
| | +--rw client-auth | | +--rw hello-params
| | | +--rw pinned-ca-certs? | | {tls-server-hello-params-config}?
| | | | ks:pinned-certificates | | +--rw tls-versions
| | | +--rw pinned-client-certs? | | | +--rw tls-version*
| | | ks:pinned-certificates | | | identityref
| | +--rw hello-params | | +--rw cipher-suites
| | {tls-server-hello-params-config}? | | +--rw cipher-suite*
| | +--rw tls-versions | | identityref
| | | +--rw tls-version* identityref | +--:(client)
| | +--rw cipher-suites | +--rw tls-client
| | +--rw cipher-suite* | +--rw client-identity
| | identityref | | +--rw (auth-type)?
| +--:(client) | | +--:(certificate)
| +--rw tls-client | | +--rw certificate
| +--rw client-identity | | +--rw (local-or-keystore)
| | +--rw (auth-type)? | | +--:(local)
| | +--:(certificate) | | | +--rw algorithm
| | +--rw certificate | | | | ct:key-algorithm-ref
| | +--rw algorithm? | | | +--rw public-key
| | | identityref | | | | binary
| | +--rw private-key? | | | +--rw private-key
| | | union | | | | union
| | +--rw public-key? | | | +--rw cert
| | | binary | | | | ct:end-entity-cert-cms
| | +---x generate-private-key | | | +---n certificate-expiration
| | | +---w input | | | +-- expiration-date?
| | | +---w algorithm | | | yang:date-and-time
| | | identityref | | +--:(keystore)
| | +--rw certificates | | {keystore-implemented}?
| | | +--rw certificate* | | +--rw reference
| | | [name] | | ks:asymmetric-key-certificate-ref
| | | +--rw name | +--rw server-auth
| | | | string | | +--rw pinned-ca-certs?
| | | +--rw value? | | | ta:pinned-certificates-ref
| | | binary | | +--rw pinned-server-certs?
| | +---x generate-certificate-signing-request | | ta:pinned-certificates-ref
| | +---w input | +--rw hello-params
| | | +---w subject | {tls-client-hello-params-config}?
| | | | binary | +--rw tls-versions
| | | +---w attributes? | | +--rw tls-version*
| | | binary | | identityref
| | +--ro output | +--rw cipher-suites
| | +--ro certificate-signing-request | +--rw cipher-suite*
| | binary | identityref
| +--rw server-auth +--ro discontinuity-time? yang:timestamp
| | +--rw pinned-ca-certs? +--ro initiate-session? boolean
| | | ks:pinned-certificates +--ro session-exists? boolean
| | +--rw pinned-server-certs? +--ro session-up-time? yang:timestamp
| | ks:pinned-certificates +--ro session-fail-time? yang:timestamp
| +--rw hello-params +--ro session-fail-up-time? yang:timestamp
| {tls-client-hello-params-config}? +--ro sessions
| +--rw tls-versions +--ro session* [initiator]
| | +--rw tls-version* identityref +--ro initiator pcep-initiator
| +--rw cipher-suites +--ro role?
| +--rw cipher-suite* | -> /pcep/entity/role
| identityref +--ro state-last-change? yang:timestamp
+--ro discontinuity-time? yang:timestamp +--ro state? pcep-sess-state
+--ro initiate-session? boolean +--ro session-creation? yang:timestamp
+--ro session-exists? boolean +--ro connect-retry? yang:counter32
+--ro session-up-time? yang:timestamp +--ro local-id? uint32
+--ro session-fail-time? yang:timestamp +--ro remote-id? uint32
+--ro session-fail-up-time? yang:timestamp +--ro keepalive-timer? uint32
+--ro sessions +--ro peer-keepalive-timer? uint32
+--ro session* [initiator] +--ro dead-timer? uint32
+--ro initiator pcep-initiator +--ro peer-dead-timer? uint32
+--ro role? -> /pcep/entity/role +--ro ka-hold-time-rem? uint32
+--ro state-last-change? yang:timestamp +--ro overloaded? boolean
+--ro state? pcep-sess-state +--ro overload-time? uint32
+--ro session-creation? yang:timestamp +--ro peer-overloaded? boolean
+--ro connect-retry? yang:counter32 +--ro peer-overload-time? uint32
+--ro local-id? uint32 +--ro lspdb-sync? sync-state
+--ro remote-id? uint32 | {stateful}?
+--ro keepalive-timer? uint32 +--ro recv-db-ver? uint64
+--ro peer-keepalive-timer? uint32 | {stateful,stateful-sync-opt}?
+--ro dead-timer? uint32 +--ro of-list {objective-function}?
+--ro peer-dead-timer? uint32 | +--ro objective-function* [of]
+--ro ka-hold-time-rem? uint32 | +--ro of objective-function
+--ro overloaded? boolean +--ro pst-list
+--ro overload-time? uint32 | +--ro path-setup-type* [pst]
+--ro peer-overloaded? boolean | +--ro pst pst
+--ro peer-overload-time? uint32 +--ro assoc-type-list {association}?
+--ro lspdb-sync? sync-state | +--ro assoc-type* [at]
| {stateful}? | +--ro at assoc-type
+--ro recv-db-ver? uint64 +--ro speaker-entity-id? string
| {stateful,stateful-sync-opt}? | {stateful-sync-opt}?
+--ro of-list {objective-function}? +--ro discontinuity-time? yang:timestamp
| +--ro objective-function* [of]
| +--ro of objective-function
+--ro speaker-entity-id? string
| {stateful-sync-opt}?
+--ro discontinuity-time? yang:timestamp
rpcs: rpcs:
+---x trigger-resync {stateful,stateful-sync-opt}? +---x trigger-resync {stateful,stateful-sync-opt}?
+---w input +---w input
+---w pcc? -> /pcep/entity/peers/peer/addr +---w pcc? -> /pcep/entity/peers/peer/addr
notifications: notifications:
+---n pcep-session-up +---n pcep-session-up
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? | +--ro session-initiator?
| | -> /pcep/entity/peers/peer/sessions/session/initiator | | -> /pcep/entity/peers/peer/sessions/session/initiator
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp
| +--ro state? pcep-sess-state | +--ro state? pcep-sess-state
+---n pcep-session-down +---n pcep-session-down
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? pcep-initiator | +--ro session-initiator? pcep-initiator
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp
| +--ro state? pcep-sess-state | +--ro state? pcep-sess-state
+---n pcep-session-local-overload +---n pcep-session-local-overload
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? | +--ro session-initiator?
| | -> /pcep/entity/peers/peer/sessions/session/initiator | | -> /pcep/entity/peers/peer/sessions/session/initiator
| +--ro overloaded? boolean | +--ro overloaded? boolean
| +--ro overload-time? uint32 | +--ro overload-time? uint32
+---n pcep-session-local-overload-clear +---n pcep-session-local-overload-clear
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro overloaded? boolean | +--ro overloaded? boolean
+---n pcep-session-peer-overload +---n pcep-session-peer-overload
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? | +--ro session-initiator?
| | -> /pcep/entity/peers/peer/sessions/session/initiator | | -> /pcep/entity/peers/peer/sessions/session/initiator
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean
| +--ro peer-overload-time? uint32 | +--ro peer-overload-time? uint32
+---n pcep-session-peer-overload-clear +---n pcep-session-peer-overload-clear
+--ro peer-addr? -> /pcep/entity/peers/peer/addr +--ro peer-addr? -> /pcep/entity/peers/peer/addr
+--ro peer-overloaded? boolean +--ro peer-overloaded? boolean
grouping info
+-- domain
| +-- domain* [domain-type domain]
| +-- domain-type? domain-type
| +-- domain? domain
+-- capability
+-- gmpls? boolean {gmpls}?
+-- bi-dir? boolean
+-- diverse? boolean
+-- load-balance? boolean
+-- synchronize? boolean {svec}?
+-- objective-function? boolean {objective-function}?
+-- add-path-constraint? boolean
+-- prioritization? boolean
+-- multi-request? boolean
+-- gco? boolean {gco}?
+-- p2mp? boolean {p2mp}?
+-- stateful {stateful}?
| +-- enabled? boolean
| +-- active? boolean
| +-- pce-initiated? boolean {pce-initiated}?
| +-- include-db-ver? boolean {stateful-sync-opt}?
| +-- trigger-resync? boolean {stateful-sync-opt}?
| +-- trigger-initial-sync? boolean {stateful-sync-opt}?
| +-- incremental-sync? boolean {stateful-sync-opt}?
+-- sr {sr}?
+-- enabled? boolean
grouping lsp-state
+-- plsp-id? uint32
+-- pcc-id? inet:ip-address
+-- lsp-ref
| +-- source? -> /te:te/lsps-state/lsp/source
| +-- destination?
| | -> /te:te/lsps-state/lsp/destination
| +-- tunnel-id? -> /te:te/lsps-state/lsp/tunnel-id
| +-- lsp-id? -> /te:te/lsps-state/lsp/lsp-id
| +-- extended-tunnel-id?
| -> /te:te/lsps-state/lsp/extended-tunnel-id
+-- admin-state? boolean
+-- operational-state? operational-state
+-- delegated
| +-- enabled? boolean
| +-- peer? -> /pcep/entity/peers/peer/addr
| +-- srp-id? uint32
+-- initiation {pce-initiated}?
| +-- enabled? boolean
| +-- peer? -> /pcep/entity/peers/peer/addr
+-- symbolic-path-name? string
+-- last-error? lsp-error
+-- pst? pst
grouping pce-scope
+-- intra-area-scope? boolean
+-- intra-area-pref? uint8
+-- inter-area-scope? boolean
+-- inter-area-scope-default? boolean
+-- inter-area-pref? uint8
+-- inter-as-scope? boolean
+-- inter-as-scope-default? boolean
+-- inter-as-pref? uint8
+-- inter-layer-scope? boolean
+-- inter-layer-pref? uint8
grouping of-list
+-- objective-function* [of]
+-- of? objective-function
grouping pst-list
+-- path-setup-type* [pst]
+-- pst? pst
grouping session-grouping
+--ro sessions
+--ro session* [initiator]
+--ro initiator? pcep-initiator
+--ro role? -> /pcep/entity/role
+--ro state-last-change? yang:timestamp
+--ro state? pcep-sess-state
+--ro session-creation? yang:timestamp
+--ro connect-retry? yang:counter32
+--ro local-id? uint32
+--ro remote-id? uint32
+--ro keepalive-timer? uint32
+--ro peer-keepalive-timer? uint32
+--ro dead-timer? uint32
+--ro peer-dead-timer? uint32
+--ro ka-hold-time-rem? uint32
+--ro overloaded? boolean
+--ro overload-time? uint32
+--ro peer-overloaded? boolean
+--ro peer-overload-time? uint32
+--ro lspdb-sync? sync-state {stateful}?
+--ro recv-db-ver? uint64
| {stateful,stateful-sync-opt}?
+--ro of-list {objective-function}?
| +--ro objective-function* [of]
| +--ro of? objective-function
+--ro pst-list
| +--ro path-setup-type* [pst]
| +--ro pst? pst
+--ro assoc-type-list {association}?
| +--ro assoc-type* [at]
| +--ro at? assoc-type
+--ro speaker-entity-id? string {stateful-sync-opt}?
+--ro discontinuity-time? yang:timestamp
grouping pcep-entity-info
+-- connect-timer? uint32
+-- connect-max-retry? uint32
+-- init-backoff-timer? uint32
+-- max-backoff-timer? uint32
+-- open-wait-timer? uint32
+-- keep-wait-timer? uint32
+-- keep-alive-timer? uint32
+-- dead-timer? uint32
+-- allow-negotiation? boolean
+-- max-keep-alive-timer? uint32
+-- max-dead-timer? uint32
+-- min-keep-alive-timer? uint32
+-- min-dead-timer? uint32
+-- sync-timer? uint32 {svec}?
+-- request-timer? uint32
+-- max-sessions? uint32
+-- max-unknown-reqs? uint32
+-- max-unknown-msgs? uint32
grouping path-key
+-- enabled? boolean
+-- discard-timer? uint32
+-- reuse-time? uint32
+-- pce-id? inet:ip-address
grouping capability
+-- gmpls? boolean {gmpls}?
+-- bi-dir? boolean
+-- diverse? boolean
+-- load-balance? boolean
+-- synchronize? boolean {svec}?
+-- objective-function? boolean {objective-function}?
+-- add-path-constraint? boolean
+-- prioritization? boolean
+-- multi-request? boolean
+-- gco? boolean {gco}?
+-- p2mp? boolean {p2mp}?
+-- stateful {stateful}?
| +-- enabled? boolean
| +-- active? boolean
| +-- pce-initiated? boolean {pce-initiated}?
| +-- include-db-ver? boolean {stateful-sync-opt}?
| +-- trigger-resync? boolean {stateful-sync-opt}?
| +-- trigger-initial-sync? boolean {stateful-sync-opt}?
| +-- incremental-sync? boolean {stateful-sync-opt}?
+-- sr {sr}?
+-- enabled? boolean
grouping path-key-state
+-- path-keys* [path-key]
+-- path-key? uint16
+-- cps
| +-- explicit-route-objects* [index]
| +-- index? uint32
| +-- (type)?
| +--:(num-unnum-hop)
| | +-- num-unnum-hop
| | +-- node-id? te-types:te-node-id
| | +-- link-tp-id? te-types:te-tp-id
| | +-- hop-type? te-hop-type
| | +-- direction? te-link-direction
| +--:(as-number)
| | +-- as-number-hop
| | +-- as-number? binary
| | +-- hop-type? te-hop-type
| +--:(label)
| +-- label-hop
| +-- te-label
| +-- (technology)?
| | +--:(generic)
| | +-- generic?
| | rt-types:generalized-label
| +-- direction? te-label-direction
+-- pcc-original? -> /pcep/entity/peers/peer/addr
+-- req-id? uint32
+-- retrieved? boolean
+-- pcc-retrieved? -> /pcep/entity/peers/peer/addr
+-- creation-time? yang:timestamp
+-- discard-time? uint32
+-- reuse-time? uint32
grouping authentication
+-- auth
+-- (auth-type-selection)?
+--:(auth-key-chain)
| +-- key-chain? key-chain:key-chain-ref
+--:(auth-key)
| +-- crypto-algorithm identityref
| +-- key-string
| +-- (key-string-style)?
| +--:(keystring)
| | +-- keystring? string
| +--:(hexadecimal) {key-chain:hex-key-string}?
| +-- hexadecimal-string? yang:hex-string
+--:(auth-tls) {tls}?
+-- (role)?
+--:(server)
| +-- tls-server
| +-- server-identity
| | +-- (local-or-keystore)
| | +--:(local)
| | | +-- algorithm
| | | | ct:key-algorithm-ref
| | | +-- public-key binary
| | | +-- private-key union
| | | +-- cert
| | | | ct:end-entity-cert-cms
| | | +---n certificate-expiration
| | | +-- expiration-date?
| | | yang:date-and-time
| | +--:(keystore) {keystore-implemented}?
| | +-- reference
| | ks:asymmetric-key-certificate-ref
| +-- client-auth
| | +-- pinned-ca-certs?
| | | ta:pinned-certificates-ref
| | +-- pinned-client-certs?
| | ta:pinned-certificates-ref
| +-- hello-params
| {tls-server-hello-params-config}?
| +-- tls-versions
| | +-- tls-version* identityref
| +-- cipher-suites
| +-- cipher-suite* identityref
+--:(client)
+-- tls-client
+-- client-identity
| +-- (auth-type)?
| +--:(certificate)
| +-- certificate
| +-- (local-or-keystore)
| +--:(local)
| | +-- algorithm
| | | ct:key-algorithm-ref
| | +-- public-key
| | | binary
| | +-- private-key
| | | union
| | +-- cert
| | | ct:end-entity-cert-cms
| | +---n certificate-expiration
| | +-- expiration-date?
| | yang:date-and-time
| +--:(keystore)
| {keystore-implemented}?
| +-- reference
| ks:asymmetric-key-certificate-ref
+-- server-auth
| +-- pinned-ca-certs?
| | ta:pinned-certificates-ref
| +-- pinned-server-certs?
| ta:pinned-certificates-ref
+-- hello-params
{tls-client-hello-params-config}?
+-- tls-versions
| +-- tls-version* identityref
+-- cipher-suites
+-- cipher-suite* identityref
grouping notification-session-hdr
+-- session-initiator?
-> /pcep/entity/peers/peer/sessions/session/initiator
grouping assoc-type-list
+-- assoc-type* [at]
+-- at? assoc-type
grouping association
+-- type? assoc-type
+-- id? uint16
+-- source? inet:ip-address
+-- global-source? uint32
+-- extended-id? string
grouping domain
+-- domain-type? domain-type
+-- domain? domain
grouping association-ref
+-- type?
| -> /pcep/entity/lsp-db/association-list/type
+-- id? -> /pcep/entity/lsp-db/association-list/id
+-- source?
| -> /pcep/entity/lsp-db/association-list/source
+-- global-source?
| -> /pcep/entity/lsp-db/association-list/global-source
+-- extended-id?
-> /pcep/entity/lsp-db/association-list/extended-id
grouping notification-instance-hdr
+-- peer-addr? -> /pcep/entity/peers/peer/addr
grouping pce-info
+-- scope
| +-- intra-area-scope? boolean
| +-- intra-area-pref? uint8
| +-- inter-area-scope? boolean
| +-- inter-area-scope-default? boolean
| +-- inter-area-pref? uint8
| +-- inter-as-scope? boolean
| +-- inter-as-scope-default? boolean
| +-- inter-as-pref? uint8
| +-- inter-layer-scope? boolean
| +-- inter-layer-pref? uint8
+-- neigh-domains
+-- domain* [domain-type domain]
+-- domain-type? domain-type
+-- domain? domain
grouping stateful-pce-parameter
+-- state-timeout? uint32
+-- redelegation-timeout? uint32
+-- rpt-non-pcep-lsp? boolean
5.3. The Entity 5.3. The Entity
The PCEP yang module may contain status information for the local The PCEP yang module may contain status information for the local
PCEP entity. PCEP entity.
The entity has an IP address (using ietf-inet-types [RFC6991]) and a The entity has an IP address (using ietf-inet-types [RFC6991]) and a
"role" leaf (the local entity PCEP role) as mandatory. "role" leaf (the local entity PCEP role) as mandatory.
Note that, the PCEP MIB module [RFC7420] uses an entity list and a Note that, the PCEP MIB module [RFC7420] uses an entity list and a
skipping to change at page 20, line 16 skipping to change at page 26, line 30
| +--ro num-pcinitiate-rcvd? yang:counter32 | +--ro num-pcinitiate-rcvd? yang:counter32
| +--ro num-initiate-sent? yang:counter32 | +--ro num-initiate-sent? yang:counter32
| +--ro num-initiate-rcvd? yang:counter32 | +--ro num-initiate-rcvd? yang:counter32
| +--ro num-initiate-rcvd-error-sent? yang:counter32 | +--ro num-initiate-rcvd-error-sent? yang:counter32
+--ro path-key {p:path-key}? +--ro path-key {p:path-key}?
+--ro num-unknown-path-key? yang:counter32 +--ro num-unknown-path-key? yang:counter32
+--ro num-exp-path-key? yang:counter32 +--ro num-exp-path-key? yang:counter32
+--ro num-dup-path-key? yang:counter32 +--ro num-dup-path-key? yang:counter32
+--ro num-path-key-no-attempt? yang:counter32 +--ro num-path-key-no-attempt? yang:counter32
grouping pcep-stats
+-- avg-rsp-time? uint32
+-- lwm-rsp-time? uint32
+-- hwm-rsp-time? uint32
+-- num-pcreq-sent? yang:counter32
+-- num-pcreq-rcvd? yang:counter32
+-- num-pcrep-sent? yang:counter32
+-- num-pcrep-rcvd? yang:counter32
+-- num-pcerr-sent? yang:counter32
+-- num-pcerr-rcvd? yang:counter32
+-- num-pcntf-sent? yang:counter32
+-- num-pcntf-rcvd? yang:counter32
+-- num-keepalive-sent? yang:counter32
+-- num-keepalive-rcvd? yang:counter32
+-- num-unknown-rcvd? yang:counter32
+-- num-corrupt-rcvd? yang:counter32
+-- num-req-sent? yang:counter32
+-- num-req-sent-pend-rep? yang:counter32
+-- num-req-sent-ero-rcvd? yang:counter32
+-- num-req-sent-nopath-rcvd? yang:counter32
+-- num-req-sent-cancel-rcvd? yang:counter32
+-- num-req-sent-error-rcvd? yang:counter32
+-- num-req-sent-timeout? yang:counter32
+-- num-req-sent-cancel-sent? yang:counter32
+-- num-req-rcvd? yang:counter32
+-- num-req-rcvd-pend-rep? yang:counter32
+-- num-req-rcvd-ero-sent? yang:counter32
+-- num-req-rcvd-nopath-sent? yang:counter32
+-- num-req-rcvd-cancel-sent? yang:counter32
+-- num-req-rcvd-error-sent? yang:counter32
+-- num-req-rcvd-cancel-rcvd? yang:counter32
+-- num-rep-rcvd-unknown? yang:counter32
+-- num-req-rcvd-unknown? yang:counter32
+-- svec {p:svec}?
| +-- num-svec-sent? yang:counter32
| +-- num-svec-req-sent? yang:counter32
| +-- num-svec-rcvd? yang:counter32
| +-- num-svec-req-rcvd? yang:counter32
+-- stateful {p:stateful}?
| +-- num-pcrpt-sent? yang:counter32
| +-- num-pcrpt-rcvd? yang:counter32
| +-- num-pcupd-sent? yang:counter32
| +-- num-pcupd-rcvd? yang:counter32
| +-- num-rpt-sent? yang:counter32
| +-- num-rpt-rcvd? yang:counter32
| +-- num-rpt-rcvd-error-sent? yang:counter32
| +-- num-upd-sent? yang:counter32
| +-- num-upd-rcvd? yang:counter32
| +-- num-upd-rcvd-unknown? yang:counter32
| +-- num-upd-rcvd-undelegated? yang:counter32
| +-- num-upd-rcvd-error-sent? yang:counter32
| +-- initiation {p:pce-initiated}?
| +-- num-pcinitiate-sent? yang:counter32
| +-- num-pcinitiate-rcvd? yang:counter32
| +-- num-initiate-sent? yang:counter32
| +-- num-initiate-rcvd? yang:counter32
| +-- num-initiate-rcvd-error-sent? yang:counter32
+-- path-key {p:path-key}?
+-- num-unknown-path-key? yang:counter32
+-- num-exp-path-key? yang:counter32
+-- num-dup-path-key? yang:counter32
+-- num-path-key-no-attempt? yang:counter32
7. Advanced PCE Features 7. Advanced PCE Features
This document contains a specification of the base PCEP YANG module, This document contains a specification of the base PCEP YANG module,
"ietf-pcep" which provides the basic PCEP [RFC5440] data model. "ietf-pcep" which provides the basic PCEP [RFC5440] data model.
This document further handles advanced PCE features like - This document further handles advanced PCE features like -
o Capability and Scope o Capability and Scope
o Domain information (local/neighbour) o Domain information (local/neighbour)
o Path-Key o Path-Key
o OF o OF
o GCO o GCO
skipping to change at page 21, line 49 skipping to change at page 29, line 31
PCEP session is started.. PCEP session is started..
10. PCEP YANG Modules 10. PCEP YANG Modules
10.1. ietf-pcep module 10.1. ietf-pcep module
RFC Ed.: In this section, replace all occurrences of 'XXXX' with the RFC Ed.: In this section, replace all occurrences of 'XXXX' with the
actual RFC number and all occurrences of the revision date below with actual RFC number and all occurrences of the revision date below with
the date of RFC publication (and remove this note). the date of RFC publication (and remove this note).
<CODE BEGINS> file "ietf-pcep@2018-03-05.yang" <CODE BEGINS> file "ietf-pcep@2018-06-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 "RFC 6991";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
reference "RFC 6991";
} }
import ietf-te { import ietf-te {
prefix "te"; prefix "te";
reference "RFC XXXX";
} }
import ietf-te-types { import ietf-te-types {
prefix "te-types"; prefix "te-types";
reference "RFC XXXX";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix "key-chain";
reference "RFC 8177";
} }
import ietf-netconf-acm { import ietf-netconf-acm {
prefix "nacm"; prefix "nacm";
reference "RFC 8341";
} }
import ietf-tls-server { import ietf-tls-server {
prefix "tls-server"; prefix "tls-server";
reference "RFC XXXX";
} }
import ietf-tls-client { import ietf-tls-client {
prefix "tls-client"; prefix "tls-client";
reference "RFC XXXX";
} }
organization organization
"IETF PCE (Path Computation Element) Working Group"; "IETF PCE (Path Computation Element) Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/pce/> "WG Web: <http://tools.ietf.org/wg/pce/>
WG List: <mailto:pce@ietf.org> WG List: <mailto:pce@ietf.org>
Editor: Dhruv Dhody Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
description description
"The YANG module defines a generic configuration and "The YANG module defines a generic configuration and
operational model for PCEP common across all of the operational model for PCEP common across all of the
vendor implementations."; vendor implementations.
revision 2018-03-05 { Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices.";
revision 2018-06-22 {
description "Initial revision."; description "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol Element Communications Protocol
(PCEP)"; (PCEP)";
} }
/* /*
* Identities * Identities
*/ */
identity pcep { identity pcep {
description "Identity for the PCEP protocol."; description "Identity for the PCEP protocol.";
reference "RFC 5440";
} }
/* /*
* Typedefs * Typedefs
*/ */
typedef pcep-role { typedef pcep-role {
type enumeration { type enumeration {
enum unknown { enum unknown {
value "0"; value "0";
description description
skipping to change at page 30, line 51 skipping to change at page 39, line 7
enum protection{ enum protection{
value "1"; value "1";
description description
"Path Protection Association Type"; "Path Protection Association Type";
} }
enum policy{ enum policy{
value "2"; value "2";
description description
"Policy Association Type"; "Policy Association Type";
} }
enum diversity{ enum double-bidir{
value "3"; value "3";
description description
"Double-Sided Bidirectional
Association Type";
}
enum single-bidir{
value "4";
description
"Single-Sided Bidirectional
Association Type";
}
enum diversity{
value "5";
description
"Diversity Association Type"; "Diversity Association Type";
} }
} }
description description
"The PCEP Association Type"; "The PCEP Association Type";
} }
typedef objective-function{ typedef objective-function{
type enumeration{ type enumeration{
enum mcp{ enum mcp{
skipping to change at page 32, line 30 skipping to change at page 40, line 45
} }
enum mrup{ enum mrup{
value "11"; value "11";
description description
"Maximum Reserved Under-Utilized Path "Maximum Reserved Under-Utilized Path
(MRUP)"; (MRUP)";
} }
} }
description description
"The PCEP Objective functions"; "The PCEP Objective functions";
reference
"RFC 5541";
} }
/* /*
* Features * Features
*/ */
feature svec { feature svec {
description description
"Support synchronized path computation."; "Support synchronized path computation.";
reference
"RFC 5440";
} }
feature gmpls { feature gmpls {
description description
"Support GMPLS."; "Support GMPLS.";
} }
feature objective-function { feature objective-function {
description description
"Support OF as per RFC 5541."; "Support OF as per RFC 5541.";
reference
"RFC 5541";
} }
feature gco { feature gco {
description description
"Support GCO as per RFC 5557."; "Support GCO as per RFC 5557.";
reference
"RFC 5557";
} }
feature path-key { feature path-key {
description description
"Support path-key as per RFC 5520."; "Support path-key as per RFC 5520.";
reference
"RFC 5520";
} }
feature p2mp { feature p2mp {
description description
"Support P2MP as per RFC 6006."; "Support P2MP as per RFC 8306.";
reference
"RFC 8306";
} }
feature stateful { feature stateful {
description description
"Support stateful PCE."; "Support stateful PCE as per RFC 8231.";
reference
"RFC 8231";
} }
feature stateful-sync-opt { feature stateful-sync-opt {
description description
"Support stateful sync optimization"; "Support stateful sync optimization
as per RFC 8232";
reference
"RFC 8232";
} }
feature pce-initiated { feature pce-initiated {
description description
"Support PCE-Initiated LSP."; "Support PCE-Initiated LSP as per
RFC 8281.";
reference
"RFC 8281";
} }
feature tls { feature tls {
description description
"Support PCEP over TLS."; "Support PCEP over TLS as per
RFC 8253.";
reference
"RFC 8253";
} }
feature sr { feature sr {
description description
"Support Segment Routing for PCE."; "Support Segment Routing for PCE.";
} }
feature association {
description
"Support Association in PCEP.";
}
/* /*
* Groupings * Groupings
*/ */
grouping pcep-entity-info{ grouping pcep-entity-info{
description description
"This grouping defines the attributes for PCEP entity."; "This grouping defines the attributes for PCEP entity.";
leaf connect-timer { leaf connect-timer {
type uint32 { type uint32 {
range "1..65535"; range "1..65535";
} }
skipping to change at page 54, line 6 skipping to change at page 62, line 48
the context of the PCE"; the context of the PCE";
} }
container cps { container cps {
description description
"The Confidential Path Segment (CPS)"; "The Confidential Path Segment (CPS)";
list explicit-route-objects { list explicit-route-objects {
key "index"; key "index";
description description
"List of explicit route objects"; "List of explicit route objects";
leaf explicit-route-usage {
type identityref {
base te-types:route-usage-type;
}
description
"An explicit-route hop action.";
}
uses te-types:explicit-route-hop; uses te-types:explicit-route-hop;
} }
} }
leaf pcc-original { leaf pcc-original {
type leafref { type leafref {
path "/pcep/entity/peers/peer/addr"; path "/pcep/entity/peers/peer/addr";
} }
description description
"Reference to PCC peer address of "Reference to PCC peer address of
the original request"; the original request";
skipping to change at page 55, line 40 skipping to change at page 64, line 26
description description
"The list of authorized OF"; "The list of authorized OF";
leaf of { leaf of {
type objective-function; type objective-function;
description description
"The OF authorized"; "The OF authorized";
} }
} }
} }
grouping pst-list {
description "List of PST";
list path-setup-type{
key "pst";
description
"The list of authorized PST";
leaf pst {
type pst;
description
"The PST authorized";
}
}
}
grouping assoc-type-list {
description "List of Association Type";
list assoc-type{
key "at";
description
"The list of authorized association
types";
leaf at {
type assoc-type;
description
"The association type authorized";
}
}
}
grouping association { grouping association {
description description
"Generic Association parameters"; "Generic Association parameters";
leaf type { leaf type {
type "assoc-type"; type "assoc-type";
description description
"The PCEP association type"; "The PCEP association type";
} }
leaf id { leaf id {
type uint16; type uint16;
skipping to change at page 56, line 27 skipping to change at page 65, line 47
leaf extended-id{ leaf extended-id{
type string; type string;
description description
"Additional information to "Additional information to
support unique identification."; support unique identification.";
} }
} }
grouping association-ref { grouping association-ref {
description description
"Generic Association parameters"; "Generic Association parameters";
leaf type {
type leafref {
path "/pcep/entity/lsp-db/"
+ "association-list/type";
}
description
"PCEP Association Type";
}
leaf id { leaf id {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "association-list/id"; + "association-list/id";
} }
description description
"PCEP Association ID"; "PCEP Association ID";
} }
leaf source { leaf source {
type leafref { type leafref {
skipping to change at page 64, line 40 skipping to change at page 74, line 20
} }
if-feature objective-function; if-feature objective-function;
uses of-list; uses of-list;
description description
"Indicate the list of supported "Indicate the list of supported
OF on this session"; OF on this session";
} }
container pst-list{
when "../role = 'pce'" +
"or " +
"../role = 'pcc-and-pce'"
{
description
"Valid for PCEP Peer as
PCE";
}
uses pst-list;
description
"Indicate the list of supported
PST on this session";
}
container assoc-type-list{
if-feature association;
uses assoc-type-list;
description
"Indicate the list of supported
association types on this session";
}
leaf speaker-entity-id{ leaf speaker-entity-id{
if-feature stateful-sync-opt; if-feature stateful-sync-opt;
type string; type string;
description description
"The Speaker Entity Identifier"; "The Speaker Entity Identifier";
} }
leaf discontinuity-time { leaf discontinuity-time {
type yang:timestamp; type yang:timestamp;
description description
skipping to change at page 68, line 44 skipping to change at page 79, line 4
} }
uses stateful-pce-parameter; uses stateful-pce-parameter;
description description
"The configured stateful parameters"; "The configured stateful parameters";
} }
container of-list{ container of-list{
when "../role = 'pce'" + when "../role = 'pce'" +
"or " + "or " +
"../role = 'pcc-and-pce'" "../role = 'pcc-and-pce'"
{ {
description description
"Valid at PCE"; "Valid at PCE";
} }
if-feature objective-function; if-feature objective-function;
uses of-list; uses of-list;
description
"The authorized OF-List at PCE for all peers"; description
"The authorized OF-List at PCE for all peers";
} }
container lsp-db{ container lsp-db{
if-feature stateful; if-feature stateful;
config false; config false;
description description
"The LSP-DB"; "The LSP-DB";
leaf db-ver{ leaf db-ver{
when "../../role = 'pcc'" + when "../../role = 'pcc'" +
"or " + "or " +
skipping to change at page 69, line 27 skipping to change at page 79, line 36
{ {
description description
"Valid at PCC"; "Valid at PCC";
} }
if-feature stateful-sync-opt; if-feature stateful-sync-opt;
type uint64; type uint64;
description description
"The LSP State Database Version Number"; "The LSP State Database Version Number";
} }
list association-list { list association-list {
key "id source global-source extended-id"; if-feature association;
key "type id source global-source extended-id";
description description
"List of all PCEP associations"; "List of all PCEP associations";
uses association { uses association {
description description
"The Association attributes"; "The Association attributes";
} }
list lsp { list lsp {
key "plsp-id pcc-id"; key "plsp-id pcc-id";
description description
"List of all LSP in this association"; "List of all LSP in this association";
skipping to change at page 70, line 18 skipping to change at page 80, line 27
list lsp { list lsp {
key "plsp-id pcc-id"; key "plsp-id pcc-id";
description description
"List of all LSPs in LSP-DB"; "List of all LSPs in LSP-DB";
uses lsp-state { uses lsp-state {
description description
"The PCEP specific attributes for "The PCEP specific attributes for
LSP-DB."; LSP-DB.";
} }
list association-list { list association-list {
key "id source global-source extended-id"; if-feature association;
key "type id source global-source extended-id";
description description
"List of all PCEP associations"; "List of all PCEP associations";
uses association-ref { uses association-ref {
description description
"Reference to the Association "Reference to the Association
attributes"; attributes";
} }
} }
} }
skipping to change at page 77, line 20 skipping to change at page 87, line 27
} }
} }
}//rpc }//rpc
}//module }//module
<CODE ENDS> <CODE ENDS>
10.2. ietf-pcep-stats module 10.2. ietf-pcep-stats module
<CODE BEGINS> file "ietf-pcep-stats@2018-03-05.yang" <CODE BEGINS> file "ietf-pcep-stats@2018-06-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 ps; prefix ps;
import ietf-pcep { import ietf-pcep {
prefix p; prefix p;
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
reference "RFC 6991";
} }
organization organization
"IETF PCE (Path Computation Element) Working Group"; "IETF PCE (Path Computation Element) Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/pce/> "WG Web: <http://tools.ietf.org/wg/pce/>
WG List: <mailto:pce@ietf.org> WG List: <mailto:pce@ietf.org>
Editor: Dhruv Dhody Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
description description
"The YANG module augments the PCEP yang operational "The YANG module augments the PCEP yang operational
model with statistics, counters and telemetry data"; model with statistics, counters and telemetry data.
revision 2018-03-05 { Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices.";
revision 2018-06-22 {
description "Initial revision."; description "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol Element Communications Protocol
(PCEP)"; (PCEP)";
} }
/* /*
* Groupings * Groupings
*/ */
skipping to change at page 97, line 20 skipping to change at page 107, line 41
11. Security Considerations 11. Security Considerations
The YANG module defined in this document is designed to be accessed The YANG module defined in this document is designed to be accessed
via network management protocol such as NETCONF [RFC6241] or RESTCONF via network management protocol such as NETCONF [RFC6241] or RESTCONF
[RFC8040]. The lowest NETCONF layer is the secure transport layer [RFC8040]. The lowest NETCONF layer is the secure transport layer
and the mandatory-to-implement secure transport is SSH [RFC6242]. and the mandatory-to-implement secure transport is SSH [RFC6242].
The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement
secure transport is TLS [RFC5246] secure transport is TLS [RFC5246]
The NETCONF access control model [RFC6536] provides the means to The NETCONF access control model [RFC8341] provides the means to
restrict access for particular NETCONF or RESTCONF users to a pre- restrict access for particular NETCONF or RESTCONF users to a pre-
configured subset of all available NETCONF or RESTCONF protocol configured subset of all available NETCONF or RESTCONF protocol
operations and content. operations and content.
There are a number of data nodes defined in the YANG module which are There are a number of data nodes defined in the YANG module which are
writable/creatable/deletable (i.e., config true, which is the writable/creatable/deletable (i.e., config true, which is the
default). These data nodes may be considered sensitive or vulnerable default). These data nodes may be considered sensitive or vulnerable
in some network environments. Write operations (e.g., <edit-config>) in some network environments. Write operations (e.g., <edit-config>)
to these data nodes without proper protection can have a negative to these data nodes without proper protection can have a negative
effect on network operations. These are the subtrees and data nodes effect on network operations. These are the subtrees and data nodes
skipping to change at page 99, line 33 skipping to change at page 110, line 5
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536,
DOI 10.17487/RFC6536, March 2012,
<https://www.rfc-editor.org/info/rfc6536>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
Zhang, "YANG Data Model for Key Chains", RFC 8177, Zhang, "YANG Data Model for Key Chains", RFC 8177,
DOI 10.17487/RFC8177, June 2017, DOI 10.17487/RFC8177, June 2017,
<https://www.rfc-editor.org/info/rfc8177>. <https://www.rfc-editor.org/info/rfc8177>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
skipping to change at page 100, line 21 skipping to change at page 110, line 34
Extensions for Stateful PCE", RFC 8231, Extensions for Stateful PCE", RFC 8231,
DOI 10.17487/RFC8231, September 2017, DOI 10.17487/RFC8231, September 2017,
<https://www.rfc-editor.org/info/rfc8231>. <https://www.rfc-editor.org/info/rfc8231>.
[RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path
Computation Element Communication Protocol (PCEP) Computation Element Communication Protocol (PCEP)
Extensions for PCE-Initiated LSP Setup in a Stateful PCE Extensions for PCE-Initiated LSP Setup in a Stateful PCE
Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, Model", RFC 8281, DOI 10.17487/RFC8281, December 2017,
<https://www.rfc-editor.org/info/rfc8281>. <https://www.rfc-editor.org/info/rfc8281>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
Access Control Model", STD 91, RFC 8341,
DOI 10.17487/RFC8341, March 2018,
<https://www.rfc-editor.org/info/rfc8341>.
[I-D.ietf-pce-lsp-setup-type] [I-D.ietf-pce-lsp-setup-type]
Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J.
Hardwick, "Conveying path setup type in PCEP messages", Hardwick, "Conveying path setup type in PCEP messages",
draft-ietf-pce-lsp-setup-type-08 (work in progress), draft-ietf-pce-lsp-setup-type-10 (work in progress), May
January 2018. 2018.
[I-D.ietf-pce-segment-routing] [I-D.ietf-pce-segment-routing]
Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
and J. Hardwick, "PCEP Extensions for Segment Routing", and J. Hardwick, "PCEP Extensions for Segment Routing",
draft-ietf-pce-segment-routing-11 (work in progress), draft-ietf-pce-segment-routing-11 (work in progress),
November 2017. November 2017.
[I-D.ietf-teas-yang-te] [I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and
I. Bryskin, "A YANG Data Model for Traffic Engineering I. Bryskin, "A YANG Data Model for Traffic Engineering
Tunnels and Interfaces", draft-ietf-teas-yang-te-13 (work Tunnels and Interfaces", draft-ietf-teas-yang-te-15 (work
in progress), March 2018. in progress), June 2018.
[I-D.ietf-netconf-tls-client-server] [I-D.ietf-netconf-tls-client-server]
Watsen, K. and G. Wu, "YANG Groupings for TLS Clients and Watsen, K. and G. Wu, "YANG Groupings for TLS Clients and
TLS Servers", draft-ietf-netconf-tls-client-server-05 TLS Servers", draft-ietf-netconf-tls-client-server-06
(work in progress), October 2017. (work in progress), June 2018.
14.2. Informative References 14.2. Informative References
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation
Element (PCE)-Based Architecture", RFC 4655, Element (PCE)-Based Architecture", RFC 4655,
DOI 10.17487/RFC4655, August 2006, DOI 10.17487/RFC4655, August 2006,
<https://www.rfc-editor.org/info/rfc4655>. <https://www.rfc-editor.org/info/rfc4655>.
[RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J.
Hardwick, "Path Computation Element Communication Protocol Hardwick, "Path Computation Element Communication Protocol
(PCEP) Management Information Base (MIB) Module", (PCEP) Management Information Base (MIB) Module",
RFC 7420, DOI 10.17487/RFC7420, December 2014, RFC 7420, DOI 10.17487/RFC7420, December 2014,
<https://www.rfc-editor.org/info/rfc7420>. <https://www.rfc-editor.org/info/rfc7420>.
[RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody,
"PCEPS: Usage of TLS to Provide a Secure Transport for the "PCEPS: Usage of TLS to Provide a Secure Transport for the
Path Computation Element Communication Protocol (PCEP)", Path Computation Element Communication Protocol (PCEP)",
RFC 8253, DOI 10.17487/RFC8253, October 2017, RFC 8253, DOI 10.17487/RFC8253, October 2017,
<https://www.rfc-editor.org/info/rfc8253>. <https://www.rfc-editor.org/info/rfc8253>.
[I-D.ietf-netmod-yang-tree-diagrams] [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- and R. Wilton, "Network Management Datastore Architecture
ietf-netmod-yang-tree-diagrams-06 (work in progress), (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
February 2018. <https://www.rfc-editor.org/info/rfc8342>.
[I-D.ietf-netmod-revised-datastores]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore
Architecture", draft-ietf-netmod-revised-datastores-10
(work in progress), January 2018.
Appendix A. Example Appendix A. 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 | |
| PCE | | PCE |
| | | |
+-------+ | | +-------+ | |
| | | | | | | |
| PCC2 |<---------------->| | | PCC2 |<---------------->| |
| | | | | | | |
+-------+ +-------+ +-------+ | |
IP:192.0.2.2 IP:192.0.2.3 IP:192.0.2.2 | |
| |
| |
+-------+ | |
| | | |
| PCC4 |<---------------->| |
| | | |
+-------+ | |
IP:2001:DB8::4 | |
+-------+
IP:192.0.2.3
2001:DB8::3
at PCE: at PCE:
{ {
"entity": [ "entity": [
{ {
"addr": "192.0.2.3", "addr": "192.0.2.3",
"oper-status": "oper-status-up", "oper-status": "oper-status-up",
"role":"pce", "role":"pce",
"capability" : { "capability" : {
"stateful": { "stateful": {
"enabled": true "enabled": true
} }
} }
"lsp-db" : [ "lsp-db" : [
"lsp" : { "lsp" : {
"plsp-id": 3, "plsp-id": 3,
"pcc-id" :"192.0.2.1", "pcc-id" :"192.0.2.1",
"lsp-ref" : { "lsp-ref" : {
"source": "192.0.2.1", "source": "192.0.2.1",
"destination": "192.0.2.4" "destination": "192.0.2.4"
"tunnel-id": 16, "tunnel-id": 16,
"lsp-id": 3, "lsp-id": 3,
"extended-tunnel-id": 0 "extended-tunnel-id": 0
}, },
"oper-status": "oper-status-up", "oper-status": "oper-status-up",
"delegated": true, "delegated": true,
"symbolic-path-name": "iewauh", "symbolic-path-name": "iewauh",
}, },
"lsp" : { "lsp" : {
"plsp-id": 4, "plsp-id": 4,
"pcc-id" :"192.0.2.2", "pcc-id" :"192.0.2.2",
"lsp-ref" : { "lsp-ref" : {
"source": "192.0.2.2", "source": "192.0.2.2",
"destination": "192.0.2.5" "destination": "192.0.2.5"
"tunnel-id": 17, "tunnel-id": 17,
"lsp-id": 4 "lsp-id": 4
"extended-tunnel-id": 0 "extended-tunnel-id": 0
}, },
"oper-status": "oper-status-up", "oper-status": "oper-status-up",
"delegated": true, "delegated": true,
"symbolic-path-name": "iewauhiewauh", "symbolic-path-name": "iewauhiewauh",
"extended-tunnel-id": 0 "extended-tunnel-id": 0
} }
] ]
"peers":[ "peers":[
{ {
"peer": { "peer": {
"addr":"192.0.2.1", "addr":"192.0.2.1",
"role": "pcc", "role": "pcc",
"capability": { "capability": {
skipping to change at page 104, line 18 skipping to change at page 114, line 29
{ {
"session": { "session": {
"initiator": "remote", "initiator": "remote",
"role": "pcc", "role": "pcc",
} }
} }
] ]
} }
} }
] ]
},
{
"addr": "2001:DB8::3",
"oper-status": "oper-status-up",
"role":"pce",
"peers":[
{
"peer": {
"addr":"2001:DB8::4",
"role": "pcc",
"sessions": [
{
"session": {
"initiator": "remote",
"role": "pcc",
}
}
]
}
}
]
} }
} }
Appendix B. Contributor Addresses Appendix B. 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
 End of changes. 66 change blocks. 
492 lines changed or deleted 1025 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/