< draft-ietf-pce-pcep-yang-11.txt   draft-ietf-pce-pcep-yang-12.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 27, 2019 Metaswitch Expires: January 2, 2020 Metaswitch
V. Beeram V. Beeram
Juniper Networks Juniper Networks
J. Tantsura J. Tantsura
March 26, 2019 July 1, 2019
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-11 draft-ietf-pce-pcep-yang-12
Abstract Abstract
This document defines a YANG data model for the management of Path This document defines a YANG data model for the management of Path
Computation Element communications Protocol (PCEP) for communications Computation Element communications Protocol (PCEP) for communications
between a Path Computation Client (PCC) and a Path Computation between a Path Computation Client (PCC) and a Path Computation
Element (PCE), or between two PCEs. The data model includes Element (PCE), or between two PCEs. The data model includes
configuration and state data. configuration and state data.
Status of This Memo Status of This Memo
skipping to change at page 1, line 39 skipping to change at page 1, line 39
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 27, 2019. This Internet-Draft will expire on January 2, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
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 . . . . . . . . . . . . . . . . . . . . . . 5
3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5
3.3. Refrences in the Model . . . . . . . . . . . . . . . . . 5 3.3. Refrences in the Model . . . . . . . . . . . . . . . . . 5
4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 7 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 7
5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 8 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 8
5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 8 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 8
5.2. The Entity . . . . . . . . . . . . . . . . . . . . . . . 9 5.2. The Entity . . . . . . . . . . . . . . . . . . . . . . . 9
5.3. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 13 5.3. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 13
5.4. The Session Lists . . . . . . . . . . . . . . . . . . . . 15 5.4. The Session Lists . . . . . . . . . . . . . . . . . . . . 15
5.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 17 5.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 17
5.6. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.6. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
skipping to change at page 2, line 39 skipping to change at page 2, line 39
7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 28 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 28
8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 28 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 28
8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 28 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 28
9. Other Considerations . . . . . . . . . . . . . . . . . . . . 28 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 28
9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 28 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 28
10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 28 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 28
10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 29 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 29
10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 83 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 83
11. Security Considerations . . . . . . . . . . . . . . . . . . . 101 11. Security Considerations . . . . . . . . . . . . . . . . . . . 101
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 102 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 102
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 102 13. Implementation Status . . . . . . . . . . . . . . . . . . . . 103
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 103 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 103
14.1. Normative References . . . . . . . . . . . . . . . . . . 103 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 104
14.2. Informative References . . . . . . . . . . . . . . . . . 106 15.1. Normative References . . . . . . . . . . . . . . . . . . 104
Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 108 15.2. Informative References . . . . . . . . . . . . . . . . . 107
Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 111 Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 109
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 112 Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 112
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 113
1. Introduction 1. Introduction
The Path Computation Element (PCE) defined in [RFC4655] is an entity The Path Computation Element (PCE) defined in [RFC4655] is an entity
that is capable of computing a network path or route based on a that is capable of computing a network path or route based on a
network graph, and applying computational constraints. A Path network graph, and applying computational constraints. A Path
Computation Client (PCC) may make requests to a PCE for paths to be Computation Client (PCC) may make requests to a PCE for paths to be
computed. computed.
PCEP is the communication protocol between a PCC and PCE and is PCEP is the communication protocol between a PCC and PCE and is
skipping to change at page 5, line 13 skipping to change at page 5, line 19
defined in [RFC8340]. 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- | ietf-key-chain | [RFC8177] |
| nacm | ietf-netconf- | [RFC8341] | | chain | | |
| | acm | | | nacm | ietf-netconf-acm | [RFC8341] |
| tls- | ietf-tls-server | [I-D.ietf-netconf-tls-client-server | | tlss | ietf-tls-server | [I-D.ietf-netconf-tls-client-server |
| server | | ] | | | | ] |
| tls- | ietf-tls-client | [I-D.ietf-netconf-tls-client-server | | tlsc | ietf-tls-client | [I-D.ietf-netconf-tls-client-server |
| client | | ] | | | | ] |
| ospf | ietf-ospf | [I-D.ietf-ospf-yang] | | ospf | ietf-ospf | [I-D.ietf-ospf-yang] |
| isis | ietf-isis | [I-D.ietf-isis-yang-isis-cfg] | | isis | ietf-isis | [I-D.ietf-isis-yang-isis-cfg] |
+-----------+-----------------+-------------------------------------+ +----------+------------------+-------------------------------------+
Table 1: Prefixes and corresponding YANG modules Table 1: Prefixes and corresponding YANG modules
3.3. Refrences in the Model 3.3. Refrences in the Model
Following documents are refrenced in the model defined in this Following documents are refrenced in the model defined in this
document - document -
+----------------------------+--------------------------------------+ +----------------------------+--------------------------------------+
| Documents | Reference | | Documents | Reference |
skipping to change at page 8, line 44 skipping to change at page 8, line 47
| | ... | | ...
| +--rw path-key {path-key}? | +--rw path-key {path-key}?
| ... | ...
+--ro lsp-db {stateful}? +--ro lsp-db {stateful}?
| +--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 lsp* [plsp-id pcc-id] | +--ro lsp* [plsp-id pcc-id lsp-id]
| ... | ...
+--ro path-keys {path-key}? +--ro path-keys {path-key}?
| +--ro path-keys* [path-key] | +--ro path-keys* [path-key]
| ... | ...
+--rw peers +--rw peers
+--rw peer* [addr] +--rw peer* [addr]
+--ro sessions +--ro sessions
+--ro session* [initiator] +--ro session* [initiator]
... ...
skipping to change at page 11, line 31 skipping to change at page 11, line 34
+--ro lsp-db {stateful}? +--ro lsp-db {stateful}?
| +--ro db-ver? uint64 {sync-opt}? | +--ro db-ver? uint64 {sync-opt}?
| +--ro association-list* | +--ro association-list*
| | [type id source global-source extended-id] | | [type id source global-source extended-id]
| | {association}? | | {association}?
| | +--ro type identityref | | +--ro type identityref
| | +--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 lsp-id]
| | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id
| | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id
| +--ro lsp* [plsp-id pcc-id] | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id
| +--ro lsp* [plsp-id pcc-id lsp-id]
| +--ro plsp-id uint32 | +--ro plsp-id uint32
| +--ro pcc-id inet:ip-address | +--ro pcc-id inet:ip-address
| +--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?
| | +--ro extended-tunnel-id? | | -> /te:te/lsps-state/lsp/extended-tunnel-id
| | -> /te:te/lsps-state/lsp/extended-tunnel-id
| +--ro admin-state? boolean | +--ro admin-state? boolean
| +--ro operational-state? operational-state | +--ro operational-state? operational-state
| +--ro delegated | +--ro delegated
| | +--ro enabled? boolean | | +--ro enabled? boolean
| | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro peer? -> /pcep/entity/peers/peer/addr
| | +--ro srp-id? uint32 | | +--ro srp-id? uint32
| +--ro initiation {pce-initiated}? | +--ro initiation {pce-initiated}?
| | +--ro enabled? boolean | | +--ro enabled? boolean
| | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro peer? -> /pcep/entity/peers/peer/addr
| +--ro symbolic-path-name? string | +--ro symbolic-path-name? string
skipping to change at page 12, line 51 skipping to change at page 13, line 6
| | | +--ro node-id te-node-id | | | +--ro node-id te-node-id
| | | +--ro hop-type? te-hop-type | | | +--ro hop-type? te-hop-type
| | | +--ro direction? te-link-direction | | | +--ro direction? te-link-direction
| | +--:(as-number) | | +--:(as-number)
| | | +--ro as-number-hop | | | +--ro as-number-hop
| | | +--ro as-number inet:as-number | | | +--ro as-number inet:as-number
| | | +--ro hop-type? te-hop-type | | | +--ro hop-type? te-hop-type
| | +--:(label) | | +--:(label)
| | +--ro label-hop | | +--ro label-hop
| | +--ro te-label | | +--ro te-label
| | ... | | +--ro (technology)?
| | | +--:(generic)
| | | ...
| | +--ro direction?
| | te-label-direction
| +--ro pcc-original? -> /pcep/entity/peers/peer/addr | +--ro pcc-original? -> /pcep/entity/peers/peer/addr
| +--ro req-id? uint32 | +--ro req-id? uint32
| +--ro retrieved? boolean | +--ro retrieved? boolean
| +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr
| +--ro creation-time? yang:timestamp | +--ro creation-time? yang:timestamp
| +--ro discard-time? uint32 | +--ro discard-time? uint32
| +--ro reuse-time? uint32 | +--ro reuse-time? uint32
+--rw peers +--rw peers
+--rw peer* [addr] +--rw peer* [addr]
... ...
skipping to change at page 19, line 44 skipping to change at page 19, line 44
+--ro lsp-db {stateful}? +--ro lsp-db {stateful}?
| +--ro db-ver? uint64 {sync-opt}? | +--ro db-ver? uint64 {sync-opt}?
| +--ro association-list* | +--ro association-list*
| | [type id source global-source extended-id] | | [type id source global-source extended-id]
| | {association}? | | {association}?
| | +--ro type identityref | | +--ro type identityref
| | +--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 lsp-id]
| | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | | +--ro plsp-id
| | | -> /pcep/entity/lsp-db/lsp/plsp-id
| | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id
| +--ro lsp* [plsp-id pcc-id] | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id
| +--ro lsp* [plsp-id pcc-id lsp-id]
| +--ro plsp-id uint32 | +--ro plsp-id uint32
| +--ro pcc-id inet:ip-address | +--ro pcc-id inet:ip-address
| +--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?
| | +--ro extended-tunnel-id? | | -> /te:te/lsps-state/lsp/extended-tunnel-id
| | -> /te:te/lsps-state/lsp/extended-tunnel-id
| +--ro admin-state? boolean | +--ro admin-state? boolean
| +--ro operational-state? operational-state | +--ro operational-state? operational-state
| +--ro delegated | +--ro delegated
| | +--ro enabled? boolean | | +--ro enabled? boolean
| | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro peer? -> /pcep/entity/peers/peer/addr
| | +--ro srp-id? uint32 | | +--ro srp-id? uint32
| +--ro initiation {pce-initiated}? | +--ro initiation {pce-initiated}?
| | +--ro enabled? boolean | | +--ro enabled? boolean
| | +--ro peer? -> /pcep/entity/peers/peer/addr | | +--ro peer? -> /pcep/entity/peers/peer/addr
| +--ro symbolic-path-name? string | +--ro symbolic-path-name? string
| +--ro last-error? identityref | +--ro last-error? identityref
| +--ro pst? identityref | +--ro pst? identityref
| +--ro association-list* | +--ro association-list*
| [type id source global-source extended-id] | [type id source global-source extended-id]
| {association}? | {association}?
| +--ro type | +--ro type leafref
| | -> /pcep/entity/lsp-db/association-list/type
| +--ro id | +--ro id
| | -> /pcep/entity/lsp-db/association-list/id | | -> /pcep/entity/lsp-db/association-list/id
| +--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* [index]
skipping to change at page 21, line 17 skipping to change at page 21, line 17
| | | +--ro hop-type? te-hop-type | | | +--ro hop-type? te-hop-type
| | | +--ro direction? te-link-direction | | | +--ro direction? te-link-direction
| | +--:(as-number) | | +--:(as-number)
| | | +--ro as-number-hop | | | +--ro as-number-hop
| | | +--ro as-number inet:as-number | | | +--ro as-number inet:as-number
| | | +--ro hop-type? te-hop-type | | | +--ro hop-type? te-hop-type
| | +--:(label) | | +--:(label)
| | +--ro label-hop | | +--ro label-hop
| | +--ro te-label | | +--ro te-label
| | ... | | ...
| +--ro 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]
skipping to change at page 22, line 20 skipping to change at page 22, line 22
| +--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-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)
skipping to change at page 23, line 27 skipping to change at page 23, line 30
| {stateful,sync-opt}? | {stateful,sync-opt}?
+--ro of-list {objective-function}? +--ro of-list {objective-function}?
| +--ro objective-function* [of] | +--ro objective-function* [of]
| +--ro of identityref | +--ro of identityref
+--ro pst-list +--ro pst-list
| +--ro path-setup-type* [pst] | +--ro path-setup-type* [pst]
| +--ro pst identityref | +--ro pst identityref
+--ro assoc-type-list {association}? +--ro assoc-type-list {association}?
| +--ro assoc-type* [at] | +--ro assoc-type* [at]
| +--ro at identityref | +--ro at identityref
+--ro speaker-entity-id? string {sync-opt}? +--ro speaker-entity-id? string
| {sync-opt}?
+--ro discontinuity-time? yang:timestamp +--ro discontinuity-time? yang:timestamp
rpcs: rpcs:
+---x trigger-resync {stateful,sync-opt}? +---x trigger-resync {stateful,sync-opt}?
+---w input +---w input
+---w pcc? -> /pcep/entity/peers/peer/addr +---w pcc? -> /pcep/entity/peers/peer/addr
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
skipping to change at page 27, line 29 skipping to change at page 27, line 32
"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 Objective Function (OF)
o GCO o Global Concurrent Optimization (GCO)
o P2MP o P2MP
o GMPLS o GMPLS
o Inter-Layer o Inter-Layer
o Stateful PCE o Stateful PCE
o Segement Routing o Segment Routing (SR)
o Authentication including PCEPS (TLS) o Authentication including PCEPS (TLS)
7.1. Stateful PCE's LSP-DB 7.1. Stateful PCE's LSP-DB
In the operational state of PCEP which supports stateful PCE mode, In the operational state of PCEP which supports stateful PCE mode,
the list of LSP state are maintained in LSP-DB. The key is the PLSP- the list of LSP state are maintained in LSP-DB. The key is the PLSP-
ID and the PCC IP address. ID and the PCC IP address.
The PCEP data model contains the operational state of LSPs The PCEP data model contains the operational state of LSPs
skipping to change at page 29, line 10 skipping to change at page 29, line 10
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@2019-03-26.yang" <CODE BEGINS> file "ietf-pcep@2019-07-01.yang"
module ietf-pcep { module ietf-pcep {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; namespace "urn:ietf:params:xml:ns:yang:ietf-pcep";
prefix pcep; prefix pcep;
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference reference
skipping to change at page 29, line 29 skipping to change at page 29, line 32
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
} }
import ietf-te { import ietf-te {
prefix te; prefix te;
reference reference
"[I-D.ietf-teas-yang-te]: A YANG Data Model for Traffic "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
Engineering Tunnels and Interfaces"; Engineering Tunnels and Interfaces";
} }
import ietf-te-types { import ietf-te-types {
prefix te-types; prefix te-types;
reference reference
"[I-D.ietf-teas-yang-te-types]: Traffic Engineering Common YANG "I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG
Types"; Types";
} }
import ietf-key-chain { import ietf-key-chain {
prefix key-chain; prefix key-chain;
reference reference
"RFC 8177: YANG Data Model for Key Chains"; "RFC 8177: YANG Data Model for Key Chains";
} }
import ietf-netconf-acm { import ietf-netconf-acm {
prefix netconf-acm; prefix nacm;
reference reference
"RFC 8341: Network Configuration Protocol (NETCONF) Access "RFC 8341: Network Configuration Protocol (NETCONF) Access
Control Model"; Control Model";
} }
import ietf-tls-server { import ietf-tls-server {
prefix tls-server; prefix tlss;
reference reference
"[I-D.ietf-netconf-tls-client-server]: YANG Groupings for TLS "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS
Clients and TLS Servers"; Clients and TLS Servers";
} }
import ietf-tls-client { import ietf-tls-client {
prefix tls-client; prefix tlsc;
reference reference
"[I-D.ietf-netconf-tls-client-server]: YANG Groupings for TLS "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS
Clients and TLS Servers"; Clients and TLS Servers";
} }
import ietf-ospf { import ietf-ospf {
prefix ospf; prefix ospf;
reference reference
"[I-D.ietf-ospf-yang]: YANG Data Model for OSPF Protocol"; "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol";
} }
import ietf-isis { import ietf-isis {
prefix isis; prefix isis;
reference reference
"[I-D.ietf-isis-yang-isis-cfg]: YANG Data Model for IS-IS "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS
Protocol"; Protocol";
} }
organization organization
"IETF PCE (Path Computation Element) Working Group"; "IETF PCE (Path Computation Element) Working Group";
contact contact
"WG Web: <https://tools.ietf.org/wg/pce/> "WG Web: <https://tools.ietf.org/wg/pce/>
WG List: <mailto:pce@ietf.org> WG List: <mailto:pce@ietf.org>
Editor: Dhruv Dhody Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
skipping to change at page 30, line 45 skipping to change at page 30, line 49
operational model for PCEP. operational model for PCEP.
Copyright (c) 2019 IETF Trust and the persons identified as Copyright (c) 2019 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2019-03-26 { revision 2019-07-01 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol (PCEP)"; Element Communications Protocol (PCEP)";
} }
/* /*
* Typedefs * Typedefs
*/ */
skipping to change at page 34, line 42 skipping to change at page 34, line 42
} }
description description
"The PCE Domain Type"; "The PCE Domain Type";
} }
typedef domain-ospf-area { typedef domain-ospf-area {
type ospf:area-id-type; type ospf:area-id-type;
description description
"OSPF Area ID."; "OSPF Area ID.";
reference reference
"[I-D.ietf-ospf-yang]: YANG Data Model for OSPF Protocol"; "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol";
} }
typedef domain-isis-area { typedef domain-isis-area {
type isis:area-address; type isis:area-address;
description description
"IS-IS Area ID."; "IS-IS Area ID.";
reference reference
"[I-D.ietf-isis-yang-isis-cfg]: YANG Data Model for IS-IS "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS
Protocol"; Protocol";
} }
typedef domain-as { typedef domain-as {
type inet:as-number; type inet:as-number;
description description
"Autonomous System number."; "Autonomous System number.";
} }
typedef domain { typedef domain {
type union { type union {
type domain-ospf-area; type domain-ospf-area;
type domain-isis-area; type domain-isis-area;
skipping to change at page 37, line 4 skipping to change at page 37, line 6
description description
"Support synchronized path computation."; "Support synchronized path computation.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
feature gmpls { feature gmpls {
description description
"Support GMPLS."; "Support GMPLS.";
reference reference
"[I-D.ietf-pce-gmpls-pcep-extensions]: PCEP extensions for "I-D.ietf-pce-gmpls-pcep-extensions: PCEP extensions for
GMPLS"; GMPLS";
} }
feature objective-function { feature objective-function {
description description
"Support OF as per RFC 5541."; "Support OF as per RFC 5541.";
reference reference
"RFC 5541: Encoding of Objective Functions in the Path "RFC 5541: Encoding of Objective Functions in the Path
Computation Element Communication Protocol (PCEP)"; Computation Element Communication Protocol (PCEP)";
} }
skipping to change at page 38, line 36 skipping to change at page 38, line 37
reference reference
"RFC 8253: PCEPS: Usage of TLS to Provide a Secure Transport "RFC 8253: PCEPS: Usage of TLS to Provide a Secure Transport
for the Path Computation Element Communication Protocol for the Path Computation Element Communication Protocol
(PCEP)"; (PCEP)";
} }
feature sr { feature sr {
description description
"Support Segment Routing for PCE."; "Support Segment Routing for PCE.";
reference reference
"[I-D.ietf-pce-segment-routing]: PCEP Extensions for Segment "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment
Routing"; Routing";
} }
feature association { feature association {
description description
"Support Association in PCEP."; "Support Association in PCEP.";
reference reference
"[I-D.ietf-pce-association-group]: PCEP Extensions for "I-D.ietf-pce-association-group: PCEP Extensions for
Establishing Relationships Between Sets of LSPs"; Establishing Relationships Between Sets of LSPs";
} }
/* /*
* Identities * Identities
*/ */
identity lsp-error { identity lsp-error {
if-feature "stateful"; if-feature "stateful";
description description
skipping to change at page 46, line 46 skipping to change at page 46, line 46
"Support incremental (delta) sync"; "Support incremental (delta) sync";
reference reference
"RFC 8232: Optimizations of Label Switched Path State "RFC 8232: Optimizations of Label Switched Path State
Synchronization Procedures for a Stateful PCE"; Synchronization Procedures for a Stateful PCE";
} }
container sr { container sr {
if-feature "sr"; if-feature "sr";
description description
"If segment routing is supported"; "If segment routing is supported";
reference reference
"[I-D.ietf-pce-segment-routing]: PCEP Extensions for Segment "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment
Routing"; Routing";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"Set to true if SR is enabled"; "Set to true if SR is enabled";
} }
leaf msd-limit { leaf msd-limit {
type boolean; type boolean;
default "false"; default "false";
skipping to change at page 47, line 30 skipping to change at page 47, line 30
} }
//sr //sr
} }
//capability //capability
leaf msd { leaf msd {
if-feature "sr"; if-feature "sr";
type uint8; type uint8;
description description
"Maximum SID Depth for SR"; "Maximum SID Depth for SR";
reference reference
"[I-D.ietf-pce-segment-routing]: PCEP Extensions for Segment "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment
Routing"; Routing";
} }
} }
//info //info
grouping pce-info { grouping pce-info {
description description
"This grouping specifies all PCE information "This grouping specifies all PCE information
which maybe relevant to the PCE selection. which maybe relevant to the PCE selection.
skipping to change at page 59, line 40 skipping to change at page 59, line 40
type uint64; type uint64;
description description
"The LSP State Database Version Number"; "The LSP State Database Version Number";
} }
list association-list { list association-list {
if-feature "association"; if-feature "association";
key "type id source global-source extended-id"; key "type id source global-source extended-id";
description description
"List of all PCEP associations"; "List of all PCEP associations";
reference reference
"[I-D.ietf-pce-association-group]: PCEP "I-D.ietf-pce-association-group: PCEP
Extensions for Establishing Relationships Extensions for Establishing Relationships
Between Sets of LSPs"; Between Sets of LSPs";
leaf type { leaf type {
type identityref { type identityref {
base te-types:association-type; base te-types:association-type;
} }
description description
"The PCEP association type"; "The PCEP association type";
} }
leaf id { leaf id {
skipping to change at page 60, line 24 skipping to change at page 60, line 24
description description
"PCEP Association Global Source."; "PCEP Association Global Source.";
} }
leaf extended-id { leaf extended-id {
type string; type string;
description description
"Additional information to support unique "Additional information to support unique
identification."; identification.";
} }
list lsp { list lsp {
key "plsp-id pcc-id"; key "plsp-id pcc-id lsp-id";
description description
"List of all LSP in this association"; "List of all LSP in this association";
leaf plsp-id { leaf plsp-id {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "lsp/plsp-id"; + "lsp/plsp-id";
} }
description description
"Reference to PLSP-ID in LSP-DB"; "Reference to PLSP-ID in LSP-DB";
} }
leaf pcc-id { leaf pcc-id {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "lsp/pcc-id"; + "lsp/pcc-id";
} }
description description
"Reference to PCC-ID in LSP-DB"; "Reference to PCC-ID in LSP-DB";
} }
leaf lsp-id {
type leafref {
path "/pcep/entity/lsp-db/"
+ "lsp/lsp-id";
}
description
"Reference to LSP ID in LSP-DB";
}
} }
} }
list lsp { list lsp {
key "plsp-id pcc-id"; key "plsp-id pcc-id lsp-id";
description description
"List of all LSPs in LSP-DB"; "List of all LSPs in LSP-DB";
leaf plsp-id { leaf plsp-id {
type uint32 { type uint32 {
range "1..1048575"; range "1..1048575";
} }
description description
"A PCEP-specific identifier for the LSP. A PCC "A PCEP-specific identifier for the LSP. A PCC
creates a unique PLSP-ID for each LSP that is creates a unique PLSP-ID for each LSP that is
constant for the lifetime of a PCEP session. constant for the lifetime of a PCEP session.
PLSP-ID is 20 bits with 0 and 0xFFFFF are PLSP-ID is 20 bits with 0 and 0xFFFFF are
reserved"; reserved";
} }
leaf pcc-id { leaf pcc-id {
type inet:ip-address; type inet:ip-address;
skipping to change at page 61, line 19 skipping to change at page 61, line 27
constant for the lifetime of a PCEP session. constant for the lifetime of a PCEP session.
PLSP-ID is 20 bits with 0 and 0xFFFFF are PLSP-ID is 20 bits with 0 and 0xFFFFF are
reserved"; reserved";
} }
leaf pcc-id { leaf pcc-id {
type inet:ip-address; type inet:ip-address;
description description
"The local internet address of the PCC, that "The local internet address of the PCC, that
generated the PLSP-ID."; generated the PLSP-ID.";
} }
container lsp-ref { leaf source {
description type leafref {
"reference to ietf-te lsp state"; path "/te:te/te:lsps-state/te:lsp/te:source";
leaf source {
type leafref {
path "/te:te/te:lsps-state/te:lsp/te:source";
}
description
"Tunnel sender address extracted from
SENDER_TEMPLATE object";
reference
"RFC 3209: RSVP-TE: Extensions to RSVP for
LSP Tunnels";
} }
leaf destination { description
type leafref { "Tunnel sender address extracted from
path "/te:te/te:lsps-state/te:lsp/te:" SENDER_TEMPLATE object";
+ "destination"; reference
} "RFC 3209: RSVP-TE: Extensions to RSVP for
description LSP Tunnels";
"Tunnel endpoint address extracted from }
SESSION object"; leaf destination {
reference type leafref {
"RFC 3209: RSVP-TE: Extensions to RSVP for path "/te:te/te:lsps-state/te:lsp/te:"
LSP Tunnels"; + "destination";
} }
leaf tunnel-id { description
type leafref { "Tunnel endpoint address extracted from
path "/te:te/te:lsps-state/te:lsp/te:tunnel-id"; SESSION object";
} reference
description "RFC 3209: RSVP-TE: Extensions to RSVP for
"Tunnel identifier used in the SESSION LSP Tunnels";
that remains constant over the life }
of the tunnel."; leaf tunnel-id {
type leafref {
path "/te:te/te:lsps-state/te:lsp/te:tunnel-id";
reference
"RFC 3209: RSVP-TE: Extensions to RSVP for
LSP Tunnels";
} }
leaf lsp-id { description
type leafref { "Tunnel identifier used in the SESSION
path "/te:te/te:lsps-state/te:lsp/te:lsp-id"; that remains constant over the life
} of the tunnel.";
description reference
"Identifier used in the SENDER_TEMPLATE "RFC 3209: RSVP-TE: Extensions to RSVP for
and the FILTER_SPEC that can be changed LSP Tunnels";
to allow a sender to share resources with }
itself."; leaf lsp-id {
reference type leafref {
"RFC 3209: RSVP-TE: Extensions to RSVP for path "/te:te/te:lsps-state/te:lsp/te:lsp-id";
LSP Tunnels";
} }
leaf extended-tunnel-id { description
type leafref { "Identifier used in the SENDER_TEMPLATE
path "/te:te/te:lsps-state/te:lsp/te:" and the FILTER_SPEC that can be changed
+ "extended-tunnel-id"; to allow a sender to share resources with
} itself.";
description reference
"Extended Tunnel ID of the LSP."; "RFC 3209: RSVP-TE: Extensions to RSVP for
reference LSP Tunnels";
"RFC 3209: RSVP-TE: Extensions to RSVP for }
LSP Tunnels"; leaf extended-tunnel-id {
type leafref {
path "/te:te/te:lsps-state/te:lsp/te:"
+ "extended-tunnel-id";
} }
description
"Extended Tunnel ID of the LSP.";
reference
"RFC 3209: RSVP-TE: Extensions to RSVP for
LSP Tunnels";
} }
leaf admin-state { leaf admin-state {
type boolean; type boolean;
description description
"The desired operational state"; "The desired operational state";
} }
leaf operational-state { leaf operational-state {
type operational-state; type operational-state;
description description
"The operational status of the LSP"; "The operational status of the LSP";
skipping to change at page 65, line 27 skipping to change at page 65, line 32
leaf extended-id { leaf extended-id {
type leafref { type leafref {
path "/pcep/entity/lsp-db/" path "/pcep/entity/lsp-db/"
+ "association-list/extended-id"; + "association-list/extended-id";
} }
description description
"Additional information to "Additional information to
support unique identification."; support unique identification.";
} }
reference reference
"[I-D.ietf-pce-association-group]: PCEP "I-D.ietf-pce-association-group: PCEP
Extensions for Establishing Relationships Extensions for Establishing Relationships
Between Sets of LSPs"; Between Sets of LSPs";
} }
} }
} }
container path-keys { container path-keys {
when "../role = 'pce' or ../role = 'pcc-and-pce'" { when "../role = 'pce' or ../role = 'pcc-and-pce'" {
description description
"These fields are applicable when the role is "These fields are applicable when the role is
PCE"; PCE";
skipping to change at page 69, line 16 skipping to change at page 69, line 19
mandatory true; mandatory true;
description description
"Cryptographic algorithm associated "Cryptographic algorithm associated
with key."; with key.";
} }
choice key-string-style { choice key-string-style {
description description
"Key string styles"; "Key string styles";
case keystring { case keystring {
leaf keystring { leaf keystring {
netconf-acm:default-deny-all; nacm:default-deny-all;
type string; type string;
description description
"Key string in ASCII format."; "Key string in ASCII format.";
} }
} }
case hexadecimal { case hexadecimal {
if-feature "key-chain:hex-key-string"; if-feature "key-chain:hex-key-string";
leaf hexadecimal-string { leaf hexadecimal-string {
netconf-acm:default-deny-all; nacm:default-deny-all;
type yang:hex-string; type yang:hex-string;
description description
"Key in hexadecimal string format. When "Key in hexadecimal string format. When
compared to ASCII, specification in compared to ASCII, specification in
hexadecimal affords greater key entropy hexadecimal affords greater key entropy
with the same number of internal with the same number of internal
key-string octets. Additionally, it key-string octets. Additionally, it
discourages usage of well-known words or discourages usage of well-known words or
numbers."; numbers.";
} }
} }
} }
} }
case auth-tls { case auth-tls {
if-feature "tls"; if-feature "tls";
choice role { choice role {
description description
"The role of the local entity"; "The role of the local entity";
case server { case server {
container tls-server { container tls-server {
uses tls-server:tls-server-grouping { uses tlss:tls-server-grouping {
description description
"Server TLS information."; "Server TLS information.";
} }
description description
"TLS related information"; "TLS related information";
} }
} }
case client { case client {
container tls-client { container tls-client {
uses tls-client:tls-client-grouping { uses tlsc:tls-client-grouping {
description description
"Client TLS information."; "Client TLS information.";
} }
description description
"TLS related information"; "TLS related information";
} }
} }
} }
} }
} }
skipping to change at page 78, line 28 skipping to change at page 78, line 32
"The PST authorized"; "The PST authorized";
} }
} }
} }
container assoc-type-list { container assoc-type-list {
if-feature "association"; if-feature "association";
description description
"Indicate the list of supported association types "Indicate the list of supported association types
on this session"; on this session";
reference reference
"[I-D.ietf-pce-association-group]: PCEP "I-D.ietf-pce-association-group: PCEP
Extensions for Establishing Relationships Extensions for Establishing Relationships
Between Sets of LSPs"; Between Sets of LSPs";
list assoc-type { list assoc-type {
key "at"; key "at";
description description
"The list of authorized association types"; "The list of authorized association types";
leaf at { leaf at {
type identityref { type identityref {
base te-types:association-type; base te-types:association-type;
} }
skipping to change at page 83, line 24 skipping to change at page 83, line 29
//input //input
} }
//rpc //rpc
} }
<CODE ENDS> <CODE ENDS>
10.2. ietf-pcep-stats module 10.2. ietf-pcep-stats module
<CODE BEGINS> file "ietf-pcep-stats@2019-03-26.yang" <CODE BEGINS> file "ietf-pcep-stats@2019-07-01.yang"
module ietf-pcep-stats { module ietf-pcep-stats {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats";
prefix pcep-stats; prefix pcep-stats;
import ietf-pcep { import ietf-pcep {
prefix pcep; prefix pcep;
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol (PCEP)"; Element Communications Protocol (PCEP)";
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
skipping to change at page 84, line 14 skipping to change at page 84, line 22
model with statistics, counters and telemetry data. model with statistics, counters and telemetry data.
Copyright (c) 2019 IETF Trust and the persons identified as Copyright (c) 2019 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(httpcep://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2019-03-26 { revision 2019-07-01 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol (PCEP)"; Element Communications Protocol (PCEP)";
} }
/* /*
* Groupings * Groupings
*/ */
skipping to change at page 101, line 14 skipping to change at page 101, line 21
//pcep-stats //pcep-stats
} }
//augment //augment
} }
<CODE ENDS> <CODE ENDS>
11. Security Considerations 11. Security Considerations
The YANG module defined in this document is designed to be accessed The YANG modules defined in this document is designed to be accessed
via network management protocol such as NETCONF [RFC6241] or RESTCONF via network management protocol such as NETCONF [RFC6241] or RESTCONF
[RFC8040]. The lowest NETCONF layer is the secure transport layer [RFC8040]. The lowest NETCONF layer is the secure transport layer
and the mandatory-to-implement secure transport is SSH [RFC6242]. and the mandatory-to-implement secure transport is SSH [RFC6242].
The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement
secure transport is TLS [RFC8446] secure transport is TLS [RFC8446]
The NETCONF access control model [RFC8341] provides the means to The NETCONF access control model [RFC8341] provides the means to
restrict access for particular NETCONF or RESTCONF users to a pre- restrict access for particular NETCONF or RESTCONF users to a pre-
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 ietf-pcep YANG module
writable/creatable/deletable (i.e., config true, which is the which are writable/creatable/deletable (i.e., config true, which is
default). These data nodes may be considered sensitive or vulnerable the default). These data nodes may be considered sensitive or
in some network environments. Write operations (e.g., <edit-config>) vulnerable in some network environments. Write operations (e.g.,
to these data nodes without proper protection can have a negative <edit-config>) to these data nodes without proper protection can have
effect on network operations. These are the subtrees and data nodes a negative effect on network operations. These are the subtrees and
and their sensitivity/vulnerability: data nodes and their sensitivity/vulnerability:
/pcep/entity/ - configure local parameters, capabilities etc. /pcep/entity/ - configure local parameters, capabilities etc.
/pcep/entity/peers - configure remote peers to setup PCEP session. /pcep/entity/peers - configure remote peers to setup PCEP session.
Unauthorized access to above list can adversely affect the PCEP Unauthorized access to above list can adversely affect the PCEP
session between the local entity and the peers. This may lead to session between the local entity and the peers. This may lead to
inability to compute new paths, stateful operations on the delegated inability to compute new paths, stateful operations on the delegated
as well as PCE-initiated LSPs. as well as PCE-initiated LSPs.
Some of the readable data nodes in this YANG module may be considered Some of the readable data nodes in the ietf-pcep YANG module may be
sensitive or vulnerable in some network environments. It is thus considered sensitive or vulnerable in some network environments. It
important to control read access (e.g., via get, get-config, or is thus important to control read access (e.g., via get, get-config,
notification) to these data nodes. These are the subtrees and data or notification) to these data nodes. These are the subtrees and
nodes and their sensitivity/vulnerability: data nodes and their sensitivity/vulnerability:
/pcep/lsp-db - All the LSPs in the network. Unauthorized access /pcep/lsp-db - All the LSPs in the network. Unauthorized access
to this could provide the all path and network usage information. to this could provide the all path and network usage information.
/pcep/path-keys/ - The Confidential Path Segments (CPS) are hidden /pcep/path-keys/ - The Confidential Path Segments (CPS) are hidden
using path-keys. Unauthorized access to this could leak using path-keys. Unauthorized access to this could leak
confidential path information. confidential path information.
Some of the RPC operations in this YANG module may be considered Some of the RPC operations in the ietf-pcep YANG module may be
sensitive or vulnerable in some network environments. It is thus considered sensitive or vulnerable in some network environments. It
important to control access to these operations. These are the is thus important to control access to these operations. These are
operations and their sensitivity/vulnerability: the operations and their sensitivity/vulnerability:
trigger-resync - trigger resynchronization with the PCE. trigger-resync - trigger resynchronization with the PCE.
Unauthorized access to this could force a PCEP session into Unauthorized access to this could force a PCEP session into
continuous state synchronization. continuous state synchronization.
12. IANA Considerations Further, this document also include another YANG module (called ietf-
pcep-stats) for maintaining the statistics by augmenting the ietf-
This document registers a URI in the "IETF XML Registry" [RFC3688]. pcep YANG module. There are no data nodes defined in this module
Following the format in RFC 3688, the following registration has been which are writable/creatable/deletable (i.e., config true). The
made. readable data nodes in this YANG module may be considered sensitive
or vulnerable in some network environments. The statistics could
provide information related to the current usage patterns of the
network. It is thus important to control read access (e.g., via get,
get-config, or notification).
URI: urn:ietf:params:xml:ns:yang:ietf-pcep 12. IANA Considerations
Registrant Contact: The PCE WG of the IETF. This document request the IANA to register two URIs in the "IETF XML
Registry" [RFC3688]. Following the format in RFC 3688, the following
registrations are requested -
XML: N/A; the requested URI is an XML namespace. URI: urn:ietf:params:xml:ns:yang:ietf-pcep
Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace.
This document registers a YANG module in the "YANG Module Names" URI: urn:ietf:params:xml:ns:yang:ietf-pcep-stats
registry [RFC6020]. Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace.
This document request the IANA to register two YANG modules in the
"YANG Module Names" registry [RFC6020], as follows -
Name: ietf-pcep Name: ietf-pcep
Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep
Prefix: pcep Prefix: pcep
Reference: [This.I-D] Reference: [This.I-D]
Name: ietf-pcep-stats Name: ietf-pcep-stats
Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep-stats Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep-stats
Prefix: pcep-stats Prefix: pcep-stats
Reference: [This.I-D] Reference: [This.I-D]
13. Acknowledgements 13. Implementation Status
[Note to the RFC Editor - remove this section before publication, as
well as remove the reference to RFC 7942.]
This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in [RFC7942].
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.
According to [RFC7942], "this will allow reviewers and working groups
to assign due consideration to documents that have the benefit of
running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as
they see fit".
Currently, there are no known implementations of the YANG Module as
specified.
14. Acknowledgements
The initial document is based on the PCEP MIB [RFC7420]. We would The initial document is based on the PCEP MIB [RFC7420]. We would
like to thank the authors of aforementioned documents. like to thank the authors of aforementioned documents.
Thanks to Mahesh Jethmalani for the Yang Doctor review. Thanks to Mahesh Jethmalani for the Yang Doctor review.
Thanks to Martin Bjorklund and Tom Petch for providing guidance Thanks to Martin Bjorklund and Tom Petch for providing guidance
regarding the Yang guidelines. regarding the Yang guidelines.
14. References 15. References
14.1. Normative References 15.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,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
<https://www.rfc-editor.org/info/rfc3209>. <https://www.rfc-editor.org/info/rfc3209>.
skipping to change at page 105, line 51 skipping to change at page 106, line 51
Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408, Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408,
July 2018, <https://www.rfc-editor.org/info/rfc8408>. July 2018, <https://www.rfc-editor.org/info/rfc8408>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
[I-D.ietf-teas-yang-te] [I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
"A YANG Data Model for Traffic Engineering Tunnels and "A YANG Data Model for Traffic Engineering Tunnels and
Interfaces", draft-ietf-teas-yang-te-20 (work in Interfaces", draft-ietf-teas-yang-te-21 (work in
progress), March 2019. progress), April 2019.
[I-D.ietf-teas-yang-te-types] [I-D.ietf-teas-yang-te-types]
Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
"Traffic Engineering Common YANG Types", draft-ietf-teas- "Traffic Engineering Common YANG Types", draft-ietf-teas-
yang-te-types-06 (work in progress), February 2019. yang-te-types-09 (work in progress), May 2019.
[I-D.ietf-netconf-tls-client-server] [I-D.ietf-netconf-tls-client-server]
Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS
Clients and TLS Servers", draft-ietf-netconf-tls-client- Clients and TLS Servers", draft-ietf-netconf-tls-client-
server-10 (work in progress), March 2019. server-13 (work in progress), June 2019.
[I-D.ietf-pce-association-group] [I-D.ietf-pce-association-group]
Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H.,
Dhody, D., and Y. Tanaka, "PCEP Extensions for Dhody, D., and Y. Tanaka, "PCEP Extensions for
Establishing Relationships Between Sets of LSPs", draft- Establishing Relationships Between Sets of LSPs", draft-
ietf-pce-association-group-08 (work in progress), March ietf-pce-association-group-09 (work in progress), April
2019. 2019.
[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-16 (work in progress), draft-ietf-pce-segment-routing-16 (work in progress),
March 2019. March 2019.
[I-D.ietf-isis-yang-isis-cfg] [I-D.ietf-isis-yang-isis-cfg]
Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L.
Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf- Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf-
isis-yang-isis-cfg-35 (work in progress), March 2019. isis-yang-isis-cfg-35 (work in progress), March 2019.
[I-D.ietf-ospf-yang] [I-D.ietf-ospf-yang]
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem,
"YANG Data Model for OSPF Protocol", draft-ietf-ospf- "YANG Data Model for OSPF Protocol", draft-ietf-ospf-
yang-21 (work in progress), January 2019. yang-22 (work in progress), June 2019.
[I-D.ietf-pce-gmpls-pcep-extensions] [I-D.ietf-pce-gmpls-pcep-extensions]
Margaria, C., Dios, O., and F. Zhang, "PCEP extensions for Margaria, C., Dios, O., and F. Zhang, "PCEP extensions for
GMPLS", draft-ietf-pce-gmpls-pcep-extensions-13 (work in GMPLS", draft-ietf-pce-gmpls-pcep-extensions-14 (work in
progress), January 2019. progress), April 2019.
14.2. Informative References 15.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>.
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running
Code: The Implementation Status Section", BCP 205,
RFC 7942, DOI 10.17487/RFC7942, July 2016,
<https://www.rfc-editor.org/info/rfc7942>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
Appendix A. Example Appendix A. 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.
skipping to change at page 109, line 5 skipping to change at page 110, line 5
"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" : { "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" : { "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",
skipping to change at page 111, line 30 skipping to change at page 112, line 30
EMail: vinods.kumar@huawei.com EMail: vinods.kumar@huawei.com
Zafar Ali Zafar Ali
Cisco Systems Cisco Systems
Canada Canada
EMail: zali@cisco.com EMail: zali@cisco.com
Xufeng Liu Xufeng Liu
Jabil Volta Networks
8281 Greensboro Drive, Suite 200
McLean VA 22102
USA
EMail: Xufeng_Liu@jabil.com EMail: xufeng.liu.ietf@gmail.com
Young Lee Young Lee
Huawei Technologies Futurewei
5340 Legacy Drive, Building 3 5340 Legacy Drive, Building 3
Plano, TX 75023, USA Plano, TX 75023
USA
Phone: (469) 277-5838 EMail: younglee.tx@gmail.com
EMail: leeyoung@huawei.com
Udayasree Palle Udayasree Palle
Huawei Technologies
Divyashree Techno Park, Whitefield
Bangalore, Karnataka 560066
India
EMail: udayasreereddy@gmail.com EMail: udayasreereddy@gmail.com
Xian Zhang Xian Zhang
Huawei Technologies Huawei Technologies
Bantian, Longgang District Bantian, Longgang District
Shenzhen 518129 Shenzhen 518129
P.R.China P.R.China
EMail: zhang.xian@huawei.com EMail: zhang.xian@huawei.com
Avantika Avantika
Huawei Technologies ECI Telecom
Divyashree Techno Park, Whitefield
Bangalore, Karnataka 560066
India India
EMail: s.avantika.avantika@gmail.com EMail: avantika.srm@gmail.com
Shashikanth Shashikanth
Huawei Technologies Huawei Technologies
Divyashree Techno Park, Whitefield Divyashree Techno Park, Whitefield
Bangalore, Karnataka 560066 Bangalore, Karnataka 560066
India India
EMail: shashikanth.vh@huawei.com EMail: shashikanth.vh@huawei.com
Authors' Addresses Authors' Addresses
 End of changes. 110 change blocks. 
231 lines changed or deleted 282 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/