draft-ietf-pce-pcep-yang-05.txt   draft-ietf-pce-pcep-yang-06.txt 
PCE Working Group D. Dhody, Ed. PCE Working Group D. Dhody, Ed.
Internet-Draft Huawei Technologies Internet-Draft Huawei Technologies
Intended status: Standards Track J. Hardwick Intended status: Standards Track J. Hardwick
Expires: January 2, 2018 Metaswitch Expires: July 9, 2018 Metaswitch
V. Beeram V. Beeram
Juniper Networks Juniper Networks
J. Tantsura J. Tantsura
July 01, 2017 January 5, 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-05 draft-ietf-pce-pcep-yang-06
Abstract Abstract
This document defines a YANG data model for the management of Path This document defines a YANG data model for the management of Path
Computation Element communications Protocol (PCEP) for communications Computation Element communications Protocol (PCEP) for communications
between a Path Computation Client (PCC) and a Path Computation between a Path Computation Client (PCC) and a Path Computation
Element (PCE), or between two PCEs. The data model includes Element (PCE), or between two PCEs. The data model includes
configuration data and state data (status information and counters configuration data and state data (status information and counters
for the collection of statistics). for the collection of statistics).
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at 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 January 2, 2018. This Internet-Draft will expire on July 9, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 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
(http://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 . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3
3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4
4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 6 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 5
5.1. The Entity . . . . . . . . . . . . . . . . . . . . . . . 14 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 6
5.2. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 14 5.2. The Full PCEP Data Model . . . . . . . . . . . . . . . . 7
5.3. The Session Lists . . . . . . . . . . . . . . . . . . . . 15 5.3. The Entity . . . . . . . . . . . . . . . . . . . . . . . 17
5.4. Notifications . . . . . . . . . . . . . . . . . . . . . . 15 5.4. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 18
5.5. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.5. The Session Lists . . . . . . . . . . . . . . . . . . . . 18
6. The Design of PCEP Statistics Data Model . . . . . . . . . . 15 5.6. Notifications . . . . . . . . . . . . . . . . . . . . . . 19
7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 18 5.7. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 19 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 19
8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 19 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 22
8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 19 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 22
9. Other Considerations . . . . . . . . . . . . . . . . . . . . 19 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 23
9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 19 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 23
10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 20 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 23
10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 20 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 23
10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 76 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 23
11. Security Considerations . . . . . . . . . . . . . . . . . . . 96 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 23
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 97 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 79
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 97 11. Security Considerations . . . . . . . . . . . . . . . . . . . 99
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 97 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 100
14.1. Normative References . . . . . . . . . . . . . . . . . . 97 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 101
14.2. Informative References . . . . . . . . . . . . . . . . . 99 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 101
Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 101 14.1. Normative References . . . . . . . . . . . . . . . . . . 101
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 102 14.2. Informative References . . . . . . . . . . . . . . . . . 103
Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 104
Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 106
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 107
1. Introduction 1. Introduction
The Path Computation Element (PCE) defined in [RFC4655] is an entity The Path Computation Element (PCE) defined in [RFC4655] is an entity
that is capable of computing a network path or route based on a that is capable of computing a network path or route based on a
network graph, and applying computational constraints. A Path network graph, and applying computational constraints. A Path
Computation Client (PCC) may make requests to a PCE for paths to be Computation Client (PCC) may make requests to a PCE for paths to be
computed. computed.
PCEP is the communication protocol between a PCC and PCE and is PCEP is the communication protocol between a PCC and PCE and is
defined in [RFC5440]. PCEP interactions include path computation defined in [RFC5440]. PCEP interactions include path computation
requests and path computation replies as well as notifications of requests and path computation replies as well as notifications of
specific states related to the use of a PCE in the context of specific states related to the use of a PCE in the context of
Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS)
Traffic Engineering (TE). [I-D.ietf-pce-stateful-pce] specifies Traffic Engineering (TE). [RFC8231] specifies extensions to PCEP to
extensions to PCEP to enable stateful control of MPLS TE LSPs. enable stateful control of MPLS TE LSPs.
This document defines a YANG [RFC6020] data model for the management This document defines a YANG [RFC6020] data model for the management
of PCEP speakers. It is important to establish a common data model of PCEP speakers. It is important to establish a common data model
for how PCEP speakers are identified, configured, and monitored. The for how PCEP speakers are identified, configured, and monitored. The
data model includes configuration data and state data (status data model includes configuration data and state data (status
information and counters for the collection of statistics). information and counters for the collection of statistics).
This document contains a specification of the PCEP YANG module, This document contains a specification of the PCEP YANG module,
"ietf-pcep" which provides the PCEP [RFC5440] data model. "ietf-pcep" which provides the PCEP [RFC5440] data model.
skipping to change at page 4, line 13 skipping to change at page 4, line 17
This document also uses the following terms defined in [RFC7420]: This document also uses the following terms defined in [RFC7420]:
o PCEP entity: a local PCEP speaker. o PCEP entity: a local PCEP speaker.
o PCEP peer: to refer to a remote PCEP speaker. o PCEP peer: to refer to a remote PCEP speaker.
o PCEP speaker: where it is not necessary to distinguish between o PCEP speaker: where it is not necessary to distinguish between
local and remote. local and remote.
Further, this document also uses the following terms defined in Further, this document also uses the following terms defined in
[I-D.ietf-pce-stateful-pce] : [RFC8231] :
o Stateful PCE, Passive Stateful PCE, Active Stateful PCE o Stateful PCE, Passive Stateful PCE, Active Stateful PCE
o Delegation, Revocation, Redelegation o Delegation, Revocation, Redelegation
o LSP State Report, Path Computation Report message (PCRpt). o LSP State Report, Path Computation Report message (PCRpt).
o LSP State Update, Path Computation Update message (PCUpd). o LSP State Update, Path Computation Update message (PCUpd).
[I-D.ietf-pce-pce-initiated-lsp] : [RFC8281] :
o PCE-initiated LSP, Path Computation LSP Initiate Message o PCE-initiated LSP, Path Computation LSP Initiate Message
(PCInitiate). (PCInitiate).
[I-D.ietf-pce-lsp-setup-type] : [I-D.ietf-pce-lsp-setup-type] :
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 graphical representation of the complete data tree is presented in A simplified graphical representation of the data model is used in
Section 5. The meaning of the symbols in these diagrams is as this document. The meaning of the symbols in these diagrams is
follows and as per [I-D.ietf-netmod-rfc6087bis]. Each node is defined in [I-D.ietf-netmod-yang-tree-diagrams].
printed as:
<status> <flags> <name> <opts> <type> <if-features>
<status> is one of:
+ for current
x for deprecated
o for obsolete
<flags> is one of:
rw for configuration data
ro for non-configuration data
-x for rpcs and actions
-n for notifications
<name> is the name of the node
(<name>) means that the node is a choice node
:(<name>) means that the node is a case node
If the node is augmented into the tree from another module,
its name is printed as <prefix>:<name>.
<opts> is one of:
? for an optional leaf, choice, anydata or anyxml
! for a presence container
* for a leaf-list or list
[<keys>] for a list's keys
<type> is the name of the type for leafs and leaf-lists
If the type is a leafref, the type is printed as
"-> TARGET", where TARGET is either the leafref path,
with prefixed removed if possible.
<if-features> is the list of features this node depends on,
printed within curly brackets and a question mark "{...}?
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.
+-----------+-----------------+-------------------------------------+ +-----------+-----------------+-------------------------------------+
skipping to change at page 6, line 49 skipping to change at page 6, 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
The PCEP YANG module defined in this document has all the common
building blocks for the PCEP protocol.
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
| {stateful-sync-opt}?
+--rw admin-status? pcep-admin-status
+--ro index? uint32
+--ro oper-status? pcep-oper-status
+--rw domain
| +--rw domain* [domain-type domain]
| ...
+--rw capability
| ...
+--rw pce-info
| +--rw scope
| | ...
| +--rw neigh-domains
| | ...
| +--rw path-key {path-key}?
| ...
+--ro lsp-db {stateful}?
| +--ro db-ver? uint64
| | {stateful-sync-opt}?
| +--ro association-list*
| | [id source global-source extended-id]
| | ...
| +--ro lsp* [plsp-id pcc-id]
| ...
+--ro path-keys {path-key}?
| +--ro path-keys* [path-key]
| ...
+--rw peers
+--rw peer* [addr]
+--ro sessions
+--ro session* [initiator]
...
rpcs:
+---x trigger-resync {stateful,stateful-sync-opt}?
+---w input
+---w pcc? -> /pcep/entity/peers/peer/addr
notifications:
+---n pcep-session-up
| ...
+---n pcep-session-down
| ...
+---n pcep-session-local-overload
| ...
+---n pcep-session-local-overload-clear
| ...
+---n pcep-session-peer-overload
| ...
+---n pcep-session-peer-overload-clear
...
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
| +--rw p2mp? boolean {p2mp}? | | {gco}?
| +--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?
| | +--rw intra-area-pref? uint8 | | | boolean
| | +--rw inter-area-scope? boolean | | +--rw intra-area-pref?
| | +--rw inter-area-scope-default? boolean | | | uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-area-scope?
| | +--rw inter-as-scope? boolean | | | boolean
| | +--rw inter-as-scope-default? boolean | | +--rw inter-area-scope-default?
| | +--rw inter-as-pref? uint8 | | | boolean
| | +--rw inter-layer-scope? boolean | | +--rw inter-area-pref?
| | +--rw inter-layer-pref? uint8 | | | uint8
| | +--rw inter-as-scope?
| | | boolean
| | +--rw inter-as-scope-default?
| | | boolean
| | +--rw inter-as-pref?
| | | uint8
| | +--rw inter-layer-scope?
| | | boolean
| | +--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
skipping to change at page 8, line 34 skipping to change at page 9, line 28
+--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}?
skipping to change at page 9, line 10 skipping to change at page 10, line 5
| +--ro db-ver? uint64 | +--ro db-ver? uint64
| | {stateful-sync-opt}? | | {stateful-sync-opt}?
| +--ro association-list* | +--ro association-list*
| | [id source global-source extended-id] | | [id source global-source extended-id]
| | +--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 | | +--ro plsp-id leafref
| | | -> /pcep/entity/lsp-db/lsp/plsp-id | | +--ro pcc-id leafref
| | +--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? leafref
| | | -> /te:te/lsps-state/lsp/source | | +--ro destination? leafref
| | +--ro destination? | | +--ro tunnel-id? leafref
| | | -> /te:te/lsps-state/lsp/destination | | +--ro lsp-id? leafref
| | +--ro tunnel-id?
| | | -> /te:te/lsps-state/lsp/tunnel-id
| | +--ro lsp-id?
| | | -> /te:te/lsps-state/lsp/lsp-id
| | +--ro extended-tunnel-id? leafref | | +--ro extended-tunnel-id? leafref
| +--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? leafref
| | +--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? leafref
| +--ro symbolic-path-name? string | +--ro symbolic-path-name? string
| +--ro last-error? lsp-error | +--ro last-error? lsp-error
| +--ro pst? pst | +--ro pst? pst
| +--ro association-list* | +--ro association-list*
| [id source global-source extended-id] | [id source global-source extended-id]
| +--ro id leafref | +--ro id leafref
| +--ro source leafref | +--ro source leafref
| +--ro global-source leafref | +--ro global-source leafref
| +--ro extended-id leafref | +--ro extended-id leafref
+--ro path-keys {path-key}? +--ro path-keys {path-key}?
| +--ro path-keys* [path-key] | +--ro path-keys* [path-key]
| +--ro path-key uint16 | +--ro path-key uint16
| +--ro cps | +--ro cps
| | +--ro explicit-route-objects* [index] | | +--ro explicit-route-objects*
| | +--ro explicit-route-usage? identityref | | [index]
| | +--ro index uint32 | | +--ro explicit-route-usage?
| | | identityref
| | +--ro index
| | | uint32
| | +--ro (type)? | | +--ro (type)?
| | +--:(numbered) | | +--:(numbered)
| | | +--ro numbered-hop | | | +--ro numbered-hop
| | | +--ro address? te-types:te-tp-id | | | +--ro address?
| | | +--ro hop-type? te-hop-type | | | | te-types:te-tp-id
| | | +--ro hop-type?
| | | te-hop-type
| | +--:(as-number) | | +--:(as-number)
| | | +--ro as-number-hop | | | +--ro as-number-hop
| | | +--ro as-number? binary | | | +--ro as-number?
| | | +--ro hop-type? te-hop-type | | | | binary
| | | +--ro hop-type?
| | | te-hop-type
| | +--:(unnumbered) | | +--:(unnumbered)
| | | +--ro unnumbered-hop | | | +--ro unnumbered-hop
| | | +--ro node-id? | | | +--ro node-id?
| | | | te-types:te-node-id | | | | te-types:te-node-id
| | | +--ro link-tp-id? | | | +--ro link-tp-id?
| | | | te-types:te-tp-id | | | | te-types:te-tp-id
| | | +--ro hop-type? te-hop-type | | | +--ro hop-type?
| | | te-hop-type
| | +--:(label) | | +--:(label)
| | | +--ro label-hop | | | +--ro label-hop
| | | +--ro value? | | | +--ro value?
| | | rt-types:generalized-label | | | rt-types:generalized-label
| | +--:(sid) | | +--:(sid)
| | +--ro sid-hop | | +--ro sid-hop
| | +--ro sid? | | +--ro sid?
| | rt-types:generalized-label | | rt-types:generalized-label
| +--ro pcc-original? | +--ro pcc-original? leafref
| | -> /pcep/entity/peers/peer/addr
| +--ro req-id? uint32 | +--ro req-id? uint32
| +--ro retrieved? boolean | +--ro retrieved? boolean
| +--ro pcc-retrieved? | +--ro pcc-retrieved? leafref
| | -> /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
+--rw role pcep-role | inet:ip-address
+--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 | +--rw gmpls?
| | {gmpls}? | | boolean {gmpls}?
| +--rw bi-dir? boolean | +--rw bi-dir?
| +--rw diverse? boolean | | boolean
| +--rw load-balance? boolean | +--rw diverse?
| +--rw synchronize? boolean {svec}? | | boolean
| +--rw objective-function? boolean | +--rw load-balance?
| | boolean
| +--rw synchronize?
| | boolean {svec}?
| +--rw objective-function?
| | boolean
| | {objective-function}? | | {objective-function}?
| +--rw add-path-constraint? boolean | +--rw add-path-constraint?
| +--rw prioritization? boolean | | boolean
| +--rw multi-request? boolean | +--rw prioritization?
| +--rw gco? boolean {gco}? | | boolean
| +--rw p2mp? boolean {p2mp}? | +--rw multi-request?
| | boolean
| +--rw gco?
| | boolean {gco}?
| +--rw p2mp?
| | boolean {p2mp}?
| +--rw stateful {stateful}? | +--rw stateful {stateful}?
| | +--rw enabled? boolean | | +--rw enabled?
| | +--rw active? boolean | | | boolean
| | +--rw pce-initiated? boolean | | +--rw active?
| | | 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?
| | +--rw intra-area-pref? uint8 | | | boolean
| | +--rw inter-area-scope? boolean | | +--rw intra-area-pref?
| | +--rw inter-area-scope-default? boolean | | | uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-area-scope?
| | +--rw inter-as-scope? boolean | | | boolean
| | +--rw inter-as-scope-default? boolean | | +--rw inter-area-scope-default?
| | +--rw inter-as-pref? uint8 | | | boolean
| | +--rw inter-layer-scope? boolean | | +--rw inter-area-pref?
| | +--rw inter-layer-pref? uint8 | | | uint8
| | +--rw inter-as-scope?
| | | boolean
| | +--rw inter-as-scope-default?
| | | boolean
| | +--rw inter-as-pref?
| | | uint8
| | +--rw inter-layer-scope?
| | | boolean
| | +--rw inter-layer-pref?
| | uint8
| +--rw neigh-domains | +--rw neigh-domains
| +--rw domain* [domain-type domain] | +--rw domain*
| +--rw domain-type domain-type | [domain-type domain]
| +--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? | | | +--rw keystring?
| | | string | | | 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 certificates | | +--rw server-identity
| | | +--rw certificate* [name] | | | +--rw algorithm?
| | | +--rw name leafref | | | | identityref
| | | +--rw private-key?
| | | | union
| | | +--rw public-key?
| | | | binary
| | | +---x generate-private-key
| | | | +---w input
| | | | +---w algorithm
| | | | identityref
| | | +--rw certificates
| | | | +--rw certificate*
| | | | [name]
| | | | +--rw name
| | | | | string
| | | | +--rw value?
| | | | binary
| | | +---x generate-certificate-signing-request
| | | +---w input
| | | | +---w subject
| | | | | binary
| | | | +---w attributes?
| | | | binary
| | | +--ro output
| | | +--ro certificate-signing-request
| | | binary
| | +--rw client-auth | | +--rw client-auth
| | | +--rw trusted-ca-certs? leafref | | | +--rw pinned-ca-certs?
| | | +--rw trusted-client-certs? leafref | | | | ks:pinned-certificates
| | | +--rw pinned-client-certs?
| | | ks:pinned-certificates
| | +--rw hello-params | | +--rw hello-params
| | {tls-server-hello-params-config}? | | {tls-server-hello-params-config}?
| | +--rw tls-versions | | +--rw tls-versions
| | | +--rw tls-version* | | | +--rw tls-version*
| | | identityref | | | identityref
| | +--rw cipher-suites | | +--rw cipher-suites
| | +--rw cipher-suite* | | +--rw cipher-suite*
| | identityref | | identityref
| +--:(client) | +--:(client)
| +--rw tls-client | +--rw tls-client
| +--rw server-auth | +--rw client-identity
| | +--rw trusted-ca-certs? leafref
| | +--rw trusted-server-certs? leafref
| +--rw client-auth
| | +--rw (auth-type)? | | +--rw (auth-type)?
| | +--:(certificate) | | +--:(certificate)
| | +--rw certificate? leafref | | +--rw certificate
| | +--rw algorithm?
| | | identityref
| | +--rw private-key?
| | | union
| | +--rw public-key?
| | | binary
| | +---x generate-private-key
| | | +---w input
| | | +---w algorithm
| | | identityref
| | +--rw certificates
| | | +--rw certificate*
| | | [name]
| | | +--rw name
| | | | string
| | | +--rw value?
| | | binary
| | +---x generate-certificate-signing-request
| | +---w input
| | | +---w subject
| | | | binary
| | | +---w attributes?
| | | binary
| | +--ro output
| | +--ro certificate-signing-request
| | binary
| +--rw server-auth
| | +--rw pinned-ca-certs?
| | | ks:pinned-certificates
| | +--rw pinned-server-certs?
| | ks:pinned-certificates
| +--rw hello-params | +--rw hello-params
| {tls-client-hello-params-config}? | {tls-client-hello-params-config}?
| +--rw tls-versions | +--rw tls-versions
| | +--rw tls-version* | | +--rw tls-version*
| | identityref | | identityref
| +--rw cipher-suites | +--rw cipher-suites
| +--rw cipher-suite* | +--rw cipher-suite*
| identityref | identityref
+--ro discontinuity-time? yang:timestamp +--ro discontinuity-time?
| yang:timestamp
+--ro initiate-session? boolean +--ro initiate-session? boolean
+--ro session-exists? boolean +--ro session-exists? boolean
+--ro session-up-time? yang:timestamp +--ro session-up-time?
+--ro session-fail-time? yang:timestamp | yang:timestamp
+--ro session-fail-up-time? yang:timestamp +--ro session-fail-time?
| yang:timestamp
+--ro session-fail-up-time?
| yang:timestamp
+--ro sessions +--ro sessions
+--ro session* [initiator] +--ro session* [initiator]
+--ro initiator pcep-initiator +--ro initiator
| pcep-initiator
+--ro role? +--ro role?
| -> /pcep/entity/role | -> /pcep/entity/role
+--ro state-last-change? yang:timestamp +--ro state-last-change?
+--ro state? pcep-sess-state | yang:timestamp
+--ro session-creation? yang:timestamp +--ro state?
+--ro connect-retry? yang:counter32 | pcep-sess-state
+--ro local-id? uint32 +--ro session-creation?
+--ro remote-id? uint32 | yang:timestamp
+--ro keepalive-timer? uint32 +--ro connect-retry?
+--ro peer-keepalive-timer? uint32 | yang:counter32
+--ro dead-timer? uint32 +--ro local-id?
+--ro peer-dead-timer? uint32 | uint32
+--ro ka-hold-time-rem? uint32 +--ro remote-id?
+--ro overloaded? boolean | uint32
+--ro overload-time? uint32 +--ro keepalive-timer?
+--ro peer-overloaded? boolean | uint32
+--ro peer-overload-time? uint32 +--ro peer-keepalive-timer?
+--ro lspdb-sync? sync-state | 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}? | {stateful}?
+--ro recv-db-ver? uint64 +--ro recv-db-ver?
| uint64
| {stateful,stateful-sync-opt}? | {stateful,stateful-sync-opt}?
+--ro of-list {objective-function}? +--ro of-list
| +--ro objective-function* [of] | {objective-function}?
| +--ro of objective-function | +--ro objective-function*
+--ro speaker-entity-id? string | [of]
| +--ro of
| objective-function
+--ro speaker-entity-id?
| string
| {stateful-sync-opt}? | {stateful-sync-opt}?
+--ro discontinuity-time? yang:timestamp +--ro discontinuity-time?
yang:timestamp
rpcs: rpcs:
+---x trigger-resync {stateful,stateful-sync-opt}? +---x trigger-resync
{stateful,stateful-sync-opt}?
+---w input +---w input
+---w pcc? -> /pcep/entity/peers/peer/addr +---w pcc? -> /pcep/entity/peers/peer/addr
notifications: notifications:
+---n pcep-session-up +---n pcep-session-up
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr?
| | -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? leafref | +--ro session-initiator? leafref
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp
| +--ro state? pcep-sess-state | +--ro state? pcep-sess-state
+---n pcep-session-down +---n pcep-session-down
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr?
| | -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? pcep-initiator | +--ro session-initiator? pcep-initiator
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp
| +--ro state? pcep-sess-state | +--ro state? pcep-sess-state
+---n pcep-session-local-overload +---n pcep-session-local-overload
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr?
| | -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? leafref | +--ro session-initiator? leafref
| +--ro overloaded? boolean | +--ro overloaded? boolean
| +--ro overload-time? uint32 | +--ro overload-time? uint32
+---n pcep-session-local-overload-clear +---n pcep-session-local-overload-clear
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr?
| | -> /pcep/entity/peers/peer/addr
| +--ro overloaded? boolean | +--ro overloaded? boolean
+---n pcep-session-peer-overload +---n pcep-session-peer-overload
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr?
| | -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? leafref | +--ro session-initiator? leafref
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean
| +--ro peer-overload-time? uint32 | +--ro peer-overload-time? uint32
+---n pcep-session-peer-overload-clear +---n pcep-session-peer-overload-clear
+--ro peer-addr? -> /pcep/entity/peers/peer/addr +--ro peer-addr?
| -> /pcep/entity/peers/peer/addr
+--ro peer-overloaded? boolean +--ro peer-overloaded? boolean
5.1. The Entity 5.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
system generated entity index as a primary index to the read only system generated entity index as a primary index to the read only
entity table. If the device implements the PCEP MIB, the "index" entity table. If the device implements the PCEP MIB, the "index"
leaf MUST contain the value of the corresponding pcePcepEntityIndex leaf MUST contain the value of the corresponding pcePcepEntityIndex
and only one entity is assumed. and only one entity is assumed.
5.2. The Peer Lists 5.4. The Peer Lists
The peer list contains peer(s) that the local PCEP entity knows The peer list contains peer(s) that the local PCEP entity knows
about. A PCEP speaker is identified by its IP address. If there is about. A PCEP speaker is identified by its IP address. If there is
a PCEP speaker in the network that uses multiple IP addresses then it a PCEP speaker in the network that uses multiple IP addresses then it
looks like multiple distinct peers to the other PCEP speakers in the looks like multiple distinct peers to the other PCEP speakers in the
network. network.
Since PCEP sessions can be ephemeral, the peer list tracks a peer Since PCEP sessions can be ephemeral, the peer list tracks a peer
even when no PCEP session currently exists to that peer. The even when no PCEP session currently exists to that peer. The
statistics contained are an aggregate of the statistics for all statistics contained are an aggregate of the statistics for all
skipping to change at page 15, line 16 skipping to change at page 18, line 39
list of peers. Each peer in the list is identified by its IP address list of peers. Each peer in the list is identified by its IP address
(addr-type, addr). (addr-type, addr).
There is a list for static peer configuration and operational state There is a list for static peer configuration and operational state
of all peers (i.e.static as well as discovered)("/pcep/entity/ of all peers (i.e.static as well as discovered)("/pcep/entity/
peers"). The list is used to enable remote PCE configuration at PCC peers"). The list is used to enable remote PCE configuration at PCC
(or PCE) and has the operational state of these peers as well as the (or PCE) and has the operational state of these peers as well as the
remote PCE peer which were discovered and PCC peers that have remote PCE peer which were discovered and PCC peers that have
initiated session. initiated session.
5.3. The Session Lists 5.5. The Session Lists
The session list contains PCEP session that the PCEP entity (PCE or The session list contains PCEP session that the PCEP entity (PCE or
PCC) is currently participating in. The statistics in session are PCC) is currently participating in. The statistics in session are
semantically different from those in peer since the former applies to semantically different from those in peer since the former applies to
the current session only, whereas the latter is the aggregate for all the current session only, whereas the latter is the aggregate for all
sessions that have existed to that peer. sessions that have existed to that peer.
Although [RFC5440] forbids more than one active PCEP session between Although [RFC5440] forbids more than one active PCEP session between
a given pair of PCEP entities at any given time, there is a window a given pair of PCEP entities at any given time, there is a window
during session establishment where two sessions may exist for a given during session establishment where two sessions may exist for a given
pair, one representing a session initiated by the local PCEP entity pair, one representing a session initiated by the local PCEP entity
and the other representing a session initiated by the peer. If and the other representing a session initiated by the peer. If
either of these sessions reaches active state first, then the other either of these sessions reaches active state first, then the other
is discarded. is discarded.
The data model for PCEP session presented in this document uses a The data model for PCEP session presented in this document uses a
flat list of sessions. Each session in the list is identified by its flat list of sessions. Each session in the list is identified by its
initiator. This index allows two sessions to exist transiently for a initiator. This index allows two sessions to exist transiently for a
given peer, as discussed above. given peer, as discussed above.
5.4. Notifications 5.6. Notifications
This YANG model defines a list of notifications to inform client of This YANG model defines a list of notifications to inform client of
important events detected during the protocol operation. The important events detected during the protocol operation. The
notifications defined cover the PCEP MIB notifications. notifications defined cover the PCEP MIB notifications.
5.5. RPC 5.7. 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.
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
skipping to change at page 19, line 48 skipping to change at page 23, line 27
The TE Model at [I-D.ietf-teas-yang-te] should support creating of 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. 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 The LSP-DB in the PCEP Yang (/pcep/entity/lsp-db/lsp/initiation) also
marks the LSPs which are PCE-initiated. marks the LSPs which are PCE-initiated.
9. Other Considerations 9. Other Considerations
9.1. PCEP over TLS (PCEPS) 9.1. PCEP over TLS (PCEPS)
[I-D.ietf-pce-pceps] describe the use of TLS in PCEP. The peer [RFC8253] describe the use of TLS in PCEP. The peer acting as the
acting as the PCEP client MUST act as the TLS client. The TLS client PCEP client MUST act as the TLS client. The TLS client actively
actively opens the TLS connection and the TLS server passively opens the TLS connection and the TLS server passively listens for the
listens for the incoming TLS connections. The well-known TCP port incoming TLS connections. The well-known TCP port number 4189 is
number 4189 is used by PCEP servers to listen for TCP connections used by PCEP servers to listen for TCP connections established by
established by PCEP over TLS clients. The TLS client MUST send the PCEP over TLS clients. The TLS client MUST send the TLS ClientHello
TLS ClientHello message to begin the TLS handshake. The TLS server message to begin the TLS handshake. The TLS server MUST send a
MUST send a CertificateRequest in order to request a certificate from CertificateRequest in order to request a certificate from the TLS
the TLS client. Once the TLS handshake has finished, the client and client. Once the TLS handshake has finished, the client and the
the server MAY begin to exchange PCEP messages. Client and server server MAY begin to exchange PCEP messages. Client and server
identity verification is done before the PCEP open message is sent. identity verification is done before the PCEP open message is sent.
This means that the identity verification is completed before the This means that the identity verification is completed before the
PCEP session is started.. PCEP session is started..
10. PCEP YANG Modules 10. PCEP YANG Modules
10.1. ietf-pcep module 10.1. ietf-pcep module
RFC Ed.: In this section, replace all occurrences of 'XXXX' with the RFC Ed.: In this section, replace all occurrences of 'XXXX' with the
actual RFC number and all occurrences of the revision date below with actual RFC number and all occurrences of the revision date below with
the date of RFC publication (and remove this note). the date of RFC publication (and remove this note).
<CODE BEGINS> file "ietf-pcep@2017-07-01.yang" <CODE BEGINS> file "ietf-pcep@2018-01-05.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";
} }
import ietf-yang-types { import ietf-yang-types {
skipping to change at page 21, line 35 skipping to change at page 25, line 13
WG Chair: Jonathan Hardwick WG Chair: Jonathan Hardwick
<mailto:Jonathan.Hardwick@metaswitch.com> <mailto:Jonathan.Hardwick@metaswitch.com>
Editor: Dhruv Dhody Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
description description
"The YANG module defines a generic configuration and "The YANG module defines a generic configuration and
operational model for PCEP common across all of the operational model for PCEP common across all of the
vendor implementations."; vendor implementations.";
revision 2017-07-01 { revision 2018-01-05 {
description "Initial revision."; description "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol Element Communications Protocol
(PCEP)"; (PCEP)";
} }
/* /*
* Identities * Identities
*/ */
skipping to change at page 56, line 28 skipping to change at page 60, line 8
"The initiator of the session,that is, whether "The initiator of the session,that is, whether
the TCP connection was initiated by the local the TCP connection was initiated by the local
PCEP entity or the peer. PCEP entity or the peer.
There is a window during session There is a window during session
initialization where two sessions can exist initialization where two sessions can exist
between a pair of PCEP speakers, each between a pair of PCEP speakers, each
initiated by one of the speakers. One of initiated by one of the speakers. One of
these sessions is always discarded before it these sessions is always discarded before it
leaves OpenWait state. However, before it is leaves OpenWait state. However, before it is
discarded, two sessions to the given peer discarded, two sessions to the given peer
appear transiently in this MIB module. The appear transiently in this yang module. The
sessions are distinguished by who initiated sessions are distinguished by who initiated
them, and so this field is the key."; them, and so this field is the key.";
} }
leaf role { leaf role {
type leafref { type leafref {
path "/pcep/entity/role"; path "/pcep/entity/role";
} }
description description
"The reference to peer role ."; "The reference to peer role .";
skipping to change at page 76, line 4 skipping to change at page 79, 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.";
} }
} }
}//rpc }//rpc
}//module }//module
<CODE ENDS> <CODE ENDS>
10.2. ietf-pcep-stats module 10.2. ietf-pcep-stats module
<CODE BEGINS> file "ietf-pcep-stats@2017-07-01.yang" <CODE BEGINS> file "ietf-pcep-stats@2018-01-05.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";
} }
skipping to change at page 76, line 41 skipping to change at page 80, line 22
<mailto:julien.meuric@orange.com> <mailto:julien.meuric@orange.com>
WG Chair: Jonathan Hardwick WG Chair: Jonathan Hardwick
<mailto:Jonathan.Hardwick@metaswitch.com> <mailto:Jonathan.Hardwick@metaswitch.com>
Editor: Dhruv Dhody Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
description description
"The YANG module augments the PCEP yang operational "The YANG module augments the PCEP yang operational
model with statistics, counters and telemetry data"; model with statistics, counters and telemetry data";
revision 2017-07-01 { revision 2018-01-05 {
description "Initial revision."; description "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol Element Communications Protocol
(PCEP)"; (PCEP)";
} }
/* /*
* Groupings * Groupings
*/ */
grouping pcep-stats{ grouping pcep-stats{
description description
"This grouping defines statistics for PCEP. It is used "This grouping defines statistics for PCEP. It is used
for both peer and current session."; for both peer and current session.";
skipping to change at page 97, line 50 skipping to change at page 101, line 22
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.
14. References 14. References
14.1. Normative References 14.1. Normative References
[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,
<http://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[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,
<http://www.rfc-editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
Element (PCE) Communication Protocol (PCEP)", RFC 5440, Element (PCE) Communication Protocol (PCEP)", RFC 5440,
DOI 10.17487/RFC5440, March 2009, DOI 10.17487/RFC5440, March 2009,
<http://www.rfc-editor.org/info/rfc5440>. <https://www.rfc-editor.org/info/rfc5440>.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, (TLS) Protocol Version 1.2", RFC 5246,
DOI 10.17487/RFC5246, August 2008, DOI 10.17487/RFC5246, August 2008,
<http://www.rfc-editor.org/info/rfc5246>. <https://www.rfc-editor.org/info/rfc5246>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, DOI 10.17487/RFC6020, October 2010,
<http://www.rfc-editor.org/info/rfc6020>. <https://www.rfc-editor.org/info/rfc6020>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<http://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,
<http://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536, Protocol (NETCONF) Access Control Model", RFC 6536,
DOI 10.17487/RFC6536, March 2012, DOI 10.17487/RFC6536, March 2012,
<http://www.rfc-editor.org/info/rfc6536>. <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,
<http://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,
<http://www.rfc-editor.org/info/rfc8177>. <https://www.rfc-editor.org/info/rfc8177>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<http://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[I-D.ietf-pce-stateful-pce] [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path
Crabbe, E., Minei, I., Medved, J., and R. Varga, "PCEP Computation Element Communication Protocol (PCEP)
Extensions for Stateful PCE", draft-ietf-pce-stateful- Extensions for Stateful PCE", RFC 8231,
pce-21 (work in progress), June 2017. DOI 10.17487/RFC8231, September 2017,
<https://www.rfc-editor.org/info/rfc8231>.
[I-D.ietf-pce-pce-initiated-lsp] [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path
Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "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", draft-ietf-pce-pce-initiated-lsp-10 (work in Model", RFC 8281, DOI 10.17487/RFC8281, December 2017,
progress), June 2017. <https://www.rfc-editor.org/info/rfc8281>.
[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-04 (work in progress), April draft-ietf-pce-lsp-setup-type-07 (work in progress),
2017. December 2017.
[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-09 (work in progress), draft-ietf-pce-segment-routing-11 (work in progress),
April 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-07 (work Tunnels and Interfaces", draft-ietf-teas-yang-te-10 (work
in progress), June 2017. in progress), December 2017.
[I-D.ietf-netconf-tls-client-server] [I-D.ietf-netconf-tls-client-server]
Watsen, K. and G. Wu, "TLS Client and Server Models", Watsen, K. and G. Wu, "YANG Groupings for TLS Clients and
draft-ietf-netconf-tls-client-server-03 (work in TLS Servers", draft-ietf-netconf-tls-client-server-05
progress), June 2017. (work in progress), October 2017.
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,
<http://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,
<http://www.rfc-editor.org/info/rfc7420>. <https://www.rfc-editor.org/info/rfc7420>.
[I-D.ietf-netmod-rfc6087bis] [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody,
Bierman, A., "Guidelines for Authors and Reviewers of YANG "PCEPS: Usage of TLS to Provide a Secure Transport for the
Data Model Documents", draft-ietf-netmod-rfc6087bis-13 Path Computation Element Communication Protocol (PCEP)",
(work in progress), June 2017. RFC 8253, DOI 10.17487/RFC8253, October 2017,
<https://www.rfc-editor.org/info/rfc8253>.
[I-D.ietf-netmod-yang-tree-diagrams]
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft-
ietf-netmod-yang-tree-diagrams-04 (work in progress),
December 2017.
[I-D.ietf-netmod-revised-datastores] [I-D.ietf-netmod-revised-datastores]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore and R. Wilton, "Network Management Datastore
Architecture", draft-ietf-netmod-revised-datastores-02 Architecture", draft-ietf-netmod-revised-datastores-09
(work in progress), May 2017. (work in progress), December 2017.
[I-D.ietf-pce-pceps] Appendix A. Example
Lopez, D., Dios, O., Wu, Q., and D. Dhody, "Secure
Transport for PCEP", draft-ietf-pce-pceps-14 (work in
progress), May 2017.
Appendix A. Contributor Addresses The example below provide an overview of PCEP peer session
informations and LSP-DB in the Yang Module.
+-------+ +-------+
| | | |
| PCC1 |<---------------->| |
| | | |
+-------+ | |
IP:192.0.2.1 | |
| PCE |
| |
+-------+ | |
| | | |
| PCC2 |<---------------->| |
| | | |
+-------+ +-------+
IP:192.0.2.2 IP:192.0.2.3
at PCE:
{
"entity": [
{
"addr": "192.0.2.3",
"oper-status": "oper-status-up",
"role":"pce",
"capability" : {
"stateful": {
"enabled": true
}
}
"lsp-db" : [
"lsp" : {
"plsp-id": 3,
"pcc-id" :"192.0.2.1",
"lsp-ref" : {
"source": "192.0.2.1",
"destination": "192.0.2.4"
"tunnel-id": 16,
"lsp-id": 3,
"extended-tunnel-id": 0
},
"oper-status": "oper-status-up",
"delegated": true,
"symbolic-path-name": "iewauh",
},
"lsp" : {
"plsp-id": 4,
"pcc-id" :"192.0.2.2",
"lsp-ref" : {
"source": "192.0.2.2",
"destination": "192.0.2.5"
"tunnel-id": 17,
"lsp-id": 4
"extended-tunnel-id": 0
},
"oper-status": "oper-status-up",
"delegated": true,
"symbolic-path-name": "iewauhiewauh",
"extended-tunnel-id": 0
}
]
"peers":[
{
"peer": {
"addr":"192.0.2.1",
"role": "pcc",
"capability": {
"stateful" : {
"enabled": true,
"active": yes,
}
}
"sessions": [
{
"session": {
"initiator": "remote",
"role": "pcc",
}
}
]
}
},
{
"peer": {
"addr":"192.0.2.2",
"role": "pcc",
"capability": {
"stateful" : {
"enabled": true,
"active": true,
}
}
"sessions": [
{
"session": {
"initiator": "remote",
"role": "pcc",
}
}
]
}
}
]
}
}
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
EMail: rohit.pobbathi@huawei.com EMail: rohit.pobbathi@huawei.com
Vinod KumarS Vinod KumarS
 End of changes. 103 change blocks. 
267 lines changed or deleted 560 lines changed or added

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