< draft-ietf-pce-pcep-yang-13.txt   draft-ietf-pce-pcep-yang-14.txt >
PCE Working Group D. Dhody, Ed. PCE Working Group D. Dhody, Ed.
Internet-Draft Huawei Technologies Internet-Draft Huawei Technologies
Intended status: Standards Track J. Hardwick Intended status: Standards Track J. Hardwick
Expires: May 3, 2020 Metaswitch Expires: January 9, 2021 Metaswitch
V. Beeram V. Beeram
Juniper Networks Juniper Networks
J. Tantsura J. Tantsura
October 31, 2019 Apstra, Inc.
July 8, 2020
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-13 draft-ietf-pce-pcep-yang-14
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 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 3, 2020. This Internet-Draft will expire on January 9, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2020 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
skipping to change at page 2, line 29 skipping to change at page 2, line 30
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
5.7. The Full PCEP Data Model . . . . . . . . . . . . . . . . 18 5.7. The Full PCEP Data Model . . . . . . . . . . . . . . . . 18
6. The Design of PCEP Statistics Data Model . . . . . . . . . . 24 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 24
7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 27 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 27
7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 28 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 27
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 . . . . . . . . . . . . . . . . . . . . . . 29 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 28
10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 29 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 28
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 . . . . . . . . . . . . . . . . . . . . . 103 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 102
13. Implementation Status . . . . . . . . . . . . . . . . . . . . 103 13. Implementation Status . . . . . . . . . . . . . . . . . . . . 103
14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 104 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 103
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 104 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 104
15.1. Normative References . . . . . . . . . . . . . . . . . . 104 15.1. Normative References . . . . . . . . . . . . . . . . . . 104
15.2. Informative References . . . . . . . . . . . . . . . . . 108 15.2. Informative References . . . . . . . . . . . . . . . . . 107
Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 109 Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 109
Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 112 Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 112
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 113 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
skipping to change at page 4, line 42 skipping to change at page 4, line 42
[RFC8281] : [RFC8281] :
o PCE-initiated LSP, Path Computation LSP Initiate Message o PCE-initiated LSP, Path Computation LSP Initiate Message
(PCInitiate). (PCInitiate).
[RFC8408] : [RFC8408] :
o Path Setup Type (PST). o Path Setup Type (PST).
[I-D.ietf-pce-segment-routing] : [RFC8664] :
o Segment Routing (SR). o Segment Routing (SR).
[RFC6241] : [RFC6241] :
o Configuration data. o Configuration data.
o State data. o State data.
3.1. Tree Diagrams 3.1. Tree Diagrams
skipping to change at page 7, line 10 skipping to change at page 7, line 10
| Communication Protocol | | | Communication Protocol | |
| (PCEP) for Point-to- | | | (PCEP) for Point-to- | |
| Multipoint Traffic | | | Multipoint Traffic | |
| Engineering Label Switched | | | Engineering Label Switched | |
| Paths | | | Paths | |
| Network Configuration | [RFC8341] | | Network Configuration | [RFC8341] |
| Access Control Model | | | Access Control Model | |
| Conveying Path Setup Type | [RFC8408] | | Conveying Path Setup Type | [RFC8408] |
| in PCE Communication | | | in PCE Communication | |
| Protocol (PCEP) Messages | | | Protocol (PCEP) Messages | |
| Traffic Engineering Common | [I-D.ietf-teas-yang-te-types] | | Traffic Engineering Common | [RFC8776] |
| YANG Types | | | YANG Types | |
| A YANG Data Model for | [I-D.ietf-teas-yang-te] | | A YANG Data Model for | [I-D.ietf-teas-yang-te] |
| Traffic Engineering | | | Traffic Engineering | |
| Tunnels and Interfaces | | | Tunnels and Interfaces | |
| YANG Groupings for TLS | [I-D.ietf-netconf-tls-client-server] | | YANG Groupings for TLS | [I-D.ietf-netconf-tls-client-server] |
| Clients and TLS Servers | | | Clients and TLS Servers | |
| PCEP Extensions for | [I-D.ietf-pce-segment-routing] | | PCEP Extensions for | [RFC8664] |
| Segment Routing | | | Segment Routing | |
| PCEP Extensions for | [I-D.ietf-pce-association-group] | | PCEP Extensions for | [RFC8697] |
| Establishing Relationships | | | Establishing Relationships | |
| Between Sets of LSPs | | | Between Sets of LSPs | |
| YANG Data Model for OSPF | [I-D.ietf-ospf-yang] | | YANG Data Model for OSPF | [I-D.ietf-ospf-yang] |
| Protocol | | | Protocol | |
| YANG Data Model for IS-IS | [I-D.ietf-isis-yang-isis-cfg] | | YANG Data Model for IS-IS | [I-D.ietf-isis-yang-isis-cfg] |
| Protocol | | | Protocol | |
| PCEP extensions for GMPLS | [I-D.ietf-pce-gmpls-pcep-extensions] | | PCEP extensions for GMPLS | [I-D.ietf-pce-gmpls-pcep-extensions] |
+----------------------------+--------------------------------------+ +----------------------------+--------------------------------------+
Table 2: Refrences in the YANG modules Table 2: Refrences in the YANG modules
skipping to change at page 18, line 10 skipping to change at page 18, line 10
rpcs: rpcs:
+---x trigger-resync {stateful,sync-opt}? +---x trigger-resync {stateful,sync-opt}?
+---w input +---w input
+---w pcc? -> /pcep/entity/peers/peer/addr +---w pcc? -> /pcep/entity/peers/peer/addr
5.7. The Full PCEP Data Model 5.7. 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. The tree depth in the tree is set to 10. speaker. The tree depth in the tree is set to 10.
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 {sync-opt}? +--rw speaker-entity-id? string {sync-opt}?
+--rw admin-status? boolean +--rw admin-status? boolean
+--ro index? uint32 +--ro index? uint32
+--ro oper-status? pcep-oper-status +--ro oper-status? pcep-oper-status
+--rw domain +--rw domain
| +--rw domain* [domain-type domain] | +--rw domain* [domain-type domain]
| +--rw domain-type domain-type | +--rw domain-type domain-type
| +--rw domain domain | +--rw domain domain
+--rw capability +--rw capability
| +--rw capability? bits | +--rw capability? bits
| +--rw pce-initiated? boolean {pce-initiated}? | +--rw pce-initiated? boolean {pce-initiated}?
| +--rw include-db-ver? boolean | +--rw include-db-ver? boolean
| | {stateful,sync-opt}? | | {stateful,sync-opt}?
| +--rw trigger-resync? boolean | +--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 msd-limit? boolean | +--rw msd-limit? boolean
| +--rw nai? boolean | +--rw nai? boolean
+--rw msd? uint8 {sr}? +--rw msd? uint8 {sr}?
+--rw pce-info +--rw pce-info
| +--rw scope | +--rw scope
| | +--rw path-scope? bits | | +--rw path-scope? bits
| | +--rw intra-area-pref? uint8 | | +--rw intra-area-pref? uint8
| | +--rw inter-area-pref? uint8 | | +--rw inter-area-pref? uint8
| | +--rw inter-as-pref? uint8 | | +--rw inter-as-pref? uint8
| | +--rw inter-layer-pref? uint8 | | +--rw inter-layer-pref? uint8
| +--rw neigh-domains | +--rw neigh-domains
| | +--rw domain* [domain-type domain] | | +--rw domain* [domain-type domain]
| | +--rw domain-type domain-type | | +--rw domain-type 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? uint16 +--rw connect-timer? uint16
+--rw connect-max-retry? uint32 +--rw connect-max-retry? uint32
+--rw init-backoff-timer? uint16 +--rw init-backoff-timer? uint16
+--rw max-backoff-timer? uint32 +--rw max-backoff-timer? uint32
+--rw open-wait-timer? uint16 +--ro open-wait-timer? uint16
+--rw keep-wait-timer? uint16 +--ro keep-wait-timer? uint16
+--rw keep-alive-timer? uint8 +--rw keep-alive-timer? uint8
+--rw dead-timer? uint8 +--rw dead-timer? uint8
+--rw allow-negotiation? boolean +--rw allow-negotiation? boolean
+--rw max-keep-alive-timer? uint8 +--rw max-keep-alive-timer? uint8
+--rw max-dead-timer? uint8 +--rw max-dead-timer? uint8
+--rw min-keep-alive-timer? uint8 +--rw min-keep-alive-timer? uint8
+--rw min-dead-timer? uint8 +--rw min-dead-timer? uint8
+--rw sync-timer? uint16 {svec}? +--rw sync-timer? uint16 {svec}?
+--rw request-timer? uint16 +--rw request-timer? uint16
+--rw max-sessions? uint32 +--rw max-sessions? uint32
+--rw max-unknown-reqs? uint32 +--rw max-unknown-reqs? uint32
+--rw max-unknown-msgs? uint32 +--rw max-unknown-msgs? uint32
+--rw pcep-notification-max-rate uint32 +--rw pcep-notification-max-rate uint32
+--rw stateful-parameter {stateful}? +--rw stateful-parameter {stateful}?
| +--rw state-timeout? uint32 | +--rw state-timeout? uint32
| +--rw redelegation-timeout? uint32 | +--rw redelegation-timeout? uint32
| +--rw rpt-non-pcep-lsp? boolean | +--rw rpt-non-pcep-lsp? boolean
+--rw of-list {objective-function}? +--rw of-list {objective-function}?
| +--rw objective-function* [of] | +--rw objective-function* [of]
| +--rw of identityref | +--rw of identityref
+--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 lsp-id] | | +--ro lsp* [plsp-id pcc-id lsp-id]
| | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id
| | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id
| | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id
| +--ro lsp* [plsp-id pcc-id lsp-id] | +--ro lsp* [plsp-id pcc-id lsp-id]
| +--ro plsp-id uint32 | +--ro plsp-id uint32
| +--ro pcc-id inet:ip-address | +--ro pcc-id inet:ip-address
| +--ro source? | +--ro source?
| | -> /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
| | -> /pcep/entity/lsp-db/association-list/type | | -> /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]
| | +--ro index uint32 | | +--ro index uint32
| | +--ro (type)? | | +--ro (type)?
| | +--:(numbered-node-hop) | | +--:(numbered-node-hop)
| | | +--ro numbered-node-hop | | | +--ro numbered-node-hop
| | | +--ro node-id te-node-id | | | +--ro node-id te-node-id
| | | +--ro hop-type? te-hop-type | | | +--ro hop-type? te-hop-type
| | +--:(numbered-link-hop) | | +--:(numbered-link-hop)
| | | +--ro numbered-link-hop | | | +--ro numbered-link-hop
| | | +--ro link-tp-id te-tp-id | | | +--ro link-tp-id te-tp-id
| | | +--ro hop-type? te-hop-type | | | +--ro hop-type? te-hop-type
| | | +--ro direction? te-link-direction | | | +--ro direction? te-link-direction
| | +--:(unnumbered-link-hop) | | +--:(unnumbered-link-hop)
| | | +--ro unnumbered-link-hop | | | +--ro unnumbered-link-hop
| | | +--ro link-tp-id te-tp-id | | | +--ro link-tp-id te-tp-id
| | | +--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)? | | ...
| | | ... | +--ro pcc-original? -> /pcep/entity/peers/peer/addr
| | +--ro direction? | +--ro req-id? uint32
| | te-label-direction | +--ro retrieved? boolean
| +--ro pcc-original? -> /pcep/entity/peers/peer/addr | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr
| +--ro req-id? uint32 | +--ro creation-time? yang:timestamp
| +--ro retrieved? boolean | +--ro discard-time? uint32
| +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr | +--ro reuse-time? uint32
| +--ro creation-time? yang:timestamp +--rw peers
| +--ro discard-time? uint32 +--rw peer* [addr]
| +--ro reuse-time? uint32 +--rw addr inet:ip-address
+--rw peers +--rw role pcep-role
+--rw peer* [addr] +--rw description? string
+--rw addr inet:ip-address +--rw domain
+--rw role pcep-role | +--rw domain* [domain-type domain]
+--rw description? string | +--rw domain-type domain-type
+--rw domain | +--rw domain domain
| +--rw domain* [domain-type domain] +--rw capability
| +--rw domain-type domain-type | +--rw capability? bits
| +--rw domain domain | +--rw pce-initiated? boolean
+--rw capability | | {pce-initiated}?
| +--rw capability? bits | +--rw include-db-ver? boolean
| +--rw pce-initiated? boolean | | {stateful,sync-opt}?
| | {pce-initiated}? | +--rw trigger-resync? boolean
| +--rw include-db-ver? boolean | | {stateful,sync-opt}?
| | {stateful,sync-opt}? | +--rw trigger-initial-sync? boolean
| +--rw trigger-resync? boolean | | {stateful,sync-opt}?
| | {stateful,sync-opt}? | +--rw incremental-sync? boolean
| +--rw trigger-initial-sync? boolean | | {stateful,sync-opt}?
| | {stateful,sync-opt}? | +--rw sr {sr}?
| +--rw incremental-sync? boolean | +--rw enabled? boolean
| | {stateful,sync-opt}? | +--rw msd-limit? boolean
| +--rw sr {sr}? | +--rw nai? boolean
| +--rw enabled? boolean +--rw msd? uint8 {sr}?
| +--rw msd-limit? boolean +--rw pce-info
| +--rw nai? boolean | +--rw scope
+--rw msd? uint8 {sr}? | | +--rw path-scope? bits
+--rw pce-info | | +--rw intra-area-pref? uint8
| +--rw scope | | +--rw inter-area-pref? uint8
| | +--rw path-scope? bits | | +--rw inter-as-pref? uint8
| | +--rw intra-area-pref? uint8 | | +--rw inter-layer-pref? uint8
| | +--rw inter-area-pref? uint8 | +--rw neigh-domains
| | +--rw inter-as-pref? uint8 | +--rw domain* [domain-type domain]
| | +--rw inter-layer-pref? uint8 | +--rw domain-type domain-type
| +--rw neigh-domains | +--rw domain domain
| +--rw domain* [domain-type domain] +--rw delegation-pref? uint8 {stateful}?
| +--rw domain-type domain-type +--rw auth
| +--rw domain domain | +--rw (auth-type-selection)?
+--rw delegation-pref? uint8 {stateful}? | +--:(auth-key-chain)
+--rw auth | | +--rw key-chain?
| +--rw (auth-type-selection)? | | key-chain:key-chain-ref
| +--:(auth-key-chain) | +--:(auth-key)
| | +--rw key-chain? | | +--rw crypto-algorithm identityref
| | key-chain:key-chain-ref | | +--rw (key-string-style)?
| +--:(auth-key) | | +--:(keystring)
| | +--rw crypto-algorithm identityref | | | +--rw keystring? string
| | +--rw (key-string-style)? | | +--:(hexadecimal)
| | +--:(keystring) | | {key-chain:hex-key-string}?
| | | +--rw keystring? string | | +--rw hexadecimal-string?
| | +--:(hexadecimal) | | yang:hex-string
| | {key-chain:hex-key-string}? | +--:(auth-tls) {tls}?
| | +--rw hexadecimal-string? | +--rw (role)?
| | yang:hex-string | +--:(server)
| +--:(auth-tls) {tls}? | | +--rw tls-server
| +--rw (role)? | | ...
| +--:(server) | +--:(client)
| | +--rw tls-server | +--rw tls-client
| | +--rw server-identity | ...
| | | ... +--ro discontinuity-time? yang:timestamp
| | +--rw client-authentication! +--ro initiate-session? boolean
| | | ... +--ro session-exists? boolean
| | +--rw hello-params +--ro session-up-time? yang:timestamp
| | | {tls-server-hello-params-config}? +--ro session-fail-time? yang:timestamp
| | | ... +--ro session-fail-up-time? yang:timestamp
| | +--rw keepalives! +--ro sessions
| | {tls-server-keepalives}? +--ro session* [initiator]
| | ... +--ro initiator pcep-initiator
| +--:(client) +--ro role?
| +--rw tls-client | -> /pcep/entity/role
| +--rw client-identity +--ro state-last-change? yang:timestamp
| | ... +--ro state? pcep-sess-state
| +--rw server-authentication +--ro session-creation? yang:timestamp
| | ... +--ro connect-retry? yang:counter32
| +--rw hello-params +--ro local-id? uint8
| | {tls-client-hello-params-config}? +--ro remote-id? uint8
| | ... +--ro keepalive-timer? uint8
| +--rw keepalives! +--ro peer-keepalive-timer? uint8
| {tls-client-keepalives}? +--ro dead-timer? uint8
| ... +--ro peer-dead-timer? uint8
+--ro discontinuity-time? yang:timestamp +--ro ka-hold-time-rem? uint8
+--ro initiate-session? boolean +--ro overloaded? boolean
+--ro session-exists? boolean +--ro overload-time? uint32
+--ro session-up-time? yang:timestamp +--ro peer-overloaded? boolean
+--ro session-fail-time? yang:timestamp +--ro peer-overload-time? uint32
+--ro session-fail-up-time? yang:timestamp +--ro lspdb-sync? sync-state
+--ro sessions | {stateful}?
+--ro session* [initiator] +--ro recv-db-ver? uint64
+--ro initiator pcep-initiator | {stateful,sync-opt}?
+--ro role? +--ro of-list {objective-function}?
| -> /pcep/entity/role | +--ro objective-function* [of]
+--ro state-last-change? yang:timestamp | +--ro of identityref
+--ro state? pcep-sess-state +--ro pst-list
+--ro session-creation? yang:timestamp | +--ro path-setup-type* [pst]
+--ro connect-retry? yang:counter32 | +--ro pst identityref
+--ro local-id? uint8 +--ro assoc-type-list {association}?
+--ro remote-id? uint8 | +--ro assoc-type* [at]
+--ro keepalive-timer? uint8 | +--ro at identityref
+--ro peer-keepalive-timer? uint8 +--ro speaker-entity-id? string {sync-opt}?
+--ro dead-timer? uint8 +--ro discontinuity-time? yang:timestamp
+--ro peer-dead-timer? uint8
+--ro ka-hold-time-rem? uint8
+--ro overloaded? boolean
+--ro overload-time? uint32
+--ro peer-overloaded? boolean
+--ro peer-overload-time? uint32
+--ro lspdb-sync? sync-state
| {stateful}?
+--ro recv-db-ver? uint64
| {stateful,sync-opt}?
+--ro of-list {objective-function}?
| +--ro objective-function* [of]
| +--ro of identityref
+--ro pst-list
| +--ro path-setup-type* [pst]
| +--ro pst identityref
+--ro assoc-type-list {association}?
| +--ro assoc-type* [at]
| +--ro at identityref
+--ro speaker-entity-id? string {sync-opt}?
+--ro discontinuity-time? yang:timestamp
rpcs:
+---x trigger-resync {stateful,sync-opt}? rpcs:
+---w input +---x trigger-resync {stateful,sync-opt}?
+---w pcc? -> /pcep/entity/peers/peer/addr +---w input
+---w pcc? -> /pcep/entity/peers/peer/addr
notifications: notifications:
+---n pcep-session-up +---n pcep-session-up
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? | +--ro session-initiator?
| | -> /pcep/entity/peers/peer/sessions/session/initiator | | -> /pcep/entity/peers/peer/sessions/session/initiator
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp
| +--ro state? pcep-sess-state | +--ro state? pcep-sess-state
+---n pcep-session-down +---n pcep-session-down
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? pcep-initiator | +--ro session-initiator? pcep-initiator
| +--ro state-last-change? yang:timestamp | +--ro state-last-change? yang:timestamp
| +--ro state? pcep-sess-state | +--ro state? pcep-sess-state
+---n pcep-session-local-overload +---n pcep-session-local-overload
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? | +--ro session-initiator?
| | -> /pcep/entity/peers/peer/sessions/session/initiator | | -> /pcep/entity/peers/peer/sessions/session/initiator
| +--ro overloaded? boolean | +--ro overloaded? boolean
| +--ro overload-time? uint32 | +--ro overload-time? uint32
+---n pcep-session-local-overload-clear +---n pcep-session-local-overload-clear
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro overloaded? boolean | +--ro overloaded? boolean
+---n pcep-session-peer-overload +---n pcep-session-peer-overload
| +--ro peer-addr? -> /pcep/entity/peers/peer/addr | +--ro peer-addr? -> /pcep/entity/peers/peer/addr
| +--ro session-initiator? | +--ro session-initiator?
| | -> /pcep/entity/peers/peer/sessions/session/initiator | | -> /pcep/entity/peers/peer/sessions/session/initiator
| +--ro peer-overloaded? boolean | +--ro peer-overloaded? boolean
| +--ro peer-overload-time? uint32 | +--ro peer-overload-time? uint32
+---n pcep-session-peer-overload-clear +---n pcep-session-peer-overload-clear
+--ro peer-addr? -> /pcep/entity/peers/peer/addr +--ro peer-addr? -> /pcep/entity/peers/peer/addr
+--ro peer-overloaded? boolean +--ro peer-overloaded? boolean
6. The Design of PCEP Statistics Data Model 6. The Design of PCEP Statistics Data Model
The module, "ietf-pcep-stats", augments the ietf-pcep module to The module, "ietf-pcep-stats", augments the ietf-pcep module to
include statistics at the PCEP peer and session level. include statistics at the PCEP peer and session level.
module: ietf-pcep-stats module: ietf-pcep-stats
augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer: augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer:
+--ro num-sess-setup-ok? yang:counter32 +--ro num-sess-setup-ok? yang:counter32
+--ro num-sess-setup-fail? yang:counter32 +--ro num-sess-setup-fail? yang:counter32
skipping to change at page 29, line 18 skipping to change at page 28, line 43
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-10-31.yang" <CODE BEGINS> file "ietf-pcep@2020-07-08.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";
} }
skipping to change at page 29, line 43 skipping to change at page 29, line 20
} }
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 "RFC 8776: Common YANG Data Types for Traffic Engineering";
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 nacm; prefix nacm;
reference reference
"RFC 8341: Network Configuration Protocol (NETCONF) Access "RFC 8341: Network Configuration Protocol (NETCONF) Access
skipping to change at page 30, line 45 skipping to change at page 30, line 20
"IETF PCE (Path Computation Element) Working Group"; "IETF PCE (Path Computation Element) Working Group";
contact contact
"WG Web: <https://tools.ietf.org/wg/pce/> "WG Web: <https://tools.ietf.org/wg/pce/>
WG List: <mailto:pce@ietf.org> WG List: <mailto:pce@ietf.org>
Editor: Dhruv Dhody Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
description description
"The YANG module defines a generic configuration and "The YANG module defines a generic configuration and
operational model for PCEP. operational model for PCEP.
Copyright (c) 2019 IETF Trust and the persons identified as The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.
Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2019-10-31 { revision 2020-07-08 {
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 38, line 45 skipping to change at page 38, line 26
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 "RFC 8664: Path Computation Element Communication Protocol
Routing"; (PCEP) Extensions for Segment 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 "RFC 8697: Path Computation Element Communication Protocol
Establishing Relationships Between Sets of LSPs"; (PCEP) Extensions for Establishing Relationships between
Sets of Label Switched Paths (LSPs)";
} }
/* /*
* Identities * Identities
*/ */
identity lsp-error { identity lsp-error {
if-feature "stateful"; if-feature "stateful";
description description
"Base LSP error"; "Base LSP error";
skipping to change at page 47, line 8 skipping to change at page 46, line 38
"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 "RFC 8664: Path Computation Element Communication Protocol
Routing"; (PCEP) Extensions for Segment 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";
description description
"True indicates no limit on MSD, the "True indicates no limit on MSD, the
skipping to change at page 47, line 39 skipping to change at page 47, line 21
} }
//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 "RFC 8664: Path Computation Element Communication Protocol
Routing"; (PCEP) Extensions for Segment 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.
This information corresponds to PCE auto-discovery This information corresponds to PCE auto-discovery
skipping to change at page 53, line 45 skipping to change at page 53, line 28
a failed session setup attempt to a peer. a failed session setup attempt to a peer.
The back-off time increases for each failed session The back-off time increases for each failed session
setup attempt, until this maximum value is reached. setup attempt, until this maximum value is reached.
Session setup attempts then repeat periodically Session setup attempts then repeat periodically
without any further increase in back-off time."; without any further increase in back-off time.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
leaf open-wait-timer { leaf open-wait-timer {
type uint16 { type uint16;
range "1..65535";
}
units "seconds"; units "seconds";
default "60"; default "60";
config false;
description description
"The time in seconds that the PCEP entity will wait "The time in seconds that the PCEP entity will wait
to receive an Open message from a peer after the to receive an Open message from a peer after the
TCP connection has come up. TCP connection has come up.
If no Open message is received within this time then If no Open message is received within this time then
PCEP terminates the TCP connection and deletes the PCEP terminates the TCP connection and deletes the
associated sessions."; associated sessions.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
Protocol (PCEP)"; Protocol (PCEP)";
} }
leaf keep-wait-timer { leaf keep-wait-timer {
type uint16 { type uint16;
range "1..65535";
}
units "seconds"; units "seconds";
default "60"; default "60";
config false;
description description
"The time in seconds that the PCEP entity will wait "The time in seconds that the PCEP entity will wait
to receive a Keepalive or PCErr message from a peer to receive a Keepalive or PCErr message from a peer
during session initialization after receiving an during session initialization after receiving an
Open message. If no Keepalive or PCErr message is Open message. If no Keepalive or PCErr message is
received within this time then PCEP terminates the received within this time then PCEP terminates the
TCP connection and deletes the associated TCP connection and deletes the associated
sessions."; sessions.";
reference reference
"RFC 5440: Path Computation Element (PCE) Communication "RFC 5440: Path Computation Element (PCE) Communication
skipping to change at page 56, line 35 skipping to change at page 56, line 15
default "60"; default "60";
description description
"The value of SyncTimer in seconds is used in the "The value of SyncTimer in seconds is used in the
case of synchronized path computation request case of synchronized path computation request
using the SVEC object. Consider the case where a using the SVEC object. Consider the case where a
PCReq message is received by a PCE that contains PCReq message is received by a PCE that contains
the SVEC object referring to M synchronized path the SVEC object referring to M synchronized path
computation requests. If after the expiration of computation requests. If after the expiration of
the SyncTimer all the M path computation requests the SyncTimer all the M path computation requests
have not been, received a protocol error is have not been, received a protocol error is
triggered and the PCE MUST cancel the whole set triggered and the PCE must cancel the whole set
of path computation requests. of path computation requests.
The aim of the SyncTimer is to avoid the storage The aim of the SyncTimer is to avoid the storage
of unused synchronized requests should one of of unused synchronized requests should one of
them get lost for some reasons (for example, a them get lost for some reasons (for example, a
misbehaving PCC). misbehaving PCC).
Zero means that the PCEP entity does not use the Zero means that the PCEP entity does not use the
SyncTimer."; SyncTimer.";
reference reference
"RFC 5440: Path Computation Element (PCE) "RFC 5440: Path Computation Element (PCE)
Communication Protocol (PCEP)"; Communication Protocol (PCEP)";
skipping to change at page 59, line 50 skipping to change at page 59, line 30
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 "RFC 8697: Path Computation Element Communication
Extensions for Establishing Relationships Protocol (PCEP) Extensions for Establishing
Between Sets of LSPs"; Relationships between Sets of Label Switched
Paths (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 {
type uint16; type uint16;
description description
skipping to change at page 65, line 41 skipping to change at page 65, line 22
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 "RFC 8697: Path Computation Element Communication
Extensions for Establishing Relationships Protocol (PCEP) Extensions for Establishing
Between Sets of LSPs"; Relationships between Sets of Label Switched
Paths (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";
} }
if-feature "path-key"; if-feature "path-key";
config false; config false;
description description
"The path-keys generated by the PCE"; "The path-keys generated by the PCE";
reference reference
"RFC 5520: Preserving Topology Confidentiality "RFC 5520: Preserving Topology Confidentiality
in Inter-Domain Path Computation Using a Path- in Inter-Domain Path Computation Using a Path-
Key-Based Mechanism"; Key-Based Mechanism";
list path-keys { list path-keys {
skipping to change at page 78, line 43 skipping to change at page 78, line 24
"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 "RFC 8697: Path Computation Element Communication
Extensions for Establishing Relationships Protocol (PCEP) Extensions for Establishing
Between Sets of LSPs"; Relationships between Sets of Label Switched
Paths (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;
} }
description description
"The association type authorized"; "The association type authorized";
} }
} }
} }
leaf speaker-entity-id { leaf speaker-entity-id {
if-feature "sync-opt"; if-feature "sync-opt";
type string; type string;
description description
skipping to change at page 83, line 19 skipping to change at page 83, line 4
if-feature "sync-opt"; if-feature "sync-opt";
description description
"Trigger the resyncrinization at the PCE"; "Trigger the resyncrinization at the PCE";
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";
input { input {
leaf pcc { leaf pcc {
type leafref { type leafref {
path "/pcep/entity/peers/peer/addr"; path "/pcep/entity/peers/peer/addr";
} }
description description
"The IP address to identify the PCC. The state "The IP address to identify the PCC. The state
syncronization is re-triggered for all LSPs from syncronization is re-triggered for all LSPs from
the PCC. The rpc on the PCC will be ignored."; the PCC. The rpc on the PCC will be ignored.";
} }
} }
//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-10-31.yang" <CODE BEGINS> file "ietf-pcep-stats@2020-07-08.yang"
module ietf-pcep-stats { module ietf-pcep-stats {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats";
prefix pcep-stats; prefix pcep-stats;
import ietf-pcep { import ietf-pcep {
prefix pcep; prefix pcep;
reference reference
"RFC XXXX: A YANG Data Model for Path Computation "RFC XXXX: A YANG Data Model for Path Computation
Element Communications Protocol (PCEP)"; Element Communications Protocol (PCEP)";
skipping to change at page 84, line 18 skipping to change at page 83, line 51
"IETF PCE (Path Computation Element) Working Group"; "IETF PCE (Path Computation Element) Working Group";
contact contact
"WG Web: <https://tools.ietf.org/wg/pce/> "WG Web: <https://tools.ietf.org/wg/pce/>
WG List: <mailto:pce@ietf.org> WG List: <mailto:pce@ietf.org>
Editor: Dhruv Dhody Editor: Dhruv Dhody
<mailto:dhruv.ietf@gmail.com>"; <mailto:dhruv.ietf@gmail.com>";
description description
"The YANG module augments the PCEP yang operational "The YANG module augments the PCEP yang operational
model with statistics, counters and telemetry data. model with statistics, counters and telemetry data.
Copyright (c) 2019 IETF Trust and the persons identified as Copyright (c) 2020 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2019-10-31 { revision 2020-07-08 {
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 104, line 29 skipping to change at page 104, line 9
Thanks to Mahesh Jethmalani for the Yang Doctor review. Thanks to Mahesh Jethmalani for the Yang Doctor review.
Thanks to Martin Bjorklund and Tom Petch for providing guidance Thanks to Martin Bjorklund and Tom Petch for providing guidance
regarding the Yang guidelines. regarding the Yang guidelines.
15. References 15. References
15.1. Normative References 15.1. Normative References
[I-D.ietf-isis-yang-isis-cfg]
Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L.
Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf-
isis-yang-isis-cfg-42 (work in progress), October 2019.
[I-D.ietf-netconf-tls-client-server]
Watsen, K. and G. Wu, "YANG Groupings for TLS Clients and
TLS Servers", draft-ietf-netconf-tls-client-server-19
(work in progress), May 2020.
[I-D.ietf-ospf-yang]
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem,
"YANG Data Model for OSPF Protocol", draft-ietf-ospf-
yang-29 (work in progress), October 2019.
[I-D.ietf-pce-gmpls-pcep-extensions]
Margaria, C., Dios, O., and F. Zhang, "PCEP extensions for
GMPLS", draft-ietf-pce-gmpls-pcep-extensions-16 (work in
progress), December 2019.
[I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
"A YANG Data Model for Traffic Engineering Tunnels and
Interfaces", draft-ietf-teas-yang-te-23 (work in
progress), March 2020.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., [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 106, line 5 skipping to change at page 106, line 9
<https://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
Zhang, "YANG Data Model for Key Chains", RFC 8177,
DOI 10.17487/RFC8177, June 2017,
<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,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
Zhang, "YANG Data Model for Key Chains", RFC 8177,
DOI 10.17487/RFC8177, June 2017,
<https://www.rfc-editor.org/info/rfc8177>.
[RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path
Computation Element Communication Protocol (PCEP) Computation Element Communication Protocol (PCEP)
Extensions for Stateful PCE", RFC 8231, Extensions for Stateful PCE", RFC 8231,
DOI 10.17487/RFC8231, September 2017, DOI 10.17487/RFC8231, September 2017,
<https://www.rfc-editor.org/info/rfc8231>. <https://www.rfc-editor.org/info/rfc8231>.
[RFC8232] Crabbe, E., Minei, I., Medved, J., Varga, R., Zhang, X., [RFC8232] Crabbe, E., Minei, I., Medved, J., Varga, R., Zhang, X.,
and D. Dhody, "Optimizations of Label Switched Path State and D. Dhody, "Optimizations of Label Switched Path State
Synchronization Procedures for a Stateful PCE", RFC 8232, Synchronization Procedures for a Stateful PCE", RFC 8232,
DOI 10.17487/RFC8232, September 2017, DOI 10.17487/RFC8232, September 2017,
skipping to change at page 107, line 19 skipping to change at page 107, line 23
[RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. [RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J.
Hardwick, "Conveying Path Setup Type in PCE Communication Hardwick, "Conveying Path Setup Type in PCE Communication
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] [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, and J. Hardwick, "Path Computation Element Communication
"A YANG Data Model for Traffic Engineering Tunnels and Protocol (PCEP) Extensions for Segment Routing", RFC 8664,
Interfaces", draft-ietf-teas-yang-te-21 (work in DOI 10.17487/RFC8664, December 2019,
progress), April 2019. <https://www.rfc-editor.org/info/rfc8664>.
[I-D.ietf-teas-yang-te-types]
Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
"Traffic Engineering Common YANG Types", draft-ietf-teas-
yang-te-types-11 (work in progress), October 2019.
[I-D.ietf-netconf-tls-client-server]
Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS
Clients and TLS Servers", draft-ietf-netconf-tls-client-
server-15 (work in progress), October 2019.
[I-D.ietf-pce-association-group] [RFC8697] Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H.,
Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H.,
Dhody, D., and Y. Tanaka, "Path Computation Element Dhody, D., and Y. Tanaka, "Path Computation Element
Communication Protocol (PCEP) Extensions for Establishing Communication Protocol (PCEP) Extensions for Establishing
Relationships Between Sets of Label Switched Paths Relationships between Sets of Label Switched Paths
(LSPs)", draft-ietf-pce-association-group-10 (work in (LSPs)", RFC 8697, DOI 10.17487/RFC8697, January 2020,
progress), August 2019. <https://www.rfc-editor.org/info/rfc8697>.
[I-D.ietf-pce-segment-routing]
Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
and J. Hardwick, "PCEP Extensions for Segment Routing",
draft-ietf-pce-segment-routing-16 (work in progress),
March 2019.
[I-D.ietf-isis-yang-isis-cfg]
Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L.
Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf-
isis-yang-isis-cfg-42 (work in progress), October 2019.
[I-D.ietf-ospf-yang]
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem,
"YANG Data Model for OSPF Protocol", draft-ietf-ospf-
yang-29 (work in progress), October 2019.
[I-D.ietf-pce-gmpls-pcep-extensions] [RFC8776] Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
Margaria, C., Dios, O., and F. Zhang, "PCEP extensions for "Common YANG Data Types for Traffic Engineering",
GMPLS", draft-ietf-pce-gmpls-pcep-extensions-15 (work in RFC 8776, DOI 10.17487/RFC8776, June 2020,
progress), October 2019. <https://www.rfc-editor.org/info/rfc8776>.
15.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
skipping to change at page 113, line 43 skipping to change at page 113, line 43
EMail: jonathan.hardwick@metaswitch.com EMail: jonathan.hardwick@metaswitch.com
Vishnu Pavan Beeram Vishnu Pavan Beeram
Juniper Networks Juniper Networks
USA USA
EMail: vbeeram@juniper.net EMail: vbeeram@juniper.net
Jeff Tantsura Jeff Tantsura
Apstra, Inc.
USA USA
EMail: jefftant@gmail.com EMail: jefftant@gmail.com
 End of changes. 48 change blocks. 
411 lines changed or deleted 395 lines changed or added

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