idnits 2.17.1 draft-ietf-pce-pcep-yang-12.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 437 has weird spacing: '...in-type dom...' == Line 464 has weird spacing: '...in-type dom...' == Line 489 has weird spacing: '...ax-rate uin...' == Line 496 has weird spacing: '...--rw of ide...' == Line 505 has weird spacing: '...-source uin...' == (23 more instances...) -- The document date (July 1, 2019) is 1760 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-21 == Outdated reference: A later version (-13) exists of draft-ietf-teas-yang-te-types-09 == Outdated reference: A later version (-41) exists of draft-ietf-netconf-tls-client-server-13 == Outdated reference: A later version (-10) exists of draft-ietf-pce-association-group-09 == Outdated reference: A later version (-42) exists of draft-ietf-isis-yang-isis-cfg-35 == Outdated reference: A later version (-29) exists of draft-ietf-ospf-yang-22 == Outdated reference: A later version (-16) exists of draft-ietf-pce-gmpls-pcep-extensions-14 Summary: 0 errors (**), 0 flaws (~~), 14 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PCE Working Group D. Dhody, Ed. 3 Internet-Draft Huawei Technologies 4 Intended status: Standards Track J. Hardwick 5 Expires: January 2, 2020 Metaswitch 6 V. Beeram 7 Juniper Networks 8 J. Tantsura 9 July 1, 2019 11 A YANG Data Model for Path Computation Element Communications Protocol 12 (PCEP) 13 draft-ietf-pce-pcep-yang-12 15 Abstract 17 This document defines a YANG data model for the management of Path 18 Computation Element communications Protocol (PCEP) for communications 19 between a Path Computation Client (PCC) and a Path Computation 20 Element (PCE), or between two PCEs. The data model includes 21 configuration and state data. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at https://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on January 2, 2020. 40 Copyright Notice 42 Copyright (c) 2019 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (https://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 58 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 59 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 60 3.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 5 61 3.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 62 3.3. Refrences in the Model . . . . . . . . . . . . . . . . . 5 63 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 7 64 5. The Design of PCEP Data Model . . . . . . . . . . . . . . . . 8 65 5.1. The Overview of PCEP Data Model . . . . . . . . . . . . . 8 66 5.2. The Entity . . . . . . . . . . . . . . . . . . . . . . . 9 67 5.3. The Peer Lists . . . . . . . . . . . . . . . . . . . . . 13 68 5.4. The Session Lists . . . . . . . . . . . . . . . . . . . . 15 69 5.5. Notifications . . . . . . . . . . . . . . . . . . . . . . 17 70 5.6. RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 71 5.7. The Full PCEP Data Model . . . . . . . . . . . . . . . . 18 72 6. The Design of PCEP Statistics Data Model . . . . . . . . . . 24 73 7. Advanced PCE Features . . . . . . . . . . . . . . . . . . . . 27 74 7.1. Stateful PCE's LSP-DB . . . . . . . . . . . . . . . . . . 28 75 8. Open Issues and Next Step . . . . . . . . . . . . . . . . . . 28 76 8.1. The PCE-Initiated LSP . . . . . . . . . . . . . . . . . . 28 77 9. Other Considerations . . . . . . . . . . . . . . . . . . . . 28 78 9.1. PCEP over TLS (PCEPS) . . . . . . . . . . . . . . . . . . 28 79 10. PCEP YANG Modules . . . . . . . . . . . . . . . . . . . . . . 28 80 10.1. ietf-pcep module . . . . . . . . . . . . . . . . . . . . 29 81 10.2. ietf-pcep-stats module . . . . . . . . . . . . . . . . . 83 82 11. Security Considerations . . . . . . . . . . . . . . . . . . . 101 83 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 102 84 13. Implementation Status . . . . . . . . . . . . . . . . . . . . 103 85 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 103 86 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 104 87 15.1. Normative References . . . . . . . . . . . . . . . . . . 104 88 15.2. Informative References . . . . . . . . . . . . . . . . . 107 89 Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 109 90 Appendix B. Contributor Addresses . . . . . . . . . . . . . . . 112 91 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 113 93 1. Introduction 95 The Path Computation Element (PCE) defined in [RFC4655] is an entity 96 that is capable of computing a network path or route based on a 97 network graph, and applying computational constraints. A Path 98 Computation Client (PCC) may make requests to a PCE for paths to be 99 computed. 101 PCEP is the communication protocol between a PCC and PCE and is 102 defined in [RFC5440]. PCEP interactions include path computation 103 requests and path computation replies as well as notifications of 104 specific states related to the use of a PCE in the context of 105 Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) 106 Traffic Engineering (TE). [RFC8231] specifies extensions to PCEP to 107 enable stateful control of MPLS TE LSPs. 109 This document defines a YANG [RFC7950] data model for the management 110 of PCEP speakers. It is important to establish a common data model 111 for how PCEP speakers are identified, configured, and monitored. The 112 data model includes configuration data and state data. 114 This document contains a specification of the PCEP YANG module, 115 "ietf-pcep" which provides the PCEP [RFC5440] data model. 117 The PCEP operational state is included in the same tree as the PCEP 118 configuration consistent with Network Management Datastore 119 Architecture [RFC8342]. The origin of the data is indicated as per 120 the origin metadata annotation. 122 2. Requirements Language 124 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 125 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 126 "OPTIONAL" in this document are to be interpreted as described in BCP 127 14 [RFC2119] [RFC8174] when, and only when, they appear in all 128 capitals, as shown here. 130 3. Terminology and Notation 132 This document uses the terminology defined in [RFC4655] and 133 [RFC5440]. In particular, it uses the following acronyms. 135 o Path Computation Request message (PCReq). 137 o Path Computation Reply message (PCRep). 139 o Notification message (PCNtf). 141 o Error message (PCErr). 143 o Request Parameters object (RP). 145 o Synchronization Vector object (SVEC). 147 o Explicit Route object (ERO). 149 This document also uses the following terms defined in [RFC7420]: 151 o PCEP entity: a local PCEP speaker. 153 o PCEP peer: to refer to a remote PCEP speaker. 155 o PCEP speaker: where it is not necessary to distinguish between 156 local and remote. 158 Further, this document also uses the following terms defined in 159 [RFC8231] : 161 o Stateful PCE, Passive Stateful PCE, Active Stateful PCE 163 o Delegation, Revocation, Redelegation 165 o LSP State Report, Path Computation Report message (PCRpt). 167 o LSP State Update, Path Computation Update message (PCUpd). 169 [RFC8281] : 171 o PCE-initiated LSP, Path Computation LSP Initiate Message 172 (PCInitiate). 174 [RFC8408] : 176 o Path Setup Type (PST). 178 [I-D.ietf-pce-segment-routing] : 180 o Segment Routing (SR). 182 [RFC6241] : 184 o Configuration data. 186 o State data. 188 3.1. Tree Diagrams 190 A simplified graphical representation of the data model is used in 191 this document. The meaning of the symbols in these diagrams is 192 defined in [RFC8340]. 194 3.2. Prefixes in Data Node Names 196 In this document, names of data nodes and other data model objects 197 are often used without a prefix, as long as it is clear from the 198 context in which YANG module each name is defined. Otherwise, names 199 are prefixed using the standard prefix associated with the 200 corresponding YANG module, as shown in Table 1. 202 +----------+------------------+-------------------------------------+ 203 | Prefix | YANG module | Reference | 204 +----------+------------------+-------------------------------------+ 205 | yang | ietf-yang-types | [RFC6991] | 206 | inet | ietf-inet-types | [RFC6991] | 207 | te | ietf-te | [I-D.ietf-teas-yang-te] | 208 | te-types | ietf-te-types | [I-D.ietf-teas-yang-te] | 209 | key- | ietf-key-chain | [RFC8177] | 210 | chain | | | 211 | nacm | ietf-netconf-acm | [RFC8341] | 212 | tlss | ietf-tls-server | [I-D.ietf-netconf-tls-client-server | 213 | | | ] | 214 | tlsc | ietf-tls-client | [I-D.ietf-netconf-tls-client-server | 215 | | | ] | 216 | ospf | ietf-ospf | [I-D.ietf-ospf-yang] | 217 | isis | ietf-isis | [I-D.ietf-isis-yang-isis-cfg] | 218 +----------+------------------+-------------------------------------+ 220 Table 1: Prefixes and corresponding YANG modules 222 3.3. Refrences in the Model 224 Following documents are refrenced in the model defined in this 225 document - 227 +----------------------------+--------------------------------------+ 228 | Documents | Reference | 229 +----------------------------+--------------------------------------+ 230 | RSVP-TE: Extensions to | [RFC3209] | 231 | RSVP for LSP Tunnels | | 232 | OSPF Protocol Extensions | [RFC5088] | 233 | for Path Computation | | 234 | Element (PCE) Discovery | | 235 | IS-IS Protocol Extensions | [RFC5089] | 236 | for Path Computation | | 237 | Element (PCE) Discovery | | 238 | Path Computation Element | [RFC5440] | 239 | (PCE) Communication | | 240 | Protocol (PCEP) | | 241 | Preserving Topology | [RFC5520] | 242 | Confidentiality in Inter- | | 243 | Domain Path Computation | | 244 | Using a Path-Key-Based | | 245 | Mechanism | | 246 | Encoding of Objective | [RFC5541] | 247 | Functions in the Path | | 248 | Computation Element | | 249 | Communication Protocol | | 250 | (PCEP) | | 251 | Path Computation Element | [RFC5557] | 252 | Communication Protocol | | 253 | (PCEP) Requirements and | | 254 | Protocol Extensions in | | 255 | Support of Global | | 256 | Concurrent Optimization | | 257 | Common YANG Data Types | [RFC6991] | 258 | YANG Data Model for Key | [RFC8177] | 259 | Chains | | 260 | Path Computation Element | [RFC8231] | 261 | Communication Protocol | | 262 | (PCEP) Extensions for | | 263 | Stateful PCE | | 264 | Optimizations of Label | [RFC8232] | 265 | Switched Path State | | 266 | Synchronization Procedures | | 267 | for a Stateful PCE | | 268 | PCEPS: Usage of TLS to | [RFC8253] | 269 | Provide a Secure Transport | | 270 | for the Path Computation | | 271 | Element Communication | | 272 | Protocol (PCEP) | | 273 | Path Computation Element | [RFC8281] | 274 | Communication Protocol | | 275 | (PCEP) Extensions for PCE- | | 276 | Initiated LSP Setup in a | | 277 | Stateful PCE Model | | 278 | Extensions to the Path | [RFC8306] | 279 | Computation Element | | 280 | Communication Protocol | | 281 | (PCEP) for Point-to- | | 282 | Multipoint Traffic | | 283 | Engineering Label Switched | | 284 | Paths | | 285 | Network Configuration | [RFC8341] | 286 | Access Control Model | | 287 | Conveying Path Setup Type | [RFC8408] | 288 | in PCE Communication | | 289 | Protocol (PCEP) Messages | | 290 | Traffic Engineering Common | [I-D.ietf-teas-yang-te-types] | 291 | YANG Types | | 292 | A YANG Data Model for | [I-D.ietf-teas-yang-te] | 293 | Traffic Engineering | | 294 | Tunnels and Interfaces | | 295 | YANG Groupings for TLS | [I-D.ietf-netconf-tls-client-server] | 296 | Clients and TLS Servers | | 297 | PCEP Extensions for | [I-D.ietf-pce-segment-routing] | 298 | Segment Routing | | 299 | PCEP Extensions for | [I-D.ietf-pce-association-group] | 300 | Establishing Relationships | | 301 | Between Sets of LSPs | | 302 | YANG Data Model for OSPF | [I-D.ietf-ospf-yang] | 303 | Protocol | | 304 | YANG Data Model for IS-IS | [I-D.ietf-isis-yang-isis-cfg] | 305 | Protocol | | 306 | PCEP extensions for GMPLS | [I-D.ietf-pce-gmpls-pcep-extensions] | 307 +----------------------------+--------------------------------------+ 309 Table 2: Refrences in the YANG modules 311 4. Objectives 313 This section describes some of the design objectives for the model: 315 o In case of existing implementations, it needs to map the data 316 model defined in this document to their proprietary native data 317 model. To facilitate such mappings, the data model should be 318 simple. 320 o The data model should be suitable for new implementations to use 321 as is. 323 o Mapping to the PCEP MIB Module should be clear. 325 o The data model should allow for static configurations of peers. 327 o The data model should include read-only counters in order to 328 gather statistics for sent and received PCEP messages, received 329 messages with errors, and messages that could not be sent due to 330 errors. This could be in a separate model which augments the base 331 data model. 333 o It should be fairly straightforward to augment the base data model 334 for advanced PCE features. 336 5. The Design of PCEP Data Model 338 5.1. The Overview of PCEP Data Model 340 The PCEP YANG module defined in this document has all the common 341 building blocks for the PCEP protocol. 343 module: ietf-pcep 344 +--rw pcep! 345 +--rw entity 346 +--rw addr inet:ip-address 347 +--rw enabled? boolean 348 +--rw role pcep-role 349 +--rw description? string 350 +--rw speaker-entity-id? string 351 | {stateful-sync-opt}? 352 +--rw admin-status? pcep-admin-status 353 +--ro index? uint32 354 +--ro oper-status? pcep-oper-status 355 +--rw domain 356 | +--rw domain* [domain-type domain] 357 | ... 358 +--rw capability 360 | ... 361 +--rw pce-info 362 | +--rw scope 363 | | ... 364 | +--rw neigh-domains 365 | | ... 366 | +--rw path-key {path-key}? 367 | ... 369 +--ro lsp-db {stateful}? 370 | +--ro db-ver? uint64 371 | | {stateful-sync-opt}? 372 | +--ro association-list* 373 | | [id source global-source extended-id] 374 | | ... 375 | +--ro lsp* [plsp-id pcc-id lsp-id] 376 | ... 377 +--ro path-keys {path-key}? 378 | +--ro path-keys* [path-key] 379 | ... 380 +--rw peers 381 +--rw peer* [addr] 383 +--ro sessions 384 +--ro session* [initiator] 385 ... 387 rpcs: 388 +---x trigger-resync {stateful,stateful-sync-opt}? 389 +---w input 390 +---w pcc? -> /pcep/entity/peers/peer/addr 392 notifications: 393 +---n pcep-session-up 394 | ... 395 +---n pcep-session-down 396 | ... 397 +---n pcep-session-local-overload 398 | ... 399 +---n pcep-session-local-overload-clear 400 | ... 401 +---n pcep-session-peer-overload 402 | ... 403 +---n pcep-session-peer-overload-clear 404 ... 406 5.2. The Entity 408 The PCEP yang module may contain status information for the local 409 PCEP entity. 411 The entity has an IP address (using ietf-inet-types [RFC6991]) and a 412 "role" leaf (the local entity PCEP role) as mandatory. 414 Note that, the PCEP MIB module [RFC7420] uses an entity list and a 415 system generated entity index as a primary index to the read only 416 entity table. If the device implements the PCEP MIB, the "index" 417 leaf MUST contain the value of the corresponding pcePcepEntityIndex 418 and only one entity is assumed. 420 The various information related to this entity such as its domain, 421 capcabilities etc. Further incase when the entity is PCE it could 422 also have path-key and the LSP-DB information. 424 module: ietf-pcep 425 +--rw pcep! 426 +--rw entity 427 +--rw addr inet:ip-address 428 +--rw enabled? boolean 429 +--rw role pcep-role 430 +--rw description? string 431 +--rw speaker-entity-id? string {sync-opt}? 432 +--rw admin-status? boolean 433 +--ro index? uint32 434 +--ro oper-status? pcep-oper-status 435 +--rw domain 436 | +--rw domain* [domain-type domain] 437 | +--rw domain-type domain-type 438 | +--rw domain domain 439 +--rw capability 440 | +--rw capability? bits 441 | +--rw pce-initiated? boolean {pce-initiated}? 442 | +--rw include-db-ver? boolean 443 | | {stateful,sync-opt}? 444 | +--rw trigger-resync? boolean 445 | | {stateful,sync-opt}? 446 | +--rw trigger-initial-sync? boolean 447 | | {stateful,sync-opt}? 448 | +--rw incremental-sync? boolean 449 | | {stateful,sync-opt}? 450 | +--rw sr {sr}? 451 | +--rw enabled? boolean 452 | +--rw msd-limit? boolean 453 | +--rw nai? boolean 454 +--rw msd? uint8 {sr}? 455 +--rw pce-info 456 | +--rw scope 457 | | +--rw path-scope? bits 458 | | +--rw intra-area-pref? uint8 459 | | +--rw inter-area-pref? uint8 460 | | +--rw inter-as-pref? uint8 461 | | +--rw inter-layer-pref? uint8 462 | +--rw neigh-domains 463 | | +--rw domain* [domain-type domain] 464 | | +--rw domain-type domain-type 465 | | +--rw domain domain 466 | +--rw path-key {path-key}? 467 | +--rw enabled? boolean 468 | +--rw discard-timer? uint32 469 | +--rw reuse-time? uint32 470 | +--rw pce-id? inet:ip-address 471 +--rw connect-timer? uint16 472 +--rw connect-max-retry? uint32 473 +--rw init-backoff-timer? uint16 474 +--rw max-backoff-timer? uint32 475 +--rw open-wait-timer? uint16 476 +--rw keep-wait-timer? uint16 477 +--rw keep-alive-timer? uint8 478 +--rw dead-timer? uint8 479 +--rw allow-negotiation? boolean 480 +--rw max-keep-alive-timer? uint8 481 +--rw max-dead-timer? uint8 482 +--rw min-keep-alive-timer? uint8 483 +--rw min-dead-timer? uint8 484 +--rw sync-timer? uint16 {svec}? 485 +--rw request-timer? uint16 486 +--rw max-sessions? uint32 487 +--rw max-unknown-reqs? uint32 488 +--rw max-unknown-msgs? uint32 489 +--rw pcep-notification-max-rate uint32 490 +--rw stateful-parameter {stateful}? 491 | +--rw state-timeout? uint32 492 | +--rw redelegation-timeout? uint32 493 | +--rw rpt-non-pcep-lsp? boolean 494 +--rw of-list {objective-function}? 495 | +--rw objective-function* [of] 496 | +--rw of identityref 497 +--ro lsp-db {stateful}? 498 | +--ro db-ver? uint64 {sync-opt}? 499 | +--ro association-list* 500 | | [type id source global-source extended-id] 501 | | {association}? 502 | | +--ro type identityref 503 | | +--ro id uint16 504 | | +--ro source inet:ip-address 505 | | +--ro global-source uint32 506 | | +--ro extended-id string 507 | | +--ro lsp* [plsp-id pcc-id lsp-id] 508 | | +--ro plsp-id -> /pcep/entity/lsp-db/lsp/plsp-id 509 | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id 510 | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id 511 | +--ro lsp* [plsp-id pcc-id lsp-id] 512 | +--ro plsp-id uint32 513 | +--ro pcc-id inet:ip-address 514 | +--ro source? 515 | | -> /te:te/lsps-state/lsp/source 516 | +--ro destination? 517 | | -> /te:te/lsps-state/lsp/destination 518 | +--ro tunnel-id? 519 | | -> /te:te/lsps-state/lsp/tunnel-id 520 | +--ro lsp-id 521 | | -> /te:te/lsps-state/lsp/lsp-id 522 | +--ro extended-tunnel-id? 523 | | -> /te:te/lsps-state/lsp/extended-tunnel-id 524 | +--ro admin-state? boolean 525 | +--ro operational-state? operational-state 526 | +--ro delegated 527 | | +--ro enabled? boolean 528 | | +--ro peer? -> /pcep/entity/peers/peer/addr 529 | | +--ro srp-id? uint32 530 | +--ro initiation {pce-initiated}? 531 | | +--ro enabled? boolean 532 | | +--ro peer? -> /pcep/entity/peers/peer/addr 533 | +--ro symbolic-path-name? string 534 | +--ro last-error? identityref 535 | +--ro pst? identityref 536 | +--ro association-list* 537 | [type id source global-source extended-id] 538 | {association}? 539 | +--ro type 540 | | -> /pcep/entity/lsp-db/association-list/type 541 | +--ro id 542 | | -> /pcep/entity/lsp-db/association-list/id 543 | +--ro source leafref 544 | +--ro global-source leafref 545 | +--ro extended-id leafref 546 +--ro path-keys {path-key}? 547 | +--ro path-keys* [path-key] 548 | +--ro path-key uint16 549 | +--ro cps 550 | | +--ro explicit-route-objects* [index] 551 | | +--ro index uint32 552 | | +--ro (type)? 553 | | +--:(numbered-node-hop) 554 | | | +--ro numbered-node-hop 555 | | | +--ro node-id te-node-id 556 | | | +--ro hop-type? te-hop-type 557 | | +--:(numbered-link-hop) 558 | | | +--ro numbered-link-hop 559 | | | +--ro link-tp-id te-tp-id 560 | | | +--ro hop-type? te-hop-type 561 | | | +--ro direction? te-link-direction 562 | | +--:(unnumbered-link-hop) 563 | | | +--ro unnumbered-link-hop 564 | | | +--ro link-tp-id te-tp-id 565 | | | +--ro node-id te-node-id 566 | | | +--ro hop-type? te-hop-type 567 | | | +--ro direction? te-link-direction 568 | | +--:(as-number) 569 | | | +--ro as-number-hop 570 | | | +--ro as-number inet:as-number 571 | | | +--ro hop-type? te-hop-type 572 | | +--:(label) 573 | | +--ro label-hop 574 | | +--ro te-label 575 | | +--ro (technology)? 576 | | | +--:(generic) 577 | | | ... 578 | | +--ro direction? 579 | | te-label-direction 580 | +--ro pcc-original? -> /pcep/entity/peers/peer/addr 581 | +--ro req-id? uint32 582 | +--ro retrieved? boolean 583 | +--ro pcc-retrieved? -> /pcep/entity/peers/peer/addr 584 | +--ro creation-time? yang:timestamp 585 | +--ro discard-time? uint32 586 | +--ro reuse-time? uint32 587 +--rw peers 588 +--rw peer* [addr] 589 ... 591 5.3. The Peer Lists 593 The peer list contains peer(s) that the local PCEP entity knows 594 about. A PCEP speaker is identified by its IP address. If there is 595 a PCEP speaker in the network that uses multiple IP addresses then it 596 looks like multiple distinct peers to the other PCEP speakers in the 597 network. 599 Since PCEP sessions can be ephemeral, the peer list tracks a peer 600 even when no PCEP session currently exists to that peer. The 601 statistics contained are an aggregate of the statistics for all 602 successive sessions to that peer. 604 To limit the quantity of information that is stored, an 605 implementation MAY choose to discard this information if and only if 606 no PCEP session exists to the corresponding peer. 608 The data model for PCEP peer presented in this document uses a flat 609 list of peers. Each peer in the list is identified by its IP address 610 (addr-type, addr). 612 There is a list for static peer configuration and operational state 613 of all peers (i.e.static as well as discovered)("/pcep/entity/ 614 peers"). The list is used to enable remote PCE configuration at PCC 615 (or PCE) and has the operational state of these peers as well as the 616 remote PCE peer which were discovered and PCC peers that have 617 initiated session. 619 module: ietf-pcep 620 +--rw pcep! 621 +--rw entity 622 ... 623 +--rw peers 624 +--rw peer* [addr] 625 +--rw addr inet:ip-address 626 +--rw role pcep-role 627 +--rw description? string 628 +--rw domain 629 | +--rw domain* [domain-type domain] 630 | +--rw domain-type domain-type 631 | +--rw domain domain 632 +--rw capability 633 | +--rw capability? bits 634 | +--rw pce-initiated? boolean 635 | | {pce-initiated}? 636 | +--rw include-db-ver? boolean 637 | | {stateful,sync-opt}? 638 | +--rw trigger-resync? boolean 639 | | {stateful,sync-opt}? 640 | +--rw trigger-initial-sync? boolean 641 | | {stateful,sync-opt}? 642 | +--rw incremental-sync? boolean 643 | | {stateful,sync-opt}? 644 | +--rw sr {sr}? 645 | +--rw enabled? boolean 646 | +--rw msd-limit? boolean 647 | +--rw nai? boolean 648 +--rw msd? uint8 {sr}? 649 +--rw pce-info 650 | +--rw scope 651 | | +--rw path-scope? bits 652 | | +--rw intra-area-pref? uint8 653 | | +--rw inter-area-pref? uint8 654 | | +--rw inter-as-pref? uint8 655 | | +--rw inter-layer-pref? uint8 656 | +--rw neigh-domains 657 | +--rw domain* [domain-type domain] 658 | +--rw domain-type domain-type 659 | +--rw domain domain 660 +--rw delegation-pref? uint8 {stateful}? 661 +--rw auth 662 | +--rw (auth-type-selection)? 663 | +--:(auth-key-chain) 664 | | +--rw key-chain? 665 | | key-chain:key-chain-ref 666 | +--:(auth-key) 667 | | +--rw crypto-algorithm identityref 668 | | +--rw (key-string-style)? 669 | | +--:(keystring) 670 | | | +--rw keystring? string 671 | | +--:(hexadecimal) 672 | | {key-chain:hex-key-string}? 673 | | +--rw hexadecimal-string? 674 | | yang:hex-string 675 | +--:(auth-tls) {tls}? 676 | +--rw (role)? 677 | +--:(server) 678 | | +--rw tls-server 679 | | ... 680 | +--:(client) 681 | +--rw tls-client 682 | ... 683 +--ro discontinuity-time? yang:timestamp 684 +--ro initiate-session? boolean 685 +--ro session-exists? boolean 686 +--ro session-up-time? yang:timestamp 687 +--ro session-fail-time? yang:timestamp 688 +--ro session-fail-up-time? yang:timestamp 689 +--ro sessions 690 +--ro session* [initiator] 691 ... 693 5.4. The Session Lists 695 The session list contains PCEP session that the PCEP entity (PCE or 696 PCC) is currently participating in. The statistics in session are 697 semantically different from those in peer since the former applies to 698 the current session only, whereas the latter is the aggregate for all 699 sessions that have existed to that peer. 701 Although [RFC5440] forbids more than one active PCEP session between 702 a given pair of PCEP entities at any given time, there is a window 703 during session establishment where two sessions may exist for a given 704 pair, one representing a session initiated by the local PCEP entity 705 and the other representing a session initiated by the peer. If 706 either of these sessions reaches active state first, then the other 707 is discarded. 709 The data model for PCEP session presented in this document uses a 710 flat list of sessions. Each session in the list is identified by its 711 initiator. This index allows two sessions to exist transiently for a 712 given peer, as discussed above. 714 module: ietf-pcep 715 +--rw pcep! 716 +--rw entity 717 ... 718 +--rw peers 719 +--rw peer* [addr] 720 ... 721 +--ro sessions 722 +--ro session* [initiator] 723 +--ro initiator pcep-initiator 724 +--ro role? 725 | -> /pcep/entity/role 726 +--ro state-last-change? yang:timestamp 727 +--ro state? pcep-sess-state 728 +--ro session-creation? yang:timestamp 729 +--ro connect-retry? yang:counter32 730 +--ro local-id? uint8 731 +--ro remote-id? uint8 732 +--ro keepalive-timer? uint8 733 +--ro peer-keepalive-timer? uint8 734 +--ro dead-timer? uint8 735 +--ro peer-dead-timer? uint8 736 +--ro ka-hold-time-rem? uint8 737 +--ro overloaded? boolean 738 +--ro overload-time? uint32 739 +--ro peer-overloaded? boolean 740 +--ro peer-overload-time? uint32 741 +--ro lspdb-sync? sync-state 742 | {stateful}? 743 +--ro recv-db-ver? uint64 744 | {stateful,sync-opt}? 745 +--ro of-list {objective-function}? 746 | +--ro objective-function* [of] 747 | +--ro of identityref 748 +--ro pst-list 749 | +--ro path-setup-type* [pst] 750 | +--ro pst identityref 751 +--ro assoc-type-list {association}? 752 | +--ro assoc-type* [at] 753 | +--ro at identityref 754 +--ro speaker-entity-id? string {sync-opt}? 755 +--ro discontinuity-time? yang:timestamp 757 5.5. Notifications 759 This YANG model defines a list of notifications to inform client of 760 important events detected during the protocol operation. The 761 notifications defined cover the PCEP MIB notifications. 763 notifications: 764 +---n pcep-session-up 765 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 766 | +--ro session-initiator? 767 | | -> /pcep/entity/peers/peer/sessions/session/initiator 768 | +--ro state-last-change? yang:timestamp 769 | +--ro state? pcep-sess-state 770 +---n pcep-session-down 771 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 772 | +--ro session-initiator? pcep-initiator 773 | +--ro state-last-change? yang:timestamp 774 | +--ro state? pcep-sess-state 775 +---n pcep-session-local-overload 776 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 777 | +--ro session-initiator? 778 | | -> /pcep/entity/peers/peer/sessions/session/initiator 779 | +--ro overloaded? boolean 780 | +--ro overload-time? uint32 781 +---n pcep-session-local-overload-clear 782 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 783 | +--ro overloaded? boolean 784 +---n pcep-session-peer-overload 785 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 786 | +--ro session-initiator? 787 | | -> /pcep/entity/peers/peer/sessions/session/initiator 788 | +--ro peer-overloaded? boolean 789 | +--ro peer-overload-time? uint32 790 +---n pcep-session-peer-overload-clear 791 +--ro peer-addr? -> /pcep/entity/peers/peer/addr 792 +--ro peer-overloaded? boolean 794 5.6. RPC 796 This YANG model defines a RPC to trigger state resynchronization to a 797 particular PCEP peer. 799 rpcs: 800 +---x trigger-resync {stateful,sync-opt}? 801 +---w input 802 +---w pcc? -> /pcep/entity/peers/peer/addr 804 5.7. The Full PCEP Data Model 806 The module, "ietf-pcep", defines the basic components of a PCE 807 speaker. The tree depth in the tree is set to 10. 809 module: ietf-pcep 810 +--rw pcep! 811 +--rw entity 812 +--rw addr inet:ip-address 813 +--rw enabled? boolean 814 +--rw role pcep-role 815 +--rw description? string 816 +--rw speaker-entity-id? string {sync-opt}? 817 +--rw admin-status? boolean 818 +--ro index? uint32 819 +--ro oper-status? pcep-oper-status 820 +--rw domain 821 | +--rw domain* [domain-type domain] 822 | +--rw domain-type domain-type 823 | +--rw domain domain 824 +--rw capability 825 | +--rw capability? bits 826 | +--rw pce-initiated? boolean {pce-initiated}? 827 | +--rw include-db-ver? boolean 828 | | {stateful,sync-opt}? 829 | +--rw trigger-resync? boolean 830 | | {stateful,sync-opt}? 831 | +--rw trigger-initial-sync? boolean 832 | | {stateful,sync-opt}? 833 | +--rw incremental-sync? boolean 834 | | {stateful,sync-opt}? 835 | +--rw sr {sr}? 836 | +--rw enabled? boolean 837 | +--rw msd-limit? boolean 838 | +--rw nai? boolean 839 +--rw msd? uint8 {sr}? 840 +--rw pce-info 841 | +--rw scope 842 | | +--rw path-scope? bits 843 | | +--rw intra-area-pref? uint8 844 | | +--rw inter-area-pref? uint8 845 | | +--rw inter-as-pref? uint8 846 | | +--rw inter-layer-pref? uint8 847 | +--rw neigh-domains 848 | | +--rw domain* [domain-type domain] 849 | | +--rw domain-type domain-type 850 | | +--rw domain domain 851 | +--rw path-key {path-key}? 852 | +--rw enabled? boolean 853 | +--rw discard-timer? uint32 854 | +--rw reuse-time? uint32 855 | +--rw pce-id? inet:ip-address 856 +--rw connect-timer? uint16 857 +--rw connect-max-retry? uint32 858 +--rw init-backoff-timer? uint16 859 +--rw max-backoff-timer? uint32 860 +--rw open-wait-timer? uint16 861 +--rw keep-wait-timer? uint16 862 +--rw keep-alive-timer? uint8 863 +--rw dead-timer? uint8 864 +--rw allow-negotiation? boolean 865 +--rw max-keep-alive-timer? uint8 866 +--rw max-dead-timer? uint8 867 +--rw min-keep-alive-timer? uint8 868 +--rw min-dead-timer? uint8 869 +--rw sync-timer? uint16 {svec}? 870 +--rw request-timer? uint16 871 +--rw max-sessions? uint32 872 +--rw max-unknown-reqs? uint32 873 +--rw max-unknown-msgs? uint32 874 +--rw pcep-notification-max-rate uint32 875 +--rw stateful-parameter {stateful}? 876 | +--rw state-timeout? uint32 877 | +--rw redelegation-timeout? uint32 878 | +--rw rpt-non-pcep-lsp? boolean 879 +--rw of-list {objective-function}? 880 | +--rw objective-function* [of] 881 | +--rw of identityref 882 +--ro lsp-db {stateful}? 883 | +--ro db-ver? uint64 {sync-opt}? 884 | +--ro association-list* 885 | | [type id source global-source extended-id] 886 | | {association}? 887 | | +--ro type identityref 888 | | +--ro id uint16 889 | | +--ro source inet:ip-address 890 | | +--ro global-source uint32 891 | | +--ro extended-id string 892 | | +--ro lsp* [plsp-id pcc-id lsp-id] 893 | | +--ro plsp-id 894 | | | -> /pcep/entity/lsp-db/lsp/plsp-id 895 | | +--ro pcc-id -> /pcep/entity/lsp-db/lsp/pcc-id 896 | | +--ro lsp-id -> /pcep/entity/lsp-db/lsp/lsp-id 897 | +--ro lsp* [plsp-id pcc-id lsp-id] 898 | +--ro plsp-id uint32 899 | +--ro pcc-id inet:ip-address 900 | +--ro source? 901 | | -> /te:te/lsps-state/lsp/source 902 | +--ro destination? 903 | | -> /te:te/lsps-state/lsp/destination 904 | +--ro tunnel-id? 905 | | -> /te:te/lsps-state/lsp/tunnel-id 906 | +--ro lsp-id 907 | | -> /te:te/lsps-state/lsp/lsp-id 908 | +--ro extended-tunnel-id? 909 | | -> /te:te/lsps-state/lsp/extended-tunnel-id 910 | +--ro admin-state? boolean 911 | +--ro operational-state? operational-state 912 | +--ro delegated 913 | | +--ro enabled? boolean 914 | | +--ro peer? -> /pcep/entity/peers/peer/addr 915 | | +--ro srp-id? uint32 916 | +--ro initiation {pce-initiated}? 917 | | +--ro enabled? boolean 918 | | +--ro peer? -> /pcep/entity/peers/peer/addr 919 | +--ro symbolic-path-name? string 920 | +--ro last-error? identityref 921 | +--ro pst? identityref 922 | +--ro association-list* 923 | [type id source global-source extended-id] 924 | {association}? 925 | +--ro type leafref 926 | +--ro id 927 | | -> /pcep/entity/lsp-db/association-list/id 928 | +--ro source leafref 929 | +--ro global-source leafref 930 | +--ro extended-id leafref 931 +--ro path-keys {path-key}? 932 | +--ro path-keys* [path-key] 933 | +--ro path-key uint16 934 | +--ro cps 935 | | +--ro explicit-route-objects* [index] 936 | | +--ro index uint32 937 | | +--ro (type)? 938 | | +--:(numbered-node-hop) 939 | | | +--ro numbered-node-hop 940 | | | +--ro node-id te-node-id 941 | | | +--ro hop-type? te-hop-type 942 | | +--:(numbered-link-hop) 943 | | | +--ro numbered-link-hop 944 | | | +--ro link-tp-id te-tp-id 945 | | | +--ro hop-type? te-hop-type 946 | | | +--ro direction? te-link-direction 947 | | +--:(unnumbered-link-hop) 948 | | | +--ro unnumbered-link-hop 949 | | | +--ro link-tp-id te-tp-id 950 | | | +--ro node-id te-node-id 951 | | | +--ro hop-type? te-hop-type 952 | | | +--ro direction? te-link-direction 953 | | +--:(as-number) 954 | | | +--ro as-number-hop 955 | | | +--ro as-number inet:as-number 956 | | | +--ro hop-type? te-hop-type 957 | | +--:(label) 958 | | +--ro label-hop 959 | | +--ro te-label 960 | | ... 961 | +--ro pcc-original? 962 | | -> /pcep/entity/peers/peer/addr 963 | +--ro req-id? uint32 964 | +--ro retrieved? boolean 965 | +--ro pcc-retrieved? 966 | | -> /pcep/entity/peers/peer/addr 967 | +--ro creation-time? yang:timestamp 968 | +--ro discard-time? uint32 969 | +--ro reuse-time? uint32 970 +--rw peers 971 +--rw peer* [addr] 972 +--rw addr inet:ip-address 973 +--rw role pcep-role 974 +--rw description? string 975 +--rw domain 976 | +--rw domain* [domain-type domain] 977 | +--rw domain-type domain-type 978 | +--rw domain domain 979 +--rw capability 980 | +--rw capability? bits 981 | +--rw pce-initiated? boolean 982 | | {pce-initiated}? 983 | +--rw include-db-ver? boolean 984 | | {stateful,sync-opt}? 985 | +--rw trigger-resync? boolean 986 | | {stateful,sync-opt}? 987 | +--rw trigger-initial-sync? boolean 988 | | {stateful,sync-opt}? 989 | +--rw incremental-sync? boolean 990 | | {stateful,sync-opt}? 991 | +--rw sr {sr}? 992 | +--rw enabled? boolean 993 | +--rw msd-limit? boolean 994 | +--rw nai? boolean 995 +--rw msd? uint8 {sr}? 996 +--rw pce-info 997 | +--rw scope 998 | | +--rw path-scope? bits 999 | | +--rw intra-area-pref? uint8 1000 | | +--rw inter-area-pref? uint8 1001 | | +--rw inter-as-pref? uint8 1002 | | +--rw inter-layer-pref? uint8 1003 | +--rw neigh-domains 1004 | +--rw domain* [domain-type domain] 1005 | +--rw domain-type domain-type 1006 | +--rw domain domain 1007 +--rw delegation-pref? uint8 {stateful}? 1008 +--rw auth 1009 | +--rw (auth-type-selection)? 1010 | +--:(auth-key-chain) 1011 | | +--rw key-chain? 1012 | | key-chain:key-chain-ref 1013 | +--:(auth-key) 1014 | | +--rw crypto-algorithm 1015 | | | identityref 1016 | | +--rw (key-string-style)? 1017 | | +--:(keystring) 1018 | | | +--rw keystring? string 1019 | | +--:(hexadecimal) 1020 | | {key-chain:hex-key-string}? 1021 | | +--rw hexadecimal-string? 1022 | | yang:hex-string 1023 | +--:(auth-tls) {tls}? 1024 | +--rw (role)? 1025 | +--:(server) 1026 | | +--rw tls-server 1027 | | ... 1028 | +--:(client) 1029 | +--rw tls-client 1030 | ... 1031 +--ro discontinuity-time? yang:timestamp 1032 +--ro initiate-session? boolean 1033 +--ro session-exists? boolean 1034 +--ro session-up-time? yang:timestamp 1035 +--ro session-fail-time? yang:timestamp 1036 +--ro session-fail-up-time? yang:timestamp 1037 +--ro sessions 1038 +--ro session* [initiator] 1039 +--ro initiator pcep-initiator 1040 +--ro role? 1041 | -> /pcep/entity/role 1042 +--ro state-last-change? yang:timestamp 1043 +--ro state? pcep-sess-state 1044 +--ro session-creation? yang:timestamp 1045 +--ro connect-retry? yang:counter32 1046 +--ro local-id? uint8 1047 +--ro remote-id? uint8 1048 +--ro keepalive-timer? uint8 1049 +--ro peer-keepalive-timer? uint8 1050 +--ro dead-timer? uint8 1051 +--ro peer-dead-timer? uint8 1052 +--ro ka-hold-time-rem? uint8 1053 +--ro overloaded? boolean 1054 +--ro overload-time? uint32 1055 +--ro peer-overloaded? boolean 1056 +--ro peer-overload-time? uint32 1057 +--ro lspdb-sync? sync-state 1058 | {stateful}? 1059 +--ro recv-db-ver? uint64 1060 | {stateful,sync-opt}? 1061 +--ro of-list {objective-function}? 1062 | +--ro objective-function* [of] 1063 | +--ro of identityref 1064 +--ro pst-list 1065 | +--ro path-setup-type* [pst] 1066 | +--ro pst identityref 1067 +--ro assoc-type-list {association}? 1068 | +--ro assoc-type* [at] 1069 | +--ro at identityref 1070 +--ro speaker-entity-id? string 1071 | {sync-opt}? 1072 +--ro discontinuity-time? yang:timestamp 1074 rpcs: 1075 +---x trigger-resync {stateful,sync-opt}? 1076 +---w input 1077 +---w pcc? -> /pcep/entity/peers/peer/addr 1079 notifications: 1080 +---n pcep-session-up 1081 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 1082 | +--ro session-initiator? 1083 | | -> /pcep/entity/peers/peer/sessions/session/initiator 1084 | +--ro state-last-change? yang:timestamp 1085 | +--ro state? pcep-sess-state 1086 +---n pcep-session-down 1087 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 1088 | +--ro session-initiator? pcep-initiator 1089 | +--ro state-last-change? yang:timestamp 1090 | +--ro state? pcep-sess-state 1091 +---n pcep-session-local-overload 1092 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 1093 | +--ro session-initiator? 1094 | | -> /pcep/entity/peers/peer/sessions/session/initiator 1095 | +--ro overloaded? boolean 1096 | +--ro overload-time? uint32 1097 +---n pcep-session-local-overload-clear 1098 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 1099 | +--ro overloaded? boolean 1100 +---n pcep-session-peer-overload 1101 | +--ro peer-addr? -> /pcep/entity/peers/peer/addr 1102 | +--ro session-initiator? 1103 | | -> /pcep/entity/peers/peer/sessions/session/initiator 1104 | +--ro peer-overloaded? boolean 1105 | +--ro peer-overload-time? uint32 1106 +---n pcep-session-peer-overload-clear 1107 +--ro peer-addr? -> /pcep/entity/peers/peer/addr 1108 +--ro peer-overloaded? boolean 1110 6. The Design of PCEP Statistics Data Model 1112 The module, "ietf-pcep-stats", augments the ietf-pcep module to 1113 include statistics at the PCEP peer and session level. 1115 module: ietf-pcep-stats 1116 augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer: 1117 +--ro num-sess-setup-ok? yang:counter32 1118 +--ro num-sess-setup-fail? yang:counter32 1119 +--ro pcep-stats 1120 +--ro avg-rsp-time? uint32 1121 +--ro lwm-rsp-time? uint32 1122 +--ro hwm-rsp-time? uint32 1123 +--ro num-pcreq-sent? yang:counter32 1124 +--ro num-pcreq-rcvd? yang:counter32 1125 +--ro num-pcrep-sent? yang:counter32 1126 +--ro num-pcrep-rcvd? yang:counter32 1127 +--ro num-pcerr-sent? yang:counter32 1128 +--ro num-pcerr-rcvd? yang:counter32 1129 +--ro num-pcntf-sent? yang:counter32 1130 +--ro num-pcntf-rcvd? yang:counter32 1131 +--ro num-keepalive-sent? yang:counter32 1132 +--ro num-keepalive-rcvd? yang:counter32 1133 +--ro num-unknown-rcvd? yang:counter32 1134 +--ro num-corrupt-rcvd? yang:counter32 1135 +--ro num-req-sent? yang:counter32 1136 +--ro num-req-sent-pend-rep? yang:counter32 1137 +--ro num-req-sent-ero-rcvd? yang:counter32 1138 +--ro num-req-sent-nopath-rcvd? yang:counter32 1139 +--ro num-req-sent-cancel-rcvd? yang:counter32 1140 +--ro num-req-sent-error-rcvd? yang:counter32 1141 +--ro num-req-sent-timeout? yang:counter32 1142 +--ro num-req-sent-cancel-sent? yang:counter32 1143 +--ro num-req-rcvd? yang:counter32 1144 +--ro num-req-rcvd-pend-rep? yang:counter32 1145 +--ro num-req-rcvd-ero-sent? yang:counter32 1146 +--ro num-req-rcvd-nopath-sent? yang:counter32 1147 +--ro num-req-rcvd-cancel-sent? yang:counter32 1148 +--ro num-req-rcvd-error-sent? yang:counter32 1149 +--ro num-req-rcvd-cancel-rcvd? yang:counter32 1150 +--ro num-rep-rcvd-unknown? yang:counter32 1151 +--ro num-req-rcvd-unknown? yang:counter32 1152 +--ro svec {pcep:svec}? 1153 | +--ro num-svec-sent? yang:counter32 1154 | +--ro num-svec-req-sent? yang:counter32 1155 | +--ro num-svec-rcvd? yang:counter32 1156 | +--ro num-svec-req-rcvd? yang:counter32 1157 +--ro stateful {pcep:stateful}? 1158 | +--ro num-pcrpt-sent? yang:counter32 1159 | +--ro num-pcrpt-rcvd? yang:counter32 1160 | +--ro num-pcupd-sent? yang:counter32 1161 | +--ro num-pcupd-rcvd? yang:counter32 1162 | +--ro num-rpt-sent? yang:counter32 1163 | +--ro num-rpt-rcvd? yang:counter32 1164 | +--ro num-rpt-rcvd-error-sent? yang:counter32 1165 | +--ro num-upd-sent? yang:counter32 1166 | +--ro num-upd-rcvd? yang:counter32 1167 | +--ro num-upd-rcvd-unknown? yang:counter32 1168 | +--ro num-upd-rcvd-undelegated? yang:counter32 1169 | +--ro num-upd-rcvd-error-sent? yang:counter32 1170 | +--ro initiation {pcep:pce-initiated}? 1171 | +--ro num-pcinitiate-sent? yang:counter32 1172 | +--ro num-pcinitiate-rcvd? yang:counter32 1173 | +--ro num-initiate-sent? yang:counter32 1174 | +--ro num-initiate-rcvd? yang:counter32 1175 | +--ro num-initiate-rcvd-error-sent? yang:counter32 1176 +--ro path-key {pcep:path-key}? 1177 | +--ro num-unknown-path-key? yang:counter32 1178 | +--ro num-exp-path-key? yang:counter32 1179 | +--ro num-dup-path-key? yang:counter32 1180 | +--ro num-path-key-no-attempt? yang:counter32 1181 +--ro num-req-sent-closed? yang:counter32 1182 +--ro num-req-rcvd-closed? yang:counter32 1183 augment /pcep:pcep/pcep:entity/pcep:peers/pcep:peer/pcep:sessions 1184 /pcep:session: 1186 +--ro pcep-stats 1187 +--ro avg-rsp-time? uint32 1188 +--ro lwm-rsp-time? uint32 1189 +--ro hwm-rsp-time? uint32 1190 +--ro num-pcreq-sent? yang:counter32 1191 +--ro num-pcreq-rcvd? yang:counter32 1192 +--ro num-pcrep-sent? yang:counter32 1193 +--ro num-pcrep-rcvd? yang:counter32 1194 +--ro num-pcerr-sent? yang:counter32 1195 +--ro num-pcerr-rcvd? yang:counter32 1196 +--ro num-pcntf-sent? yang:counter32 1197 +--ro num-pcntf-rcvd? yang:counter32 1198 +--ro num-keepalive-sent? yang:counter32 1199 +--ro num-keepalive-rcvd? yang:counter32 1200 +--ro num-unknown-rcvd? yang:counter32 1201 +--ro num-corrupt-rcvd? yang:counter32 1202 +--ro num-req-sent? yang:counter32 1203 +--ro num-req-sent-pend-rep? yang:counter32 1204 +--ro num-req-sent-ero-rcvd? yang:counter32 1205 +--ro num-req-sent-nopath-rcvd? yang:counter32 1206 +--ro num-req-sent-cancel-rcvd? yang:counter32 1207 +--ro num-req-sent-error-rcvd? yang:counter32 1208 +--ro num-req-sent-timeout? yang:counter32 1209 +--ro num-req-sent-cancel-sent? yang:counter32 1210 +--ro num-req-rcvd? yang:counter32 1211 +--ro num-req-rcvd-pend-rep? yang:counter32 1212 +--ro num-req-rcvd-ero-sent? yang:counter32 1213 +--ro num-req-rcvd-nopath-sent? yang:counter32 1214 +--ro num-req-rcvd-cancel-sent? yang:counter32 1215 +--ro num-req-rcvd-error-sent? yang:counter32 1216 +--ro num-req-rcvd-cancel-rcvd? yang:counter32 1217 +--ro num-rep-rcvd-unknown? yang:counter32 1218 +--ro num-req-rcvd-unknown? yang:counter32 1219 +--ro svec {pcep:svec}? 1220 | +--ro num-svec-sent? yang:counter32 1221 | +--ro num-svec-req-sent? yang:counter32 1222 | +--ro num-svec-rcvd? yang:counter32 1223 | +--ro num-svec-req-rcvd? yang:counter32 1224 +--ro stateful {pcep:stateful}? 1225 | +--ro num-pcrpt-sent? yang:counter32 1226 | +--ro num-pcrpt-rcvd? yang:counter32 1227 | +--ro num-pcupd-sent? yang:counter32 1228 | +--ro num-pcupd-rcvd? yang:counter32 1229 | +--ro num-rpt-sent? yang:counter32 1230 | +--ro num-rpt-rcvd? yang:counter32 1231 | +--ro num-rpt-rcvd-error-sent? yang:counter32 1232 | +--ro num-upd-sent? yang:counter32 1233 | +--ro num-upd-rcvd? yang:counter32 1234 | +--ro num-upd-rcvd-unknown? yang:counter32 1235 | +--ro num-upd-rcvd-undelegated? yang:counter32 1236 | +--ro num-upd-rcvd-error-sent? yang:counter32 1237 | +--ro initiation {pcep:pce-initiated}? 1238 | +--ro num-pcinitiate-sent? yang:counter32 1239 | +--ro num-pcinitiate-rcvd? yang:counter32 1240 | +--ro num-initiate-sent? yang:counter32 1241 | +--ro num-initiate-rcvd? yang:counter32 1242 | +--ro num-initiate-rcvd-error-sent? yang:counter32 1243 +--ro path-key {pcep:path-key}? 1244 +--ro num-unknown-path-key? yang:counter32 1245 +--ro num-exp-path-key? yang:counter32 1246 +--ro num-dup-path-key? yang:counter32 1247 +--ro num-path-key-no-attempt? yang:counter32 1249 7. Advanced PCE Features 1251 This document contains a specification of the base PCEP YANG module, 1252 "ietf-pcep" which provides the basic PCEP [RFC5440] data model. 1254 This document further handles advanced PCE features like - 1256 o Capability and Scope 1258 o Domain information (local/neighbour) 1260 o Path-Key 1262 o Objective Function (OF) 1264 o Global Concurrent Optimization (GCO) 1266 o P2MP 1268 o GMPLS 1270 o Inter-Layer 1272 o Stateful PCE 1274 o Segment Routing (SR) 1276 o Authentication including PCEPS (TLS) 1278 7.1. Stateful PCE's LSP-DB 1280 In the operational state of PCEP which supports stateful PCE mode, 1281 the list of LSP state are maintained in LSP-DB. The key is the PLSP- 1282 ID and the PCC IP address. 1284 The PCEP data model contains the operational state of LSPs 1285 (/pcep/entity/lsp-db/lsp/) with PCEP specific attributes. The 1286 generic TE attributes of the LSP are defined in 1287 [I-D.ietf-teas-yang-te]. A reference to LSP state in TE model is 1288 maintained. 1290 8. Open Issues and Next Step 1292 This section is added so that open issues can be tracked. This 1293 section would be removed when the document is ready for publication. 1295 8.1. The PCE-Initiated LSP 1297 The TE Model at [I-D.ietf-teas-yang-te] should support creating of 1298 tunnels at the controller (PCE) and marking them as PCE-Initiated. 1299 The LSP-DB in the PCEP Yang (/pcep/entity/lsp-db/lsp/initiation) also 1300 marks the LSPs which are PCE-initiated. 1302 9. Other Considerations 1304 9.1. PCEP over TLS (PCEPS) 1306 [RFC8253] describe the use of TLS in PCEP. The peer acting as the 1307 PCEP client MUST act as the TLS client. The TLS client actively 1308 opens the TLS connection and the TLS server passively listens for the 1309 incoming TLS connections. The well-known TCP port number 4189 is 1310 used by PCEP servers to listen for TCP connections established by 1311 PCEP over TLS clients. The TLS client MUST send the TLS ClientHello 1312 message to begin the TLS handshake. The TLS server MUST send a 1313 CertificateRequest in order to request a certificate from the TLS 1314 client. Once the TLS handshake has finished, the client and the 1315 server MAY begin to exchange PCEP messages. Client and server 1316 identity verification is done before the PCEP open message is sent. 1317 This means that the identity verification is completed before the 1318 PCEP session is started.. 1320 10. PCEP YANG Modules 1321 10.1. ietf-pcep module 1323 RFC Ed.: In this section, replace all occurrences of 'XXXX' with the 1324 actual RFC number and all occurrences of the revision date below with 1325 the date of RFC publication (and remove this note). 1327 file "ietf-pcep@2019-07-01.yang" 1328 module ietf-pcep { 1330 yang-version 1.1; 1332 namespace "urn:ietf:params:xml:ns:yang:ietf-pcep"; 1334 prefix pcep; 1336 import ietf-inet-types { 1337 prefix inet; 1338 reference 1339 "RFC 6991: Common YANG Data Types"; 1340 } 1341 import ietf-yang-types { 1342 prefix yang; 1343 reference 1344 "RFC 6991: Common YANG Data Types"; 1345 } 1346 import ietf-te { 1347 prefix te; 1348 reference 1349 "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic 1350 Engineering Tunnels and Interfaces"; 1351 } 1352 import ietf-te-types { 1353 prefix te-types; 1354 reference 1355 "I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG 1356 Types"; 1357 } 1358 import ietf-key-chain { 1359 prefix key-chain; 1360 reference 1361 "RFC 8177: YANG Data Model for Key Chains"; 1362 } 1363 import ietf-netconf-acm { 1364 prefix nacm; 1365 reference 1366 "RFC 8341: Network Configuration Protocol (NETCONF) Access 1367 Control Model"; 1369 } 1370 import ietf-tls-server { 1371 prefix tlss; 1372 reference 1373 "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS 1374 Clients and TLS Servers"; 1375 } 1376 import ietf-tls-client { 1377 prefix tlsc; 1378 reference 1379 "I-D.ietf-netconf-tls-client-server: YANG Groupings for TLS 1380 Clients and TLS Servers"; 1381 } 1382 import ietf-ospf { 1383 prefix ospf; 1384 reference 1385 "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; 1386 } 1387 import ietf-isis { 1388 prefix isis; 1389 reference 1390 "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS 1391 Protocol"; 1392 } 1394 organization 1395 "IETF PCE (Path Computation Element) Working Group"; 1396 contact 1397 "WG Web: 1398 WG List: 1399 Editor: Dhruv Dhody 1400 "; 1401 description 1402 "The YANG module defines a generic configuration and 1403 operational model for PCEP. 1405 Copyright (c) 2019 IETF Trust and the persons identified as 1406 authors of the code. All rights reserved. 1408 Redistribution and use in source and binary forms, with or 1409 without modification, is permitted pursuant to, and subject 1410 to the license terms contained in, the Simplified BSD License 1411 set forth in Section 4.c of the IETF Trust's Legal Provisions 1412 Relating to IETF Documents 1413 (https://trustee.ietf.org/license-info). 1415 This version of this YANG module is part of RFC XXXX; see the 1416 RFC itself for full legal notices."; 1418 revision 2019-07-01 { 1419 description 1420 "Initial revision."; 1421 reference 1422 "RFC XXXX: A YANG Data Model for Path Computation 1423 Element Communications Protocol (PCEP)"; 1424 } 1426 /* 1427 * Typedefs 1428 */ 1430 typedef pcep-role { 1431 type enumeration { 1432 enum unknown { 1433 value 0; 1434 description 1435 "An unknown role"; 1436 } 1437 enum pcc { 1438 value 1; 1439 description 1440 "The role of a Path Computation Client"; 1441 } 1442 enum pce { 1443 value 2; 1444 description 1445 "The role of Path Computation Element"; 1446 } 1447 enum pcc-and-pce { 1448 value 3; 1449 description 1450 "The role of both Path Computation Client and 1451 Path Computation Element"; 1452 } 1453 } 1454 description 1455 "The role of a PCEP speaker. 1456 Takes one of the following values 1457 - unknown(0): the role is not known. 1458 - pcc(1): the role is of a Path Computation 1459 Client (PCC). 1460 - pce(2): the role is of a Path Computation 1461 Server (PCE). 1462 - pccAndPce(3): the role is of both a PCC and 1463 a PCE."; 1464 } 1465 typedef pcep-oper-status { 1466 type enumeration { 1467 enum oper-status-up { 1468 value 1; 1469 description 1470 "The PCEP entity is active"; 1471 } 1472 enum oper-status-down { 1473 value 2; 1474 description 1475 "The PCEP entity is inactive"; 1476 } 1477 enum oper-status-going-up { 1478 value 3; 1479 description 1480 "The PCEP entity is activating"; 1481 } 1482 enum oper-status-going-down { 1483 value 4; 1484 description 1485 "The PCEP entity is deactivating"; 1486 } 1487 enum oper-status-failed { 1488 value 5; 1489 description 1490 "The PCEP entity has failed and will recover 1491 when possible."; 1492 } 1493 enum oper-status-failed-perm { 1494 value 6; 1495 description 1496 "The PCEP entity has failed and will not recover 1497 without operator intervention"; 1498 } 1499 } 1500 description 1501 "The operational status of the PCEP entity. 1502 Takes one of the following values 1503 - oper-status-up(1): Active 1504 - oper-status-down(2): Inactive 1505 - oper-status-going-up(3): Activating 1506 - oper-status-going-down(4): Deactivating 1507 - oper-status-failed(5): Failed 1508 - oper-status-failed-perm(6): Failed Permanantly"; 1509 reference 1510 "RFC 5440: Path Computation Element (PCE) Communication 1511 Protocol (PCEP)"; 1512 } 1513 typedef pcep-initiator { 1514 type enumeration { 1515 enum local { 1516 value 1; 1517 description 1518 "The local PCEP entity initiated the session"; 1519 } 1520 enum remote { 1521 value 2; 1522 description 1523 "The remote PCEP peer initiated the session"; 1524 } 1525 } 1526 description 1527 "The initiator of the session, that is, whether the TCP 1528 connection was initiated by the local PCEP entity or 1529 the remote peer. 1530 Takes one of the following values 1531 - local(1): Initiated locally 1532 - remote(2): Initiated remotely"; 1533 } 1535 typedef pcep-sess-state { 1536 type enumeration { 1537 enum tcp-pending { 1538 value 1; 1539 description 1540 "The tcp-pending state of PCEP session."; 1541 } 1542 enum open-wait { 1543 value 2; 1544 description 1545 "The open-wait state of PCEP session."; 1546 } 1547 enum keep-wait { 1548 value 3; 1549 description 1550 "The keep-wait state of PCEP session."; 1551 } 1552 enum session-up { 1553 value 4; 1554 description 1555 "The session-up state of PCEP session."; 1556 } 1557 } 1558 description 1559 "The current state of the session. 1560 The set of possible states excludes the idle state 1561 since entries do not exist in the idle state. 1562 Takes one of the following values 1563 - tcp-pending(1): PCEP TCP Pending state 1564 - open-wait(2): PCEP Open Wait state 1565 - keep-wait(3): PCEP Keep Wait state 1566 - session-up(4): PCEP Session Up state"; 1567 reference 1568 "RFC 5440: Path Computation Element (PCE) Communication 1569 Protocol (PCEP)"; 1570 } 1572 typedef domain-type { 1573 type enumeration { 1574 enum ospf-area { 1575 value 1; 1576 description 1577 "The OSPF area."; 1578 } 1579 enum isis-area { 1580 value 2; 1581 description 1582 "The IS-IS area."; 1583 } 1584 enum as { 1585 value 3; 1586 description 1587 "The Autonomous System (AS)."; 1588 } 1589 } 1590 description 1591 "The PCE Domain Type"; 1592 } 1594 typedef domain-ospf-area { 1595 type ospf:area-id-type; 1596 description 1597 "OSPF Area ID."; 1598 reference 1599 "I-D.ietf-ospf-yang: YANG Data Model for OSPF Protocol"; 1600 } 1602 typedef domain-isis-area { 1603 type isis:area-address; 1604 description 1605 "IS-IS Area ID."; 1606 reference 1607 "I-D.ietf-isis-yang-isis-cfg: YANG Data Model for IS-IS 1608 Protocol"; 1610 } 1612 typedef domain-as { 1613 type inet:as-number; 1614 description 1615 "Autonomous System number."; 1616 } 1618 typedef domain { 1619 type union { 1620 type domain-ospf-area; 1621 type domain-isis-area; 1622 type domain-as; 1623 } 1624 description 1625 "The Domain Information"; 1626 } 1628 typedef operational-state { 1629 type enumeration { 1630 enum down { 1631 value 0; 1632 description 1633 "not active."; 1634 } 1635 enum up { 1636 value 1; 1637 description 1638 "signalled."; 1639 } 1640 enum active { 1641 value 2; 1642 description 1643 "up and carrying traffic."; 1644 } 1645 enum going-down { 1646 value 3; 1647 description 1648 "LSP is being torn down, resources are 1649 being released."; 1650 } 1651 enum going-up { 1652 value 4; 1653 description 1654 "LSP is being signalled."; 1655 } 1656 } 1657 description 1658 "The operational status of the LSP"; 1659 reference 1660 "RFC 8231: Path Computation Element Communication Protocol 1661 (PCEP) Extensions for Stateful PCE"; 1662 } 1664 typedef sync-state { 1665 type enumeration { 1666 enum pending { 1667 value 0; 1668 description 1669 "The state synchronization 1670 has not started."; 1671 } 1672 enum ongoing { 1673 value 1; 1674 description 1675 "The state synchronization 1676 is ongoing."; 1677 } 1678 enum finished { 1679 value 2; 1680 description 1681 "The state synchronization 1682 is finished."; 1683 } 1684 } 1685 description 1686 "The LSP-DB state synchronization operational 1687 status."; 1688 reference 1689 "RFC 8231: Path Computation Element Communication Protocol 1690 (PCEP) Extensions for Stateful PCE"; 1691 } 1693 /* 1694 * Features 1695 */ 1697 feature svec { 1698 description 1699 "Support synchronized path computation."; 1700 reference 1701 "RFC 5440: Path Computation Element (PCE) Communication 1702 Protocol (PCEP)"; 1703 } 1705 feature gmpls { 1706 description 1707 "Support GMPLS."; 1708 reference 1709 "I-D.ietf-pce-gmpls-pcep-extensions: PCEP extensions for 1710 GMPLS"; 1711 } 1713 feature objective-function { 1714 description 1715 "Support OF as per RFC 5541."; 1716 reference 1717 "RFC 5541: Encoding of Objective Functions in the Path 1718 Computation Element Communication Protocol (PCEP)"; 1719 } 1721 feature global-concurrent { 1722 description 1723 "Support GCO as per RFC 5557."; 1724 reference 1725 "RFC 5557: Path Computation Element Communication Protocol 1726 (PCEP) Requirements and Protocol Extensions in Support of 1727 Global Concurrent Optimization"; 1728 } 1730 feature path-key { 1731 description 1732 "Support path-key as per RFC 5520."; 1733 reference 1734 "RFC 5520: Preserving Topology Confidentiality in Inter- 1735 Domain Path Computation Using a Path-Key-Based Mechanism"; 1736 } 1738 feature p2mp { 1739 description 1740 "Support P2MP as per RFC 8306."; 1741 reference 1742 "RFC 8306: Extensions to the Path Computation Element 1743 Communication Protocol (PCEP) for Point-to-Multipoint 1744 Traffic Engineering Label Switched Paths"; 1745 } 1747 feature stateful { 1748 description 1749 "Support stateful PCE as per RFC 8231."; 1750 reference 1751 "RFC 8231: Path Computation Element Communication Protocol 1752 (PCEP) Extensions for Stateful PCE"; 1753 } 1754 feature sync-opt { 1755 description 1756 "Support stateful sync optimization 1757 as per RFC 8232"; 1758 reference 1759 "RFC 8232: Optimizations of Label Switched Path State 1760 Synchronization Procedures for a Stateful PCE"; 1761 } 1763 feature pce-initiated { 1764 description 1765 "Support PCE-Initiated LSP as per 1766 RFC 8281."; 1767 reference 1768 "RFC 8281: Path Computation Element Communication Protocol 1769 (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful 1770 PCE Model"; 1771 } 1773 feature tls { 1774 description 1775 "Support PCEP over TLS as per 1776 RFC 8253."; 1777 reference 1778 "RFC 8253: PCEPS: Usage of TLS to Provide a Secure Transport 1779 for the Path Computation Element Communication Protocol 1780 (PCEP)"; 1781 } 1783 feature sr { 1784 description 1785 "Support Segment Routing for PCE."; 1786 reference 1787 "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment 1788 Routing"; 1789 } 1791 feature association { 1792 description 1793 "Support Association in PCEP."; 1794 reference 1795 "I-D.ietf-pce-association-group: PCEP Extensions for 1796 Establishing Relationships Between Sets of LSPs"; 1797 } 1799 /* 1800 * Identities 1801 */ 1803 identity lsp-error { 1804 if-feature "stateful"; 1805 description 1806 "Base LSP error"; 1807 reference 1808 "RFC 8231: Path Computation Element Communication Protocol 1809 (PCEP) Extensions for Stateful PCE"; 1810 } 1812 identity no-error-lsp-error { 1813 base lsp-error; 1814 if-feature "stateful"; 1815 description 1816 "No error, LSP is fine."; 1817 reference 1818 "RFC 8231: Path Computation Element Communication Protocol 1819 (PCEP) Extensions for Stateful PCE"; 1820 } 1822 identity unknown-lsp-error { 1823 base lsp-error; 1824 if-feature "stateful"; 1825 description 1826 "Unknown reason."; 1827 reference 1828 "RFC 8231: Path Computation Element Communication Protocol 1829 (PCEP) Extensions for Stateful PCE"; 1830 } 1832 identity limit-lsp-error { 1833 base lsp-error; 1834 if-feature "stateful"; 1835 description 1836 "Limit reached for PCE-controlled LSPs."; 1837 reference 1838 "RFC 8231: Path Computation Element Communication Protocol 1839 (PCEP) Extensions for Stateful PCE"; 1840 } 1842 identity pending-lsp-error { 1843 base lsp-error; 1844 if-feature "stateful"; 1845 description 1846 "Too many pending LSP update requests."; 1847 reference 1848 "RFC 8231: Path Computation Element Communication Protocol 1849 (PCEP) Extensions for Stateful PCE"; 1850 } 1851 identity unacceptable-lsp-error { 1852 base lsp-error; 1853 if-feature "stateful"; 1854 description 1855 "Unacceptable parameters."; 1856 reference 1857 "RFC 8231: Path Computation Element Communication Protocol 1858 (PCEP) Extensions for Stateful PCE"; 1859 } 1861 identity internal-lsp-error { 1862 base lsp-error; 1863 if-feature "stateful"; 1864 description 1865 "Internal error."; 1866 reference 1867 "RFC 8231: Path Computation Element Communication Protocol 1868 (PCEP) Extensions for Stateful PCE"; 1869 } 1871 identity admin-lsp-error { 1872 base lsp-error; 1873 if-feature "stateful"; 1874 description 1875 "LSP administratively brought down."; 1876 reference 1877 "RFC 8231: Path Computation Element Communication Protocol 1878 (PCEP) Extensions for Stateful PCE"; 1879 } 1881 identity preempted-lsp-error { 1882 base lsp-error; 1883 if-feature "stateful"; 1884 description 1885 "LSP preempted."; 1886 reference 1887 "RFC 8231: Path Computation Element Communication Protocol 1888 (PCEP) Extensions for Stateful PCE"; 1889 } 1891 identity rsvp-lsp-error { 1892 base lsp-error; 1893 if-feature "stateful"; 1894 description 1895 "RSVP signaling error."; 1896 reference 1897 "RFC 8231: Path Computation Element Communication Protocol 1898 (PCEP) Extensions for Stateful PCE"; 1900 } 1902 /* 1903 * Groupings 1904 */ 1906 grouping pce-scope { 1907 description 1908 "This grouping defines PCE path computation scope 1909 information which maybe relevant to PCE selection. 1910 This information corresponds to PCE auto-discovery 1911 information."; 1912 reference 1913 "RFC 5088: OSPF Protocol Extensions for Path 1914 Computation Element (PCE) Discovery 1915 RFC 5089: IS-IS Protocol Extensions for Path 1916 Computation Element (PCE) Discovery"; 1917 leaf path-scope { 1918 type bits { 1919 bit intra-area-scope { 1920 description 1921 "PCE can compute intra-area paths."; 1922 } 1923 bit inter-area-scope { 1924 description 1925 "PCE can compute inter-area paths."; 1926 } 1927 bit inter-area-scope-default { 1928 description 1929 "PCE can act as a default PCE for inter-area 1930 path computation."; 1931 } 1932 bit inter-as-scope { 1933 description 1934 "PCE can compute inter-AS paths."; 1935 } 1936 bit inter-as-scope-default { 1937 description 1938 "PCE can act as a default PCE for inter-AS 1939 path computation."; 1940 } 1941 bit inter-layer-scope { 1942 description 1943 "PCE can compute inter-layer paths."; 1944 } 1945 } 1946 description 1947 "The field corresponding to the path scope bits"; 1949 } 1950 leaf intra-area-pref { 1951 type uint8 { 1952 range "0..7"; 1953 } 1954 description 1955 "The PCE's preference for intra-area TE LSP 1956 computation."; 1957 } 1958 leaf inter-area-pref { 1959 type uint8 { 1960 range "0..7"; 1961 } 1962 description 1963 "The PCE's preference for inter-area TE LSP 1964 computation."; 1965 } 1966 leaf inter-as-pref { 1967 type uint8 { 1968 range "0..7"; 1969 } 1970 description 1971 "The PCE's preference for inter-AS TE LSP 1972 computation."; 1973 } 1974 leaf inter-layer-pref { 1975 type uint8 { 1976 range "0..7"; 1977 } 1978 description 1979 "The PCE's preference for inter-layer TE LSP 1980 computation."; 1981 } 1982 } 1984 //pce-scope 1986 grouping domain { 1987 description 1988 "This grouping specifies a Domain where the 1989 PCEP speaker has topology visibility."; 1990 leaf domain-type { 1991 type domain-type; 1992 description 1993 "The domain type."; 1994 } 1995 leaf domain { 1996 type domain; 1997 description 1998 "The domain Information."; 1999 } 2000 } 2002 //domain 2004 grouping info { 2005 description 2006 "This grouping specifies all information which 2007 maybe relevant to both PCC and PCE. 2008 This information corresponds to PCE auto-discovery 2009 information."; 2010 container domain { 2011 description 2012 "The local domain for the PCEP entity"; 2013 list domain { 2014 key "domain-type domain"; 2015 description 2016 "The local domain."; 2017 uses domain { 2018 description 2019 "The local domain for the PCEP entity."; 2020 } 2021 } 2022 } 2023 container capability { 2024 description 2025 "The PCEP entity capability information of local 2026 PCEP entity. This maybe relevant to PCE selection 2027 as well. This information corresponds to PCE auto- 2028 discovery information."; 2029 reference 2030 "RFC 5088: OSPF Protocol Extensions for Path 2031 Computation Element (PCE) Discovery 2032 RFC 5089: IS-IS Protocol Extensions for Path 2033 Computation Element (PCE) Discovery"; 2034 leaf capability { 2035 type bits { 2036 bit gmpls { 2037 if-feature "gmpls"; 2038 description 2039 "Path computation with GMPLS link 2040 constraints."; 2041 } 2042 bit bi-dir { 2043 description 2044 "Bidirectional path computation."; 2046 } 2047 bit diverse { 2048 description 2049 "Diverse path computation."; 2050 } 2051 bit load-balance { 2052 description 2053 "Load-balanced path computation."; 2054 } 2055 bit synchronize { 2056 if-feature "svec"; 2057 description 2058 "Synchronized paths computation."; 2059 } 2060 bit objective-function { 2061 if-feature "objective-function"; 2062 description 2063 "Support for multiple objective functions."; 2064 } 2065 bit add-path-constraint { 2066 description 2067 "Support for additive path constraints (max 2068 hop count, etc.)."; 2069 } 2070 bit prioritization { 2071 description 2072 "Support for request prioritization."; 2073 } 2074 bit multi-request { 2075 description 2076 "Support for multiple requests per message."; 2077 } 2078 bit global-concurrent { 2079 if-feature "global-concurrent"; 2080 description 2081 "Support for Global Concurrent Optimization 2082 (GCO)."; 2083 } 2084 bit p2mp { 2085 if-feature "p2mp"; 2086 description 2087 "Support for P2MP path computation."; 2088 } 2089 bit active { 2090 if-feature "stateful"; 2091 description 2092 "Support for active stateful PCE."; 2093 } 2094 bit passive { 2095 if-feature "stateful"; 2096 description 2097 "Support for passive stateful PCE."; 2098 } 2099 bit p2mp-active { 2100 if-feature "stateful"; 2101 if-feature "p2mp"; 2102 description 2103 "Support for active stateful PCE for P2MP."; 2104 } 2105 bit p2mp-passive { 2106 if-feature "stateful"; 2107 if-feature "p2mp"; 2108 description 2109 "Support for passive stateful PCE for P2MP."; 2110 } 2111 bit p2mp-pce-initiated { 2112 if-feature "stateful"; 2113 if-feature "pce-initiated"; 2114 if-feature "p2mp"; 2115 description 2116 "Support for PCE-initiated LSP for P2MP."; 2117 } 2118 } 2119 description 2120 "The bits string indicating the capabiliies"; 2121 reference 2122 "RFC 5088: OSPF Protocol Extensions for Path 2123 Computation Element (PCE) Discovery 2124 RFC 5089: IS-IS Protocol Extensions for Path 2125 Computation Element (PCE) Discovery"; 2126 } 2127 leaf pce-initiated { 2128 if-feature "pce-initiated"; 2129 type boolean; 2130 description 2131 "Set to true if PCE-initiated LSP capability is 2132 enabled."; 2133 reference 2134 "RFC 8281: Path Computation Element Communication 2135 Protocol (PCEP) Extensions for PCE-Initiated LSP 2136 Setup in a Stateful PCE Model"; 2137 } 2138 leaf include-db-ver { 2139 if-feature "stateful"; 2140 if-feature "sync-opt"; 2141 type boolean; 2142 description 2143 "Support inclusion of LSP-DB-VERSION 2144 in LSP object"; 2145 reference 2146 "RFC 8232: Optimizations of Label Switched Path State 2147 Synchronization Procedures for a Stateful PCE"; 2148 } 2149 leaf trigger-resync { 2150 if-feature "stateful"; 2151 if-feature "sync-opt"; 2152 type boolean; 2153 description 2154 "Support PCE triggered re-synchronization"; 2155 reference 2156 "RFC 8232: Optimizations of Label Switched Path State 2157 Synchronization Procedures for a Stateful PCE"; 2158 } 2159 leaf trigger-initial-sync { 2160 if-feature "stateful"; 2161 if-feature "sync-opt"; 2162 type boolean; 2163 description 2164 "PCE triggered initial synchronization"; 2165 reference 2166 "RFC 8232: Optimizations of Label Switched Path State 2167 Synchronization Procedures for a Stateful PCE"; 2168 } 2169 leaf incremental-sync { 2170 if-feature "stateful"; 2171 if-feature "sync-opt"; 2172 type boolean; 2173 description 2174 "Support incremental (delta) sync"; 2175 reference 2176 "RFC 8232: Optimizations of Label Switched Path State 2177 Synchronization Procedures for a Stateful PCE"; 2178 } 2179 container sr { 2180 if-feature "sr"; 2181 description 2182 "If segment routing is supported"; 2183 reference 2184 "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment 2185 Routing"; 2186 leaf enabled { 2187 type boolean; 2188 description 2189 "Set to true if SR is enabled"; 2191 } 2192 leaf msd-limit { 2193 type boolean; 2194 default "false"; 2195 description 2196 "True indicates no limit on MSD, the 2197 leaf msd is ignored"; 2198 } 2199 leaf nai { 2200 type boolean; 2201 default "false"; 2202 description 2203 "True indicates capability to resolve NAI 2204 to SID"; 2205 } 2206 } 2207 //sr 2208 } 2209 //capability 2210 leaf msd { 2211 if-feature "sr"; 2212 type uint8; 2213 description 2214 "Maximum SID Depth for SR"; 2215 reference 2216 "I-D.ietf-pce-segment-routing: PCEP Extensions for Segment 2217 Routing"; 2218 } 2219 } 2221 //info 2223 grouping pce-info { 2224 description 2225 "This grouping specifies all PCE information 2226 which maybe relevant to the PCE selection. 2227 This information corresponds to PCE auto-discovery 2228 information."; 2229 container scope { 2230 description 2231 "The path computation scope"; 2232 uses pce-scope; 2233 } 2234 container neigh-domains { 2235 description 2236 "The list of neighbour PCE-Domain 2237 toward which a PCE can compute 2238 paths"; 2240 list domain { 2241 key "domain-type domain"; 2242 description 2243 "The neighbour domain."; 2244 uses domain { 2245 description 2246 "The PCE neighbour domain."; 2247 } 2248 } 2249 } 2250 } 2252 //pce-info 2254 grouping notification-instance-hdr { 2255 description 2256 "This group describes common instance specific data 2257 for notifications."; 2258 leaf peer-addr { 2259 type leafref { 2260 path "/pcep/entity/peers/peer/addr"; 2261 } 2262 description 2263 "Reference to peer address"; 2264 } 2265 } 2267 // notification-instance-hdr 2269 grouping notification-session-hdr { 2270 description 2271 "This group describes common session instance specific 2272 data for notifications."; 2273 leaf session-initiator { 2274 type leafref { 2275 path "/pcep/entity/peers/peer/sessions/" 2276 + "session/initiator"; 2277 } 2278 description 2279 "Reference to pcep session initiator leaf"; 2280 } 2281 } 2283 // notification-session-hdr 2285 grouping of-list { 2286 description 2287 "List of OF"; 2289 reference 2290 "RFC 5541: Encoding of Objective Functions in the Path 2291 Computation Element Communication Protocol (PCEP)"; 2292 list objective-function { 2293 key "of"; 2294 description 2295 "The list of authorized OF"; 2296 leaf of { 2297 type identityref { 2298 base te-types:objective-function-type; 2299 } 2300 description 2301 "The OF authorized"; 2302 } 2303 } 2304 } 2306 /* 2307 * Configuration data nodes 2308 */ 2310 container pcep { 2311 presence "The PCEP is enabled"; 2312 description 2313 "Parameters for list of configured PCEP entities 2314 on the device."; 2315 container entity { 2316 description 2317 "The configured PCEP entity on the device."; 2318 leaf addr { 2319 type inet:ip-address; 2320 mandatory true; 2321 description 2322 "The local Internet address of this PCEP entity. 2323 If operating as a PCE server, the PCEP entity 2324 listens on this address. If operating as a PCC, 2325 the PCEP entity binds outgoing TCP connections 2326 to this address. It is possible for the PCEP entity 2327 to operate both as a PCC and a PCE Server, in which 2328 case it uses this address both to listen for incoming 2329 TCP connections and to bind outgoing TCP connections."; 2330 } 2331 leaf enabled { 2332 type boolean; 2333 default "true"; 2334 description 2335 "The administrative status of this PCEP 2336 Entity."; 2338 } 2339 leaf role { 2340 type pcep-role; 2341 mandatory true; 2342 description 2343 "The role that this entity can play. 2344 Takes one of the following values. 2345 - unknown(0): this PCEP Entity role is not 2346 known. 2347 - pcc(1): this PCEP Entity is a PCC. 2348 - pce(2): this PCEP Entity is a PCE. 2349 - pcc-and-pce(3): this PCEP Entity is both 2350 a PCC and a PCE."; 2351 } 2352 leaf description { 2353 type string; 2354 description 2355 "Description of the PCEP entity configured 2356 by the user"; 2357 } 2358 leaf speaker-entity-id { 2359 if-feature "sync-opt"; 2360 type string; 2361 description 2362 "The Speaker Entity Identifier"; 2363 reference 2364 "RFC 8232: Optimizations of Label Switched 2365 Path State Synchronization Procedures for 2366 a Stateful PCE"; 2367 } 2368 leaf admin-status { 2369 type boolean; 2370 default "true"; 2371 description 2372 "The administrative status of this PCEP Entity. 2373 The value true represents admin status as up. 2374 This is the desired operational status as 2375 currently set by an operator or by default in 2376 the implementation. The value of oper-status 2377 represents the current status of an attempt to 2378 reach this desired status."; 2379 } 2380 leaf index { 2381 type uint32; 2382 config false; 2383 description 2384 "The index of the operational PECP entity"; 2385 } 2386 leaf oper-status { 2387 type pcep-oper-status; 2388 config false; 2389 description 2390 "The operational status of the PCEP entity. 2391 Takes one of the following values. 2392 - oper-status-up(1): the PCEP entity is active. 2393 - oper-status-down(2): the PCEP entity is inactive. 2394 - oper-status-going-up(3): the PCEP entity is 2395 activating. 2396 - oper-status-going-down(4): the PCEP entity is 2397 deactivating. 2398 - oper-status-failed(5): the PCEP entity has 2399 failed and will recover when possible. 2400 - oper-status-failed-perm(6): the PCEP entity 2401 has failed and will not recover without 2402 operator intervention."; 2403 } 2404 uses info { 2405 description 2406 "Local PCEP entity information"; 2407 } 2408 container pce-info { 2409 when "../role = 'pce'" 2410 + "or " 2411 + "../role = 'pcc-and-pce'" { 2412 description 2413 "These fields are applicable when the role is PCE."; 2414 } 2415 description 2416 "The Local PCE Entity PCE information"; 2417 uses pce-info { 2418 description 2419 "Local PCE information"; 2420 } 2421 container path-key { 2422 if-feature "path-key"; 2423 description 2424 "Path-Key Configuration"; 2425 reference 2426 "RFC 5520: Preserving Topology Confidentiality in Inter- 2427 Domain Path Computation Using a Path-Key-Based Mechanism"; 2428 leaf enabled { 2429 type boolean; 2430 description 2431 "Enabled or Disabled"; 2432 } 2433 leaf discard-timer { 2434 type uint32; 2435 units "minutes"; 2436 default "10"; 2437 description 2438 "A timer to discard unwanted path-keys"; 2439 } 2440 leaf reuse-time { 2441 type uint32; 2442 units "minutes"; 2443 default "30"; 2444 description 2445 "A time after which the path-keys could be reused"; 2446 } 2447 leaf pce-id { 2448 type inet:ip-address; 2449 description 2450 "PCE Address to be used in each Path-Key Subobject 2451 (PKS)"; 2452 } 2453 } 2454 } 2455 leaf connect-timer { 2456 type uint16 { 2457 range "1..65535"; 2458 } 2459 units "seconds"; 2460 default "60"; 2461 description 2462 "The time in seconds that the PCEP entity will wait 2463 to establish a TCP connection with a peer. If a 2464 TCP connection is not established within this time 2465 then PCEP aborts the session setup attempt."; 2466 reference 2467 "RFC 5440: Path Computation Element (PCE) Communication 2468 Protocol (PCEP)"; 2469 } 2470 leaf connect-max-retry { 2471 type uint32; 2472 default "5"; 2473 description 2474 "The maximum number of times the system tries to 2475 establish a TCP connection to a peer before the 2476 session with the peer transitions to the idle 2477 state."; 2478 reference 2479 "RFC 5440: Path Computation Element (PCE) Communication 2480 Protocol (PCEP)"; 2481 } 2482 leaf init-backoff-timer { 2483 type uint16 { 2484 range "1..65535"; 2485 } 2486 units "seconds"; 2487 description 2488 "The initial back-off time in seconds for retrying 2489 a failed session setup attempt to a peer. 2490 The back-off time increases for each failed 2491 session setup attempt, until a maximum back-off 2492 time is reached. The maximum back-off time is 2493 max-backoff-timer."; 2494 reference 2495 "RFC 5440: Path Computation Element (PCE) Communication 2496 Protocol (PCEP)"; 2497 } 2498 leaf max-backoff-timer { 2499 type uint32; 2500 units "seconds"; 2501 description 2502 "The maximum back-off time in seconds for retrying 2503 a failed session setup attempt to a peer. 2504 The back-off time increases for each failed session 2505 setup attempt, until this maximum value is reached. 2506 Session setup attempts then repeat periodically 2507 without any further increase in back-off time."; 2508 reference 2509 "RFC 5440: Path Computation Element (PCE) Communication 2510 Protocol (PCEP)"; 2511 } 2512 leaf open-wait-timer { 2513 type uint16 { 2514 range "1..65535"; 2515 } 2516 units "seconds"; 2517 default "60"; 2518 description 2519 "The time in seconds that the PCEP entity will wait 2520 to receive an Open message from a peer after the 2521 TCP connection has come up. 2522 If no Open message is received within this time then 2523 PCEP terminates the TCP connection and deletes the 2524 associated sessions."; 2525 reference 2526 "RFC 5440: Path Computation Element (PCE) Communication 2527 Protocol (PCEP)"; 2528 } 2529 leaf keep-wait-timer { 2530 type uint16 { 2531 range "1..65535"; 2532 } 2533 units "seconds"; 2534 default "60"; 2535 description 2536 "The time in seconds that the PCEP entity will wait 2537 to receive a Keepalive or PCErr message from a peer 2538 during session initialization after receiving an 2539 Open message. If no Keepalive or PCErr message is 2540 received within this time then PCEP terminates the 2541 TCP connection and deletes the associated 2542 sessions."; 2543 reference 2544 "RFC 5440: Path Computation Element (PCE) Communication 2545 Protocol (PCEP)"; 2546 } 2547 leaf keep-alive-timer { 2548 type uint8; 2549 units "seconds"; 2550 default "30"; 2551 description 2552 "The keep alive transmission timer that this PCEP 2553 entity will propose in the initial OPEN message of 2554 each session it is involved in. This is the 2555 maximum time between two consecutive messages sent 2556 to a peer. Zero means that the PCEP entity prefers 2557 not to send Keepalives at all. 2558 Note that the actual Keepalive transmission 2559 intervals, in either direction of an active PCEP 2560 session, are determined by negotiation between the 2561 peers as specified by RFC 5440, and so may differ 2562 from this configured value."; 2563 reference 2564 "RFC 5440: Path Computation Element (PCE) Communication 2565 Protocol (PCEP)"; 2566 } 2567 leaf dead-timer { 2568 type uint8; 2569 units "seconds"; 2570 must '(. > ../keep-alive-timer)' { 2571 error-message "The dead timer must be " 2572 + "larger than the keep alive timer"; 2573 } 2574 default "120"; 2575 description 2576 "The dead timer that this PCEP entity will propose 2577 in the initial OPEN message of each session it is 2578 involved in. This is the time after which a peer 2579 should declare a session down if it does not 2580 receive any PCEP messages. Zero suggests that the 2581 peer does not run a dead timer at all."; 2582 reference 2583 "RFC 5440: Path Computation Element (PCE) Communication 2584 Protocol (PCEP)"; 2585 } 2586 leaf allow-negotiation { 2587 type boolean; 2588 description 2589 "Whether the PCEP entity will permit negotiation of 2590 session parameters."; 2591 } 2592 leaf max-keep-alive-timer { 2593 type uint8; 2594 units "seconds"; 2595 description 2596 "In PCEP session parameter negotiation in seconds, 2597 the maximum value that this PCEP entity will 2598 accept from a peer for the interval between 2599 Keepalive transmissions. Zero means that the PCEP 2600 entity will allow no Keepalive transmission at 2601 all."; 2602 } 2603 leaf max-dead-timer { 2604 type uint8; 2605 units "seconds"; 2606 description 2607 "In PCEP session parameter negotiation in seconds, 2608 the maximum value that this PCEP entity will accept 2609 from a peer for the Dead timer. Zero means that 2610 the PCEP entity will allow not running a Dead 2611 timer."; 2612 } 2613 leaf min-keep-alive-timer { 2614 type uint8; 2615 units "seconds"; 2616 description 2617 "In PCEP session parameter negotiation in seconds, 2618 the minimum value that this PCEP entity will 2619 accept for the interval between Keepalive 2620 transmissions. Zero means that the PCEP entity 2621 insists on no Keepalive transmission at all."; 2622 } 2623 leaf min-dead-timer { 2624 type uint8; 2625 units "seconds"; 2626 description 2627 "In PCEP session parameter negotiation in 2628 seconds, the minimum value that this PCEP entity 2629 will accept for the Dead timer. Zero means that 2630 the PCEP entity insists on not running a Dead 2631 timer."; 2632 } 2633 leaf sync-timer { 2634 if-feature "svec"; 2635 type uint16; 2636 units "seconds"; 2637 default "60"; 2638 description 2639 "The value of SyncTimer in seconds is used in the 2640 case of synchronized path computation request 2641 using the SVEC object. Consider the case where a 2642 PCReq message is received by a PCE that contains 2643 the SVEC object referring to M synchronized path 2644 computation requests. If after the expiration of 2645 the SyncTimer all the M path computation requests 2646 have not been, received a protocol error is 2647 triggered and the PCE MUST cancel the whole set 2648 of path computation requests. 2649 The aim of the SyncTimer is to avoid the storage 2650 of unused synchronized requests should one of 2651 them get lost for some reasons (for example, a 2652 misbehaving PCC). 2653 Zero means that the PCEP entity does not use the 2654 SyncTimer."; 2655 reference 2656 "RFC 5440: Path Computation Element (PCE) 2657 Communication Protocol (PCEP)"; 2658 } 2659 leaf request-timer { 2660 type uint16 { 2661 range "1..65535"; 2662 } 2663 units "seconds"; 2664 description 2665 "The maximum time that the PCEP entity will wait 2666 for a response to a PCReq message."; 2667 } 2668 leaf max-sessions { 2669 type uint32; 2670 description 2671 "Maximum number of sessions involving this PCEP 2672 entity that can exist at any time."; 2673 } 2674 leaf max-unknown-reqs { 2675 type uint32; 2676 default "5"; 2677 description 2678 "The maximum number of unrecognized requests and 2679 replies that any session on this PCEP entity is 2680 willing to accept per minute before terminating 2681 the session. 2682 A PCRep message contains an unrecognized reply 2683 if it contains an RP object whose request ID 2684 does not correspond to any in-progress request 2685 sent by this PCEP entity. 2686 A PCReq message contains an unrecognized request 2687 if it contains an RP object whose request ID is 2688 zero."; 2689 reference 2690 "RFC 5440: Path Computation Element (PCE) 2691 Communication Protocol (PCEP)"; 2692 } 2693 leaf max-unknown-msgs { 2694 type uint32; 2695 default "5"; 2696 description 2697 "The maximum number of unknown messages that any 2698 session on this PCEP entity is willing to accept 2699 per minute before terminating the session."; 2700 reference 2701 "RFC 5440: Path Computation Element (PCE) 2702 Communication Protocol (PCEP)"; 2703 } 2704 leaf pcep-notification-max-rate { 2705 type uint32; 2706 mandatory true; 2707 description 2708 "This variable indicates the maximum number of 2709 notifications issued per second. If events 2710 occur more rapidly, the implementation may 2711 simply fail to emit these notifications during 2712 that period, or may queue them until an 2713 appropriate time. A value of 0 means no 2714 notifications are emitted and all should be 2715 discarded (that is, not queued)."; 2716 } 2717 container stateful-parameter { 2718 if-feature "stateful"; 2719 description 2720 "The configured stateful PCE parameters"; 2721 leaf state-timeout { 2722 type uint32; 2723 units "seconds"; 2724 description 2725 "When a PCEP session is terminated, a PCC 2726 waits for this time period before flushing 2727 LSP state associated with that PCEP session 2728 and reverting to operator-defined default 2729 parameters or behaviours."; 2730 } 2731 leaf redelegation-timeout { 2732 when "../../role = 'pcc'" 2733 + "or " 2734 + "../../role = 'pcc-and-pce'" { 2735 description 2736 "This field is applicable when the role is 2737 PCC"; 2738 } 2739 type uint32; 2740 units "seconds"; 2741 description 2742 "When a PCEP session is terminated, a PCC 2743 waits for this time period before revoking 2744 LSP delegation to a PCE and attempting to 2745 redelegate LSPs associated with the 2746 terminated PCEP session to an alternate 2747 PCE."; 2748 } 2749 leaf rpt-non-pcep-lsp { 2750 when "../../role = 'pcc'" 2751 + "or " 2752 + "../../role = 'pcc-and-pce'" { 2753 description 2754 "This field is applicable when the role is 2755 PCC"; 2756 } 2757 type boolean; 2758 default "true"; 2759 description 2760 "If set, a PCC reports LSPs that are not 2761 controlled by any PCE (for example, LSPs 2762 that are statically configured at the 2763 PCC). "; 2764 } 2765 reference 2766 "RFC 8231: Path Computation Element Communication Protocol 2767 (PCEP) Extensions for Stateful PCE"; 2768 } 2769 container of-list { 2770 when "../role = 'pce'" 2771 + "or " 2772 + "../role = 'pcc-and-pce'" { 2773 description 2774 "These field are applicable when the role is 2775 PCE"; 2776 } 2777 if-feature "objective-function"; 2778 uses of-list; 2779 description 2780 "The authorized OF-List at PCE for all peers"; 2781 } 2782 container lsp-db { 2783 if-feature "stateful"; 2784 config false; 2785 description 2786 "The LSP-DB"; 2787 leaf db-ver { 2788 when "../../role = 'pcc'" 2789 + "or " 2790 + "../../role = 'pcc-and-pce'" { 2791 description 2792 "This field is applicable when the role is 2793 PCC"; 2794 } 2795 if-feature "sync-opt"; 2796 type uint64; 2797 description 2798 "The LSP State Database Version Number"; 2799 } 2800 list association-list { 2801 if-feature "association"; 2802 key "type id source global-source extended-id"; 2803 description 2804 "List of all PCEP associations"; 2805 reference 2806 "I-D.ietf-pce-association-group: PCEP 2807 Extensions for Establishing Relationships 2808 Between Sets of LSPs"; 2809 leaf type { 2810 type identityref { 2811 base te-types:association-type; 2812 } 2813 description 2814 "The PCEP association type"; 2815 } 2816 leaf id { 2817 type uint16; 2818 description 2819 "PCEP Association ID"; 2820 } 2821 leaf source { 2822 type inet:ip-address; 2823 description 2824 "PCEP Association Source."; 2825 } 2826 leaf global-source { 2827 type uint32; 2828 description 2829 "PCEP Association Global Source."; 2830 } 2831 leaf extended-id { 2832 type string; 2833 description 2834 "Additional information to support unique 2835 identification."; 2836 } 2837 list lsp { 2838 key "plsp-id pcc-id lsp-id"; 2839 description 2840 "List of all LSP in this association"; 2841 leaf plsp-id { 2842 type leafref { 2843 path "/pcep/entity/lsp-db/" 2844 + "lsp/plsp-id"; 2845 } 2846 description 2847 "Reference to PLSP-ID in LSP-DB"; 2848 } 2849 leaf pcc-id { 2850 type leafref { 2851 path "/pcep/entity/lsp-db/" 2852 + "lsp/pcc-id"; 2853 } 2854 description 2855 "Reference to PCC-ID in LSP-DB"; 2856 } 2857 leaf lsp-id { 2858 type leafref { 2859 path "/pcep/entity/lsp-db/" 2860 + "lsp/lsp-id"; 2861 } 2862 description 2863 "Reference to LSP ID in LSP-DB"; 2864 } 2865 } 2867 } 2868 list lsp { 2869 key "plsp-id pcc-id lsp-id"; 2870 description 2871 "List of all LSPs in LSP-DB"; 2872 leaf plsp-id { 2873 type uint32 { 2874 range "1..1048575"; 2875 } 2876 description 2877 "A PCEP-specific identifier for the LSP. A PCC 2878 creates a unique PLSP-ID for each LSP that is 2879 constant for the lifetime of a PCEP session. 2880 PLSP-ID is 20 bits with 0 and 0xFFFFF are 2881 reserved"; 2882 } 2883 leaf pcc-id { 2884 type inet:ip-address; 2885 description 2886 "The local internet address of the PCC, that 2887 generated the PLSP-ID."; 2888 } 2889 leaf source { 2890 type leafref { 2891 path "/te:te/te:lsps-state/te:lsp/te:source"; 2892 } 2893 description 2894 "Tunnel sender address extracted from 2895 SENDER_TEMPLATE object"; 2896 reference 2897 "RFC 3209: RSVP-TE: Extensions to RSVP for 2898 LSP Tunnels"; 2899 } 2900 leaf destination { 2901 type leafref { 2902 path "/te:te/te:lsps-state/te:lsp/te:" 2903 + "destination"; 2904 } 2905 description 2906 "Tunnel endpoint address extracted from 2907 SESSION object"; 2908 reference 2909 "RFC 3209: RSVP-TE: Extensions to RSVP for 2910 LSP Tunnels"; 2911 } 2912 leaf tunnel-id { 2913 type leafref { 2914 path "/te:te/te:lsps-state/te:lsp/te:tunnel-id"; 2916 } 2917 description 2918 "Tunnel identifier used in the SESSION 2919 that remains constant over the life 2920 of the tunnel."; 2921 reference 2922 "RFC 3209: RSVP-TE: Extensions to RSVP for 2923 LSP Tunnels"; 2924 } 2925 leaf lsp-id { 2926 type leafref { 2927 path "/te:te/te:lsps-state/te:lsp/te:lsp-id"; 2928 } 2929 description 2930 "Identifier used in the SENDER_TEMPLATE 2931 and the FILTER_SPEC that can be changed 2932 to allow a sender to share resources with 2933 itself."; 2934 reference 2935 "RFC 3209: RSVP-TE: Extensions to RSVP for 2936 LSP Tunnels"; 2937 } 2938 leaf extended-tunnel-id { 2939 type leafref { 2940 path "/te:te/te:lsps-state/te:lsp/te:" 2941 + "extended-tunnel-id"; 2942 } 2943 description 2944 "Extended Tunnel ID of the LSP."; 2945 reference 2946 "RFC 3209: RSVP-TE: Extensions to RSVP for 2947 LSP Tunnels"; 2948 } 2949 leaf admin-state { 2950 type boolean; 2951 description 2952 "The desired operational state"; 2953 } 2954 leaf operational-state { 2955 type operational-state; 2956 description 2957 "The operational status of the LSP"; 2958 } 2959 container delegated { 2960 description 2961 "The delegation related parameters"; 2962 leaf enabled { 2963 type boolean; 2964 description 2965 "LSP is delegated or not"; 2966 } 2967 leaf peer { 2968 type leafref { 2969 path "/pcep/entity/peers/peer/addr"; 2970 } 2971 must '(../enabled = true())' { 2972 error-message "The LSP must be delegated"; 2973 } 2974 description 2975 "At the PCC, the reference to the PCEP peer to 2976 which LSP is delegated; At the PCE, the 2977 reference to the PCEP peer which delegated this 2978 LSP"; 2979 } 2980 leaf srp-id { 2981 type uint32; 2982 description 2983 "The last SRP-ID-number associated with this 2984 LSP."; 2985 } 2986 } 2987 container initiation { 2988 if-feature "pce-initiated"; 2989 description 2990 "The PCE initiation related parameters"; 2991 reference 2992 "RFC 8281: Path Computation Element Communication 2993 Protocol (PCEP) Extensions for PCE-Initiated LSP 2994 Setup in a Stateful PCE Model"; 2995 leaf enabled { 2996 type boolean; 2997 description 2998 "Set to true if this LSP is initiated by a PCE"; 2999 } 3000 leaf peer { 3001 type leafref { 3002 path "/pcep/entity/peers/peer/addr"; 3003 } 3004 must '(../enabled = true())' { 3005 error-message "The LSP must be PCE-Initiated"; 3006 } 3007 description 3008 "At the PCC, the reference to the PCEP peer 3009 that initiated this LSP; At the PCE, the 3010 reference to the PCEP peer where the LSP 3011 is initiated"; 3013 } 3014 } 3015 leaf symbolic-path-name { 3016 type string; 3017 description 3018 "The symbolic path name associated with the LSP."; 3019 reference 3020 "RFC 8231: Path Computation Element Communication 3021 Protocol (PCEP) Extensions for Stateful PCE"; 3022 } 3023 leaf last-error { 3024 type identityref { 3025 base lsp-error; 3026 } 3027 description 3028 "The last error for the LSP."; 3029 } 3030 leaf pst { 3031 type identityref { 3032 base te-types:path-signaling-type; 3033 } 3034 default "te-types:path-setup-rsvp"; 3035 description 3036 "The Path Setup Type"; 3037 reference 3038 "RFC 8408: Conveying Path Setup Type in PCE 3039 Communication Protocol (PCEP) Messages"; 3040 } 3041 list association-list { 3042 if-feature "association"; 3043 key "type id source global-source extended-id"; 3044 description 3045 "List of all PCEP associations"; 3046 leaf type { 3047 type leafref { 3048 path "/pcep/entity/lsp-db/" 3049 + "association-list/type"; 3050 } 3051 description 3052 "PCEP Association Type"; 3053 } 3054 leaf id { 3055 type leafref { 3056 path "/pcep/entity/lsp-db/" 3057 + "association-list/id"; 3058 } 3059 description 3060 "PCEP Association ID"; 3062 } 3063 leaf source { 3064 type leafref { 3065 path "/pcep/entity/lsp-db/" 3066 + "association-list/source"; 3067 } 3068 description 3069 "PCEP Association Source."; 3070 } 3071 leaf global-source { 3072 type leafref { 3073 path "/pcep/entity/lsp-db/" 3074 + "association-list/global-source"; 3075 } 3076 description 3077 "PCEP Association Global Source."; 3078 } 3079 leaf extended-id { 3080 type leafref { 3081 path "/pcep/entity/lsp-db/" 3082 + "association-list/extended-id"; 3083 } 3084 description 3085 "Additional information to 3086 support unique identification."; 3087 } 3088 reference 3089 "I-D.ietf-pce-association-group: PCEP 3090 Extensions for Establishing Relationships 3091 Between Sets of LSPs"; 3092 } 3093 } 3094 } 3095 container path-keys { 3096 when "../role = 'pce' or ../role = 'pcc-and-pce'" { 3097 description 3098 "These fields are applicable when the role is 3099 PCE"; 3100 } 3101 if-feature "path-key"; 3102 config false; 3103 description 3104 "The path-keys generated by the PCE"; 3105 reference 3106 "RFC 5520: Preserving Topology Confidentiality 3107 in Inter-Domain Path Computation Using a Path- 3108 Key-Based Mechanism"; 3109 list path-keys { 3110 key "path-key"; 3111 description 3112 "The list of path-keys generated by the PCE"; 3113 leaf path-key { 3114 type uint16; 3115 description 3116 "The identifier, or token used to represent 3117 the Confidential Path Segment (CPS) within 3118 the context of the PCE"; 3119 } 3120 container cps { 3121 description 3122 "The Confidential Path Segment (CPS)"; 3123 list explicit-route-objects { 3124 key "index"; 3125 description 3126 "List of explicit route objects"; 3127 leaf index { 3128 type uint32; 3129 description 3130 "ERO subobject index"; 3131 } 3132 uses te-types:explicit-route-hop; 3133 } 3134 } 3135 leaf pcc-original { 3136 type leafref { 3137 path "/pcep/entity/peers/peer/addr"; 3138 } 3139 description 3140 "Reference to PCC peer address of 3141 the original request"; 3142 } 3143 leaf req-id { 3144 type uint32; 3145 description 3146 "The request ID of the original PCReq."; 3147 } 3148 leaf retrieved { 3149 type boolean; 3150 description 3151 "If path-key has been retrieved yet"; 3152 } 3153 leaf pcc-retrieved { 3154 type leafref { 3155 path "/pcep/entity/peers/peer/addr"; 3156 } 3157 must '(../retrieved = true())' { 3158 error-message "The Path-key should be retreived"; 3159 } 3160 description 3161 "Reference to PCC peer address which 3162 retreived the path-key"; 3163 } 3164 leaf creation-time { 3165 type yang:timestamp; 3166 description 3167 "The timestamp value at the time this Path-Key 3168 was created."; 3169 } 3170 leaf discard-time { 3171 type uint32; 3172 units "minutes"; 3173 description 3174 "A time after which this path-keys will be 3175 discarded"; 3176 } 3177 leaf reuse-time { 3178 type uint32; 3179 units "minutes"; 3180 description 3181 "A time after which this path-keys could be 3182 reused"; 3183 } 3184 } 3185 } 3186 container peers { 3187 description 3188 "The list of configured peers for the 3189 entity (remote PCE)"; 3190 list peer { 3191 key "addr"; 3192 description 3193 "The peer configured for the entity. 3194 (remote PCE)"; 3195 leaf addr { 3196 type inet:ip-address; 3197 description 3198 "The local Internet address of this 3199 PCEP peer."; 3200 } 3201 leaf role { 3202 type pcep-role; 3203 mandatory true; 3204 description 3205 "The role of the PCEP Peer. 3207 Takes one of the following values. 3208 - unknown(0): this PCEP peer role is not 3209 known. 3210 - pcc(1): this PCEP peer is a PCC. 3211 - pce(2): this PCEP peer is a PCE. 3212 - pcc-and-pce(3): this PCEP peer 3213 is both a PCC and a PCE."; 3214 } 3215 leaf description { 3216 type string; 3217 description 3218 "Description of the PCEP peer 3219 configured by the user"; 3220 } 3221 uses info { 3222 description 3223 "PCE Peer information"; 3224 } 3225 container pce-info { 3226 uses pce-info { 3227 description 3228 "PCE Peer information"; 3229 } 3230 description 3231 "The PCE Peer information"; 3232 } 3233 leaf delegation-pref { 3234 if-feature "stateful"; 3235 type uint8 { 3236 range "0..7"; 3237 } 3238 description 3239 "The PCE peer delegation preference."; 3240 } 3241 container auth { 3242 description 3243 "The Authentication options"; 3244 choice auth-type-selection { 3245 description 3246 "Options for expressing authentication 3247 setting."; 3248 case auth-key-chain { 3249 leaf key-chain { 3250 type key-chain:key-chain-ref; 3251 description 3252 "key-chain name."; 3253 } 3254 } 3255 case auth-key { 3256 leaf crypto-algorithm { 3257 type identityref { 3258 base key-chain:crypto-algorithm; 3259 } 3260 mandatory true; 3261 description 3262 "Cryptographic algorithm associated 3263 with key."; 3264 } 3265 choice key-string-style { 3266 description 3267 "Key string styles"; 3268 case keystring { 3269 leaf keystring { 3270 nacm:default-deny-all; 3271 type string; 3272 description 3273 "Key string in ASCII format."; 3274 } 3275 } 3276 case hexadecimal { 3277 if-feature "key-chain:hex-key-string"; 3278 leaf hexadecimal-string { 3279 nacm:default-deny-all; 3280 type yang:hex-string; 3281 description 3282 "Key in hexadecimal string format. When 3283 compared to ASCII, specification in 3284 hexadecimal affords greater key entropy 3285 with the same number of internal 3286 key-string octets. Additionally, it 3287 discourages usage of well-known words or 3288 numbers."; 3289 } 3290 } 3291 } 3292 } 3293 case auth-tls { 3294 if-feature "tls"; 3295 choice role { 3296 description 3297 "The role of the local entity"; 3298 case server { 3299 container tls-server { 3300 uses tlss:tls-server-grouping { 3301 description 3302 "Server TLS information."; 3304 } 3305 description 3306 "TLS related information"; 3307 } 3308 } 3309 case client { 3310 container tls-client { 3311 uses tlsc:tls-client-grouping { 3312 description 3313 "Client TLS information."; 3314 } 3315 description 3316 "TLS related information"; 3317 } 3318 } 3319 } 3320 } 3321 } 3322 } 3323 leaf discontinuity-time { 3324 type yang:timestamp; 3325 config false; 3326 description 3327 "The timestamp of the time when the information and 3328 statistics were last reset."; 3329 } 3330 leaf initiate-session { 3331 type boolean; 3332 config false; 3333 description 3334 "Indicates whether the local PCEP entity initiates 3335 sessions to this peer, or waits for the peer to 3336 initiate a session."; 3337 } 3338 leaf session-exists { 3339 type boolean; 3340 config false; 3341 description 3342 "Indicates whether a session with 3343 this peer currently exists."; 3344 } 3345 leaf session-up-time { 3346 type yang:timestamp; 3347 config false; 3348 description 3349 "The timestamp value of the last time a 3350 session with this peer was successfully 3351 established."; 3353 } 3354 leaf session-fail-time { 3355 type yang:timestamp; 3356 config false; 3357 description 3358 "The timestamp value of the last time a 3359 session with this peer failed to be 3360 established."; 3361 } 3362 leaf session-fail-up-time { 3363 type yang:timestamp; 3364 config false; 3365 description 3366 "The timestamp value of the last time a 3367 session with this peer failed from 3368 active."; 3369 } 3370 container sessions { 3371 config false; 3372 description 3373 "This entry represents a single PCEP 3374 session in which the local PCEP entity participates. 3375 This entry exists only if the corresponding PCEP 3376 session has been initialized by some event, such as 3377 manual user configuration, auto-discovery of a peer, 3378 or an incoming TCP connection."; 3379 list session { 3380 key "initiator"; 3381 description 3382 "The list of sessions, note that for a time being 3383 two sessions may exist for a peer"; 3384 leaf initiator { 3385 type pcep-initiator; 3386 description 3387 "The initiator of the session,that is, whether 3388 the TCP connection was initiated by the local 3389 PCEP entity or the peer. 3390 There is a window during session 3391 initialization where two sessions can exist 3392 between a pair of PCEP speakers, each 3393 initiated by one of the speakers. One of 3394 these sessions is always discarded before it 3395 leaves OpenWait state. However, before it is 3396 discarded, two sessions to the given peer 3397 appear transiently in this yang module. The 3398 sessions are distinguished by who initiated 3399 them, and so this field is the key."; 3400 } 3401 leaf role { 3402 type leafref { 3403 path "/pcep/entity/role"; 3404 } 3405 description 3406 "The reference to peer role ."; 3407 } 3408 leaf state-last-change { 3409 type yang:timestamp; 3410 description 3411 "The timestamp value at the time this 3412 session entered its current state as 3413 denoted by the state leaf."; 3414 } 3415 leaf state { 3416 type pcep-sess-state; 3417 description 3418 "The current state of the session. 3419 The set of possible states excludes the 3420 idle state since entries do not exist 3421 in the idle state."; 3422 } 3423 leaf session-creation { 3424 type yang:timestamp; 3425 description 3426 "The timestamp value at the time this 3427 session was created."; 3428 } 3429 leaf connect-retry { 3430 type yang:counter32; 3431 description 3432 "The number of times that the local PCEP 3433 entity has attempted to establish a TCP 3434 connection for this session without 3435 success. The PCEP entity gives up when 3436 this reaches connect-max-retry."; 3437 } 3438 leaf local-id { 3439 type uint8; 3440 description 3441 "The value of the PCEP session ID used by 3442 the local PCEP entity in the Open message 3443 for this session. If state is tcp-pending 3444 then this is the session ID that will be 3445 used in the Open message. Otherwise, this 3446 is the session ID that was sent in the 3447 Open message."; 3448 reference 3449 "RFC 5440: Path Computation Element (PCE) 3450 Communication Protocol (PCEP)"; 3451 } 3452 leaf remote-id { 3453 type uint8; 3454 must "((../state != 'tcp-pending'" 3455 + "and " 3456 + "../state != 'open-wait' )" 3457 + "or " 3458 + "((../state = 'tcp-pending'" 3459 + " or " 3460 + "../state = 'open-wait' )" 3461 + "and (. = 0)))" { 3462 error-message "Invalid remote-id"; 3463 description 3464 "If state is tcp-pending or open-wait then 3465 this leaf is not used and MUST be set to 3466 zero."; 3467 } 3468 description 3469 "The value of the PCEP session ID used by the 3470 peer in its Open message for this session."; 3471 reference 3472 "RFC 5440: Path Computation Element (PCE) 3473 Communication Protocol (PCEP)"; 3474 } 3475 leaf keepalive-timer { 3476 type uint8; 3477 units "seconds"; 3478 must "(../state = 'session-up'" 3479 + "or " 3480 + "(../state != 'session-up'" 3481 + "and (. = 0)))" { 3482 error-message "Invalid keepalive timer"; 3483 description 3484 "This field is used if and only if state is 3485 session-up. Otherwise, it is not used and 3486 MUST be set to zero."; 3487 } 3488 description 3489 "The agreed maximum interval at which the local 3490 PCEP entity transmits PCEP messages on this PCEP 3491 session. Zero means that the local PCEP entity 3492 never sends Keepalives on this session."; 3493 reference 3494 "RFC 5440: Path Computation Element (PCE) 3495 Communication Protocol (PCEP)"; 3496 } 3497 leaf peer-keepalive-timer { 3498 type uint8; 3499 units "seconds"; 3500 must "(../state = 'session-up'" 3501 + "or " 3502 + "(../state != 'session-up'" 3503 + "and " 3504 + "(. = 0)))" { 3505 error-message "Invalid Peer keepalive timer"; 3506 description 3507 "This field is used if and only if state is 3508 session-up. Otherwise, it is not used and MUST 3509 be set to zero."; 3510 } 3511 description 3512 "The agreed maximum interval at which the peer 3513 transmits PCEP messages on this PCEP session. 3514 Zero means that the peer never sends Keepalives 3515 on this session."; 3516 reference 3517 "RFC 5440: Path Computation Element (PCE) 3518 Communication Protocol (PCEP)"; 3519 } 3520 leaf dead-timer { 3521 type uint8; 3522 units "seconds"; 3523 description 3524 "The dead timer interval for this PCEP session."; 3525 reference 3526 "RFC 5440: Path Computation Element (PCE) 3527 Communication Protocol (PCEP)"; 3528 } 3529 leaf peer-dead-timer { 3530 type uint8; 3531 units "seconds"; 3532 must "((../state != 'tcp-pending'" 3533 + "and " 3534 + "../state != 'open-wait' )" 3535 + "or " 3536 + "((../state = 'tcp-pending'" 3537 + " or " 3538 + "../state = 'open-wait' )" 3539 + "and " 3540 + "(. = 0)))" { 3541 error-message "Invalid Peer Dead timer"; 3542 description 3543 "If state is tcp-pending or open-wait then this 3544 leaf is not used and MUST be set to zero."; 3546 } 3547 description 3548 "The peer's dead-timer interval 3549 for this PCEP session."; 3550 reference 3551 "RFC 5440: Path Computation Element (PCE) 3552 Communication Protocol (PCEP)"; 3553 } 3554 leaf ka-hold-time-rem { 3555 type uint8; 3556 units "seconds"; 3557 must "((../state != 'tcp-pending'" 3558 + "and " 3559 + "../state != 'open-wait' ) " 3560 + "or " 3561 + "((../state = 'tcp-pending'" 3562 + "or " 3563 + "../state = 'open-wait' )" 3564 + "and " 3565 + "(. = 0)))" { 3566 error-message 3567 "Invalid Keepalive hold time remaining"; 3568 description 3569 "If state is tcp-pending or open-wait then this 3570 field is not used and MUST be set to zero."; 3571 } 3572 description 3573 "The keep alive hold time remaining for this 3574 session."; 3575 } 3576 leaf overloaded { 3577 type boolean; 3578 description 3579 "If the local PCEP entity has informed the peer that 3580 it is currently overloaded, then this is set to true. 3581 Otherwise, it is set to false."; 3582 reference 3583 "RFC 5440: Path Computation Element (PCE) 3584 Communication Protocol (PCEP)"; 3585 } 3586 leaf overload-time { 3587 type uint32; 3588 units "seconds"; 3589 must '((../overloaded = true()) ' 3590 + 'or ((../overloaded != true()) ' 3591 + 'and (. = 0)))' { 3592 error-message "Invalid overload-time"; 3593 description 3594 "This field is only used if overloaded is set to 3595 true. Otherwise, it is not used and MUST be set 3596 to zero."; 3597 } 3598 description 3599 "The interval of time that is remaining until the 3600 local PCEP entity will cease to be overloaded on 3601 this session."; 3602 reference 3603 "RFC 5440: Path Computation Element (PCE) 3604 Communication Protocol (PCEP)"; 3605 } 3606 leaf peer-overloaded { 3607 type boolean; 3608 description 3609 "If the peer has informed the local PCEP entity 3610 that it is currently overloaded, then this is 3611 set to true. Otherwise, it is set to false."; 3612 reference 3613 "RFC 5440: Path Computation Element (PCE) 3614 Communication Protocol (PCEP)"; 3615 } 3616 leaf peer-overload-time { 3617 type uint32; 3618 units "seconds"; 3619 must '((../peer-overloaded = ' 3620 + 'true()) or ' 3621 + '((../peer-overloaded !=' 3622 + 'true())' 3623 + ' and ' 3624 + '(. = 0)))' { 3625 error-message "Invalid peer overload time"; 3626 description 3627 "This field is only used if peer-overloaded 3628 is set to true. Otherwise, it is not used 3629 and MUST be set to zero."; 3630 } 3631 description 3632 "The interval of time that is remaining until 3633 the peer will cease to be overloaded. If it 3634 is not known how long the peer will stay in 3635 overloaded state, this leaf is set to zero."; 3636 reference 3637 "RFC 5440: Path Computation Element (PCE) 3638 Communication Protocol (PCEP)"; 3639 } 3640 leaf lspdb-sync { 3641 if-feature "stateful"; 3642 type sync-state; 3643 description 3644 "The LSP-DB state synchronization status."; 3645 reference 3646 "RFC 8231: Path Computation Element Communication 3647 Protocol (PCEP) Extensions for Stateful PCE"; 3648 } 3649 leaf recv-db-ver { 3650 when "../role = 'pcc'" 3651 + "or " 3652 + "../role = 'pcc-and-pce'" { 3653 description 3654 "This field is applicable when the role is 3655 PCC"; 3656 } 3657 if-feature "stateful"; 3658 if-feature "sync-opt"; 3659 type uint64; 3660 description 3661 "The last received LSP State Database Version 3662 Number"; 3663 reference 3664 "RFC 8231: Path Computation Element Communication 3665 Protocol (PCEP) Extensions for Stateful PCE"; 3666 } 3667 container of-list { 3668 when "../role = 'pce'" 3669 + "or " 3670 + "../role = 'pcc-and-pce'" { 3671 description 3672 "These fields are applicable when the role is 3673 PCE"; 3674 } 3675 if-feature "objective-function"; 3676 uses of-list; 3677 description 3678 "Indicate the list of supported OF on this 3679 session"; 3680 reference 3681 "RFC 5541: Encoding of Objective Functions in 3682 the Path Computation Element Communication 3683 Protocol (PCEP)"; 3684 } 3685 container pst-list { 3686 when "../role = 'pce'" 3687 + "or " 3688 + "../role = 'pcc-and-pce'" { 3689 description 3690 "These fields are applicable when the role is 3691 PCE"; 3692 } 3693 description 3694 "Indicate the list of supported 3695 PST on this session"; 3696 reference 3697 "RFC 8408: Conveying Path Setup Type in PCE 3698 Communication Protocol (PCEP) Messages"; 3699 list path-setup-type { 3700 key "pst"; 3701 description 3702 "The list of authorized PST"; 3703 leaf pst { 3704 type identityref { 3705 base te-types:path-signaling-type; 3706 } 3707 description 3708 "The PST authorized"; 3709 } 3710 } 3711 } 3712 container assoc-type-list { 3713 if-feature "association"; 3714 description 3715 "Indicate the list of supported association types 3716 on this session"; 3717 reference 3718 "I-D.ietf-pce-association-group: PCEP 3719 Extensions for Establishing Relationships 3720 Between Sets of LSPs"; 3721 list assoc-type { 3722 key "at"; 3723 description 3724 "The list of authorized association types"; 3725 leaf at { 3726 type identityref { 3727 base te-types:association-type; 3728 } 3729 description 3730 "The association type authorized"; 3731 } 3732 } 3733 } 3734 leaf speaker-entity-id { 3735 if-feature "sync-opt"; 3736 type string; 3737 description 3738 "The Speaker Entity Identifier"; 3739 reference 3740 "RFC 8232: Optimizations of Label Switched 3741 Path State Synchronization Procedures for 3742 a Stateful PCE"; 3743 } 3744 leaf discontinuity-time { 3745 type yang:timestamp; 3746 description 3747 "The timestamp value of the time when the 3748 statistics were last reset."; 3749 } 3750 } 3751 // session 3752 } 3753 // sessions 3754 } 3755 //peer 3756 } 3757 //peers 3758 } 3759 //entity 3760 } 3762 //pcep 3763 /* 3764 * Notifications 3765 */ 3767 notification pcep-session-up { 3768 description 3769 "This notification is sent when the value of 3770 '/pcep/peers/peer/sessions/session/state' 3771 enters the 'session-up' state."; 3772 uses notification-instance-hdr; 3773 uses notification-session-hdr; 3774 leaf state-last-change { 3775 type yang:timestamp; 3776 description 3777 "The timestamp value at the time this session 3778 entered its current state as denoted by the state 3779 leaf."; 3780 } 3781 leaf state { 3782 type pcep-sess-state; 3783 description 3784 "The current state of the session. 3785 The set of possible states excludes the idle state 3786 since entries do not exist in the idle state."; 3787 } 3788 reference 3789 "RFC 5440: Path Computation Element (PCE) Communication 3790 Protocol (PCEP)"; 3791 } 3793 //notification 3795 notification pcep-session-down { 3796 description 3797 "This notification is sent when the value of 3798 '/pcep/peers/peer/sessions/session/state' 3799 leaves the 'session-up' state."; 3800 uses notification-instance-hdr; 3801 leaf session-initiator { 3802 type pcep-initiator; 3803 description 3804 "The initiator of the session."; 3805 } 3806 leaf state-last-change { 3807 type yang:timestamp; 3808 description 3809 "The timestamp value at the time this session 3810 entered its current state as denoted by the state 3811 leaf."; 3812 } 3813 leaf state { 3814 type pcep-sess-state; 3815 description 3816 "The current state of the session. 3817 The set of possible states excludes the idle state 3818 since entries do not exist in the idle state."; 3819 } 3820 reference 3821 "RFC 5440: Path Computation Element (PCE) Communication 3822 Protocol (PCEP)"; 3823 } 3825 //notification 3827 notification pcep-session-local-overload { 3828 description 3829 "This notification is sent when the local PCEP entity 3830 enters overload state for a peer."; 3831 uses notification-instance-hdr; 3832 uses notification-session-hdr; 3833 leaf overloaded { 3834 type boolean; 3835 description 3836 "If the local PCEP entity has informed the peer 3837 that it is currently overloaded, then this is set 3838 to true. Otherwise, it is set to false."; 3839 } 3840 leaf overload-time { 3841 type uint32; 3842 units "seconds"; 3843 description 3844 "The interval of time that is remaining until the 3845 local PCEP entity will cease to be overloaded on 3846 this session."; 3847 } 3848 reference 3849 "RFC 5440: Path Computation Element (PCE) Communication 3850 Protocol (PCEP)"; 3851 } 3853 //notification 3855 notification pcep-session-local-overload-clear { 3856 description 3857 "This notification is sent when the local PCEP entity 3858 leaves overload state for a peer."; 3859 uses notification-instance-hdr; 3860 leaf overloaded { 3861 type boolean; 3862 description 3863 "If the local PCEP entity has informed the peer 3864 that it is currently overloaded, then this is set 3865 to true. Otherwise, it is set to false."; 3866 } 3867 reference 3868 "RFC 5440: Path Computation Element (PCE) Communication 3869 Protocol (PCEP)"; 3870 } 3872 //notification 3874 notification pcep-session-peer-overload { 3875 description 3876 "This notification is sent when a peer enters overload 3877 state."; 3878 uses notification-instance-hdr; 3879 uses notification-session-hdr; 3880 leaf peer-overloaded { 3881 type boolean; 3882 description 3883 "If the peer has informed the local PCEP entity that 3884 it is currently overloaded, then this is set to 3885 true. Otherwise, it is set to false."; 3886 } 3887 leaf peer-overload-time { 3888 type uint32; 3889 units "seconds"; 3890 description 3891 "The interval of time that is remaining until the 3892 peer will cease to be overloaded. If it is not 3893 known how long the peer will stay in overloaded 3894 state, this leaf is set to zero."; 3895 } 3896 reference 3897 "RFC 5440: Path Computation Element (PCE) Communication 3898 Protocol (PCEP)"; 3899 } 3901 //notification 3903 notification pcep-session-peer-overload-clear { 3904 description 3905 "This notification is sent when a peer leaves overload 3906 state."; 3907 uses notification-instance-hdr; 3908 leaf peer-overloaded { 3909 type boolean; 3910 description 3911 "If the peer has informed the local PCEP entity that 3912 it is currently overloaded, then this is set to 3913 true. Otherwise, it is set to false."; 3914 } 3915 reference 3916 "RFC 5440: Path Computation Element (PCE) Communication 3917 Protocol (PCEP)"; 3918 } 3920 //notification 3921 /* 3922 * RPC 3923 */ 3925 rpc trigger-resync { 3926 if-feature "stateful"; 3927 if-feature "sync-opt"; 3928 description 3929 "Trigger the resyncrinization at the PCE"; 3931 reference 3932 "RFC 8232: Optimizations of Label Switched Path State 3933 Synchronization Procedures for a Stateful PCE"; 3934 input { 3935 leaf pcc { 3936 type leafref { 3937 path "/pcep/entity/peers/peer/addr"; 3938 } 3939 description 3940 "The IP address to identify the PCC. The state 3941 syncronization is re-triggered for all LSPs from 3942 the PCC. The rpc on the PCC will be ignored."; 3943 } 3944 } 3945 //input 3946 } 3948 //rpc 3949 } 3951 3953 10.2. ietf-pcep-stats module 3955 file "ietf-pcep-stats@2019-07-01.yang" 3956 module ietf-pcep-stats { 3958 yang-version 1.1; 3960 namespace "urn:ietf:params:xml:ns:yang:ietf-pcep-stats"; 3962 prefix pcep-stats; 3964 import ietf-pcep { 3965 prefix pcep; 3966 reference 3967 "RFC XXXX: A YANG Data Model for Path Computation 3968 Element Communications Protocol (PCEP)"; 3969 } 3970 import ietf-yang-types { 3971 prefix yang; 3972 reference 3973 "RFC 6991: Common YANG Data Types"; 3974 } 3976 organization 3977 "IETF PCE (Path Computation Element) Working Group"; 3979 contact 3980 "WG Web: 3981 WG List: 3982 Editor: Dhruv Dhody 3983 "; 3984 description 3985 "The YANG module augments the PCEP yang operational 3986 model with statistics, counters and telemetry data. 3988 Copyright (c) 2019 IETF Trust and the persons identified as 3989 authors of the code. All rights reserved. 3991 Redistribution and use in source and binary forms, with or 3992 without modification, is permitted pursuant to, and subject 3993 to the license terms contained in, the Simplified BSD License 3994 set forth in Section 4.c of the IETF Trust's Legal Provisions 3995 Relating to IETF Documents 3996 (https://trustee.ietf.org/license-info). 3998 This version of this YANG module is part of RFC XXXX; see the 3999 RFC itself for full legal notices."; 4001 revision 2019-07-01 { 4002 description 4003 "Initial revision."; 4004 reference 4005 "RFC XXXX: A YANG Data Model for Path Computation 4006 Element Communications Protocol (PCEP)"; 4007 } 4009 /* 4010 * Groupings 4011 */ 4013 grouping pcep-stats { 4014 description 4015 "This grouping defines statistics for PCEP. It is used 4016 for both peer and current session."; 4017 leaf avg-rsp-time { 4018 when "../../pcep:role = 'pce'" 4019 + "or " 4020 + "../../pcep:role = 'pcc-and-pce'" { 4021 description 4022 "Valid for PCEP Peer as PCE"; 4023 } 4024 type uint32; 4025 units "milliseconds"; 4026 description 4027 "The average response time. If an average response time 4028 has not been calculated then this leaf has the value 4029 zero."; 4030 } 4031 leaf lwm-rsp-time { 4032 when "../../pcep:role = 'pce'" 4033 + "or " 4034 + "../../pcep:role = 'pcc-and-pce'" { 4035 description 4036 "Valid for PCEP Peer as PCE"; 4037 } 4038 type uint32; 4039 units "milliseconds"; 4040 description 4041 "The smallest (low-water mark) response time seen. 4042 If no responses have been received then this leaf has 4043 the value zero."; 4044 } 4045 leaf hwm-rsp-time { 4046 when "../../pcep:role = 'pce'" 4047 + "or " 4048 + "../../pcep:role = 'pcc-and-pce'" { 4049 description 4050 "Valid for PCEP Peer as PCE"; 4051 } 4052 type uint32; 4053 units "milliseconds"; 4054 description 4055 "The greatest (high-water mark) response time seen. 4056 If no responses have been received then this object 4057 has the value zero."; 4058 } 4059 leaf num-pcreq-sent { 4060 when "../../pcep:role = 'pce'" 4061 + "or " 4062 + "../../pcep:role = 'pcc-and-pce'" { 4063 description 4064 "Valid for PCEP Peer as PCE"; 4065 } 4066 type yang:counter32; 4067 description 4068 "The number of PCReq messages sent."; 4069 } 4070 leaf num-pcreq-rcvd { 4071 when "../../pcep:role = 'pcc'" 4072 + "or " 4073 + "../../pcep:role = 'pcc-and-pce'" { 4074 description 4075 "Valid for PCEP Peer as PCC"; 4076 } 4077 type yang:counter32; 4078 description 4079 "The number of PCReq messages received."; 4080 } 4081 leaf num-pcrep-sent { 4082 when "../../pcep:role = 'pcc'" 4083 + "or " 4084 + "../../pcep:role = 'pcc-and-pce'" { 4085 description 4086 "Valid for PCEP Peer as PCC"; 4087 } 4088 type yang:counter32; 4089 description 4090 "The number of PCRep messages sent."; 4091 } 4092 leaf num-pcrep-rcvd { 4093 when "../../pcep:role = 'pce'" 4094 + "or " 4095 + "../../pcep:role = 'pcc-and-pce'" { 4096 description 4097 "Valid for PCEP Peer as PCE"; 4098 } 4099 type yang:counter32; 4100 description 4101 "The number of PCRep messages received."; 4102 } 4103 leaf num-pcerr-sent { 4104 type yang:counter32; 4105 description 4106 "The number of PCErr messages sent."; 4107 } 4108 leaf num-pcerr-rcvd { 4109 type yang:counter32; 4110 description 4111 "The number of PCErr messages received."; 4112 } 4113 leaf num-pcntf-sent { 4114 type yang:counter32; 4115 description 4116 "The number of PCNtf messages sent."; 4117 } 4118 leaf num-pcntf-rcvd { 4119 type yang:counter32; 4120 description 4121 "The number of PCNtf messages received."; 4122 } 4123 leaf num-keepalive-sent { 4124 type yang:counter32; 4125 description 4126 "The number of Keepalive messages sent."; 4127 } 4128 leaf num-keepalive-rcvd { 4129 type yang:counter32; 4130 description 4131 "The number of Keepalive messages received."; 4132 } 4133 leaf num-unknown-rcvd { 4134 type yang:counter32; 4135 description 4136 "The number of unknown messages received."; 4137 } 4138 leaf num-corrupt-rcvd { 4139 type yang:counter32; 4140 description 4141 "The number of corrupted PCEP message received."; 4142 } 4143 leaf num-req-sent { 4144 when "../../pcep:role = 'pce'" 4145 + "or " 4146 + "../../pcep:role = 'pcc-and-pce'" { 4147 description 4148 "Valid for PCEP Peer as PCE"; 4149 } 4150 type yang:counter32; 4151 description 4152 "The number of requests sent. A request corresponds 4153 1:1 with an RP object in a PCReq message. This might 4154 be greater than num-pcreq-sent because multiple 4155 requests can be batched into a single PCReq 4156 message."; 4157 } 4158 leaf num-req-sent-pend-rep { 4159 when "../../pcep:role = 'pce'" 4160 + "or " 4161 + "../../pcep:role = 'pcc-and-pce'" { 4162 description 4163 "Valid for PCEP Peer as PCE"; 4164 } 4165 type yang:counter32; 4166 description 4167 "The number of requests that have been sent for 4168 which a response is still pending."; 4169 } 4170 leaf num-req-sent-ero-rcvd { 4171 when "../../pcep:role = 'pce'" 4172 + "or " 4173 + "../../pcep:role = 'pcc-and-pce'" { 4174 description 4175 "Valid for PCEP Peer as PCE"; 4176 } 4177 type yang:counter32; 4178 description 4179 "The number of requests that have been sent for 4180 which a response with an ERO object was received. 4181 Such responses indicate that a path was 4182 successfully computed by the peer."; 4183 } 4184 leaf num-req-sent-nopath-rcvd { 4185 when "../../pcep:role = 'pce'" 4186 + "or " 4187 + "../../pcep:role = 'pcc-and-pce'" { 4188 description 4189 "Valid for PCEP Peer as PCE"; 4190 } 4191 type yang:counter32; 4192 description 4193 "The number of requests that have been sent for 4194 which a response with a NO-PATH object was 4195 received. Such responses indicate that the peer 4196 could not find a path to satisfy the 4197 request."; 4198 } 4199 leaf num-req-sent-cancel-rcvd { 4200 when "../../pcep:role = 'pce'" 4201 + "or " 4202 + "../../pcep:role = 'pcc-and-pce'" { 4203 description 4204 "Valid for PCEP Peer as PCE"; 4205 } 4206 type yang:counter32; 4207 description 4208 "The number of requests that were cancelled with 4209 a PCNtf message. This might be different than 4210 num-pcntf-rcvd because not all PCNtf messages are 4211 used to cancel requests, and a single PCNtf message 4212 can cancel multiple requests."; 4213 } 4214 leaf num-req-sent-error-rcvd { 4215 when "../../pcep:role = 'pce'" 4216 + "or " 4217 + "../../pcep:role = 'pcc-and-pce'" { 4218 description 4219 "Valid for PCEP Peer as PCE"; 4220 } 4221 type yang:counter32; 4222 description 4223 "The number of requests that were rejected with a 4224 PCErr message. This might be different than 4225 num-pcerr-rcvd because not all PCErr messages are 4226 used to reject requests, and a single PCErr message 4227 can reject multiple requests."; 4228 } 4229 leaf num-req-sent-timeout { 4230 when "../../pcep:role = 'pce'" 4231 + "or " 4232 + "../../pcep:role = 'pcc-and-pce'" { 4233 description 4234 "Valid for PCEP Peer as PCE"; 4235 } 4236 type yang:counter32; 4237 description 4238 "The number of requests that have been sent to a peer 4239 and have been abandoned because the peer has taken too 4240 long to respond to them."; 4241 } 4242 leaf num-req-sent-cancel-sent { 4243 when "../../pcep:role = 'pce'" 4244 + "or " 4245 + "../../pcep:role = 'pcc-and-pce'" { 4246 description 4247 "Valid for PCEP Peer as PCE"; 4248 } 4249 type yang:counter32; 4250 description 4251 "The number of requests that were sent to the peer and 4252 explicitly cancelled by the local PCEP entity sending 4253 a PCNtf."; 4254 } 4255 leaf num-req-rcvd { 4256 when "../../pcep:role = 'pcc'" 4257 + "or " 4258 + "../../pcep:role = 'pcc-and-pce'" { 4259 description 4260 "Valid for PCEP Peer as PCC"; 4261 } 4262 type yang:counter32; 4263 description 4264 "The number of requests received. A request 4265 corresponds 1:1 with an RP object in a PCReq 4266 message. 4268 This might be greater than num-pcreq-rcvd because 4269 multiple requests can be batched into a single 4270 PCReq message."; 4271 } 4272 leaf num-req-rcvd-pend-rep { 4273 when "../../pcep:role = 'pcc'" 4274 + "or " 4275 + "../../pcep:role = 'pcc-and-pce'" { 4276 description 4277 "Valid for PCEP Peer as PCC"; 4278 } 4279 type yang:counter32; 4280 description 4281 "The number of requests that have been received for 4282 which a response is still pending."; 4283 } 4284 leaf num-req-rcvd-ero-sent { 4285 when "../../pcep:role = 'pcc'" 4286 + "or " 4287 + "../../pcep:role = 'pcc-and-pce'" { 4288 description 4289 "Valid for PCEP Peer as PCC"; 4290 } 4291 type yang:counter32; 4292 description 4293 "The number of requests that have been received for 4294 which a response with an ERO object was sent. Such 4295 responses indicate that a path was successfully 4296 computed by the local PCEP entity."; 4297 } 4298 leaf num-req-rcvd-nopath-sent { 4299 when "../../pcep:role = 'pcc'" 4300 + "or " 4301 + "../../pcep:role = 'pcc-and-pce'" { 4302 description 4303 "Valid for PCEP Peer as PCC"; 4304 } 4305 type yang:counter32; 4306 description 4307 "The number of requests that have been received for 4308 which a response with a NO-PATH object was sent. Such 4309 responses indicate that the local PCEP entity could 4310 not find a path to satisfy the request."; 4311 } 4312 leaf num-req-rcvd-cancel-sent { 4313 when "../../pcep:role = 'pcc'" 4314 + "or " 4315 + "../../pcep:role = 'pcc-and-pce'" { 4317 description 4318 "Valid for PCEP Peer as PCC"; 4319 } 4320 type yang:counter32; 4321 description 4322 "The number of requests received that were cancelled 4323 by the local PCEP entity sending a PCNtf message. 4324 This might be different than num-pcntf-sent because 4325 not all PCNtf messages are used to cancel requests, 4326 and a single PCNtf message can cancel multiple 4327 requests."; 4328 } 4329 leaf num-req-rcvd-error-sent { 4330 when "../../pcep:role = 'pcc'" 4331 + "or " 4332 + "../../pcep:role = 'pcc-and-pce'" { 4333 description 4334 "Valid for PCEP Peer as PCC"; 4335 } 4336 type yang:counter32; 4337 description 4338 "The number of requests received that were cancelled 4339 by the local PCEP entity sending a PCErr message. 4340 This might be different than num-pcerr-sent because 4341 not all PCErr messages are used to cancel requests, 4342 and a single PCErr message can cancel multiple 4343 requests."; 4344 } 4345 leaf num-req-rcvd-cancel-rcvd { 4346 when "../../pcep:role = 'pcc'" 4347 + "or " 4348 + "../../pcep:role = 'pcc-and-pce'" { 4349 description 4350 "Valid for PCEP Peer as PCC"; 4351 } 4352 type yang:counter32; 4353 description 4354 "The number of requests that were received from the 4355 peer and explicitly cancelled by the peer sending 4356 a PCNtf."; 4357 } 4358 leaf num-rep-rcvd-unknown { 4359 when "../../pcep:role = 'pce'" 4360 + "or " 4361 + "../../pcep:role = 'pcc-and-pce'" { 4362 description 4363 "Valid for PCEP Peer as PCE"; 4364 } 4365 type yang:counter32; 4366 description 4367 "The number of responses to unknown requests 4368 received. A response to an unknown request is a 4369 response whose RP object does not contain the 4370 request ID of any request that is currently 4371 outstanding on the session."; 4372 } 4373 leaf num-req-rcvd-unknown { 4374 when "../../pcep:role = 'pcc'" 4375 + "or " 4376 + "../../pcep:role = 'pcc-and-pce'" { 4377 description 4378 "Valid for PCEP Peer as PCC"; 4379 } 4380 type yang:counter32; 4381 description 4382 "The number of unknown requests that have been 4383 received. An unknown request is a request 4384 whose RP object contains a request ID of zero."; 4385 } 4386 container svec { 4387 if-feature "pcep:svec"; 4388 description 4389 "If synchronized path computation is supported"; 4390 leaf num-svec-sent { 4391 when "../../../pcep:role = 'pce'" 4392 + "or " 4393 + "../../../pcep:role = 'pcc-and-pce'" { 4394 description 4395 "Valid for PCEP Peer as PCE"; 4396 } 4397 type yang:counter32; 4398 description 4399 "The number of SVEC objects sent in PCReq messages. 4400 An SVEC object represents a set of synchronized 4401 requests."; 4402 } 4403 leaf num-svec-req-sent { 4404 when "../../../pcep:role = 'pce'" 4405 + "or " 4406 + "../../../pcep:role = 'pcc-and-pce'" { 4407 description 4408 "Valid for PCEP Peer as PCE"; 4409 } 4410 type yang:counter32; 4411 description 4412 "The number of requests sent that appeared in one 4413 or more SVEC objects."; 4414 } 4415 leaf num-svec-rcvd { 4416 when "../../../pcep:role = 'pcc'" 4417 + "or " 4418 + "../../../pcep:role = 'pcc-and-pce'" { 4419 description 4420 "Valid for PCEP Peer as PCC"; 4421 } 4422 type yang:counter32; 4423 description 4424 "The number of SVEC objects received in PCReq 4425 messages. An SVEC object represents a set of 4426 synchronized requests."; 4427 } 4428 leaf num-svec-req-rcvd { 4429 when "../../../pcep:role = 'pcc'" 4430 + "or " 4431 + "../../../pcep:role = 'pcc-and-pce'" { 4432 description 4433 "Valid for PCEP Peer as PCC"; 4434 } 4435 type yang:counter32; 4436 description 4437 "The number of requests received that appeared 4438 in one or more SVEC objects."; 4439 } 4440 } 4441 //svec 4442 container stateful { 4443 if-feature "pcep:stateful"; 4444 description 4445 "Stateful PCE related statistics"; 4446 leaf num-pcrpt-sent { 4447 when "../../../pcep:role = 'pce'" 4448 + "or " 4449 + "../../../pcep:role = 'pcc-and-pce'" { 4450 description 4451 "Valid for PCEP Peer as PCE"; 4452 } 4453 type yang:counter32; 4454 description 4455 "The number of PCRpt messages sent."; 4456 } 4457 leaf num-pcrpt-rcvd { 4458 when "../../../pcep:role = 'pcc'" 4459 + "or " 4460 + "../../../pcep:role = 'pcc-and-pce'" { 4462 description 4463 "Valid for PCEP Peer as PCC"; 4464 } 4465 type yang:counter32; 4466 description 4467 "The number of PCRpt messages received."; 4468 } 4469 leaf num-pcupd-sent { 4470 when "../../../pcep:role = 'pcc'" 4471 + "or " 4472 + "../../../pcep:role = 'pcc-and-pce'" { 4473 description 4474 "Valid for PCEP Peer as PCC"; 4475 } 4476 type yang:counter32; 4477 description 4478 "The number of PCUpd messages sent."; 4479 } 4480 leaf num-pcupd-rcvd { 4481 when "../../../pcep:role = 'pce'" 4482 + "or " 4483 + "../../../pcep:role = 'pcc-and-pce'" { 4484 description 4485 "Valid for PCEP Peer as PCE"; 4486 } 4487 type yang:counter32; 4488 description 4489 "The number of PCUpd messages received."; 4490 } 4491 leaf num-rpt-sent { 4492 when "../../../pcep:role = 'pce'" 4493 + "or " 4494 + "../../../pcep:role = 'pcc-and-pce'" { 4495 description 4496 "Valid for PCEP Peer as PCE"; 4497 } 4498 type yang:counter32; 4499 description 4500 "The number of LSP Reports sent. A LSP report 4501 corresponds 1:1 with an LSP object in a PCRpt 4502 message. This might be greater than 4503 num-pcrpt-sent because multiple reports can 4504 be batched into a single PCRpt message."; 4505 } 4506 leaf num-rpt-rcvd { 4507 when "../../../pcep:role = 'pcc'" 4508 + "or " 4509 + "../../../pcep:role = 'pcc-and-pce'" { 4511 description 4512 "Valid for PCEP Peer as PCC"; 4513 } 4514 type yang:counter32; 4515 description 4516 "The number of LSP Reports received. A LSP report 4517 corresponds 1:1 with an LSP object in a PCRpt 4518 message. 4519 This might be greater than num-pcrpt-rcvd because 4520 multiple reports can be batched into a single 4521 PCRpt message."; 4522 } 4523 leaf num-rpt-rcvd-error-sent { 4524 when "../../../pcep:role = 'pcc'" 4525 + "or " 4526 + "../../../pcep:role = 'pcc-and-pce'" { 4527 description 4528 "Valid for PCEP Peer as PCC"; 4529 } 4530 type yang:counter32; 4531 description 4532 "The number of reports of LSPs received that were 4533 responded by the local PCEP entity by sending a 4534 PCErr message."; 4535 } 4536 leaf num-upd-sent { 4537 when "../../../pcep:role = 'pcc'" 4538 + "or " 4539 + "../../../pcep:role = 'pcc-and-pce'" { 4540 description 4541 "Valid for PCEP Peer as PCC"; 4542 } 4543 type yang:counter32; 4544 description 4545 "The number of LSP updates sent. A LSP update 4546 corresponds 1:1 with an LSP object in a PCUpd 4547 message. This might be greater than 4548 num-pcupd-sent because multiple updates can 4549 be batched into a single PCUpd message."; 4550 } 4551 leaf num-upd-rcvd { 4552 when "../../../pcep:role = 'pce'" 4553 + "or " 4554 + "../../../pcep:role = 'pcc-and-pce'" { 4555 description 4556 "Valid for PCEP Peer as PCE"; 4557 } 4558 type yang:counter32; 4559 description 4560 "The number of LSP Updates received. A LSP update 4561 corresponds 1:1 with an LSP object in a PCUpd 4562 message. 4563 This might be greater than num-pcupd-rcvd because 4564 multiple updates can be batched into a single 4565 PCUpd message."; 4566 } 4567 leaf num-upd-rcvd-unknown { 4568 when "../../../pcep:role = 'pce'" 4569 + "or " 4570 + "../../../pcep:role = 'pcc-and-pce'" { 4571 description 4572 "Valid for PCEP Peer as PCE"; 4573 } 4574 type yang:counter32; 4575 description 4576 "The number of updates to unknown LSPs 4577 received. An update to an unknown LSP is a 4578 update whose LSP object does not contain the 4579 PLSP-ID of any LSP that is currently 4580 present."; 4581 } 4582 leaf num-upd-rcvd-undelegated { 4583 when "../../../pcep:role = 'pce'" 4584 + "or " 4585 + "../../../pcep:role = 'pcc-and-pce'" { 4586 description 4587 "Valid for PCEP Peer as PCE"; 4588 } 4589 type yang:counter32; 4590 description 4591 "The number of updates to not delegated LSPs 4592 received. An update to an undelegated LSP is a 4593 update whose LSP object does not contain the 4594 PLSP-ID of any LSP that is currently 4595 delegated to current PCEP session."; 4596 } 4597 leaf num-upd-rcvd-error-sent { 4598 when "../../../pcep:role = 'pce'" 4599 + "or " 4600 + "../../../pcep:role = 'pcc-and-pce'" { 4601 description 4602 "Valid for PCEP Peer as PCE"; 4603 } 4604 type yang:counter32; 4605 description 4606 "The number of updates to LSPs received that were 4607 responded by the local PCEP entity by sending a 4608 PCErr message."; 4609 } 4610 container initiation { 4611 if-feature "pcep:pce-initiated"; 4612 description 4613 "PCE-Initiated related statistics"; 4614 leaf num-pcinitiate-sent { 4615 when "../../../../pcep:role = 'pcc'" 4616 + "or " 4617 + "../../../../pcep:role = 'pcc-and-pce'" { 4618 description 4619 "Valid for PCEP Peer as PCC"; 4620 } 4621 type yang:counter32; 4622 description 4623 "The number of PCInitiate messages sent."; 4624 } 4625 leaf num-pcinitiate-rcvd { 4626 when "../../../../pcep:role = 'pce'" 4627 + "or " 4628 + "../../../../pcep:role = 'pcc-and-pce'" { 4629 description 4630 "Valid for PCEP Peer as PCE"; 4631 } 4632 type yang:counter32; 4633 description 4634 "The number of PCInitiate messages received."; 4635 } 4636 leaf num-initiate-sent { 4637 when "../../../../pcep:role = 'pcc'" 4638 + "or " 4639 + "../../../../pcep:role = 'pcc-and-pce'" { 4640 description 4641 "Valid for PCEP Peer as PCC"; 4642 } 4643 type yang:counter32; 4644 description 4645 "The number of LSP Initiation sent via PCE. 4646 A LSP initiation corresponds 1:1 with an LSP 4647 object in a PCInitiate message. This might be 4648 greater than num-pcinitiate-sent because 4649 multiple initiations can be batched into a 4650 single PCInitiate message."; 4651 } 4652 leaf num-initiate-rcvd { 4653 when "../../../../pcep:role = 'pce'" 4654 + "or " 4655 + "../../../../pcep:role = 'pcc-and-pce'" { 4656 description 4657 "Valid for PCEP Peer as PCE"; 4658 } 4659 type yang:counter32; 4660 description 4661 "The number of LSP Initiation received from 4662 PCE. A LSP initiation corresponds 1:1 with 4663 an LSP object in a PCInitiate message. This 4664 might be greater than num-pcinitiate-rcvd 4665 because multiple initiations can be batched 4666 into a single PCInitiate message."; 4667 } 4668 leaf num-initiate-rcvd-error-sent { 4669 when "../../../../pcep:role = 'pce'" 4670 + "or " 4671 + "../../../../pcep:role = 'pcc-and-pce'" { 4672 description 4673 "Valid for PCEP Peer as PCE"; 4674 } 4675 type yang:counter32; 4676 description 4677 "The number of initiations of LSPs received 4678 that were responded by the local PCEP entity 4679 by sending a PCErr message."; 4680 } 4681 } 4682 //initiation 4683 } 4684 //stateful 4685 container path-key { 4686 when "../../pcep:role = 'pcc'" 4687 + "or " 4688 + "../../pcep:role = 'pcc-and-pce'" { 4689 description 4690 "Valid for PCEP Peer as PCC"; 4691 } 4692 if-feature "pcep:path-key"; 4693 description 4694 "If Path-Key is supported"; 4695 leaf num-unknown-path-key { 4696 type yang:counter32; 4697 description 4698 "The number of attempts to expand an unknown 4699 path-key."; 4700 } 4701 leaf num-exp-path-key { 4702 type yang:counter32; 4703 description 4704 "The number of attempts to expand an expired 4705 path-key."; 4706 } 4707 leaf num-dup-path-key { 4708 type yang:counter32; 4709 description 4710 "The number of duplicate attempts to expand same 4711 path-key."; 4712 } 4713 leaf num-path-key-no-attempt { 4714 type yang:counter32; 4715 description 4716 "The number of expired path-keys with no attempt to 4717 expand it."; 4718 } 4719 } 4720 //path-key 4721 } 4723 //pcep-stats 4724 /* 4725 * Augment modules to add statistics 4726 */ 4728 augment "/pcep:pcep/pcep:entity/pcep:peers/pcep:peer" { 4729 description 4730 "Augmenting the statistics"; 4731 leaf num-sess-setup-ok { 4732 type yang:counter32; 4733 config false; 4734 description 4735 "The number of PCEP sessions successfully established with 4736 the peer, including any current session. This counter is 4737 incremented each time a session with this peer is 4738 successfully established."; 4739 } 4740 leaf num-sess-setup-fail { 4741 type yang:counter32; 4742 config false; 4743 description 4744 "The number of PCEP sessions with the peer 4745 that have been attempted but failed 4746 before being fully established. This 4747 counter is incremented each time a 4748 session retry to this peer fails."; 4749 } 4750 container pcep-stats { 4751 config false; 4752 description 4753 "The container for all statistics at peer level."; 4754 uses pcep-stats { 4755 description 4756 "Since PCEP sessions can be ephemeral, the peer statistics 4757 tracks a peer even when no PCEP session currently exists 4758 to that peer. The statistics contained are an aggregate of 4759 the statistics for all successive sessions to that peer."; 4760 } 4761 leaf num-req-sent-closed { 4762 when "../../pcep:role = 'pce'" 4763 + "or " 4764 + "../../pcep:role = 'pcc-and-pce'" { 4765 description 4766 "Valid for PCEP Peer as PCE"; 4767 } 4768 type yang:counter32; 4769 description 4770 "The number of requests that were sent to the peer and 4771 implicitly cancelled when the session they were sent 4772 over was closed."; 4773 } 4774 leaf num-req-rcvd-closed { 4775 when "../../pcep:role = 'pcc'" 4776 + "or " 4777 + "../../pcep:role = 'pcc-and-pce'" { 4778 description 4779 "Valid for PCEP Peer as PCC"; 4780 } 4781 type yang:counter32; 4782 description 4783 "The number of requests that were received from the peer 4784 and implicitly cancelled when the session they were 4785 received over was closed."; 4786 } 4787 } 4788 //pcep-stats 4789 } 4791 //augment 4793 augment "/pcep:pcep/pcep:entity/pcep:peers/pcep:peer/" 4794 + "pcep:sessions/pcep:session" { 4795 description 4796 "Augmenting the statistics"; 4797 container pcep-stats { 4798 description 4799 "The container for all statistics at session level."; 4800 uses pcep-stats { 4801 description 4802 "The statistics contained are for the current sessions to 4803 that peer. These are lost when the session goes down."; 4804 } 4805 } 4806 //pcep-stats 4807 } 4809 //augment 4810 } 4812 4814 11. Security Considerations 4816 The YANG modules defined in this document is designed to be accessed 4817 via network management protocol such as NETCONF [RFC6241] or RESTCONF 4818 [RFC8040]. The lowest NETCONF layer is the secure transport layer 4819 and the mandatory-to-implement secure transport is SSH [RFC6242]. 4820 The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement 4821 secure transport is TLS [RFC8446] 4823 The NETCONF access control model [RFC8341] provides the means to 4824 restrict access for particular NETCONF or RESTCONF users to a pre- 4825 configured subset of all available NETCONF or RESTCONF protocol 4826 operations and content. 4828 There are a number of data nodes defined in the ietf-pcep YANG module 4829 which are writable/creatable/deletable (i.e., config true, which is 4830 the default). These data nodes may be considered sensitive or 4831 vulnerable in some network environments. Write operations (e.g., 4832 ) to these data nodes without proper protection can have 4833 a negative effect on network operations. These are the subtrees and 4834 data nodes and their sensitivity/vulnerability: 4836 /pcep/entity/ - configure local parameters, capabilities etc. 4838 /pcep/entity/peers - configure remote peers to setup PCEP session. 4840 Unauthorized access to above list can adversely affect the PCEP 4841 session between the local entity and the peers. This may lead to 4842 inability to compute new paths, stateful operations on the delegated 4843 as well as PCE-initiated LSPs. 4845 Some of the readable data nodes in the ietf-pcep YANG module may be 4846 considered sensitive or vulnerable in some network environments. It 4847 is thus important to control read access (e.g., via get, get-config, 4848 or notification) to these data nodes. These are the subtrees and 4849 data nodes and their sensitivity/vulnerability: 4851 /pcep/lsp-db - All the LSPs in the network. Unauthorized access 4852 to this could provide the all path and network usage information. 4854 /pcep/path-keys/ - The Confidential Path Segments (CPS) are hidden 4855 using path-keys. Unauthorized access to this could leak 4856 confidential path information. 4858 Some of the RPC operations in the ietf-pcep YANG module may be 4859 considered sensitive or vulnerable in some network environments. It 4860 is thus important to control access to these operations. These are 4861 the operations and their sensitivity/vulnerability: 4863 trigger-resync - trigger resynchronization with the PCE. 4864 Unauthorized access to this could force a PCEP session into 4865 continuous state synchronization. 4867 Further, this document also include another YANG module (called ietf- 4868 pcep-stats) for maintaining the statistics by augmenting the ietf- 4869 pcep YANG module. There are no data nodes defined in this module 4870 which are writable/creatable/deletable (i.e., config true). The 4871 readable data nodes in this YANG module may be considered sensitive 4872 or vulnerable in some network environments. The statistics could 4873 provide information related to the current usage patterns of the 4874 network. It is thus important to control read access (e.g., via get, 4875 get-config, or notification). 4877 12. IANA Considerations 4879 This document request the IANA to register two URIs in the "IETF XML 4880 Registry" [RFC3688]. Following the format in RFC 3688, the following 4881 registrations are requested - 4883 URI: urn:ietf:params:xml:ns:yang:ietf-pcep 4884 Registrant Contact: The IESG 4885 XML: N/A; the requested URI is an XML namespace. 4887 URI: urn:ietf:params:xml:ns:yang:ietf-pcep-stats 4888 Registrant Contact: The IESG 4889 XML: N/A; the requested URI is an XML namespace. 4891 This document request the IANA to register two YANG modules in the 4892 "YANG Module Names" registry [RFC6020], as follows - 4893 Name: ietf-pcep 4894 Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep 4895 Prefix: pcep 4896 Reference: [This.I-D] 4898 Name: ietf-pcep-stats 4899 Namespace: urn:ietf:params:xml:ns:yang:ietf-pcep-stats 4900 Prefix: pcep-stats 4901 Reference: [This.I-D] 4903 13. Implementation Status 4905 [Note to the RFC Editor - remove this section before publication, as 4906 well as remove the reference to RFC 7942.] 4908 This section records the status of known implementations of the 4909 protocol defined by this specification at the time of posting of this 4910 Internet-Draft, and is based on a proposal described in [RFC7942]. 4911 The description of implementations in this section is intended to 4912 assist the IETF in its decision processes in progressing drafts to 4913 RFCs. Please note that the listing of any individual implementation 4914 here does not imply endorsement by the IETF. Furthermore, no effort 4915 has been spent to verify the information presented here that was 4916 supplied by IETF contributors. This is not intended as, and must not 4917 be construed to be, a catalog of available implementations or their 4918 features. Readers are advised to note that other implementations may 4919 exist. 4921 According to [RFC7942], "this will allow reviewers and working groups 4922 to assign due consideration to documents that have the benefit of 4923 running code, which may serve as evidence of valuable experimentation 4924 and feedback that have made the implemented protocols more mature. 4925 It is up to the individual working groups to use this information as 4926 they see fit". 4928 Currently, there are no known implementations of the YANG Module as 4929 specified. 4931 14. Acknowledgements 4933 The initial document is based on the PCEP MIB [RFC7420]. We would 4934 like to thank the authors of aforementioned documents. 4936 Thanks to Mahesh Jethmalani for the Yang Doctor review. 4938 Thanks to Martin Bjorklund and Tom Petch for providing guidance 4939 regarding the Yang guidelines. 4941 15. References 4943 15.1. Normative References 4945 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4946 Requirement Levels", BCP 14, RFC 2119, 4947 DOI 10.17487/RFC2119, March 1997, 4948 . 4950 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 4951 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 4952 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 4953 . 4955 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 4956 DOI 10.17487/RFC3688, January 2004, 4957 . 4959 [RFC5088] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. 4960 Zhang, "OSPF Protocol Extensions for Path Computation 4961 Element (PCE) Discovery", RFC 5088, DOI 10.17487/RFC5088, 4962 January 2008, . 4964 [RFC5089] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. 4965 Zhang, "IS-IS Protocol Extensions for Path Computation 4966 Element (PCE) Discovery", RFC 5089, DOI 10.17487/RFC5089, 4967 January 2008, . 4969 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 4970 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 4971 DOI 10.17487/RFC5440, March 2009, 4972 . 4974 [RFC5520] Bradford, R., Ed., Vasseur, JP., and A. Farrel, 4975 "Preserving Topology Confidentiality in Inter-Domain Path 4976 Computation Using a Path-Key-Based Mechanism", RFC 5520, 4977 DOI 10.17487/RFC5520, April 2009, 4978 . 4980 [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of 4981 Objective Functions in the Path Computation Element 4982 Communication Protocol (PCEP)", RFC 5541, 4983 DOI 10.17487/RFC5541, June 2009, 4984 . 4986 [RFC5557] Lee, Y., Le Roux, JL., King, D., and E. Oki, "Path 4987 Computation Element Communication Protocol (PCEP) 4988 Requirements and Protocol Extensions in Support of Global 4989 Concurrent Optimization", RFC 5557, DOI 10.17487/RFC5557, 4990 July 2009, . 4992 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 4993 the Network Configuration Protocol (NETCONF)", RFC 6020, 4994 DOI 10.17487/RFC6020, October 2010, 4995 . 4997 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 4998 and A. Bierman, Ed., "Network Configuration Protocol 4999 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 5000 . 5002 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 5003 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 5004 . 5006 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 5007 RFC 6991, DOI 10.17487/RFC6991, July 2013, 5008 . 5010 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 5011 RFC 7950, DOI 10.17487/RFC7950, August 2016, 5012 . 5014 [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. 5015 Zhang, "YANG Data Model for Key Chains", RFC 8177, 5016 DOI 10.17487/RFC8177, June 2017, 5017 . 5019 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 5020 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 5021 . 5023 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 5024 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 5025 May 2017, . 5027 [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path 5028 Computation Element Communication Protocol (PCEP) 5029 Extensions for Stateful PCE", RFC 8231, 5030 DOI 10.17487/RFC8231, September 2017, 5031 . 5033 [RFC8232] Crabbe, E., Minei, I., Medved, J., Varga, R., Zhang, X., 5034 and D. Dhody, "Optimizations of Label Switched Path State 5035 Synchronization Procedures for a Stateful PCE", RFC 8232, 5036 DOI 10.17487/RFC8232, September 2017, 5037 . 5039 [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, 5040 "PCEPS: Usage of TLS to Provide a Secure Transport for the 5041 Path Computation Element Communication Protocol (PCEP)", 5042 RFC 8253, DOI 10.17487/RFC8253, October 2017, 5043 . 5045 [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path 5046 Computation Element Communication Protocol (PCEP) 5047 Extensions for PCE-Initiated LSP Setup in a Stateful PCE 5048 Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, 5049 . 5051 [RFC8306] Zhao, Q., Dhody, D., Ed., Palleti, R., and D. King, 5052 "Extensions to the Path Computation Element Communication 5053 Protocol (PCEP) for Point-to-Multipoint Traffic 5054 Engineering Label Switched Paths", RFC 8306, 5055 DOI 10.17487/RFC8306, November 2017, 5056 . 5058 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 5059 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 5060 . 5062 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 5063 Access Control Model", STD 91, RFC 8341, 5064 DOI 10.17487/RFC8341, March 2018, 5065 . 5067 [RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. 5068 Hardwick, "Conveying Path Setup Type in PCE Communication 5069 Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408, 5070 July 2018, . 5072 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 5073 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 5074 . 5076 [I-D.ietf-teas-yang-te] 5077 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 5078 "A YANG Data Model for Traffic Engineering Tunnels and 5079 Interfaces", draft-ietf-teas-yang-te-21 (work in 5080 progress), April 2019. 5082 [I-D.ietf-teas-yang-te-types] 5083 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 5084 "Traffic Engineering Common YANG Types", draft-ietf-teas- 5085 yang-te-types-09 (work in progress), May 2019. 5087 [I-D.ietf-netconf-tls-client-server] 5088 Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS 5089 Clients and TLS Servers", draft-ietf-netconf-tls-client- 5090 server-13 (work in progress), June 2019. 5092 [I-D.ietf-pce-association-group] 5093 Minei, I., Crabbe, E., Sivabalan, S., Ananthakrishnan, H., 5094 Dhody, D., and Y. Tanaka, "PCEP Extensions for 5095 Establishing Relationships Between Sets of LSPs", draft- 5096 ietf-pce-association-group-09 (work in progress), April 5097 2019. 5099 [I-D.ietf-pce-segment-routing] 5100 Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., 5101 and J. Hardwick, "PCEP Extensions for Segment Routing", 5102 draft-ietf-pce-segment-routing-16 (work in progress), 5103 March 2019. 5105 [I-D.ietf-isis-yang-isis-cfg] 5106 Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. 5107 Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf- 5108 isis-yang-isis-cfg-35 (work in progress), March 2019. 5110 [I-D.ietf-ospf-yang] 5111 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 5112 "YANG Data Model for OSPF Protocol", draft-ietf-ospf- 5113 yang-22 (work in progress), June 2019. 5115 [I-D.ietf-pce-gmpls-pcep-extensions] 5116 Margaria, C., Dios, O., and F. Zhang, "PCEP extensions for 5117 GMPLS", draft-ietf-pce-gmpls-pcep-extensions-14 (work in 5118 progress), April 2019. 5120 15.2. Informative References 5122 [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation 5123 Element (PCE)-Based Architecture", RFC 4655, 5124 DOI 10.17487/RFC4655, August 2006, 5125 . 5127 [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. 5128 Hardwick, "Path Computation Element Communication Protocol 5129 (PCEP) Management Information Base (MIB) Module", 5130 RFC 7420, DOI 10.17487/RFC7420, December 2014, 5131 . 5133 [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running 5134 Code: The Implementation Status Section", BCP 205, 5135 RFC 7942, DOI 10.17487/RFC7942, July 2016, 5136 . 5138 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 5139 and R. Wilton, "Network Management Datastore Architecture 5140 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 5141 . 5143 Appendix A. Example 5145 The example below provide an overview of PCEP peer session 5146 informations and LSP-DB in the Yang Module. 5148 +-------+ +-------+ 5149 | | | | 5150 | PCC1 |<---------------->| | 5151 | | | | 5152 +-------+ | | 5153 IP:192.0.2.1 | | 5154 | PCE | 5155 | | 5156 +-------+ | | 5157 | | | | 5158 | PCC2 |<---------------->| | 5159 | | | | 5160 +-------+ | | 5161 IP:192.0.2.2 | | 5162 | | 5163 | | 5164 +-------+ | | 5165 | | | | 5166 | PCC4 |<---------------->| | 5167 | | | | 5168 +-------+ | | 5169 IP:2001:DB8::4 | | 5170 +-------+ 5171 IP:192.0.2.3 5172 2001:DB8::3 5174 at PCE: 5175 { 5176 "entity": [ 5177 { 5178 "addr": "192.0.2.3", 5179 "oper-status": "oper-status-up", 5180 "role":"pce", 5181 "capability" : { 5182 "stateful": { 5183 "enabled": true 5184 } 5185 } 5186 "lsp-db" : [ 5187 "lsp" : { 5188 "plsp-id": 3, 5189 "pcc-id" :"192.0.2.1", 5190 "source": "192.0.2.1", 5191 "destination": "192.0.2.4" 5192 "tunnel-id": 16, 5193 "lsp-id": 3, 5194 "extended-tunnel-id": 0, 5195 "oper-status": "oper-status-up", 5196 "delegated": true, 5197 "symbolic-path-name": "iewauh", 5198 }, 5199 "lsp" : { 5200 "plsp-id": 4, 5201 "pcc-id" :"192.0.2.2", 5202 "source": "192.0.2.2", 5203 "destination": "192.0.2.5" 5204 "tunnel-id": 17, 5205 "lsp-id": 4 5206 "extended-tunnel-id": 0, 5207 "oper-status": "oper-status-up", 5208 "delegated": true, 5209 "symbolic-path-name": "iewauhiewauh", 5210 "extended-tunnel-id": 0 5211 } 5212 ] 5213 "peers":[ 5214 { 5215 "peer": { 5216 "addr":"192.0.2.1", 5217 "role": "pcc", 5219 "capability": { 5220 "stateful" : { 5221 "enabled": true, 5222 "active": yes, 5223 } 5224 } 5225 "sessions": [ 5226 { 5227 "session": { 5228 "initiator": "remote", 5229 "role": "pcc", 5230 } 5231 } 5232 ] 5233 } 5234 }, 5235 { 5236 "peer": { 5237 "addr":"192.0.2.2", 5238 "role": "pcc", 5240 "capability": { 5241 "stateful" : { 5242 "enabled": true, 5243 "active": true, 5244 } 5245 } 5246 "sessions": [ 5247 { 5248 "session": { 5249 "initiator": "remote", 5250 "role": "pcc", 5251 } 5252 } 5253 ] 5254 } 5255 } 5256 ] 5257 }, 5259 { 5260 "addr": "2001:DB8::3", 5261 "oper-status": "oper-status-up", 5262 "role":"pce", 5263 "peers":[ 5264 { 5265 "peer": { 5266 "addr":"2001:DB8::4", 5267 "role": "pcc", 5268 "sessions": [ 5269 { 5270 "session": { 5271 "initiator": "remote", 5272 "role": "pcc", 5273 } 5274 } 5275 ] 5276 } 5277 } 5278 ] 5279 } 5280 } 5282 Appendix B. Contributor Addresses 5284 Rohit Pobbathi 5285 Huawei Technologies 5286 Divyashree Techno Park, Whitefield 5287 Bangalore, Karnataka 560066 5288 India 5290 EMail: rohit.pobbathi@huawei.com 5292 Vinod KumarS 5293 Huawei Technologies 5294 Divyashree Techno Park, Whitefield 5295 Bangalore, Karnataka 560066 5296 India 5298 EMail: vinods.kumar@huawei.com 5300 Zafar Ali 5301 Cisco Systems 5302 Canada 5304 EMail: zali@cisco.com 5306 Xufeng Liu 5307 Volta Networks 5309 EMail: xufeng.liu.ietf@gmail.com 5311 Young Lee 5312 Futurewei 5313 5340 Legacy Drive, Building 3 5314 Plano, TX 75023 5315 USA 5317 EMail: younglee.tx@gmail.com 5319 Udayasree Palle 5321 EMail: udayasreereddy@gmail.com 5323 Xian Zhang 5324 Huawei Technologies 5325 Bantian, Longgang District 5326 Shenzhen 518129 5327 P.R.China 5329 EMail: zhang.xian@huawei.com 5330 Avantika 5331 ECI Telecom 5332 India 5334 EMail: avantika.srm@gmail.com 5336 Shashikanth 5337 Huawei Technologies 5338 Divyashree Techno Park, Whitefield 5339 Bangalore, Karnataka 560066 5340 India 5342 EMail: shashikanth.vh@huawei.com 5344 Authors' Addresses 5346 Dhruv Dhody (editor) 5347 Huawei Technologies 5348 Divyashree Techno Park, Whitefield 5349 Bangalore, Karnataka 560066 5350 India 5352 EMail: dhruv.ietf@gmail.com 5354 Jonathan Hardwick 5355 Metaswitch 5356 100 Church Street 5357 Enfield EN2 6BQ 5358 UK 5360 EMail: jonathan.hardwick@metaswitch.com 5362 Vishnu Pavan Beeram 5363 Juniper Networks 5364 USA 5366 EMail: vbeeram@juniper.net 5368 Jeff Tantsura 5369 USA 5371 EMail: jefftant@gmail.com