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