idnits 2.17.1 draft-ietf-teas-yang-te-23.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 : ---------------------------------------------------------------------------- ** There are 140 instances of weird spacing in the document. Is it really formatted ragged-right, rather than justified? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 287 has weird spacing: '...ic-type ide...' == Line 291 has weird spacing: '...w usage ide...' == Line 297 has weird spacing: '...rw name str...' == Line 304 has weird spacing: '...w usage ide...' == Line 318 has weird spacing: '...k-tp-id te-...' == (135 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 09, 2020) is 1502 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 (-19) exists of draft-ietf-teas-yang-rsvp-12 Summary: 1 error (**), 0 flaws (~~), 9 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TEAS Working Group T. Saad 3 Internet-Draft Juniper Networks 4 Intended status: Standards Track R. Gandhi 5 Expires: September 10, 2020 Cisco Systems Inc 6 X. Liu 7 Volta Networks 8 V. Beeram 9 Juniper Networks 10 I. Bryskin 11 Individual 12 March 09, 2020 14 A YANG Data Model for Traffic Engineering Tunnels and Interfaces 15 draft-ietf-teas-yang-te-23 17 Abstract 19 This document defines a YANG data model for the configuration and 20 management of Traffic Engineering (TE) interfaces, tunnels and Label 21 Switched Paths (LSPs). The model is divided into YANG modules that 22 classify data into generic, device-specific, technology agnostic, and 23 technology-specific elements. 25 This model covers data for configuration, operational state, remote 26 procedural calls, and event notifications. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at https://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on September 10, 2020. 45 Copyright Notice 47 Copyright (c) 2020 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (https://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 63 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 64 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 65 1.3. TE Technology Models . . . . . . . . . . . . . . . . . . 4 66 1.4. State Data Organization . . . . . . . . . . . . . . . . . 4 67 2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 4 68 2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 5 69 2.2. Design Considerations . . . . . . . . . . . . . . . . . . 6 70 2.3. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 7 71 3. Model Organization . . . . . . . . . . . . . . . . . . . . . 59 72 3.1. Global Configuration and State Data . . . . . . . . . . . 59 73 3.2. Interfaces Configuration and State Data . . . . . . . . . 60 74 3.3. Tunnels Configuration and State Data . . . . . . . . . . 61 75 3.3.1. Tunnel Compute-Only Mode . . . . . . . . . . . . . . 61 76 3.3.2. Tunnel Hierarchical Link Endpoint . . . . . . . . . . 62 77 4. TE Generic and Helper YANG Modules . . . . . . . . . . . . . 62 78 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 110 79 6. Security Considerations . . . . . . . . . . . . . . . . . . . 110 80 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 111 81 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 111 82 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 112 83 9.1. Normative References . . . . . . . . . . . . . . . . . . 112 84 9.2. Informative References . . . . . . . . . . . . . . . . . 114 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 115 87 1. Introduction 89 YANG [RFC6020] and [RFC7950] is a data modeling language that was 90 introduced to define the contents of a conceptual data store that 91 allows networked devices to be managed using NETCONF [RFC6241]. YANG 92 has proved relevant beyond its initial confines, as bindings to other 93 interfaces (e.g. RESTCONF [RFC8040]) and encoding other than XML 94 (e.g. JSON) are being defined. Furthermore, YANG data models can be 95 used as the basis of implementation for other interfaces, such as CLI 96 and programmatic APIs. 98 This document describes YANG data model for TE Tunnels, Label 99 Switched Paths (LSPs) and TE interfaces and covers data applicable to 100 generic or device-independent, device-specific, and Multiprotocol 101 Label Switching (MPLS) technology specific. 103 The document describes a high-level relationship between the modules 104 defined in this document, as well as other external protocol YANG 105 modules. The TE generic YANG data model does not include any data 106 specific to a signaling protocol. It is expected other data plane 107 technology model(s) will augment the TE generic YANG data model. 109 Also, it is expected other YANG module(s) that model TE signaling 110 protocols, such as RSVP-TE ([RFC3209], [RFC3473]), or Segment-Routing 111 TE (SR-TE) will augment the TE generic YANG module. 113 1.1. Terminology 115 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 116 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 117 "OPTIONAL" in this document are to be interpreted as described in BCP 118 14 [RFC2119] [RFC8174] when, and only when, they appear in all 119 capitals, as shown here. 121 The terminology for describing YANG data models is found in 122 [RFC7950]. 124 1.2. Prefixes in Data Node Names 126 In this document, names of data nodes and other data model objects 127 are prefixed using the standard prefix associated with the 128 corresponding YANG imported modules, as shown in Table 1. 130 +---------------+--------------------+-------------------------------+ 131 | Prefix | YANG module | Reference | 132 +---------------+--------------------+-------------------------------+ 133 | yang | ietf-yang-types | [RFC6991] | 134 | inet | ietf-inet-types | [RFC6991] | 135 | rt-types | ietf-routing-types | [RFC8294] | 136 | te | ietf-te | this document | 137 | te-dev | ietf-te-device | this document | 138 | te-types | ietf-te-types | [I-D.ietf-teas-yang-te-types] | 139 | te-mpls-types | ietf-te-mpls-types | [I-D.ietf-teas-yang-te-types] | 140 +---------------+--------------------+-------------------------------+ 142 Table 1: Prefixes and corresponding YANG modules 144 1.3. TE Technology Models 146 This document describes the TE generic YANG data model that is 147 independent of any dataplane technology. One of the design 148 objectives is to allow specific data plane technology models to reuse 149 the TE generic data model and possibly augment it with technology 150 specific data. 152 The elements of the TE generic YANG data model, including TE tunnels, 153 LSPs, and interfaces have leaf(s) that identify the technology layer 154 where they reside. For example, the LSP encoding type can identify 155 the technology associated with a TE tunnel or LSP. 157 Also, the TE generic YANG data model does not cover signaling 158 protocol data. This is expected to be covered by augmentations 159 defined in other document(s). 161 1.4. State Data Organization 163 The Network Management Datastore Architecture (NMDA) [RFC8342] 164 addresses modeling state data for ephemeral objects. This document 165 adopts the NMDA proposal for configuration and state data 166 representation as per IETF guidelines for new IETF YANG models. 168 2. Model Overview 170 The data model(s) defined in this document cover core TE features 171 that are commonly supported across different vendor implementations. 172 The support of extended or vendor specific TE feature(s) is expected 173 to be in augmentations to the model defined in this document. 175 2.1. Module(s) Relationship 177 The TE generic YANG data model defined in "ietf-te.yang" covers the 178 building blocks that are device independent and agnostic of any 179 specific technology or control plane instances. The TE device model 180 defined in "ietf-te-device.yang" augments the TE generic YANG data 181 model and covers data that is specific to a device - for example, 182 attributes of TE interfaces, or TE timers that are local to a TE 183 node. 185 The TE data model for specific instances of data plane technology 186 exist in a separate YANG module(s) that augment the TE generic YANG 187 data model. For example, the MPLS-TE module "ietf-te-mpls.yang" is 188 defined in another document and augments the TE generic model as 189 shown in Figure 1. 191 The TE data model for specific instances of signaling protocol are 192 outside the scope of this document and are defined in other 193 documents. For example, the RSVP-TE YANG model augmentation of the 194 TE model is covered in [I-D.ietf-teas-yang-rsvp]. 196 TE generic +---------+ o: augment 197 module | ietf-te |o-------------+ 198 +---------+ \ 199 o \ 200 |\ \ 201 | \ \ 202 | +----------------+ \ 203 | | ietf-te-device | TE device module 204 | +----------------+ \ 205 | o o \ 206 | / \ \ 207 | / \ \ 208 +--------------+ +---------------+ 209 RSVP-TE module | ietf-rsvp-te |o . | ietf-te-mpls^ | 210 +--------------+ \ +---------------+ 211 | \ 212 | \ 213 | \ 214 | \ 215 | \ 216 o +-------------------+ 217 +-----------+ | ietf-rsvp-otn-te^ | 218 RSVP module | ietf-rsvp | +-------------------+ 219 +-----------+ RSVP-TE with OTN 220 extensions 222 ^ shown for illustration 223 (not in this document) 225 Figure 1: Relationship of TE module(s) with other signaling protocol 226 modules 228 2.2. Design Considerations 230 The following design considerations are taken into account with 231 respect data organization: 233 o Reusable TE data types that are data plane independent are grouped 234 in the TE generic types module "ietf-te-types.yang" defined in 235 [I-D.ietf-teas-yang-te-types]. 237 o Reusable TE data types that are data plane specific are defined in 238 a data plane type module, e.g. "ietf-te-packet-types.yang" as 239 defined in [I-D.ietf-teas-yang-te-types]. Other data plane types 240 are expected to be defined in separate module(s). 242 o The TE generic YANG data model "ietf-te" contains device 243 independent data and can be used to model data off a device (e.g. 244 on a controller). The device-specific TE data is defined in 245 module "ietf-te-device" as shown in Figure 1, 247 o In general, minimal elements in the model are designated as 248 "mandatory" to allow freedom to vendors to adapt the data model to 249 their specific product implementation. 251 o Suitable defaults are specified for all configurable elements. 253 o The model declares a number of TE functions as features that can 254 be optionally supported. 256 2.3. Model Tree Diagram 258 Figure 2 shows the tree diagram of the TE YANG model defined in 259 modules: ietf-te.yang, and ietf-te-device.yang. 261 module: ietf-te 262 +--rw te! 263 +--rw globals 264 | +--rw named-admin-groups 265 | | +--rw named-admin-group* [name] 266 | | +--rw name string 267 | | +--rw bit-position? uint32 268 | +--rw named-srlgs 269 | | +--rw named-srlg* [name] {te-types:named-srlg-groups}? 270 | | +--rw name string 271 | | +--rw group? te-types:srlg 272 | | +--rw cost? uint32 273 | +--rw named-path-constraints 274 | | +--rw named-path-constraint* [name] 275 | | {te-types:named-path-constraints}? 276 | | +--rw name string 277 | | +--rw te-bandwidth 278 | | | +--rw (technology)? 279 | | | +--:(generic) 280 | | | +--rw generic? te-bandwidth 281 | | +--rw link-protection? identityref 282 | | +--rw setup-priority? uint8 283 | | +--rw hold-priority? uint8 284 | | +--rw signaling-type? identityref 285 | | +--rw path-metric-bounds 286 | | | +--rw path-metric-bound* [metric-type] 287 | | | +--rw metric-type identityref 288 | | | +--rw upper-bound? uint64 289 | | +--rw path-affinities-values 290 | | | +--rw path-affinities-value* [usage] 291 | | | +--rw usage identityref 292 | | | +--rw value? admin-groups 293 | | +--rw path-affinity-names 294 | | | +--rw path-affinity-name* [usage] 295 | | | +--rw usage identityref 296 | | | +--rw affinity-name* [name] 297 | | | +--rw name string 298 | | +--rw path-srlgs-lists 299 | | | +--rw path-srlgs-list* [usage] 300 | | | +--rw usage identityref 301 | | | +--rw values* srlg 302 | | +--rw path-srlgs-names 303 | | | +--rw path-srlgs-name* [usage] 304 | | | +--rw usage identityref 305 | | | +--rw names* string 306 | | +--rw disjointness? 307 | | | te-path-disjointness 308 | | +--rw explicit-route-objects-always 309 | | | +--rw route-object-exclude-always* [index] 310 | | | | +--rw index uint32 311 | | | | +--rw (type)? 312 | | | | +--:(numbered-node-hop) 313 | | | | | +--rw numbered-node-hop 314 | | | | | +--rw node-id te-node-id 315 | | | | | +--rw hop-type? te-hop-type 316 | | | | +--:(numbered-link-hop) 317 | | | | | +--rw numbered-link-hop 318 | | | | | +--rw link-tp-id te-tp-id 319 | | | | | +--rw hop-type? te-hop-type 320 | | | | | +--rw direction? te-link-direction 321 | | | | +--:(unnumbered-link-hop) 322 | | | | | +--rw unnumbered-link-hop 323 | | | | | +--rw link-tp-id te-tp-id 324 | | | | | +--rw node-id te-node-id 325 | | | | | +--rw hop-type? te-hop-type 326 | | | | | +--rw direction? te-link-direction 327 | | | | +--:(as-number) 328 | | | | | +--rw as-number-hop 329 | | | | | +--rw as-number inet:as-number 330 | | | | | +--rw hop-type? te-hop-type 331 | | | | +--:(label) 332 | | | | +--rw label-hop 333 | | | | +--rw te-label 334 | | | | +--rw (technology)? 335 | | | | | +--:(generic) 336 | | | | | +--rw generic? 337 | | | | | rt-types:generalized-label 338 | | | | +--rw direction? 339 | | | | te-label-direction 340 | | | +--rw route-object-include-exclude* [index] 341 | | | +--rw explicit-route-usage? identityref 342 | | | +--rw index uint32 343 | | | +--rw (type)? 344 | | | +--:(numbered-node-hop) 345 | | | | +--rw numbered-node-hop 346 | | | | +--rw node-id te-node-id 347 | | | | +--rw hop-type? te-hop-type 348 | | | +--:(numbered-link-hop) 349 | | | | +--rw numbered-link-hop 350 | | | | +--rw link-tp-id te-tp-id 351 | | | | +--rw hop-type? te-hop-type 352 | | | | +--rw direction? te-link-direction 353 | | | +--:(unnumbered-link-hop) 354 | | | | +--rw unnumbered-link-hop 355 | | | | +--rw link-tp-id te-tp-id 356 | | | | +--rw node-id te-node-id 357 | | | | +--rw hop-type? te-hop-type 358 | | | | +--rw direction? te-link-direction 359 | | | +--:(as-number) 360 | | | | +--rw as-number-hop 361 | | | | +--rw as-number inet:as-number 362 | | | | +--rw hop-type? te-hop-type 363 | | | +--:(label) 364 | | | | +--rw label-hop 365 | | | | +--rw te-label 366 | | | | +--rw (technology)? 367 | | | | | +--:(generic) 368 | | | | | +--rw generic? 369 | | | | | rt-types:generalized-label 370 | | | | +--rw direction? 371 | | | | te-label-direction 372 | | | +--:(srlg) 373 | | | +--rw srlg 374 | | | +--rw srlg? uint32 375 | | +--rw shared-resources-tunnels 376 | | | +--rw lsp-shared-resources-tunnel* tunnel-ref 377 | | +--rw path-in-segment! 378 | | | +--rw label-restrictions 379 | | | +--rw label-restriction* [index] 380 | | | +--rw restriction? enumeration 381 | | | +--rw index uint32 382 | | | +--rw label-start 383 | | | | +--rw te-label 384 | | | | +--rw (technology)? 385 | | | | | +--:(generic) 386 | | | | | +--rw generic? 387 | | | | | rt-types:generalized-label 388 | | | | +--rw direction? te-label-direction 389 | | | +--rw label-end 390 | | | | +--rw te-label 391 | | | | +--rw (technology)? 392 | | | | | +--:(generic) 393 | | | | | +--rw generic? 394 | | | | | rt-types:generalized-label 395 | | | | +--rw direction? te-label-direction 396 | | | +--rw label-step 397 | | | | +--rw (technology)? 398 | | | | +--:(generic) 399 | | | | +--rw generic? int32 400 | | | +--rw range-bitmap? yang:hex-string 401 | | +--rw path-out-segment! 402 | | +--rw label-restrictions 403 | | +--rw label-restriction* [index] 404 | | +--rw restriction? enumeration 405 | | +--rw index uint32 406 | | +--rw label-start 407 | | | +--rw te-label 408 | | | +--rw (technology)? 409 | | | | +--:(generic) 410 | | | | +--rw generic? 411 | | | | rt-types:generalized-label 412 | | | +--rw direction? te-label-direction 413 | | +--rw label-end 414 | | | +--rw te-label 415 | | | +--rw (technology)? 416 | | | | +--:(generic) 417 | | | | +--rw generic? 418 | | | | rt-types:generalized-label 419 | | | +--rw direction? te-label-direction 420 | | +--rw label-step 421 | | | +--rw (technology)? 422 | | | +--:(generic) 423 | | | +--rw generic? int32 424 | | +--rw range-bitmap? yang:hex-string 425 | +--rw te-dev:lsp-install-interval? uint32 426 | +--rw te-dev:lsp-cleanup-interval? uint32 427 | +--rw te-dev:lsp-invalidation-interval? uint32 428 +--rw tunnels 429 | +--rw tunnel* [name] 430 | +--ro operational-state? identityref 431 | +--rw name string 432 | +--rw identifier? uint16 433 | +--rw description? string 434 | +--rw encoding? identityref 435 | +--rw switching-type? identityref 436 | +--rw admin-state? identityref 437 | +--rw reoptimize-timer? uint16 438 | +--rw source? te-types:te-node-id 439 | +--rw destination? te-types:te-node-id 440 | +--rw src-tp-id? yang:hex-string 441 | +--rw dst-tp-id? yang:hex-string 442 | +--rw bidirectional? boolean 443 | +--rw association-objects 444 | | +--rw association-object* [type id source] 445 | | | +--rw type identityref 446 | | | +--rw id uint16 447 | | | +--rw source te-generic-node-id 448 | | +--rw association-object-extended* 449 | | [type id source global-source extended-id] 450 | | +--rw type identityref 451 | | +--rw id uint16 452 | | +--rw source te-generic-node-id 453 | | +--rw global-source uint32 454 | | +--rw extended-id yang:hex-string 455 | +--rw protection 456 | | +--rw enable? boolean 457 | | +--rw protection-type? identityref 458 | | +--rw protection-reversion-disable? boolean 459 | | +--rw hold-off-time? uint32 460 | | +--rw wait-to-revert? uint16 461 | | +--rw aps-signal-id? uint8 462 | +--rw restoration 463 | | +--rw enable? boolean 464 | | +--rw restoration-type? identityref 465 | | +--rw restoration-scheme? identityref 466 | | +--rw restoration-reversion-disable? boolean 467 | | +--rw hold-off-time? uint32 468 | | +--rw wait-to-restore? uint16 469 | | +--rw wait-to-revert? uint16 470 | +--rw te-topology-identifier 471 | | +--rw provider-id? te-global-id 472 | | +--rw client-id? te-global-id 473 | | +--rw topology-id? te-topology-id 474 | +--rw te-bandwidth 475 | | +--rw (technology)? 476 | | +--:(generic) 477 | | +--rw generic? te-bandwidth 478 | +--rw link-protection? identityref 479 | +--rw setup-priority? uint8 480 | +--rw hold-priority? uint8 481 | +--rw signaling-type? identityref 482 | +--rw hierarchy 483 | | +--rw dependency-tunnels 484 | | | +--rw dependency-tunnel* [name] 485 | | | +--rw name 486 | | | | -> ../../../../../../tunnels/tunnel/name 487 | | | +--rw encoding? identityref 488 | | | +--rw switching-type? identityref 489 | | +--rw hierarchical-link 490 | | +--rw local-te-node-id? te-types:te-node-id 491 | | +--rw local-te-link-tp-id? te-types:te-tp-id 492 | | +--rw remote-te-node-id? te-types:te-node-id 493 | | +--rw te-topology-identifier 494 | | +--rw provider-id? te-global-id 495 | | +--rw client-id? te-global-id 496 | | +--rw topology-id? te-topology-id 497 | +--rw primary-paths 498 | | +--rw primary-path* [name] 499 | | +--rw name string 500 | | +--rw path-computation-method? identityref 501 | | +--rw path-computation-server? 502 | | | te-generic-node-id 503 | | +--rw compute-only? empty 504 | | +--rw use-path-computation? boolean 505 | | +--rw lockdown? empty 506 | | +--ro path-scope? identityref 507 | | +--rw preference? uint8 508 | | +--rw k-requested-paths? uint8 509 | | +--rw association-objects 510 | | | +--rw association-object* [type id source] 511 | | | | +--rw type identityref 512 | | | | +--rw id uint16 513 | | | | +--rw source te-generic-node-id 514 | | | +--rw association-object-extended* 515 | | | [type id source global-source extended-id] 516 | | | +--rw type identityref 517 | | | +--rw id uint16 518 | | | +--rw source te-generic-node-id 519 | | | +--rw global-source uint32 520 | | | +--rw extended-id yang:hex-string 521 | | +--rw optimizations 522 | | | +--rw (algorithm)? 523 | | | +--:(metric) {path-optimization-metric}? 524 | | | | +--rw optimization-metric* [metric-type] 525 | | | | | +--rw metric-type 526 | | | | | | identityref 527 | | | | | +--rw weight? 528 | | | | | | uint8 529 | | | | | +--rw explicit-route-exclude-objects 530 | | | | | | +--rw route-object-exclude-object* 531 | | | | | | [index] 532 | | | | | | +--rw index 533 | | | | | | | uint32 534 | | | | | | +--rw (type)? 535 | | | | | | +--:(numbered-node-hop) 536 | | | | | | | +--rw numbered-node-hop 537 | | | | | | | +--rw node-id te-node-id 538 | | | | | | | +--rw hop-type? 539 | | | | | | | te-hop-type 540 | | | | | | +--:(numbered-link-hop) 541 | | | | | | | +--rw numbered-link-hop 542 | | | | | | | +--rw link-tp-id te-tp-id 543 | | | | | | | +--rw hop-type? 544 | | | | | | | | te-hop-type 545 | | | | | | | +--rw direction? 546 | | | | | | | te-link-direction 547 | | | | | | +--:(unnumbered-link-hop) 548 | | | | | | | +--rw unnumbered-link-hop 549 | | | | | | | +--rw link-tp-id te-tp-id 550 | | | | | | | +--rw node-id 551 | | | | | | | | te-node-id 552 | | | | | | | +--rw hop-type? 553 | | | | | | | | te-hop-type 554 | | | | | | | +--rw direction? 555 | | | | | | | te-link-direction 556 | | | | | | +--:(as-number) 557 | | | | | | | +--rw as-number-hop 558 | | | | | | | +--rw as-number 559 | | | | | | | | inet:as-number 560 | | | | | | | +--rw hop-type? 561 | | | | | | | te-hop-type 562 | | | | | | +--:(label) 563 | | | | | | | +--rw label-hop 564 | | | | | | | +--rw te-label 565 | | | | | | | +--rw (technology)? 566 | | | | | | | | +--:(generic) 567 | | | | | | | | +--rw generic? 568 | | | | | | | | rt-types:generalized-label 569 | | | | | | | +--rw direction? 570 | | | | | | | te-label-direction 571 | | | | | | +--:(srlg) 572 | | | | | | +--rw srlg 573 | | | | | | +--rw srlg? uint32 574 | | | | | +--rw explicit-route-include-objects 575 | | | | | +--rw route-object-include-object* 576 | | | | | [index] 577 | | | | | +--rw index 578 | | | | | | uint32 579 | | | | | +--rw (type)? 580 | | | | | +--:(numbered-node-hop) 581 | | | | | | +--rw numbered-node-hop 582 | | | | | | +--rw node-id te-node-id 583 | | | | | | +--rw hop-type? 584 | | | | | | te-hop-type 585 | | | | | +--:(numbered-link-hop) 586 | | | | | | +--rw numbered-link-hop 587 | | | | | | +--rw link-tp-id te-tp-id 588 | | | | | | +--rw hop-type? 589 | | | | | | | te-hop-type 590 | | | | | | +--rw direction? 591 | | | | | | te-link-direction 592 | | | | | +--:(unnumbered-link-hop) 593 | | | | | | +--rw unnumbered-link-hop 594 | | | | | | +--rw link-tp-id te-tp-id 595 | | | | | | +--rw node-id 596 | | | | | | | te-node-id 597 | | | | | | +--rw hop-type? 598 | | | | | | | te-hop-type 599 | | | | | | +--rw direction? 600 | | | | | | te-link-direction 601 | | | | | +--:(as-number) 602 | | | | | | +--rw as-number-hop 603 | | | | | | +--rw as-number 604 | | | | | | | inet:as-number 605 | | | | | | +--rw hop-type? 606 | | | | | | te-hop-type 607 | | | | | +--:(label) 608 | | | | | +--rw label-hop 609 | | | | | +--rw te-label 610 | | | | | +--rw (technology)? 611 | | | | | | +--:(generic) 612 | | | | | | +--rw generic? 613 | | | | | | rt-types:generalized-label 614 | | | | | +--rw direction? 615 | | | | | te-label-direction 616 | | | | +--rw tiebreakers 617 | | | | +--rw tiebreaker* [tiebreaker-type] 618 | | | | +--rw tiebreaker-type identityref 619 | | | +--:(objective-function) 620 | | | {path-optimization-objective-function}? 621 | | | +--rw objective-function 622 | | | +--rw objective-function-type? 623 | | | identityref 624 | | +--rw named-path-constraint? leafref 625 | | | {te-types:named-path-constraints}? 626 | | +--rw te-bandwidth 627 | | | +--rw (technology)? 628 | | | +--:(generic) 629 | | | +--rw generic? te-bandwidth 630 | | +--rw link-protection? identityref 631 | | +--rw setup-priority? uint8 632 | | +--rw hold-priority? uint8 633 | | +--rw signaling-type? identityref 634 | | +--rw path-metric-bounds 635 | | | +--rw path-metric-bound* [metric-type] 636 | | | +--rw metric-type identityref 637 | | | +--rw upper-bound? uint64 638 | | +--rw path-affinities-values 639 | | | +--rw path-affinities-value* [usage] 640 | | | +--rw usage identityref 641 | | | +--rw value? admin-groups 642 | | +--rw path-affinity-names 643 | | | +--rw path-affinity-name* [usage] 644 | | | +--rw usage identityref 645 | | | +--rw affinity-name* [name] 646 | | | +--rw name string 647 | | +--rw path-srlgs-lists 648 | | | +--rw path-srlgs-list* [usage] 649 | | | +--rw usage identityref 650 | | | +--rw values* srlg 651 | | +--rw path-srlgs-names 652 | | | +--rw path-srlgs-name* [usage] 653 | | | +--rw usage identityref 654 | | | +--rw names* string 655 | | +--rw disjointness? 656 | | | te-path-disjointness 657 | | +--rw explicit-route-objects-always 658 | | | +--rw route-object-exclude-always* [index] 659 | | | | +--rw index uint32 660 | | | | +--rw (type)? 661 | | | | +--:(numbered-node-hop) 662 | | | | | +--rw numbered-node-hop 663 | | | | | +--rw node-id te-node-id 664 | | | | | +--rw hop-type? te-hop-type 665 | | | | +--:(numbered-link-hop) 666 | | | | | +--rw numbered-link-hop 667 | | | | | +--rw link-tp-id te-tp-id 668 | | | | | +--rw hop-type? te-hop-type 669 | | | | | +--rw direction? te-link-direction 670 | | | | +--:(unnumbered-link-hop) 671 | | | | | +--rw unnumbered-link-hop 672 | | | | | +--rw link-tp-id te-tp-id 673 | | | | | +--rw node-id te-node-id 674 | | | | | +--rw hop-type? te-hop-type 675 | | | | | +--rw direction? te-link-direction 676 | | | | +--:(as-number) 677 | | | | | +--rw as-number-hop 678 | | | | | +--rw as-number inet:as-number 679 | | | | | +--rw hop-type? te-hop-type 680 | | | | +--:(label) 681 | | | | +--rw label-hop 682 | | | | +--rw te-label 683 | | | | +--rw (technology)? 684 | | | | | +--:(generic) 685 | | | | | +--rw generic? 686 | | | | | rt-types:generalized-label 687 | | | | +--rw direction? 688 | | | | te-label-direction 689 | | | +--rw route-object-include-exclude* [index] 690 | | | +--rw explicit-route-usage? identityref 691 | | | +--rw index uint32 692 | | | +--rw (type)? 693 | | | +--:(numbered-node-hop) 694 | | | | +--rw numbered-node-hop 695 | | | | +--rw node-id te-node-id 696 | | | | +--rw hop-type? te-hop-type 697 | | | +--:(numbered-link-hop) 698 | | | | +--rw numbered-link-hop 699 | | | | +--rw link-tp-id te-tp-id 700 | | | | +--rw hop-type? te-hop-type 701 | | | | +--rw direction? te-link-direction 702 | | | +--:(unnumbered-link-hop) 703 | | | | +--rw unnumbered-link-hop 704 | | | | +--rw link-tp-id te-tp-id 705 | | | | +--rw node-id te-node-id 706 | | | | +--rw hop-type? te-hop-type 707 | | | | +--rw direction? te-link-direction 708 | | | +--:(as-number) 709 | | | | +--rw as-number-hop 710 | | | | +--rw as-number inet:as-number 711 | | | | +--rw hop-type? te-hop-type 712 | | | +--:(label) 713 | | | | +--rw label-hop 714 | | | | +--rw te-label 715 | | | | +--rw (technology)? 716 | | | | | +--:(generic) 717 | | | | | +--rw generic? 718 | | | | | rt-types:generalized-label 719 | | | | +--rw direction? 720 | | | | te-label-direction 721 | | | +--:(srlg) 722 | | | +--rw srlg 723 | | | +--rw srlg? uint32 724 | | +--rw shared-resources-tunnels 725 | | | +--rw lsp-shared-resources-tunnel* tunnel-ref 726 | | +--rw path-in-segment! 727 | | | +--rw label-restrictions 728 | | | +--rw label-restriction* [index] 729 | | | +--rw restriction? enumeration 730 | | | +--rw index uint32 731 | | | +--rw label-start 732 | | | | +--rw te-label 733 | | | | +--rw (technology)? 734 | | | | | +--:(generic) 735 | | | | | +--rw generic? 736 | | | | | rt-types:generalized-label 737 | | | | +--rw direction? 738 | | | | te-label-direction 739 | | | +--rw label-end 740 | | | | +--rw te-label 741 | | | | +--rw (technology)? 742 | | | | | +--:(generic) 743 | | | | | +--rw generic? 744 | | | | | rt-types:generalized-label 745 | | | | +--rw direction? 746 | | | | te-label-direction 747 | | | +--rw label-step 748 | | | | +--rw (technology)? 749 | | | | +--:(generic) 750 | | | | +--rw generic? int32 751 | | | +--rw range-bitmap? yang:hex-string 752 | | +--rw path-out-segment! 753 | | | +--rw label-restrictions 754 | | | +--rw label-restriction* [index] 755 | | | +--rw restriction? enumeration 756 | | | +--rw index uint32 757 | | | +--rw label-start 758 | | | | +--rw te-label 759 | | | | +--rw (technology)? 760 | | | | | +--:(generic) 761 | | | | | +--rw generic? 762 | | | | | rt-types:generalized-label 763 | | | | +--rw direction? 764 | | | | te-label-direction 765 | | | +--rw label-end 766 | | | | +--rw te-label 767 | | | | +--rw (technology)? 768 | | | | | +--:(generic) 769 | | | | | +--rw generic? 770 | | | | | rt-types:generalized-label 771 | | | | +--rw direction? 772 | | | | te-label-direction 773 | | | +--rw label-step 774 | | | | +--rw (technology)? 775 | | | | +--:(generic) 776 | | | | +--rw generic? int32 777 | | | +--rw range-bitmap? yang:hex-string 778 | | +--ro computed-paths-properties 779 | | | +--ro computed-path-properties* [k-index] 780 | | | +--ro k-index uint8 781 | | | +--ro path-properties 782 | | | +--ro path-metric* [metric-type] 783 | | | | +--ro metric-type identityref 784 | | | | +--ro accumulative-value? uint64 785 | | | +--ro path-affinities-values 786 | | | | +--ro path-affinities-value* [usage] 787 | | | | +--ro usage identityref 788 | | | | +--ro value? admin-groups 789 | | | +--ro path-affinity-names 790 | | | | +--ro path-affinity-name* [usage] 791 | | | | +--ro usage identityref 792 | | | | +--ro affinity-name* [name] 793 | | | | +--ro name string 794 | | | +--ro path-srlgs-lists 795 | | | | +--ro path-srlgs-list* [usage] 796 | | | | +--ro usage identityref 797 | | | | +--ro values* srlg 798 | | | +--ro path-srlgs-names 799 | | | | +--ro path-srlgs-name* [usage] 800 | | | | +--ro usage identityref 801 | | | | +--ro names* string 802 | | | +--ro path-route-objects 803 | | | | +--ro path-route-object* [index] 804 | | | | +--ro index 805 | | | | | uint32 806 | | | | +--ro (type)? 807 | | | | +--:(numbered-node-hop) 808 | | | | | +--ro numbered-node-hop 809 | | | | | +--ro node-id te-node-id 810 | | | | | +--ro hop-type? te-hop-type 811 | | | | +--:(numbered-link-hop) 812 | | | | | +--ro numbered-link-hop 813 | | | | | +--ro link-tp-id te-tp-id 814 | | | | | +--ro hop-type? te-hop-type 815 | | | | | +--ro direction? 816 | | | | | te-link-direction 817 | | | | +--:(unnumbered-link-hop) 818 | | | | | +--ro unnumbered-link-hop 819 | | | | | +--ro link-tp-id te-tp-id 820 | | | | | +--ro node-id te-node-id 821 | | | | | +--ro hop-type? te-hop-type 822 | | | | | +--ro direction? 823 | | | | | te-link-direction 824 | | | | +--:(as-number) 825 | | | | | +--ro as-number-hop 826 | | | | | +--ro as-number 827 | | | | | | inet:as-number 828 | | | | | +--ro hop-type? te-hop-type 829 | | | | +--:(label) 830 | | | | +--ro label-hop 831 | | | | +--ro te-label 832 | | | | +--ro (technology)? 833 | | | | | +--:(generic) 834 | | | | | +--ro generic? 835 | | | | | rt-types:generalized-label 836 | | | | +--ro direction? 837 | | | | te-label-direction 838 | | | +--ro te-bandwidth 839 | | | | +--ro (technology)? 840 | | | | +--:(generic) 841 | | | | +--ro generic? te-bandwidth 842 | | | +--ro disjointness-type? 843 | | | | te-types:te-path-disjointness 844 | | | +--ro shared-resources-tunnels 845 | | | +--ro lsp-shared-resources-tunnel* 846 | | | tunnel-ref 847 | | +--ro computed-path-error-infos 848 | | | +--ro computed-path-error-info* [] 849 | | | +--ro error-description? string 850 | | | +--ro error-timestamp? yang:date-and-time 851 | | | +--ro error-reason? identityref 852 | | +--ro lsp-provisioning-error-infos 853 | | | +--ro lsp-provisioning-error-info* [] 854 | | | +--ro error-description? string 855 | | | +--ro error-timestamp? yang:date-and-time 856 | | | +--ro error-node-id? te-types:te-node-id 857 | | | +--ro error-link-id? te-types:te-tp-id 858 | | | +--ro lsp-id? uint16 859 | | +--ro lsps 860 | | | +--ro lsp* [lsp-id] 861 | | | +--ro lsp-provisioning-error-infos 862 | | | | +--ro lsp-provisioning-error-info* [] 863 | | | | +--ro error-description? string 864 | | | | +--ro error-timestamp? 865 | | | | | yang:date-and-time 866 | | | | +--ro error-node-id? 867 | | | | | te-types:te-node-id 868 | | | | +--ro error-link-id? 869 | | | | te-types:te-tp-id 870 | | | +--ro source? 871 | | | | te-types:te-node-id 872 | | | +--ro destination? 873 | | | | te-types:te-node-id 874 | | | +--ro tunnel-id? uint16 875 | | | +--ro lsp-id uint16 876 | | | +--ro extended-tunnel-id? 877 | | | | yang:dotted-quad 878 | | | +--ro operational-state? 879 | | | | identityref 880 | | | +--ro signaling-type? 881 | | | | identityref 882 | | | +--ro origin-type? 883 | | | | enumeration 884 | | | +--ro lsp-resource-status? 885 | | | | enumeration 886 | | | +--ro lockout-of-normal? boolean 887 | | | +--ro freeze? boolean 888 | | | +--ro lsp-protection-role? 889 | | | | enumeration 890 | | | +--ro lsp-protection-state? 891 | | | | identityref 892 | | | +--ro protection-group-ingress-node-id? 893 | | | | te-types:te-node-id 894 | | | +--ro protection-group-egress-node-id? 895 | | | | te-types:te-node-id 896 | | | +--ro lsp-shared-resources-tunnel? 897 | | | | tunnel-ref 898 | | | +--ro lsp-record-route-information 899 | | | | +--ro lsp-record-route-information* [index] 900 | | | | +--ro index uint32 901 | | | | +--ro (type)? 902 | | | | +--:(numbered-node-hop) 903 | | | | | +--ro numbered-node-hop 904 | | | | | +--ro node-id te-node-id 905 | | | | | +--ro flags* 906 | | | | | path-attribute-flags 907 | | | | +--:(numbered-link-hop) 908 | | | | | +--ro numbered-link-hop 909 | | | | | +--ro link-tp-id te-tp-id 910 | | | | | +--ro flags* 911 | | | | | path-attribute-flags 912 | | | | +--:(unnumbered-link-hop) 913 | | | | | +--ro unnumbered-link-hop 914 | | | | | +--ro link-tp-id te-tp-id 915 | | | | | +--ro node-id? te-node-id 916 | | | | | +--ro flags* 917 | | | | | path-attribute-flags 918 | | | | +--:(label) 919 | | | | +--ro label-hop 920 | | | | +--ro te-label 921 | | | | | +--ro (technology)? 922 | | | | | | +--:(generic) 923 | | | | | | +--ro generic? 924 | | | | | | rt-types:generalized-label 925 | | | | | +--ro direction? 926 | | | | | te-label-direction 927 | | | | +--ro flags* 928 | | | | path-attribute-flags 929 | | | +--ro path-properties 930 | | | | +--ro path-metric* [metric-type] 931 | | | | | +--ro metric-type identityref 932 | | | | | +--ro accumulative-value? uint64 933 | | | | +--ro path-affinities-values 934 | | | | | +--ro path-affinities-value* [usage] 935 | | | | | +--ro usage identityref 936 | | | | | +--ro value? admin-groups 937 | | | | +--ro path-affinity-names 938 | | | | | +--ro path-affinity-name* [usage] 939 | | | | | +--ro usage identityref 940 | | | | | +--ro affinity-name* [name] 941 | | | | | +--ro name string 942 | | | | +--ro path-srlgs-lists 943 | | | | | +--ro path-srlgs-list* [usage] 944 | | | | | +--ro usage identityref 945 | | | | | +--ro values* srlg 946 | | | | +--ro path-srlgs-names 947 | | | | | +--ro path-srlgs-name* [usage] 948 | | | | | +--ro usage identityref 949 | | | | | +--ro names* string 950 | | | | +--ro path-route-objects 951 | | | | | +--ro path-route-object* [index] 952 | | | | | +--ro index 953 | | | | | | uint32 954 | | | | | +--ro (type)? 955 | | | | | +--:(numbered-node-hop) 956 | | | | | | +--ro numbered-node-hop 957 | | | | | | +--ro node-id te-node-id 958 | | | | | | +--ro hop-type? te-hop-type 959 | | | | | +--:(numbered-link-hop) 960 | | | | | | +--ro numbered-link-hop 961 | | | | | | +--ro link-tp-id te-tp-id 962 | | | | | | +--ro hop-type? te-hop-type 963 | | | | | | +--ro direction? 964 | | | | | | te-link-direction 965 | | | | | +--:(unnumbered-link-hop) 966 | | | | | | +--ro unnumbered-link-hop 967 | | | | | | +--ro link-tp-id te-tp-id 968 | | | | | | +--ro node-id te-node-id 969 | | | | | | +--ro hop-type? te-hop-type 970 | | | | | | +--ro direction? 971 | | | | | | te-link-direction 972 | | | | | +--:(as-number) 973 | | | | | | +--ro as-number-hop 974 | | | | | | +--ro as-number 975 | | | | | | | inet:as-number 976 | | | | | | +--ro hop-type? te-hop-type 977 | | | | | +--:(label) 978 | | | | | +--ro label-hop 979 | | | | | +--ro te-label 980 | | | | | +--ro (technology)? 981 | | | | | | +--:(generic) 982 | | | | | | +--ro generic? 983 | | | | | | rt-types:generalized-label 984 | | | | | +--ro direction? 985 | | | | | te-label-direction 986 | | | | +--ro te-bandwidth 987 | | | | | +--ro (technology)? 988 | | | | | +--:(generic) 989 | | | | | +--ro generic? te-bandwidth 990 | | | | +--ro disjointness-type? 991 | | | | | te-types:te-path-disjointness 992 | | | | +--ro shared-resources-tunnels 993 | | | | +--ro lsp-shared-resources-tunnel* 994 | | | | tunnel-ref 995 | | | +--ro te-dev:lsp-timers 996 | | | | +--ro te-dev:life-time? uint32 997 | | | | +--ro te-dev:time-to-install? uint32 998 | | | | +--ro te-dev:time-to-destroy? uint32 999 | | | +--ro te-dev:downstream-info 1000 | | | | +--ro te-dev:nhop? 1001 | | | | | te:te-generic-node-id 1002 | | | | +--ro te-dev:outgoing-interface? 1003 | | | | | if:interface-ref 1004 | | | | +--ro te-dev:neighbor? 1005 | | | | | te:te-generic-node-id 1006 | | | | +--ro te-dev:label? 1007 | | | | rt-types:generalized-label 1008 | | | +--ro te-dev:upstream-info 1009 | | | +--ro te-dev:phop? te:te-generic-node-id 1010 | | | +--ro te-dev:neighbor? te:te-generic-node-id 1011 | | | +--ro te-dev:label? 1012 | | | rt-types:generalized-label 1013 | | +--rw primary-reverse-path 1014 | | | +--rw name? string 1015 | | | +--rw path-computation-method? 1016 | | | | identityref 1017 | | | +--rw path-computation-server? 1018 | | | | te-generic-node-id 1019 | | | +--rw compute-only? empty 1020 | | | +--rw use-path-computation? boolean 1021 | | | +--rw lockdown? empty 1022 | | | +--ro path-scope? 1023 | | | | identityref 1024 | | | +--rw association-objects 1025 | | | | +--rw association-object* [type id source] 1026 | | | | | +--rw type identityref 1027 | | | | | +--rw id uint16 1028 | | | | | +--rw source te-generic-node-id 1029 | | | | +--rw association-object-extended* 1030 | | | | [type id source global-source extended-id] 1031 | | | | +--rw type identityref 1032 | | | | +--rw id uint16 1033 | | | | +--rw source te-generic-node-id 1034 | | | | +--rw global-source uint32 1035 | | | | +--rw extended-id yang:hex-string 1036 | | | +--rw optimizations 1037 | | | | +--rw (algorithm)? 1038 | | | | +--:(metric) {path-optimization-metric}? 1039 | | | | | +--rw optimization-metric* [metric-type] 1040 | | | | | | +--rw metric-type 1041 | | | | | | | identityref 1042 | | | | | | +--rw weight? 1043 | | | | | | | uint8 1044 | | | | | | +--rw explicit-route-exclude-objects 1045 | | | | | | | +--rw route-object-exclude-object* 1046 | | | | | | | [index] 1047 | | | | | | | +--rw index 1048 | | | | | | | | uint32 1049 | | | | | | | +--rw (type)? 1050 | | | | | | | +--:(numbered-node-hop) 1051 | | | | | | | | +--rw numbered-node-hop 1052 | | | | | | | | +--rw node-id 1053 | | | | | | | | | te-node-id 1054 | | | | | | | | +--rw hop-type? 1055 | | | | | | | | te-hop-type 1056 | | | | | | | +--:(numbered-link-hop) 1057 | | | | | | | | +--rw numbered-link-hop 1058 | | | | | | | | +--rw link-tp-id 1059 | | | | | | | | | te-tp-id 1060 | | | | | | | | +--rw hop-type? 1061 | | | | | | | | | te-hop-type 1062 | | | | | | | | +--rw direction? 1063 | | | | | | | | te-link-direction 1064 | | | | | | | +--:(unnumbered-link-hop) 1065 | | | | | | | | +--rw unnumbered-link-hop 1066 | | | | | | | | +--rw link-tp-id 1067 | | | | | | | | | te-tp-id 1068 | | | | | | | | +--rw node-id 1069 | | | | | | | | | te-node-id 1070 | | | | | | | | +--rw hop-type? 1071 | | | | | | | | | te-hop-type 1072 | | | | | | | | +--rw direction? 1073 | | | | | | | | te-link-direction 1074 | | | | | | | +--:(as-number) 1075 | | | | | | | | +--rw as-number-hop 1076 | | | | | | | | +--rw as-number 1077 | | | | | | | | | inet:as-number 1078 | | | | | | | | +--rw hop-type? 1079 | | | | | | | | te-hop-type 1080 | | | | | | | +--:(label) 1081 | | | | | | | | +--rw label-hop 1082 | | | | | | | | +--rw te-label 1083 | | | | | | | | +--rw (technology)? 1084 | | | | | | | | | +--:(generic) 1085 | | | | | | | | | +--rw generic? 1086 | | | | | | | | |rt-types:generalized-label 1087 | | | | | | | | +--rw direction? 1088 | | | | | | | | te-label-direction 1089 | | | | | | | +--:(srlg) 1090 | | | | | | | +--rw srlg 1091 | | | | | | | +--rw srlg? uint32 1092 | | | | | | +--rw explicit-route-include-objects 1093 | | | | | | +--rw route-object-include-object* 1094 | | | | | | [index] 1095 | | | | | | +--rw index 1096 | | | | | | | uint32 1097 | | | | | | +--rw (type)? 1098 | | | | | | +--:(numbered-node-hop) 1099 | | | | | | | +--rw numbered-node-hop 1100 | | | | | | | +--rw node-id 1101 | | | | | | | | te-node-id 1102 | | | | | | | +--rw hop-type? 1103 | | | | | | | te-hop-type 1104 | | | | | | +--:(numbered-link-hop) 1105 | | | | | | | +--rw numbered-link-hop 1106 | | | | | | | +--rw link-tp-id 1107 | | | | | | | | te-tp-id 1108 | | | | | | | +--rw hop-type? 1109 | | | | | | | | te-hop-type 1110 | | | | | | | +--rw direction? 1111 | | | | | | | te-link-direction 1112 | | | | | | +--:(unnumbered-link-hop) 1113 | | | | | | | +--rw unnumbered-link-hop 1114 | | | | | | | +--rw link-tp-id 1115 | | | | | | | | te-tp-id 1116 | | | | | | | +--rw node-id 1117 | | | | | | | | te-node-id 1118 | | | | | | | +--rw hop-type? 1119 | | | | | | | | te-hop-type 1120 | | | | | | | +--rw direction? 1121 | | | | | | | te-link-direction 1122 | | | | | | +--:(as-number) 1123 | | | | | | | +--rw as-number-hop 1124 | | | | | | | +--rw as-number 1125 | | | | | | | | inet:as-number 1126 | | | | | | | +--rw hop-type? 1127 | | | | | | | te-hop-type 1128 | | | | | | +--:(label) 1129 | | | | | | +--rw label-hop 1130 | | | | | | +--rw te-label 1131 | | | | | | +--rw (technology)? 1132 | | | | | | | +--:(generic) 1133 | | | | | | | +--rw generic? 1134 | | | | | | | rt-types:generalized-label 1135 | | | | | | +--rw direction? 1136 | | | | | | te-label-direction 1137 | | | | | +--rw tiebreakers 1138 | | | | | +--rw tiebreaker* [tiebreaker-type] 1139 | | | | | +--rw tiebreaker-type identityref 1140 | | | | +--:(objective-function) 1141 | | | | {path-optimization-objective-function}? 1142 | | | | +--rw objective-function 1143 | | | | +--rw objective-function-type? 1144 | | | | identityref 1145 | | | +--rw named-path-constraint? leafref 1146 | | | | {te-types:named-path-constraints}? 1147 | | | +--rw te-bandwidth 1148 | | | | +--rw (technology)? 1149 | | | | +--:(generic) 1150 | | | | +--rw generic? te-bandwidth 1151 | | | +--rw link-protection? 1152 | | | | identityref 1153 | | | +--rw setup-priority? uint8 1154 | | | +--rw hold-priority? uint8 1155 | | | +--rw signaling-type? 1156 | | | | identityref 1157 | | | +--rw path-metric-bounds 1158 | | | | +--rw path-metric-bound* [metric-type] 1159 | | | | +--rw metric-type identityref 1160 | | | | +--rw upper-bound? uint64 1161 | | | +--rw path-affinities-values 1162 | | | | +--rw path-affinities-value* [usage] 1163 | | | | +--rw usage identityref 1164 | | | | +--rw value? admin-groups 1165 | | | +--rw path-affinity-names 1166 | | | | +--rw path-affinity-name* [usage] 1167 | | | | +--rw usage identityref 1168 | | | | +--rw affinity-name* [name] 1169 | | | | +--rw name string 1170 | | | +--rw path-srlgs-lists 1171 | | | | +--rw path-srlgs-list* [usage] 1172 | | | | +--rw usage identityref 1173 | | | | +--rw values* srlg 1174 | | | +--rw path-srlgs-names 1175 | | | | +--rw path-srlgs-name* [usage] 1176 | | | | +--rw usage identityref 1177 | | | | +--rw names* string 1178 | | | +--rw disjointness? 1179 | | | | te-path-disjointness 1180 | | | +--rw explicit-route-objects-always 1181 | | | | +--rw route-object-exclude-always* [index] 1182 | | | | | +--rw index uint32 1183 | | | | | +--rw (type)? 1184 | | | | | +--:(numbered-node-hop) 1185 | | | | | | +--rw numbered-node-hop 1186 | | | | | | +--rw node-id te-node-id 1187 | | | | | | +--rw hop-type? te-hop-type 1188 | | | | | +--:(numbered-link-hop) 1189 | | | | | | +--rw numbered-link-hop 1190 | | | | | | +--rw link-tp-id te-tp-id 1191 | | | | | | +--rw hop-type? te-hop-type 1192 | | | | | | +--rw direction? te-link-direction 1193 | | | | | +--:(unnumbered-link-hop) 1194 | | | | | | +--rw unnumbered-link-hop 1195 | | | | | | +--rw link-tp-id te-tp-id 1196 | | | | | | +--rw node-id te-node-id 1197 | | | | | | +--rw hop-type? te-hop-type 1198 | | | | | | +--rw direction? te-link-direction 1199 | | | | | +--:(as-number) 1200 | | | | | | +--rw as-number-hop 1201 | | | | | | +--rw as-number inet:as-number 1202 | | | | | | +--rw hop-type? te-hop-type 1203 | | | | | +--:(label) 1204 | | | | | +--rw label-hop 1205 | | | | | +--rw te-label 1206 | | | | | +--rw (technology)? 1207 | | | | | | +--:(generic) 1208 | | | | | | +--rw generic? 1209 | | | | | | rt-types:generalized-label 1210 | | | | | +--rw direction? 1211 | | | | | te-label-direction 1212 | | | | +--rw route-object-include-exclude* [index] 1213 | | | | +--rw explicit-route-usage? identityref 1214 | | | | +--rw index uint32 1215 | | | | +--rw (type)? 1216 | | | | +--:(numbered-node-hop) 1217 | | | | | +--rw numbered-node-hop 1218 | | | | | +--rw node-id te-node-id 1219 | | | | | +--rw hop-type? te-hop-type 1220 | | | | +--:(numbered-link-hop) 1221 | | | | | +--rw numbered-link-hop 1222 | | | | | +--rw link-tp-id te-tp-id 1223 | | | | | +--rw hop-type? te-hop-type 1224 | | | | | +--rw direction? te-link-direction 1225 | | | | +--:(unnumbered-link-hop) 1226 | | | | | +--rw unnumbered-link-hop 1227 | | | | | +--rw link-tp-id te-tp-id 1228 | | | | | +--rw node-id te-node-id 1229 | | | | | +--rw hop-type? te-hop-type 1230 | | | | | +--rw direction? te-link-direction 1231 | | | | +--:(as-number) 1232 | | | | | +--rw as-number-hop 1233 | | | | | +--rw as-number inet:as-number 1234 | | | | | +--rw hop-type? te-hop-type 1235 | | | | +--:(label) 1236 | | | | | +--rw label-hop 1237 | | | | | +--rw te-label 1238 | | | | | +--rw (technology)? 1239 | | | | | | +--:(generic) 1240 | | | | | | +--rw generic? 1241 | | | | | | rt-types:generalized-label 1242 | | | | | +--rw direction? 1243 | | | | | te-label-direction 1244 | | | | +--:(srlg) 1245 | | | | +--rw srlg 1246 | | | | +--rw srlg? uint32 1247 | | | +--rw shared-resources-tunnels 1248 | | | | +--rw lsp-shared-resources-tunnel* tunnel-ref 1249 | | | +--rw path-in-segment! 1250 | | | | +--rw label-restrictions 1251 | | | | +--rw label-restriction* [index] 1252 | | | | +--rw restriction? enumeration 1253 | | | | +--rw index uint32 1254 | | | | +--rw label-start 1255 | | | | | +--rw te-label 1256 | | | | | +--rw (technology)? 1257 | | | | | | +--:(generic) 1258 | | | | | | +--rw generic? 1259 | | | | | | rt-types:generalized-label 1260 | | | | | +--rw direction? 1261 | | | | | te-label-direction 1262 | | | | +--rw label-end 1263 | | | | | +--rw te-label 1264 | | | | | +--rw (technology)? 1265 | | | | | | +--:(generic) 1266 | | | | | | +--rw generic? 1267 | | | | | | rt-types:generalized-label 1268 | | | | | +--rw direction? 1269 | | | | | te-label-direction 1270 | | | | +--rw label-step 1271 | | | | | +--rw (technology)? 1272 | | | | | +--:(generic) 1273 | | | | | +--rw generic? int32 1274 | | | | +--rw range-bitmap? yang:hex-string 1275 | | | +--rw path-out-segment! 1276 | | | | +--rw label-restrictions 1277 | | | | +--rw label-restriction* [index] 1278 | | | | +--rw restriction? enumeration 1279 | | | | +--rw index uint32 1280 | | | | +--rw label-start 1281 | | | | | +--rw te-label 1282 | | | | | +--rw (technology)? 1283 | | | | | | +--:(generic) 1284 | | | | | | +--rw generic? 1285 | | | | | | rt-types:generalized-label 1286 | | | | | +--rw direction? 1287 | | | | | te-label-direction 1288 | | | | +--rw label-end 1289 | | | | | +--rw te-label 1290 | | | | | +--rw (technology)? 1291 | | | | | | +--:(generic) 1292 | | | | | | +--rw generic? 1293 | | | | | | rt-types:generalized-label 1294 | | | | | +--rw direction? 1295 | | | | | te-label-direction 1296 | | | | +--rw label-step 1297 | | | | | +--rw (technology)? 1298 | | | | | +--:(generic) 1299 | | | | | +--rw generic? int32 1300 | | | | +--rw range-bitmap? yang:hex-string 1301 | | | +--ro computed-paths-properties 1302 | | | | +--ro computed-path-properties* [k-index] 1303 | | | | +--ro k-index uint8 1304 | | | | +--ro path-properties 1305 | | | | +--ro path-metric* [metric-type] 1306 | | | | | +--ro metric-type identityref 1307 | | | | | +--ro accumulative-value? uint64 1308 | | | | +--ro path-affinities-values 1309 | | | | | +--ro path-affinities-value* [usage] 1310 | | | | | +--ro usage identityref 1311 | | | | | +--ro value? admin-groups 1312 | | | | +--ro path-affinity-names 1313 | | | | | +--ro path-affinity-name* [usage] 1314 | | | | | +--ro usage identityref 1315 | | | | | +--ro affinity-name* [name] 1316 | | | | | +--ro name string 1317 | | | | +--ro path-srlgs-lists 1318 | | | | | +--ro path-srlgs-list* [usage] 1319 | | | | | +--ro usage identityref 1320 | | | | | +--ro values* srlg 1321 | | | | +--ro path-srlgs-names 1322 | | | | | +--ro path-srlgs-name* [usage] 1323 | | | | | +--ro usage identityref 1324 | | | | | +--ro names* string 1325 | | | | +--ro path-route-objects 1326 | | | | | +--ro path-route-object* [index] 1327 | | | | | +--ro index 1328 | | | | | | uint32 1329 | | | | | +--ro (type)? 1330 | | | | | +--:(numbered-node-hop) 1331 | | | | | | +--ro numbered-node-hop 1332 | | | | | | +--ro node-id te-node-id 1333 | | | | | | +--ro hop-type? 1334 | | | | | | te-hop-type 1335 | | | | | +--:(numbered-link-hop) 1336 | | | | | | +--ro numbered-link-hop 1337 | | | | | | +--ro link-tp-id te-tp-id 1338 | | | | | | +--ro hop-type? 1339 | | | | | | | te-hop-type 1340 | | | | | | +--ro direction? 1341 | | | | | | te-link-direction 1342 | | | | | +--:(unnumbered-link-hop) 1343 | | | | | | +--ro unnumbered-link-hop 1344 | | | | | | +--ro link-tp-id te-tp-id 1345 | | | | | | +--ro node-id 1346 | | | | | | | te-node-id 1347 | | | | | | +--ro hop-type? 1348 | | | | | | | te-hop-type 1349 | | | | | | +--ro direction? 1350 | | | | | | te-link-direction 1351 | | | | | +--:(as-number) 1352 | | | | | | +--ro as-number-hop 1353 | | | | | | +--ro as-number 1354 | | | | | | | inet:as-number 1355 | | | | | | +--ro hop-type? 1356 | | | | | | te-hop-type 1357 | | | | | +--:(label) 1358 | | | | | +--ro label-hop 1359 | | | | | +--ro te-label 1360 | | | | | +--ro (technology)? 1361 | | | | | | +--:(generic) 1362 | | | | | | +--ro generic? 1363 | | | | | | rt-types:generalized-label 1364 | | | | | +--ro direction? 1365 | | | | | te-label-direction 1366 | | | | +--ro te-bandwidth 1367 | | | | | +--ro (technology)? 1368 | | | | | +--:(generic) 1369 | | | | | +--ro generic? te-bandwidth 1370 | | | | +--ro disjointness-type? 1371 | | | | | te-types:te-path-disjointness 1372 | | | | +--ro shared-resources-tunnels 1373 | | | | +--ro lsp-shared-resources-tunnel* 1374 | | | | tunnel-ref 1375 | | | +--ro computed-path-error-infos 1376 | | | | +--ro computed-path-error-info* [] 1377 | | | | +--ro error-description? string 1378 | | | | +--ro error-timestamp? yang:date-and-time 1379 | | | | +--ro error-reason? identityref 1380 | | | +--ro lsp-provisioning-error-infos 1381 | | | | +--ro lsp-provisioning-error-info* [] 1382 | | | | +--ro error-description? string 1383 | | | | +--ro error-timestamp? yang:date-and-time 1384 | | | | +--ro error-node-id? te-types:te-node-id 1385 | | | | +--ro error-link-id? te-types:te-tp-id 1386 | | | | +--ro lsp-id? uint16 1387 | | | +--ro lsps 1388 | | | | +--ro lsp* [lsp-id] 1389 | | | | +--ro lsp-provisioning-error-infos 1390 | | | | | +--ro lsp-provisioning-error-info* [] 1391 | | | | | +--ro error-description? string 1392 | | | | | +--ro error-timestamp? 1393 | | | | | | yang:date-and-time 1394 | | | | | +--ro error-node-id? 1395 | | | | | | te-types:te-node-id 1396 | | | | | +--ro error-link-id? 1397 | | | | | te-types:te-tp-id 1398 | | | | +--ro source? 1399 | | | | | te-types:te-node-id 1400 | | | | +--ro destination? 1401 | | | | | te-types:te-node-id 1402 | | | | +--ro tunnel-id? 1403 | | | | | uint16 1404 | | | | +--ro lsp-id 1405 | | | | | uint16 1406 | | | | +--ro extended-tunnel-id? 1407 | | | | | yang:dotted-quad 1408 | | | | +--ro operational-state? 1409 | | | | | identityref 1410 | | | | +--ro signaling-type? 1411 | | | | | identityref 1412 | | | | +--ro origin-type? 1413 | | | | | enumeration 1414 | | | | +--ro lsp-resource-status? 1415 | | | | | enumeration 1416 | | | | +--ro lockout-of-normal? 1417 | | | | | boolean 1418 | | | | +--ro freeze? 1419 | | | | | boolean 1420 | | | | +--ro lsp-protection-role? 1421 | | | | | enumeration 1422 | | | | +--ro lsp-protection-state? 1423 | | | | | identityref 1424 | | | | +--ro protection-group-ingress-node-id? 1425 | | | | | te-types:te-node-id 1426 | | | | +--ro protection-group-egress-node-id? 1427 | | | | | te-types:te-node-id 1428 | | | | +--ro lsp-shared-resources-tunnel? 1429 | | | | | tunnel-ref 1430 | | | | +--ro lsp-record-route-information 1431 | | | | | +--ro lsp-record-route-information* [index] 1432 | | | | | +--ro index 1433 | | | | | | uint32 1434 | | | | | +--ro (type)? 1435 | | | | | +--:(numbered-node-hop) 1436 | | | | | | +--ro numbered-node-hop 1437 | | | | | | +--ro node-id te-node-id 1438 | | | | | | +--ro flags* 1439 | | | | | | path-attribute-flags 1440 | | | | | +--:(numbered-link-hop) 1441 | | | | | | +--ro numbered-link-hop 1442 | | | | | | +--ro link-tp-id te-tp-id 1443 | | | | | | +--ro flags* 1444 | | | | | | path-attribute-flags 1445 | | | | | +--:(unnumbered-link-hop) 1446 | | | | | | +--ro unnumbered-link-hop 1447 | | | | | | +--ro link-tp-id te-tp-id 1448 | | | | | | +--ro node-id? te-node-id 1449 | | | | | | +--ro flags* 1450 | | | | | | path-attribute-flags 1451 | | | | | +--:(label) 1452 | | | | | +--ro label-hop 1453 | | | | | +--ro te-label 1454 | | | | | | +--ro (technology)? 1455 | | | | | | | +--:(generic) 1456 | | | | | | | +--ro generic? 1457 | | | | | | | rt-types:generalized-label 1458 | | | | | | +--ro direction? 1459 | | | | | | te-label-direction 1460 | | | | | +--ro flags* 1461 | | | | | path-attribute-flags 1462 | | | | +--ro path-properties 1463 | | | | +--ro path-metric* [metric-type] 1464 | | | | | +--ro metric-type identityref 1465 | | | | | +--ro accumulative-value? uint64 1466 | | | | +--ro path-affinities-values 1467 | | | | | +--ro path-affinities-value* [usage] 1468 | | | | | +--ro usage identityref 1469 | | | | | +--ro value? admin-groups 1470 | | | | +--ro path-affinity-names 1471 | | | | | +--ro path-affinity-name* [usage] 1472 | | | | | +--ro usage identityref 1473 | | | | | +--ro affinity-name* [name] 1474 | | | | | +--ro name string 1475 | | | | +--ro path-srlgs-lists 1476 | | | | | +--ro path-srlgs-list* [usage] 1477 | | | | | +--ro usage identityref 1478 | | | | | +--ro values* srlg 1479 | | | | +--ro path-srlgs-names 1480 | | | | | +--ro path-srlgs-name* [usage] 1481 | | | | | +--ro usage identityref 1482 | | | | | +--ro names* string 1483 | | | | +--ro path-route-objects 1484 | | | | | +--ro path-route-object* [index] 1485 | | | | | +--ro index 1486 | | | | | | uint32 1487 | | | | | +--ro (type)? 1488 | | | | | +--:(numbered-node-hop) 1489 | | | | | | +--ro numbered-node-hop 1490 | | | | | | +--ro node-id te-node-id 1491 | | | | | | +--ro hop-type? 1492 | | | | | | te-hop-type 1493 | | | | | +--:(numbered-link-hop) 1494 | | | | | | +--ro numbered-link-hop 1495 | | | | | | +--ro link-tp-id te-tp-id 1496 | | | | | | +--ro hop-type? 1497 | | | | | | | te-hop-type 1498 | | | | | | +--ro direction? 1499 | | | | | | te-link-direction 1500 | | | | | +--:(unnumbered-link-hop) 1501 | | | | | | +--ro unnumbered-link-hop 1502 | | | | | | +--ro link-tp-id te-tp-id 1503 | | | | | | +--ro node-id 1504 | | | | | | | te-node-id 1505 | | | | | | +--ro hop-type? 1506 | | | | | | | te-hop-type 1507 | | | | | | +--ro direction? 1508 | | | | | | te-link-direction 1509 | | | | | +--:(as-number) 1510 | | | | | | +--ro as-number-hop 1511 | | | | | | +--ro as-number 1512 | | | | | | | inet:as-number 1513 | | | | | | +--ro hop-type? 1514 | | | | | | te-hop-type 1515 | | | | | +--:(label) 1516 | | | | | +--ro label-hop 1517 | | | | | +--ro te-label 1518 | | | | | +--ro (technology)? 1519 | | | | | | +--:(generic) 1520 | | | | | | +--ro generic? 1521 | | | | | | rt-types:generalized-label 1522 | | | | | +--ro direction? 1523 | | | | | te-label-direction 1524 | | | | +--ro te-bandwidth 1525 | | | | | +--ro (technology)? 1526 | | | | | +--:(generic) 1527 | | | | | +--ro generic? te-bandwidth 1528 | | | | +--ro disjointness-type? 1529 | | | | | te-types:te-path-disjointness 1530 | | | | +--ro shared-resources-tunnels 1531 | | | | +--ro lsp-shared-resources-tunnel* 1532 | | | | tunnel-ref 1533 | | | +--rw candidate-secondary-reverse-paths 1534 | | | +--rw candidate-secondary-reverse-path* 1535 | | | [secondary-path] 1536 | | | +--rw secondary-path leafref 1537 | | +--rw candidate-secondary-paths 1538 | | +--rw candidate-secondary-path* [secondary-path] 1539 | | +--rw secondary-path leafref 1540 | | +--ro active? boolean 1541 | +--rw secondary-paths 1542 | | +--rw secondary-path* [name] 1543 | | +--rw name string 1544 | | +--rw path-computation-method? identityref 1545 | | +--rw path-computation-server? 1546 | | | te-generic-node-id 1547 | | +--rw compute-only? empty 1548 | | +--rw use-path-computation? boolean 1549 | | +--rw lockdown? empty 1550 | | +--ro path-scope? identityref 1551 | | +--rw preference? uint8 1552 | | +--rw association-objects 1553 | | | +--rw association-object* [type id source] 1554 | | | | +--rw type identityref 1555 | | | | +--rw id uint16 1556 | | | | +--rw source te-generic-node-id 1557 | | | +--rw association-object-extended* 1558 | | | [type id source global-source extended-id] 1559 | | | +--rw type identityref 1560 | | | +--rw id uint16 1561 | | | +--rw source te-generic-node-id 1562 | | | +--rw global-source uint32 1563 | | | +--rw extended-id yang:hex-string 1564 | | +--rw optimizations 1565 | | | +--rw (algorithm)? 1566 | | | +--:(metric) {path-optimization-metric}? 1567 | | | | +--rw optimization-metric* [metric-type] 1568 | | | | | +--rw metric-type 1569 | | | | | | identityref 1570 | | | | | +--rw weight? 1571 | | | | | | uint8 1572 | | | | | +--rw explicit-route-exclude-objects 1573 | | | | | | +--rw route-object-exclude-object* 1574 | | | | | | [index] 1575 | | | | | | +--rw index 1576 | | | | | | | uint32 1577 | | | | | | +--rw (type)? 1578 | | | | | | +--:(numbered-node-hop) 1579 | | | | | | | +--rw numbered-node-hop 1580 | | | | | | | +--rw node-id te-node-id 1581 | | | | | | | +--rw hop-type? 1582 | | | | | | | te-hop-type 1583 | | | | | | +--:(numbered-link-hop) 1584 | | | | | | | +--rw numbered-link-hop 1585 | | | | | | | +--rw link-tp-id te-tp-id 1586 | | | | | | | +--rw hop-type? 1587 | | | | | | | | te-hop-type 1588 | | | | | | | +--rw direction? 1589 | | | | | | | te-link-direction 1590 | | | | | | +--:(unnumbered-link-hop) 1591 | | | | | | | +--rw unnumbered-link-hop 1592 | | | | | | | +--rw link-tp-id te-tp-id 1593 | | | | | | | +--rw node-id 1594 | | | | | | | | te-node-id 1595 | | | | | | | +--rw hop-type? 1596 | | | | | | | | te-hop-type 1597 | | | | | | | +--rw direction? 1598 | | | | | | | te-link-direction 1599 | | | | | | +--:(as-number) 1600 | | | | | | | +--rw as-number-hop 1601 | | | | | | | +--rw as-number 1602 | | | | | | | | inet:as-number 1603 | | | | | | | +--rw hop-type? 1604 | | | | | | | te-hop-type 1605 | | | | | | +--:(label) 1606 | | | | | | | +--rw label-hop 1607 | | | | | | | +--rw te-label 1608 | | | | | | | +--rw (technology)? 1609 | | | | | | | | +--:(generic) 1610 | | | | | | | | +--rw generic? 1611 | | | | | | | | rt-types:generalized-label 1612 | | | | | | | +--rw direction? 1613 | | | | | | | te-label-direction 1614 | | | | | | +--:(srlg) 1615 | | | | | | +--rw srlg 1616 | | | | | | +--rw srlg? uint32 1617 | | | | | +--rw explicit-route-include-objects 1618 | | | | | +--rw route-object-include-object* 1619 | | | | | [index] 1620 | | | | | +--rw index 1621 | | | | | | uint32 1622 | | | | | +--rw (type)? 1623 | | | | | +--:(numbered-node-hop) 1624 | | | | | | +--rw numbered-node-hop 1625 | | | | | | +--rw node-id te-node-id 1626 | | | | | | +--rw hop-type? 1627 | | | | | | te-hop-type 1628 | | | | | +--:(numbered-link-hop) 1629 | | | | | | +--rw numbered-link-hop 1630 | | | | | | +--rw link-tp-id te-tp-id 1631 | | | | | | +--rw hop-type? 1632 | | | | | | | te-hop-type 1633 | | | | | | +--rw direction? 1634 | | | | | | te-link-direction 1635 | | | | | +--:(unnumbered-link-hop) 1636 | | | | | | +--rw unnumbered-link-hop 1637 | | | | | | +--rw link-tp-id te-tp-id 1638 | | | | | | +--rw node-id 1639 | | | | | | | te-node-id 1640 | | | | | | +--rw hop-type? 1641 | | | | | | | te-hop-type 1642 | | | | | | +--rw direction? 1643 | | | | | | te-link-direction 1644 | | | | | +--:(as-number) 1645 | | | | | | +--rw as-number-hop 1646 | | | | | | +--rw as-number 1647 | | | | | | | inet:as-number 1648 | | | | | | +--rw hop-type? 1649 | | | | | | te-hop-type 1650 | | | | | +--:(label) 1651 | | | | | +--rw label-hop 1652 | | | | | +--rw te-label 1653 | | | | | +--rw (technology)? 1654 | | | | | | +--:(generic) 1655 | | | | | | +--rw generic? 1656 | | | | | | rt-types:generalized-label 1657 | | | | | +--rw direction? 1658 | | | | | te-label-direction 1659 | | | | +--rw tiebreakers 1660 | | | | +--rw tiebreaker* [tiebreaker-type] 1661 | | | | +--rw tiebreaker-type identityref 1662 | | | +--:(objective-function) 1663 | | | {path-optimization-objective-function}? 1664 | | | +--rw objective-function 1665 | | | +--rw objective-function-type? 1666 | | | identityref 1667 | | +--rw named-path-constraint? leafref 1668 | | | {te-types:named-path-constraints}? 1669 | | +--rw te-bandwidth 1670 | | | +--rw (technology)? 1671 | | | +--:(generic) 1672 | | | +--rw generic? te-bandwidth 1673 | | +--rw link-protection? identityref 1674 | | +--rw setup-priority? uint8 1675 | | +--rw hold-priority? uint8 1676 | | +--rw signaling-type? identityref 1677 | | +--rw path-metric-bounds 1678 | | | +--rw path-metric-bound* [metric-type] 1679 | | | +--rw metric-type identityref 1680 | | | +--rw upper-bound? uint64 1681 | | +--rw path-affinities-values 1682 | | | +--rw path-affinities-value* [usage] 1683 | | | +--rw usage identityref 1684 | | | +--rw value? admin-groups 1685 | | +--rw path-affinity-names 1686 | | | +--rw path-affinity-name* [usage] 1687 | | | +--rw usage identityref 1688 | | | +--rw affinity-name* [name] 1689 | | | +--rw name string 1690 | | +--rw path-srlgs-lists 1691 | | | +--rw path-srlgs-list* [usage] 1692 | | | +--rw usage identityref 1693 | | | +--rw values* srlg 1694 | | +--rw path-srlgs-names 1695 | | | +--rw path-srlgs-name* [usage] 1696 | | | +--rw usage identityref 1697 | | | +--rw names* string 1698 | | +--rw disjointness? 1699 | | | te-path-disjointness 1700 | | +--rw explicit-route-objects-always 1701 | | | +--rw route-object-exclude-always* [index] 1702 | | | | +--rw index uint32 1703 | | | | +--rw (type)? 1704 | | | | +--:(numbered-node-hop) 1705 | | | | | +--rw numbered-node-hop 1706 | | | | | +--rw node-id te-node-id 1707 | | | | | +--rw hop-type? te-hop-type 1708 | | | | +--:(numbered-link-hop) 1709 | | | | | +--rw numbered-link-hop 1710 | | | | | +--rw link-tp-id te-tp-id 1711 | | | | | +--rw hop-type? te-hop-type 1712 | | | | | +--rw direction? te-link-direction 1713 | | | | +--:(unnumbered-link-hop) 1714 | | | | | +--rw unnumbered-link-hop 1715 | | | | | +--rw link-tp-id te-tp-id 1716 | | | | | +--rw node-id te-node-id 1717 | | | | | +--rw hop-type? te-hop-type 1718 | | | | | +--rw direction? te-link-direction 1719 | | | | +--:(as-number) 1720 | | | | | +--rw as-number-hop 1721 | | | | | +--rw as-number inet:as-number 1722 | | | | | +--rw hop-type? te-hop-type 1723 | | | | +--:(label) 1724 | | | | +--rw label-hop 1725 | | | | +--rw te-label 1726 | | | | +--rw (technology)? 1727 | | | | | +--:(generic) 1728 | | | | | +--rw generic? 1729 | | | | | rt-types:generalized-label 1730 | | | | +--rw direction? 1731 | | | | te-label-direction 1732 | | | +--rw route-object-include-exclude* [index] 1733 | | | +--rw explicit-route-usage? identityref 1734 | | | +--rw index uint32 1735 | | | +--rw (type)? 1736 | | | +--:(numbered-node-hop) 1737 | | | | +--rw numbered-node-hop 1738 | | | | +--rw node-id te-node-id 1739 | | | | +--rw hop-type? te-hop-type 1740 | | | +--:(numbered-link-hop) 1741 | | | | +--rw numbered-link-hop 1742 | | | | +--rw link-tp-id te-tp-id 1743 | | | | +--rw hop-type? te-hop-type 1744 | | | | +--rw direction? te-link-direction 1745 | | | +--:(unnumbered-link-hop) 1746 | | | | +--rw unnumbered-link-hop 1747 | | | | +--rw link-tp-id te-tp-id 1748 | | | | +--rw node-id te-node-id 1749 | | | | +--rw hop-type? te-hop-type 1750 | | | | +--rw direction? te-link-direction 1751 | | | +--:(as-number) 1752 | | | | +--rw as-number-hop 1753 | | | | +--rw as-number inet:as-number 1754 | | | | +--rw hop-type? te-hop-type 1755 | | | +--:(label) 1756 | | | | +--rw label-hop 1757 | | | | +--rw te-label 1758 | | | | +--rw (technology)? 1759 | | | | | +--:(generic) 1760 | | | | | +--rw generic? 1761 | | | | | rt-types:generalized-label 1762 | | | | +--rw direction? 1763 | | | | te-label-direction 1764 | | | +--:(srlg) 1765 | | | +--rw srlg 1766 | | | +--rw srlg? uint32 1767 | | +--rw shared-resources-tunnels 1768 | | | +--rw lsp-shared-resources-tunnel* tunnel-ref 1769 | | +--rw path-in-segment! 1770 | | | +--rw label-restrictions 1771 | | | +--rw label-restriction* [index] 1772 | | | +--rw restriction? enumeration 1773 | | | +--rw index uint32 1774 | | | +--rw label-start 1775 | | | | +--rw te-label 1776 | | | | +--rw (technology)? 1777 | | | | | +--:(generic) 1778 | | | | | +--rw generic? 1779 | | | | | rt-types:generalized-label 1780 | | | | +--rw direction? 1781 | | | | te-label-direction 1782 | | | +--rw label-end 1783 | | | | +--rw te-label 1784 | | | | +--rw (technology)? 1785 | | | | | +--:(generic) 1786 | | | | | +--rw generic? 1787 | | | | | rt-types:generalized-label 1788 | | | | +--rw direction? 1789 | | | | te-label-direction 1790 | | | +--rw label-step 1791 | | | | +--rw (technology)? 1792 | | | | +--:(generic) 1793 | | | | +--rw generic? int32 1794 | | | +--rw range-bitmap? yang:hex-string 1795 | | +--rw path-out-segment! 1796 | | | +--rw label-restrictions 1797 | | | +--rw label-restriction* [index] 1798 | | | +--rw restriction? enumeration 1799 | | | +--rw index uint32 1800 | | | +--rw label-start 1801 | | | | +--rw te-label 1802 | | | | +--rw (technology)? 1803 | | | | | +--:(generic) 1804 | | | | | +--rw generic? 1805 | | | | | rt-types:generalized-label 1806 | | | | +--rw direction? 1807 | | | | te-label-direction 1808 | | | +--rw label-end 1809 | | | | +--rw te-label 1810 | | | | +--rw (technology)? 1811 | | | | | +--:(generic) 1812 | | | | | +--rw generic? 1813 | | | | | rt-types:generalized-label 1814 | | | | +--rw direction? 1815 | | | | te-label-direction 1816 | | | +--rw label-step 1817 | | | | +--rw (technology)? 1818 | | | | +--:(generic) 1819 | | | | +--rw generic? int32 1820 | | | +--rw range-bitmap? yang:hex-string 1821 | | +--rw protection 1822 | | | +--rw enable? boolean 1823 | | | +--rw protection-type? identityref 1824 | | | +--rw protection-reversion-disable? boolean 1825 | | | +--rw hold-off-time? uint32 1826 | | | +--rw wait-to-revert? uint16 1827 | | | +--rw aps-signal-id? uint8 1828 | | +--rw restoration 1829 | | | +--rw enable? boolean 1830 | | | +--rw restoration-type? identityref 1831 | | | +--rw restoration-scheme? identityref 1832 | | | +--rw restoration-reversion-disable? boolean 1833 | | | +--rw hold-off-time? uint32 1834 | | | +--rw wait-to-restore? uint16 1835 | | | +--rw wait-to-revert? uint16 1836 | | +--ro computed-paths-properties 1837 | | | +--ro computed-path-properties* [k-index] 1838 | | | +--ro k-index uint8 1839 | | | +--ro path-properties 1840 | | | +--ro path-metric* [metric-type] 1841 | | | | +--ro metric-type identityref 1842 | | | | +--ro accumulative-value? uint64 1843 | | | +--ro path-affinities-values 1844 | | | | +--ro path-affinities-value* [usage] 1845 | | | | +--ro usage identityref 1846 | | | | +--ro value? admin-groups 1847 | | | +--ro path-affinity-names 1848 | | | | +--ro path-affinity-name* [usage] 1849 | | | | +--ro usage identityref 1850 | | | | +--ro affinity-name* [name] 1851 | | | | +--ro name string 1852 | | | +--ro path-srlgs-lists 1853 | | | | +--ro path-srlgs-list* [usage] 1854 | | | | +--ro usage identityref 1855 | | | | +--ro values* srlg 1856 | | | +--ro path-srlgs-names 1857 | | | | +--ro path-srlgs-name* [usage] 1858 | | | | +--ro usage identityref 1859 | | | | +--ro names* string 1860 | | | +--ro path-route-objects 1861 | | | | +--ro path-route-object* [index] 1862 | | | | +--ro index 1863 | | | | | uint32 1864 | | | | +--ro (type)? 1865 | | | | +--:(numbered-node-hop) 1866 | | | | | +--ro numbered-node-hop 1867 | | | | | +--ro node-id te-node-id 1868 | | | | | +--ro hop-type? te-hop-type 1869 | | | | +--:(numbered-link-hop) 1870 | | | | | +--ro numbered-link-hop 1871 | | | | | +--ro link-tp-id te-tp-id 1872 | | | | | +--ro hop-type? te-hop-type 1873 | | | | | +--ro direction? 1874 | | | | | te-link-direction 1875 | | | | +--:(unnumbered-link-hop) 1876 | | | | | +--ro unnumbered-link-hop 1877 | | | | | +--ro link-tp-id te-tp-id 1878 | | | | | +--ro node-id te-node-id 1879 | | | | | +--ro hop-type? te-hop-type 1880 | | | | | +--ro direction? 1881 | | | | | te-link-direction 1882 | | | | +--:(as-number) 1883 | | | | | +--ro as-number-hop 1884 | | | | | +--ro as-number 1885 | | | | | | inet:as-number 1886 | | | | | +--ro hop-type? te-hop-type 1887 | | | | +--:(label) 1888 | | | | +--ro label-hop 1889 | | | | +--ro te-label 1890 | | | | +--ro (technology)? 1891 | | | | | +--:(generic) 1892 | | | | | +--ro generic? 1893 | | | | | rt-types:generalized-label 1894 | | | | +--ro direction? 1895 | | | | te-label-direction 1896 | | | +--ro te-bandwidth 1897 | | | | +--ro (technology)? 1898 | | | | +--:(generic) 1899 | | | | +--ro generic? te-bandwidth 1900 | | | +--ro disjointness-type? 1901 | | | | te-types:te-path-disjointness 1902 | | | +--ro shared-resources-tunnels 1903 | | | +--ro lsp-shared-resources-tunnel* 1904 | | | tunnel-ref 1905 | | +--ro computed-path-error-infos 1906 | | | +--ro computed-path-error-info* [] 1907 | | | +--ro error-description? string 1908 | | | +--ro error-timestamp? yang:date-and-time 1909 | | | +--ro error-reason? identityref 1910 | | +--ro lsp-provisioning-error-infos 1911 | | | +--ro lsp-provisioning-error-info* [] 1912 | | | +--ro error-description? string 1913 | | | +--ro error-timestamp? yang:date-and-time 1914 | | | +--ro error-node-id? te-types:te-node-id 1915 | | | +--ro error-link-id? te-types:te-tp-id 1916 | | | +--ro lsp-id? uint16 1917 | | +--ro lsps 1918 | | +--ro lsp* [lsp-id] 1919 | | +--ro lsp-provisioning-error-infos 1920 | | | +--ro lsp-provisioning-error-info* [] 1921 | | | +--ro error-description? string 1922 | | | +--ro error-timestamp? 1923 | | | | yang:date-and-time 1924 | | | +--ro error-node-id? 1925 | | | | te-types:te-node-id 1926 | | | +--ro error-link-id? 1927 | | | te-types:te-tp-id 1928 | | +--ro source? 1929 | | | te-types:te-node-id 1930 | | +--ro destination? 1931 | | | te-types:te-node-id 1932 | | +--ro tunnel-id? uint16 1933 | | +--ro lsp-id uint16 1934 | | +--ro extended-tunnel-id? 1935 | | | yang:dotted-quad 1936 | | +--ro operational-state? 1937 | | | identityref 1938 | | +--ro signaling-type? 1939 | | | identityref 1940 | | +--ro origin-type? 1941 | | | enumeration 1942 | | +--ro lsp-resource-status? 1943 | | | enumeration 1944 | | +--ro lockout-of-normal? boolean 1945 | | +--ro freeze? boolean 1946 | | +--ro lsp-protection-role? 1947 | | | enumeration 1948 | | +--ro lsp-protection-state? 1949 | | | identityref 1950 | | +--ro protection-group-ingress-node-id? 1951 | | | te-types:te-node-id 1952 | | +--ro protection-group-egress-node-id? 1953 | | | te-types:te-node-id 1954 | | +--ro lsp-shared-resources-tunnel? 1955 | | | tunnel-ref 1956 | | +--ro lsp-record-route-information 1957 | | | +--ro lsp-record-route-information* [index] 1958 | | | +--ro index uint32 1959 | | | +--ro (type)? 1960 | | | +--:(numbered-node-hop) 1961 | | | | +--ro numbered-node-hop 1962 | | | | +--ro node-id te-node-id 1963 | | | | +--ro flags* 1964 | | | | path-attribute-flags 1965 | | | +--:(numbered-link-hop) 1966 | | | | +--ro numbered-link-hop 1967 | | | | +--ro link-tp-id te-tp-id 1968 | | | | +--ro flags* 1969 | | | | path-attribute-flags 1970 | | | +--:(unnumbered-link-hop) 1971 | | | | +--ro unnumbered-link-hop 1972 | | | | +--ro link-tp-id te-tp-id 1973 | | | | +--ro node-id? te-node-id 1974 | | | | +--ro flags* 1975 | | | | path-attribute-flags 1976 | | | +--:(label) 1977 | | | +--ro label-hop 1978 | | | +--ro te-label 1979 | | | | +--ro (technology)? 1980 | | | | | +--:(generic) 1981 | | | | | +--ro generic? 1982 | | | | | rt-types:generalized-label 1983 | | | | +--ro direction? 1984 | | | | te-label-direction 1985 | | | +--ro flags* 1986 | | | path-attribute-flags 1987 | | +--ro path-properties 1988 | | | +--ro path-metric* [metric-type] 1989 | | | | +--ro metric-type identityref 1990 | | | | +--ro accumulative-value? uint64 1991 | | | +--ro path-affinities-values 1992 | | | | +--ro path-affinities-value* [usage] 1993 | | | | +--ro usage identityref 1994 | | | | +--ro value? admin-groups 1995 | | | +--ro path-affinity-names 1996 | | | | +--ro path-affinity-name* [usage] 1997 | | | | +--ro usage identityref 1998 | | | | +--ro affinity-name* [name] 1999 | | | | +--ro name string 2000 | | | +--ro path-srlgs-lists 2001 | | | | +--ro path-srlgs-list* [usage] 2002 | | | | +--ro usage identityref 2003 | | | | +--ro values* srlg 2004 | | | +--ro path-srlgs-names 2005 | | | | +--ro path-srlgs-name* [usage] 2006 | | | | +--ro usage identityref 2007 | | | | +--ro names* string 2008 | | | +--ro path-route-objects 2009 | | | | +--ro path-route-object* [index] 2010 | | | | +--ro index 2011 | | | | | uint32 2012 | | | | +--ro (type)? 2013 | | | | +--:(numbered-node-hop) 2014 | | | | | +--ro numbered-node-hop 2015 | | | | | +--ro node-id te-node-id 2016 | | | | | +--ro hop-type? te-hop-type 2017 | | | | +--:(numbered-link-hop) 2018 | | | | | +--ro numbered-link-hop 2019 | | | | | +--ro link-tp-id te-tp-id 2020 | | | | | +--ro hop-type? te-hop-type 2021 | | | | | +--ro direction? 2022 | | | | | te-link-direction 2023 | | | | +--:(unnumbered-link-hop) 2024 | | | | | +--ro unnumbered-link-hop 2025 | | | | | +--ro link-tp-id te-tp-id 2026 | | | | | +--ro node-id te-node-id 2027 | | | | | +--ro hop-type? te-hop-type 2028 | | | | | +--ro direction? 2029 | | | | | te-link-direction 2030 | | | | +--:(as-number) 2031 | | | | | +--ro as-number-hop 2032 | | | | | +--ro as-number 2033 | | | | | | inet:as-number 2034 | | | | | +--ro hop-type? te-hop-type 2035 | | | | +--:(label) 2036 | | | | +--ro label-hop 2037 | | | | +--ro te-label 2038 | | | | +--ro (technology)? 2039 | | | | | +--:(generic) 2040 | | | | | +--ro generic? 2041 | | | | | rt-types:generalized-label 2042 | | | | +--ro direction? 2043 | | | | te-label-direction 2044 | | | +--ro te-bandwidth 2045 | | | | +--ro (technology)? 2046 | | | | +--:(generic) 2047 | | | | +--ro generic? te-bandwidth 2048 | | | +--ro disjointness-type? 2049 | | | | te-types:te-path-disjointness 2050 | | | +--ro shared-resources-tunnels 2051 | | | +--ro lsp-shared-resources-tunnel* 2052 | | | tunnel-ref 2053 | | +--ro te-dev:lsp-timers 2054 | | | +--ro te-dev:life-time? uint32 2055 | | | +--ro te-dev:time-to-install? uint32 2056 | | | +--ro te-dev:time-to-destroy? uint32 2057 | | +--ro te-dev:downstream-info 2058 | | | +--ro te-dev:nhop? 2059 | | | | te:te-generic-node-id 2060 | | | +--ro te-dev:outgoing-interface? 2061 | | | | if:interface-ref 2062 | | | +--ro te-dev:neighbor? 2063 | | | | te:te-generic-node-id 2064 | | | +--ro te-dev:label? 2065 | | | rt-types:generalized-label 2066 | | +--ro te-dev:upstream-info 2067 | | +--ro te-dev:phop? te:te-generic-node-id 2068 | | +--ro te-dev:neighbor? te:te-generic-node-id 2069 | | +--ro te-dev:label? 2070 | | rt-types:generalized-label 2071 | +--rw secondary-reverse-paths 2072 | | +--rw secondary-reverse-path* [name] 2073 | | +--rw name string 2074 | | +--rw path-computation-method? identityref 2075 | | +--rw path-computation-server? 2076 | | | te-generic-node-id 2077 | | +--rw compute-only? empty 2078 | | +--rw use-path-computation? boolean 2079 | | +--rw lockdown? empty 2080 | | +--ro path-scope? identityref 2081 | | +--rw preference? uint8 2082 | | +--rw association-objects 2083 | | | +--rw association-object* [type id source] 2084 | | | | +--rw type identityref 2085 | | | | +--rw id uint16 2086 | | | | +--rw source te-generic-node-id 2087 | | | +--rw association-object-extended* 2088 | | | [type id source global-source extended-id] 2089 | | | +--rw type identityref 2090 | | | +--rw id uint16 2091 | | | +--rw source te-generic-node-id 2092 | | | +--rw global-source uint32 2093 | | | +--rw extended-id yang:hex-string 2094 | | +--rw optimizations 2095 | | | +--rw (algorithm)? 2096 | | | +--:(metric) {path-optimization-metric}? 2097 | | | | +--rw optimization-metric* [metric-type] 2098 | | | | | +--rw metric-type 2099 | | | | | | identityref 2100 | | | | | +--rw weight? 2101 | | | | | | uint8 2102 | | | | | +--rw explicit-route-exclude-objects 2103 | | | | | | +--rw route-object-exclude-object* 2104 | | | | | | [index] 2105 | | | | | | +--rw index 2106 | | | | | | | uint32 2107 | | | | | | +--rw (type)? 2108 | | | | | | +--:(numbered-node-hop) 2109 | | | | | | | +--rw numbered-node-hop 2110 | | | | | | | +--rw node-id te-node-id 2111 | | | | | | | +--rw hop-type? 2112 | | | | | | | te-hop-type 2113 | | | | | | +--:(numbered-link-hop) 2114 | | | | | | | +--rw numbered-link-hop 2115 | | | | | | | +--rw link-tp-id te-tp-id 2116 | | | | | | | +--rw hop-type? 2117 | | | | | | | | te-hop-type 2118 | | | | | | | +--rw direction? 2119 | | | | | | | te-link-direction 2120 | | | | | | +--:(unnumbered-link-hop) 2121 | | | | | | | +--rw unnumbered-link-hop 2122 | | | | | | | +--rw link-tp-id te-tp-id 2123 | | | | | | | +--rw node-id 2124 | | | | | | | | te-node-id 2125 | | | | | | | +--rw hop-type? 2126 | | | | | | | | te-hop-type 2127 | | | | | | | +--rw direction? 2128 | | | | | | | te-link-direction 2129 | | | | | | +--:(as-number) 2130 | | | | | | | +--rw as-number-hop 2131 | | | | | | | +--rw as-number 2132 | | | | | | | | inet:as-number 2133 | | | | | | | +--rw hop-type? 2134 | | | | | | | te-hop-type 2135 | | | | | | +--:(label) 2136 | | | | | | | +--rw label-hop 2137 | | | | | | | +--rw te-label 2138 | | | | | | | +--rw (technology)? 2139 | | | | | | | | +--:(generic) 2140 | | | | | | | | +--rw generic? 2141 | | | | | | | | rt-types:generalized-label 2142 | | | | | | | +--rw direction? 2143 | | | | | | | te-label-direction 2144 | | | | | | +--:(srlg) 2145 | | | | | | +--rw srlg 2146 | | | | | | +--rw srlg? uint32 2147 | | | | | +--rw explicit-route-include-objects 2148 | | | | | +--rw route-object-include-object* 2149 | | | | | [index] 2150 | | | | | +--rw index 2151 | | | | | | uint32 2152 | | | | | +--rw (type)? 2153 | | | | | +--:(numbered-node-hop) 2154 | | | | | | +--rw numbered-node-hop 2155 | | | | | | +--rw node-id te-node-id 2156 | | | | | | +--rw hop-type? 2157 | | | | | | te-hop-type 2158 | | | | | +--:(numbered-link-hop) 2159 | | | | | | +--rw numbered-link-hop 2160 | | | | | | +--rw link-tp-id te-tp-id 2161 | | | | | | +--rw hop-type? 2162 | | | | | | | te-hop-type 2163 | | | | | | +--rw direction? 2164 | | | | | | te-link-direction 2165 | | | | | +--:(unnumbered-link-hop) 2166 | | | | | | +--rw unnumbered-link-hop 2167 | | | | | | +--rw link-tp-id te-tp-id 2168 | | | | | | +--rw node-id 2169 | | | | | | | te-node-id 2170 | | | | | | +--rw hop-type? 2171 | | | | | | | te-hop-type 2172 | | | | | | +--rw direction? 2173 | | | | | | te-link-direction 2174 | | | | | +--:(as-number) 2175 | | | | | | +--rw as-number-hop 2176 | | | | | | +--rw as-number 2177 | | | | | | | inet:as-number 2178 | | | | | | +--rw hop-type? 2179 | | | | | | te-hop-type 2180 | | | | | +--:(label) 2181 | | | | | +--rw label-hop 2182 | | | | | +--rw te-label 2183 | | | | | +--rw (technology)? 2184 | | | | | | +--:(generic) 2185 | | | | | | +--rw generic? 2186 | | | | | | rt-types:generalized-label 2187 | | | | | +--rw direction? 2188 | | | | | te-label-direction 2189 | | | | +--rw tiebreakers 2190 | | | | +--rw tiebreaker* [tiebreaker-type] 2191 | | | | +--rw tiebreaker-type identityref 2192 | | | +--:(objective-function) 2193 | | | {path-optimization-objective-function}? 2194 | | | +--rw objective-function 2195 | | | +--rw objective-function-type? 2196 | | | identityref 2197 | | +--rw named-path-constraint? leafref 2198 | | | {te-types:named-path-constraints}? 2199 | | +--rw te-bandwidth 2200 | | | +--rw (technology)? 2201 | | | +--:(generic) 2202 | | | +--rw generic? te-bandwidth 2203 | | +--rw link-protection? identityref 2204 | | +--rw setup-priority? uint8 2205 | | +--rw hold-priority? uint8 2206 | | +--rw signaling-type? identityref 2207 | | +--rw path-metric-bounds 2208 | | | +--rw path-metric-bound* [metric-type] 2209 | | | +--rw metric-type identityref 2210 | | | +--rw upper-bound? uint64 2211 | | +--rw path-affinities-values 2212 | | | +--rw path-affinities-value* [usage] 2213 | | | +--rw usage identityref 2214 | | | +--rw value? admin-groups 2215 | | +--rw path-affinity-names 2216 | | | +--rw path-affinity-name* [usage] 2217 | | | +--rw usage identityref 2218 | | | +--rw affinity-name* [name] 2219 | | | +--rw name string 2220 | | +--rw path-srlgs-lists 2221 | | | +--rw path-srlgs-list* [usage] 2222 | | | +--rw usage identityref 2223 | | | +--rw values* srlg 2224 | | +--rw path-srlgs-names 2225 | | | +--rw path-srlgs-name* [usage] 2226 | | | +--rw usage identityref 2227 | | | +--rw names* string 2228 | | +--rw disjointness? 2229 | | | te-path-disjointness 2230 | | +--rw explicit-route-objects-always 2231 | | | +--rw route-object-exclude-always* [index] 2232 | | | | +--rw index uint32 2233 | | | | +--rw (type)? 2234 | | | | +--:(numbered-node-hop) 2235 | | | | | +--rw numbered-node-hop 2236 | | | | | +--rw node-id te-node-id 2237 | | | | | +--rw hop-type? te-hop-type 2238 | | | | +--:(numbered-link-hop) 2239 | | | | | +--rw numbered-link-hop 2240 | | | | | +--rw link-tp-id te-tp-id 2241 | | | | | +--rw hop-type? te-hop-type 2242 | | | | | +--rw direction? te-link-direction 2243 | | | | +--:(unnumbered-link-hop) 2244 | | | | | +--rw unnumbered-link-hop 2245 | | | | | +--rw link-tp-id te-tp-id 2246 | | | | | +--rw node-id te-node-id 2247 | | | | | +--rw hop-type? te-hop-type 2248 | | | | | +--rw direction? te-link-direction 2249 | | | | +--:(as-number) 2250 | | | | | +--rw as-number-hop 2251 | | | | | +--rw as-number inet:as-number 2252 | | | | | +--rw hop-type? te-hop-type 2253 | | | | +--:(label) 2254 | | | | +--rw label-hop 2255 | | | | +--rw te-label 2256 | | | | +--rw (technology)? 2257 | | | | | +--:(generic) 2258 | | | | | +--rw generic? 2259 | | | | | rt-types:generalized-label 2260 | | | | +--rw direction? 2261 | | | | te-label-direction 2262 | | | +--rw route-object-include-exclude* [index] 2263 | | | +--rw explicit-route-usage? identityref 2264 | | | +--rw index uint32 2265 | | | +--rw (type)? 2266 | | | +--:(numbered-node-hop) 2267 | | | | +--rw numbered-node-hop 2268 | | | | +--rw node-id te-node-id 2269 | | | | +--rw hop-type? te-hop-type 2270 | | | +--:(numbered-link-hop) 2271 | | | | +--rw numbered-link-hop 2272 | | | | +--rw link-tp-id te-tp-id 2273 | | | | +--rw hop-type? te-hop-type 2274 | | | | +--rw direction? te-link-direction 2275 | | | +--:(unnumbered-link-hop) 2276 | | | | +--rw unnumbered-link-hop 2277 | | | | +--rw link-tp-id te-tp-id 2278 | | | | +--rw node-id te-node-id 2279 | | | | +--rw hop-type? te-hop-type 2280 | | | | +--rw direction? te-link-direction 2281 | | | +--:(as-number) 2282 | | | | +--rw as-number-hop 2283 | | | | +--rw as-number inet:as-number 2284 | | | | +--rw hop-type? te-hop-type 2285 | | | +--:(label) 2286 | | | | +--rw label-hop 2287 | | | | +--rw te-label 2288 | | | | +--rw (technology)? 2289 | | | | | +--:(generic) 2290 | | | | | +--rw generic? 2291 | | | | | rt-types:generalized-label 2292 | | | | +--rw direction? 2293 | | | | te-label-direction 2294 | | | +--:(srlg) 2295 | | | +--rw srlg 2296 | | | +--rw srlg? uint32 2297 | | +--rw shared-resources-tunnels 2298 | | | +--rw lsp-shared-resources-tunnel* tunnel-ref 2299 | | +--rw path-in-segment! 2300 | | | +--rw label-restrictions 2301 | | | +--rw label-restriction* [index] 2302 | | | +--rw restriction? enumeration 2303 | | | +--rw index uint32 2304 | | | +--rw label-start 2305 | | | | +--rw te-label 2306 | | | | +--rw (technology)? 2307 | | | | | +--:(generic) 2308 | | | | | +--rw generic? 2309 | | | | | rt-types:generalized-label 2310 | | | | +--rw direction? 2311 | | | | te-label-direction 2312 | | | +--rw label-end 2313 | | | | +--rw te-label 2314 | | | | +--rw (technology)? 2315 | | | | | +--:(generic) 2316 | | | | | +--rw generic? 2317 | | | | | rt-types:generalized-label 2318 | | | | +--rw direction? 2319 | | | | te-label-direction 2320 | | | +--rw label-step 2321 | | | | +--rw (technology)? 2322 | | | | +--:(generic) 2323 | | | | +--rw generic? int32 2324 | | | +--rw range-bitmap? yang:hex-string 2325 | | +--rw path-out-segment! 2326 | | | +--rw label-restrictions 2327 | | | +--rw label-restriction* [index] 2328 | | | +--rw restriction? enumeration 2329 | | | +--rw index uint32 2330 | | | +--rw label-start 2331 | | | | +--rw te-label 2332 | | | | +--rw (technology)? 2333 | | | | | +--:(generic) 2334 | | | | | +--rw generic? 2335 | | | | | rt-types:generalized-label 2336 | | | | +--rw direction? 2337 | | | | te-label-direction 2338 | | | +--rw label-end 2339 | | | | +--rw te-label 2340 | | | | +--rw (technology)? 2341 | | | | | +--:(generic) 2342 | | | | | +--rw generic? 2343 | | | | | rt-types:generalized-label 2344 | | | | +--rw direction? 2345 | | | | te-label-direction 2346 | | | +--rw label-step 2347 | | | | +--rw (technology)? 2348 | | | | +--:(generic) 2349 | | | | +--rw generic? int32 2350 | | | +--rw range-bitmap? yang:hex-string 2351 | | +--rw protection 2352 | | | +--rw enable? boolean 2353 | | | +--rw protection-type? identityref 2354 | | | +--rw protection-reversion-disable? boolean 2355 | | | +--rw hold-off-time? uint32 2356 | | | +--rw wait-to-revert? uint16 2357 | | | +--rw aps-signal-id? uint8 2358 | | +--rw restoration 2359 | | | +--rw enable? boolean 2360 | | | +--rw restoration-type? identityref 2361 | | | +--rw restoration-scheme? identityref 2362 | | | +--rw restoration-reversion-disable? boolean 2363 | | | +--rw hold-off-time? uint32 2364 | | | +--rw wait-to-restore? uint16 2365 | | | +--rw wait-to-revert? uint16 2366 | | +--ro computed-paths-properties 2367 | | | +--ro computed-path-properties* [k-index] 2368 | | | +--ro k-index uint8 2369 | | | +--ro path-properties 2370 | | | +--ro path-metric* [metric-type] 2371 | | | | +--ro metric-type identityref 2372 | | | | +--ro accumulative-value? uint64 2373 | | | +--ro path-affinities-values 2374 | | | | +--ro path-affinities-value* [usage] 2375 | | | | +--ro usage identityref 2376 | | | | +--ro value? admin-groups 2377 | | | +--ro path-affinity-names 2378 | | | | +--ro path-affinity-name* [usage] 2379 | | | | +--ro usage identityref 2380 | | | | +--ro affinity-name* [name] 2381 | | | | +--ro name string 2382 | | | +--ro path-srlgs-lists 2383 | | | | +--ro path-srlgs-list* [usage] 2384 | | | | +--ro usage identityref 2385 | | | | +--ro values* srlg 2386 | | | +--ro path-srlgs-names 2387 | | | | +--ro path-srlgs-name* [usage] 2388 | | | | +--ro usage identityref 2389 | | | | +--ro names* string 2390 | | | +--ro path-route-objects 2391 | | | | +--ro path-route-object* [index] 2392 | | | | +--ro index 2393 | | | | | uint32 2394 | | | | +--ro (type)? 2395 | | | | +--:(numbered-node-hop) 2396 | | | | | +--ro numbered-node-hop 2397 | | | | | +--ro node-id te-node-id 2398 | | | | | +--ro hop-type? te-hop-type 2399 | | | | +--:(numbered-link-hop) 2400 | | | | | +--ro numbered-link-hop 2401 | | | | | +--ro link-tp-id te-tp-id 2402 | | | | | +--ro hop-type? te-hop-type 2403 | | | | | +--ro direction? 2404 | | | | | te-link-direction 2405 | | | | +--:(unnumbered-link-hop) 2406 | | | | | +--ro unnumbered-link-hop 2407 | | | | | +--ro link-tp-id te-tp-id 2408 | | | | | +--ro node-id te-node-id 2409 | | | | | +--ro hop-type? te-hop-type 2410 | | | | | +--ro direction? 2411 | | | | | te-link-direction 2412 | | | | +--:(as-number) 2413 | | | | | +--ro as-number-hop 2414 | | | | | +--ro as-number 2415 | | | | | | inet:as-number 2416 | | | | | +--ro hop-type? te-hop-type 2417 | | | | +--:(label) 2418 | | | | +--ro label-hop 2419 | | | | +--ro te-label 2420 | | | | +--ro (technology)? 2421 | | | | | +--:(generic) 2422 | | | | | +--ro generic? 2423 | | | | | rt-types:generalized-label 2424 | | | | +--ro direction? 2425 | | | | te-label-direction 2426 | | | +--ro te-bandwidth 2427 | | | | +--ro (technology)? 2428 | | | | +--:(generic) 2429 | | | | +--ro generic? te-bandwidth 2430 | | | +--ro disjointness-type? 2431 | | | | te-types:te-path-disjointness 2432 | | | +--ro shared-resources-tunnels 2433 | | | +--ro lsp-shared-resources-tunnel* 2434 | | | tunnel-ref 2435 | | +--ro computed-path-error-infos 2436 | | | +--ro computed-path-error-info* [] 2437 | | | +--ro error-description? string 2438 | | | +--ro error-timestamp? yang:date-and-time 2439 | | | +--ro error-reason? identityref 2440 | | +--ro lsp-provisioning-error-infos 2441 | | | +--ro lsp-provisioning-error-info* [] 2442 | | | +--ro error-description? string 2443 | | | +--ro error-timestamp? yang:date-and-time 2444 | | | +--ro error-node-id? te-types:te-node-id 2445 | | | +--ro error-link-id? te-types:te-tp-id 2446 | | | +--ro lsp-id? uint16 2447 | | +--ro lsps 2448 | | +--ro lsp* [lsp-id] 2449 | | +--ro lsp-provisioning-error-infos 2450 | | | +--ro lsp-provisioning-error-info* [] 2451 | | | +--ro error-description? string 2452 | | | +--ro error-timestamp? 2453 | | | | yang:date-and-time 2454 | | | +--ro error-node-id? 2455 | | | | te-types:te-node-id 2456 | | | +--ro error-link-id? 2457 | | | te-types:te-tp-id 2458 | | +--ro source? 2459 | | | te-types:te-node-id 2460 | | +--ro destination? 2461 | | | te-types:te-node-id 2462 | | +--ro tunnel-id? uint16 2463 | | +--ro lsp-id uint16 2464 | | +--ro extended-tunnel-id? 2465 | | | yang:dotted-quad 2466 | | +--ro operational-state? 2467 | | | identityref 2468 | | +--ro signaling-type? 2469 | | | identityref 2470 | | +--ro origin-type? 2471 | | | enumeration 2472 | | +--ro lsp-resource-status? 2473 | | | enumeration 2474 | | +--ro lockout-of-normal? boolean 2475 | | +--ro freeze? boolean 2476 | | +--ro lsp-protection-role? 2477 | | | enumeration 2478 | | +--ro lsp-protection-state? 2479 | | | identityref 2480 | | +--ro protection-group-ingress-node-id? 2481 | | | te-types:te-node-id 2482 | | +--ro protection-group-egress-node-id? 2483 | | | te-types:te-node-id 2484 | | +--ro lsp-shared-resources-tunnel? 2485 | | | tunnel-ref 2486 | | +--ro lsp-record-route-information 2487 | | | +--ro lsp-record-route-information* [index] 2488 | | | +--ro index uint32 2489 | | | +--ro (type)? 2490 | | | +--:(numbered-node-hop) 2491 | | | | +--ro numbered-node-hop 2492 | | | | +--ro node-id te-node-id 2493 | | | | +--ro flags* 2494 | | | | path-attribute-flags 2495 | | | +--:(numbered-link-hop) 2496 | | | | +--ro numbered-link-hop 2497 | | | | +--ro link-tp-id te-tp-id 2498 | | | | +--ro flags* 2499 | | | | path-attribute-flags 2500 | | | +--:(unnumbered-link-hop) 2501 | | | | +--ro unnumbered-link-hop 2502 | | | | +--ro link-tp-id te-tp-id 2503 | | | | +--ro node-id? te-node-id 2504 | | | | +--ro flags* 2505 | | | | path-attribute-flags 2506 | | | +--:(label) 2507 | | | +--ro label-hop 2508 | | | +--ro te-label 2509 | | | | +--ro (technology)? 2510 | | | | | +--:(generic) 2511 | | | | | +--ro generic? 2512 | | | | | rt-types:generalized-label 2513 | | | | +--ro direction? 2514 | | | | te-label-direction 2515 | | | +--ro flags* 2516 | | | path-attribute-flags 2517 | | +--ro path-properties 2518 | | +--ro path-metric* [metric-type] 2519 | | | +--ro metric-type identityref 2520 | | | +--ro accumulative-value? uint64 2521 | | +--ro path-affinities-values 2522 | | | +--ro path-affinities-value* [usage] 2523 | | | +--ro usage identityref 2524 | | | +--ro value? admin-groups 2525 | | +--ro path-affinity-names 2526 | | | +--ro path-affinity-name* [usage] 2527 | | | +--ro usage identityref 2528 | | | +--ro affinity-name* [name] 2529 | | | +--ro name string 2530 | | +--ro path-srlgs-lists 2531 | | | +--ro path-srlgs-list* [usage] 2532 | | | +--ro usage identityref 2533 | | | +--ro values* srlg 2534 | | +--ro path-srlgs-names 2535 | | | +--ro path-srlgs-name* [usage] 2536 | | | +--ro usage identityref 2537 | | | +--ro names* string 2538 | | +--ro path-route-objects 2539 | | | +--ro path-route-object* [index] 2540 | | | +--ro index 2541 | | | | uint32 2542 | | | +--ro (type)? 2543 | | | +--:(numbered-node-hop) 2544 | | | | +--ro numbered-node-hop 2545 | | | | +--ro node-id te-node-id 2546 | | | | +--ro hop-type? te-hop-type 2547 | | | +--:(numbered-link-hop) 2548 | | | | +--ro numbered-link-hop 2549 | | | | +--ro link-tp-id te-tp-id 2550 | | | | +--ro hop-type? te-hop-type 2551 | | | | +--ro direction? 2552 | | | | te-link-direction 2553 | | | +--:(unnumbered-link-hop) 2554 | | | | +--ro unnumbered-link-hop 2555 | | | | +--ro link-tp-id te-tp-id 2556 | | | | +--ro node-id te-node-id 2557 | | | | +--ro hop-type? te-hop-type 2558 | | | | +--ro direction? 2559 | | | | te-link-direction 2560 | | | +--:(as-number) 2561 | | | | +--ro as-number-hop 2562 | | | | +--ro as-number 2563 | | | | | inet:as-number 2564 | | | | +--ro hop-type? te-hop-type 2565 | | | +--:(label) 2566 | | | +--ro label-hop 2567 | | | +--ro te-label 2568 | | | +--ro (technology)? 2569 | | | | +--:(generic) 2570 | | | | +--ro generic? 2571 | | | | rt-types:generalized-label 2572 | | | +--ro direction? 2573 | | | te-label-direction 2574 | | +--ro te-bandwidth 2575 | | | +--ro (technology)? 2576 | | | +--:(generic) 2577 | | | +--ro generic? te-bandwidth 2578 | | +--ro disjointness-type? 2579 | | | te-types:te-path-disjointness 2580 | | +--ro shared-resources-tunnels 2581 | | +--ro lsp-shared-resources-tunnel* 2582 | | tunnel-ref 2583 | +---x tunnel-action 2584 | | +---w input 2585 | | | +---w action-type? identityref 2586 | | +--ro output 2587 | | +--ro action-result? identityref 2588 | +---x protection-external-commands 2589 | | +---w input 2590 | | +---w protection-external-command? identityref 2591 | | +---w protection-group-ingress-node-id? 2592 | | | te-types:te-node-id 2593 | | +---w protection-group-egress-node-id? 2594 | | | te-types:te-node-id 2595 | | +---w path-ref? path-ref 2596 | | +---w traffic-type? enumeration 2597 | | +---w extra-traffic-tunnel-ref? tunnel-ref 2598 | +--rw te-dev:lsp-install-interval? uint32 2599 | +--rw te-dev:lsp-cleanup-interval? uint32 2600 | +--rw te-dev:lsp-invalidation-interval? uint32 2601 +--ro lsps-state 2602 | +--ro lsp* 2603 | [source destination tunnel-id lsp-id extended-tunnel-id] 2604 | +--ro source te-types:te-node-id 2605 | +--ro destination te-types:te-node-id 2606 | +--ro tunnel-id uint16 2607 | +--ro lsp-id uint16 2608 | +--ro extended-tunnel-id yang:dotted-quad 2609 | +--ro operational-state? identityref 2610 | +--ro signaling-type? identityref 2611 | +--ro origin-type? enumeration 2612 | +--ro lsp-resource-status? enumeration 2613 | +--ro lockout-of-normal? boolean 2614 | +--ro freeze? boolean 2615 | +--ro lsp-protection-role? enumeration 2616 | +--ro lsp-protection-state? identityref 2617 | +--ro protection-group-ingress-node-id? te-types:te-node-id 2618 | +--ro protection-group-egress-node-id? te-types:te-node-id 2619 | +--ro lsp-record-route-information 2620 | | +--ro lsp-record-route-information* [index] 2621 | | +--ro index uint32 2622 | | +--ro (type)? 2623 | | +--:(numbered-node-hop) 2624 | | | +--ro numbered-node-hop 2625 | | | +--ro node-id te-node-id 2626 | | | +--ro flags* path-attribute-flags 2627 | | +--:(numbered-link-hop) 2628 | | | +--ro numbered-link-hop 2629 | | | +--ro link-tp-id te-tp-id 2630 | | | +--ro flags* path-attribute-flags 2631 | | +--:(unnumbered-link-hop) 2632 | | | +--ro unnumbered-link-hop 2633 | | | +--ro link-tp-id te-tp-id 2634 | | | +--ro node-id? te-node-id 2635 | | | +--ro flags* path-attribute-flags 2636 | | +--:(label) 2637 | | +--ro label-hop 2638 | | +--ro te-label 2639 | | | +--ro (technology)? 2640 | | | | +--:(generic) 2641 | | | | +--ro generic? 2642 | | | | rt-types:generalized-label 2643 | | | +--ro direction? te-label-direction 2644 | | +--ro flags* path-attribute-flags 2645 | +--ro te-dev:lsp-timers 2646 | | +--ro te-dev:life-time? uint32 2647 | | +--ro te-dev:time-to-install? uint32 2648 | | +--ro te-dev:time-to-destroy? uint32 2649 | +--ro te-dev:downstream-info 2650 | | +--ro te-dev:nhop? te:te-generic-node-id 2651 | | +--ro te-dev:outgoing-interface? if:interface-ref 2652 | | +--ro te-dev:neighbor? te:te-generic-node-id 2653 | | +--ro te-dev:label? 2654 | | rt-types:generalized-label 2655 | +--ro te-dev:upstream-info 2656 | +--ro te-dev:phop? te:te-generic-node-id 2657 | +--ro te-dev:neighbor? te:te-generic-node-id 2658 | +--ro te-dev:label? rt-types:generalized-label 2659 +--rw te-dev:interfaces 2660 | +--rw te-dev:threshold-type? enumeration 2661 | +--rw te-dev:delta-percentage? rt-types:percentage 2662 | +--rw te-dev:threshold-specification? enumeration 2663 | +--rw te-dev:up-thresholds* rt-types:percentage 2664 | +--rw te-dev:down-thresholds* rt-types:percentage 2665 | +--rw te-dev:up-down-thresholds* rt-types:percentage 2666 | +--rw te-dev:interface* [interface] 2667 | +--rw te-dev:interface 2668 | | if:interface-ref 2669 | +--rw te-dev:te-metric? 2670 | | te-types:te-metric 2671 | +--rw (te-dev:admin-group-type)? 2672 | | +--:(te-dev:value-admin-groups) 2673 | | | +--rw (te-dev:value-admin-group-type)? 2674 | | | +--:(te-dev:admin-groups) 2675 | | | | +--rw te-dev:admin-group? 2676 | | | | te-types:admin-group 2677 | | | +--:(te-dev:extended-admin-groups) 2678 | | | {te-types:extended-admin-groups}? 2679 | | | +--rw te-dev:extended-admin-group? 2680 | | | te-types:extended-admin-group 2681 | | +--:(te-dev:named-admin-groups) 2682 | | +--rw te-dev:named-admin-groups* [named-admin-group] 2683 | | +--rw te-dev:named-admin-group leafref 2684 | +--rw (te-dev:srlg-type)? 2685 | | +--:(te-dev:value-srlgs) 2686 | | | +--rw te-dev:values* [value] 2687 | | | +--rw te-dev:value uint32 2688 | | +--:(te-dev:named-srlgs) 2689 | | +--rw te-dev:named-srlgs* [named-srlg] 2690 | | {te-types:named-srlg-groups}? 2691 | | +--rw te-dev:named-srlg leafref 2692 | +--rw te-dev:threshold-type? enumeration 2693 | +--rw te-dev:delta-percentage? 2694 | | rt-types:percentage 2695 | +--rw te-dev:threshold-specification? enumeration 2696 | +--rw te-dev:up-thresholds* 2697 | | rt-types:percentage 2698 | +--rw te-dev:down-thresholds* 2699 | | rt-types:percentage 2700 | +--rw te-dev:up-down-thresholds* 2701 | | rt-types:percentage 2702 | +--rw te-dev:switching-capabilities* [switching-capability] 2703 | | +--rw te-dev:switching-capability identityref 2704 | | +--rw te-dev:encoding? identityref 2705 | +--ro te-dev:state 2706 | +--ro te-dev:te-advertisements-state 2707 | +--ro te-dev:flood-interval? uint32 2708 | +--ro te-dev:last-flooded-time? uint32 2709 | +--ro te-dev:next-flooded-time? uint32 2710 | +--ro te-dev:last-flooded-trigger? enumeration 2711 | +--ro te-dev:advertized-level-areas* [level-area] 2712 | +--ro te-dev:level-area uint32 2713 +--rw te-dev:performance-thresholds 2715 rpcs: 2716 +---x tunnels-path-compute 2717 | +---w input 2718 | | +---w path-compute-info 2719 | +--ro output 2720 | +--ro path-compute-result 2721 +---x tunnels-actions 2722 +---w input 2723 | +---w tunnel-info 2724 | | +---w (filter-type) 2725 | | +--:(all-tunnels) 2726 | | | +---w all empty 2727 | | +--:(one-tunnel) 2728 | | +---w tunnel? tunnel-ref 2729 | +---w action-info 2730 | +---w action? identityref 2731 | +---w disruptive? empty 2732 +--ro output 2733 +--ro action-result? identityref 2734 module: ietf-te-device 2736 rpcs: 2737 +---x link-state-update 2738 +---w input 2739 +---w (filter-type) 2740 +--:(match-all) 2741 | +---w all empty 2742 +--:(match-one-interface) 2743 +---w interface? if:interface-ref 2745 Figure 2: TE generic model configuration and state tree 2747 3. Model Organization 2749 The TE generic YANG data module "ietf-te" covers configuration, 2750 state, and RPC data pertaining to TE tunnels, and global objects that 2751 are device independent. 2753 The container "te" is the top level container in the data model. The 2754 presence of this container enables TE function system wide. 2756 The model top level organization is shown below in Figure 3: 2758 module: ietf-te 2759 +--rw te! 2760 +--rw globals 2761 . 2762 . 2764 +--rw tunnels 2765 . 2766 . 2768 +-- lsps-state 2770 rpcs: 2771 +---x tunnels-path-compute 2772 +---x tunnels-action 2774 Figure 3: TE generic highlevel model view 2776 3.1. Global Configuration and State Data 2778 The global TE branch of the data model covers configurations that 2779 control TE features behavior system-wide, and its respective state. 2780 Examples of such configuration data are: 2782 o Table of named SRLG mappings 2784 o Table of named (extended) administrative groups mappings 2785 o Table of named path-constraints sets 2787 o System-wide capabilities for LSP reoptimization 2789 * Reoptimization timers (periodic interval, LSP installation and 2790 cleanup) 2792 * Link state flooding thresholds 2794 * Periodic flooding interval 2796 o Global capabilities that affect originating, transiting and 2797 terminating LSPs. For example: 2799 * Path selection parameters (e.g. metric to optimize, etc.) 2801 * Path or segment protection parameters 2803 3.2. Interfaces Configuration and State Data 2805 This branch of the model covers configuration and state data 2806 corresponding to TE interfaces that are present on a device. The 2807 module "ietf-te-device" is introduced to hold such TE device specific 2808 properties. 2810 Examples of TE interface properties are: * Maximum reservable 2811 bandwidth, bandwidth constraints (BC) * Flooding parameters * 2812 Flooding intervals and threshold values * interface attributes * 2813 (Extended) administrative groups * SRLG values * TE metric value * 2814 Fast reroute backup tunnel properties (such as static, auto-tunnel) 2816 module: ietf-te-device 2817 augment /te:te: 2818 +--rw interfaces 2819 . 2820 +-- rw te-dev:te-attributes 2821 <> 2822 . 2823 +-- ro state 2824 <> 2826 Figure 4: TE interface state 2828 The derived state associated with interfaces is grouped under the 2829 interface "state" sub-container as shown in Figure 4. This covers 2830 state data such as: 2832 o Bandwidth information: maximum bandwidth, available bandwidth at 2833 different priorities and for each class-type (CT) 2835 o List of admitted LSPs 2837 * Name, bandwidth value and pool, time, priority 2839 o Statistics: state counters, flooding counters, admission counters 2840 (accepted/rejected), preemption counters 2842 o Adjacency information 2844 * Neighbor address 2846 * Metric value 2848 3.3. Tunnels Configuration and State Data 2850 This branch covers data related to TE tunnels configuration and 2851 state. The derived state associated with tunnels is grouped under a 2852 state container as shown in Figure 5. 2854 module: ietf-te 2855 +--rw te! 2856 +--rw tunnels 2857 <> 2859 Figure 5: TE interface state tree 2861 Examples of tunnel configuration data for TE tunnels: 2863 o Name and type (e.g. P2P, P2MP) of the TE tunnel 2865 o Administrative and operational state of the TE tunnel 2867 o Set of primary and corresponding secondary paths and corresponding 2868 path attributes 2870 o Bidirectional path attribute(s) including forwarding and reverse 2871 path properties 2873 o Protection and restoration path parameters 2875 3.3.1. Tunnel Compute-Only Mode 2877 A configured TE tunnel, by default, is provisioned so it can carry 2878 traffic as soon as a valid path is computed and an LSP instantiated. 2879 In some cases, however, a TE tunnel may be provisioned for the only 2880 purpose of computing a path and reporting it without the need to 2881 instantiate the LSP or commit any resources. In such a case, the 2882 tunnel is configured in "compute-only" mode to distinguish it from 2883 default tunnel behavior. 2885 A "compute-only" TE tunnel is configured as a usual TE tunnel with 2886 associated per path constraint(s) and properties on a device or 2887 controller. The device or controller computes the feasible path(s) 2888 subject to configured constraints and reflects the computed path(s) 2889 in the LSP(s) Record-Route Object (RRO) list. At any time, a client 2890 may query "on-demand" the "compute-only" TE tunnel computed path(s) 2891 properties by querying the state of the tunnel. Alternatively, the 2892 client can subscribe on the "compute-only" TE tunnel to be notified 2893 of computed path(s) and whenever it changes. 2895 3.3.2. Tunnel Hierarchical Link Endpoint 2897 TE LSPs can be set up in MPLS or Generalized MPLS (GMPLS) networks to 2898 be used to form links to carry traffic in in other (client) networks 2899 [RFC6107]. In this case, the model introduces the TE tunnel 2900 hierarchical link endpoint parameters to identify the specific link 2901 in the client layer that the underlying TE tunnel is associated with. 2903 4. TE Generic and Helper YANG Modules 2905 The TE generic YANG module "ietf-te" imports the following modules: 2907 o ietf-yang-types and ietf-inet-types defined in [RFC6991] 2909 o ietf-te-types defined in [I-D.ietf-teas-yang-te-types] 2911 This module references the following documents: [RFC6991], [RFC4875], 2912 [RFC7551], [RFC4206], [RFC4427], [RFC4872], [RFC3945], [RFC3209], 2913 [RFC4872], [RFC6780], and [RFC7308]. 2915 file "ietf-te@2020-03-09.yang" 2916 module ietf-te { 2917 yang-version 1.1; 2919 namespace "urn:ietf:params:xml:ns:yang:ietf-te"; 2921 /* Replace with IANA when assigned */ 2922 prefix "te"; 2924 /* Import TE generic types */ 2925 import ietf-te-types { 2926 prefix te-types; 2927 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 2928 Common Traffic Engineering Types."; 2929 } 2931 import ietf-inet-types { 2932 prefix inet; 2933 reference "RFC6991: Common YANG Data Types."; 2934 } 2936 import ietf-yang-types { 2937 prefix "yang"; 2938 reference "RFC6991: Common YANG Data Types."; 2939 } 2941 organization 2942 "IETF Traffic Engineering Architecture and Signaling (TEAS) 2943 Working Group."; 2945 contact 2946 "WG Web: 2947 WG List: 2949 Editor: Tarek Saad 2950 2952 Editor: Rakesh Gandhi 2953 2955 Editor: Vishnu Pavan Beeram 2956 2958 Editor: Himanshu Shah 2959 2961 Editor: Xufeng Liu 2962 2964 Editor: Igor Bryskin 2965 "; 2967 description 2968 "YANG data module for TE configuration, state, and RPCs. 2969 The model fully conforms to the Network Management 2970 Datastore Architecture (NMDA). 2972 Copyright (c) 2019 IETF Trust and the persons 2973 identified as authors of the code. All rights reserved. 2975 Redistribution and use in source and binary forms, with or 2976 without modification, is permitted pursuant to, and subject 2977 to the license terms contained in, the Simplified BSD License 2978 set forth in Section 4.c of the IETF Trust's Legal Provisions 2979 Relating to IETF Documents 2980 (https://trustee.ietf.org/license-info). 2981 This version of this YANG module is part of RFC XXXX; see 2982 the RFC itself for full legal notices."; 2984 // RFC Ed.: replace XXXX with actual RFC number and remove this 2985 // note. 2987 // RFC Ed.: update the date below with the date of RFC publication 2988 // and remove this note. 2990 revision "2020-03-09" { 2991 description "Latest update to TE generic YANG module."; 2992 reference 2993 "RFCXXXX: A YANG Data Model for Traffic Engineering Tunnels 2994 and Interfaces."; 2995 } 2997 identity path-computation-error-reason { 2998 description 2999 "Base identity for path computation error reasons."; 3000 } 3001 identity path-computation-error-no-topology { 3002 base path-computation-error-reason; 3003 description 3004 "Path computation has failed because there is no topology 3005 with the provided the topology-identifier."; 3006 } 3007 identity path-computation-error-no-dependent-server { 3008 base path-computation-error-reason; 3009 description 3010 "Path computation has failed because one or more dependent 3011 path computation servers are unavailable. 3012 The dependent path computation server could be 3013 a BRPC downstream PCE or a child PCE."; 3014 reference "RFC5441, RFC 8685"; 3015 } 3016 identity path-computation-error-pce-unavailable { 3017 base path-computation-error-reason; 3018 description 3019 "Path computation has failed because PCE is not available"; 3020 reference "RFC5440"; 3021 } 3022 identity path-computation-error-no-inclusion-hop { 3023 base path-computation-error-reason; 3024 description 3025 "Path computation has failed because there is no 3026 node or link provided by one or more inclusion hops."; 3027 reference "RFC8685"; 3028 } 3029 identity path-computation-error-destination-unknown-in-domain { 3030 base path-computation-error-reason; 3031 description 3032 "Path computation has failed because the estination node is 3033 unknown in indicated destination domain."; 3034 reference "RFC8685"; 3035 } 3036 identity path-computatin-error-no-resource { 3037 base path-computation-error-reason; 3038 description 3039 "Path computation has failed because there is no 3040 available resource in one or more domains"; 3041 reference "RFC8685"; 3042 } 3043 identity path-computation-error-child-pce-unresponsive { 3044 base path-computation-error-reason; 3045 description 3046 "Path computation has failed because child PCE is not 3047 responsive"; 3048 reference "RFC8685"; 3049 } 3050 identity path-computation-error-destination-domain-unknown { 3051 base path-computation-error-reason; 3052 description 3053 "Path computation has failed because the destination domain 3054 was unknown."; 3055 reference "RFC8685"; 3056 } 3057 identity path-computation-error-p2mp { 3058 base path-computation-error-reason; 3059 description 3060 "Path computation has failed because of P2MP reachability 3061 problem."; 3062 reference "RFC8306"; 3063 } 3064 identity path-computation-error-no-gco-migration { 3065 base path-computation-error-reason; 3066 description 3067 "Path computation has failed because of no GCO migration 3068 path found"; 3069 reference "RFC5557"; 3070 } 3071 identity path-computation-error-no-gco-solution { 3072 base path-computation-error-reason; 3073 description 3074 "Path computation has failed because of no GCO solution 3075 found"; 3076 reference "RFC5557"; 3077 } 3078 identity path-computation-error-path-not-found { 3079 base path-computation-error-reason; 3080 description 3081 "Path computation no path found error reason."; 3082 reference "RFC5440"; 3083 } 3084 identity path-computation-error-pks-expansion { 3085 base path-computation-error-reason; 3086 description 3087 "Path computation has failed because of PKS expansion 3088 failure"; 3089 reference "RFC5520"; 3090 } 3091 identity path-computation-error-brpc-chain-unavailable { 3092 base path-computation-error-reason; 3093 description 3094 "Path computation has failed because PCE BRPC chain 3095 unavailable"; 3096 reference "RFC5441"; 3097 } 3098 identity path-computation-error-source-unknown { 3099 base path-computation-error-reason; 3100 description 3101 "Path computation has failed because source node is unknown."; 3102 reference "RFC5440"; 3103 } 3104 identity path-computation-error-destination-unknown { 3105 base path-computation-error-reason; 3106 description 3107 "Path computation has failed because destination node is 3108 unknown."; 3109 reference "RFC5440"; 3110 } 3111 identity path-computation-error-no-server { 3112 base path-computation-error-reason; 3113 description 3114 "Path computation has failed because path computation 3115 server is unavailable."; 3116 reference "RFC5440"; 3117 } 3118 identity tunnel-actions-type { 3119 description "TE tunnel actions type"; 3120 } 3121 identity tunnel-action-reoptimize { 3122 base tunnel-actions-type; 3123 description "Reoptimize tunnel action type"; 3124 } 3126 identity tunnel-admin-type { 3127 description "TE tunnel administrative type"; 3128 } 3129 identity tunnel-admin-down { 3130 base tunnel-admin-type; 3131 description "Tunnel administrative down state."; 3132 } 3133 identity tunnel-admin-up { 3134 base tunnel-admin-type; 3135 description "Tunnel administrative up state."; 3136 } 3137 identity tunnel-admin-auto { 3138 base tunnel-admin-type; 3139 description 3140 "Tunnel administrative auto state. The administrative status in 3141 state datastore transitions to 'tunnel-admin-up' when the tunnel 3142 used by the client layer, and to 'tunnel-admin-down' when it is 3143 not used by the client layer."; 3144 } 3146 identity association-type-diversity { 3147 base te-types:association-type; 3148 description 3149 "Association Type diversity used to associate LSPs whose paths 3150 are to be diverse from each other."; 3151 reference "ID.ietf-pce-association-diversity"; 3152 } 3154 typedef tunnel-ref { 3155 type leafref { 3156 path "/te:te/te:tunnels/te:tunnel/te:name"; 3157 } 3158 description 3159 "This type is used by data models that need to reference 3160 configured TE tunnel."; 3161 } 3163 typedef path-ref { 3164 type union { 3165 type leafref { 3166 path "/te:te/te:tunnels/te:tunnel/" + 3167 "te:primary-paths/te:primary-path/te:name"; 3168 } 3169 type leafref { 3170 path "/te:te/te:tunnels/te:tunnel/" + 3171 "te:secondary-paths/te:secondary-path/te:name"; 3172 } 3173 } 3174 description 3175 "This type is used by data models that need to reference 3176 configured primary or secondary path of a TE tunnel."; 3177 } 3179 typedef te-generic-node-id { 3180 type union { 3181 type te-types:te-node-id; 3182 type inet:ip-address; 3183 } 3184 description 3185 "Uniquely identifies a node or link in a TE topology."; 3186 } 3188 /** 3189 * TE tunnel generic groupings 3190 */ 3192 grouping primary-path { 3193 description "The tunnel primary path properties."; 3194 uses path-common-properties; 3195 uses path-preference; 3196 uses k-requested-paths; 3197 uses path-compute-info; 3198 uses path-state; 3199 } 3201 grouping primary-reverse-path { 3202 description "The tunnel primary reverse path properties."; 3203 reference "RFC7551"; 3204 uses path-common-properties; 3205 uses path-compute-info; 3206 uses path-state; 3207 } 3209 grouping secondary-path { 3210 description "The tunnel secondary path properties."; 3211 uses path-common-properties; 3212 uses path-preference; 3213 uses path-compute-info; 3214 uses protection-restoration-properties; 3215 uses path-state; 3216 } 3218 grouping secondary-reverse-path { 3219 description "The tunnel secondary reverse path properties."; 3220 uses path-common-properties; 3221 uses path-preference; 3222 uses path-compute-info; 3223 uses protection-restoration-properties; 3224 uses path-state; 3225 } 3227 grouping path-common-properties { 3228 description "Common path attributes."; 3229 leaf name { 3230 type string; 3231 description "TE path name."; 3232 } 3233 leaf path-computation-method { 3234 type identityref { 3235 base te-types:path-computation-method; 3236 } 3237 default te-types:path-locally-computed; 3238 description 3239 "The method used for computing the path, either 3240 locally computed, queried from a server or not 3241 computed at all (explicitly configured)."; 3242 } 3243 leaf path-computation-server { 3244 when "derived-from-or-self(../path-computation-method, " + 3245 "'te-types:path-externally-queried')" 3246 { 3247 description 3248 "The path-computation server when the path is 3249 externally queried."; 3250 } 3251 type te-generic-node-id; 3252 description 3253 "Address of the external path computation 3254 server."; 3255 } 3256 leaf compute-only { 3257 type empty; 3258 description 3259 "When set, the path is computed and updated whenever 3260 the topology is updated. No resources are committed 3261 or reserved in the network."; 3263 } 3264 leaf use-path-computation { 3265 when "derived-from-or-self(../path-computation-method, " + 3266 "'te-types:path-locally-computed')"; 3267 type boolean; 3268 default 'true'; 3269 description 3270 "When 'true' indicates the path is dyamically computed and/or 3271 validated against the Traffic-Engineering Database (TED), 3272 and when 'false' indicates no validation against the TED is 3273 required"; 3274 } 3275 leaf lockdown { 3276 type empty; 3277 description 3278 "Indicates no reoptimization to be attempted for this path."; 3279 } 3280 leaf path-scope { 3281 type identityref { 3282 base te-types:path-scope-type; 3283 } 3284 default te-types:path-scope-end-to-end; 3285 config 'false'; 3286 description "Path scope if segment or an end-to-end path."; 3287 } 3288 } 3290 /* This grouping will be re-used in path-computation rpc */ 3291 grouping path-compute-info { 3292 description 3293 "Attributes used for path computation request"; 3294 uses tunnel-associations-properties; 3295 uses te-types:generic-path-optimization; 3296 leaf named-path-constraint { 3297 if-feature te-types:named-path-constraints; 3298 type leafref { 3299 path "/te/globals/named-path-constraints/"+ 3300 "named-path-constraint/name"; 3301 } 3302 description 3303 "Reference to a globally defined named path constraint set."; 3304 } 3305 uses path-constraints-common; 3306 } 3308 /* This grouping will be re-used in path-computation rpc */ 3309 grouping path-preference { 3310 description "The path preference."; 3311 leaf preference { 3312 type uint8 { 3313 range "1..255"; 3314 } 3315 default 1; 3316 description 3317 "Specifies a preference for this path. The lower the number 3318 higher the preference."; 3319 } 3320 } 3322 /* This grouping will be re-used in path-computation rpc */ 3323 grouping k-requested-paths { 3324 description "The k-shortest paths requests."; 3325 leaf k-requested-paths { 3326 type uint8; 3327 default 1; 3328 description 3329 "The number of k-shortest-paths requested from the path 3330 computation server and returned sorted by its optimization 3331 objective."; 3332 } 3333 } 3335 grouping path-properties { 3336 description "TE computed path properties grouping."; 3337 uses te-types:generic-path-properties { 3338 augment "path-properties" { 3339 description 3340 "additional path properties returned by path computation"; 3341 uses te-types:te-bandwidth; 3342 leaf disjointness-type { 3343 type te-types:te-path-disjointness; 3344 config 'false'; 3345 description 3346 "The type of resource disjointness. 3347 When reported for a primary path, it represents the 3348 minimum level of disjointness of all the secondary 3349 paths. 3350 When reported for a secondary path, it represents the 3351 disjointness of the secondary path."; 3352 } 3353 uses shared-resources-tunnels; 3354 } 3355 } 3356 } 3358 grouping path-state { 3359 description "TE per path state parameters."; 3360 uses path-computation-response; 3361 uses lsp-provisioning-error-info { 3362 augment "lsp-provisioning-error-infos/" + 3363 "lsp-provisioning-error-info" { 3364 description 3365 "Augmentation of LSP provisioning information under a 3366 specific path."; 3367 leaf lsp-id { 3368 type uint16; 3369 description 3370 "The LSP-ID for which path compatutation was performed."; 3371 } 3372 } 3373 } 3374 container lsps { 3375 config 'false'; 3376 description "The TE LSPs container."; 3377 list lsp { 3378 key "lsp-id"; 3379 description "List of LSPs associated with the tunnel."; 3381 uses lsp-provisioning-error-info; 3382 uses lsp-properties-state; 3383 uses shared-resources-tunnels-state; 3384 uses lsp-record-route-information-state; 3385 uses path-properties { 3386 description "The TE path actual properties."; 3387 } 3388 } 3389 } 3390 } 3392 /* This grouping will be re-used in path-computation rpc */ 3393 grouping path-computation-response { 3394 description "Attributes reported by path computation response"; 3395 container computed-paths-properties { 3396 config 'false'; 3397 description "Computed path properties container."; 3398 list computed-path-properties { 3399 key k-index; 3400 description "List of computed paths."; 3401 leaf k-index { 3402 type uint8; 3403 description 3404 "The k-th path returned from the computation server. 3405 A lower k value path is more optimal than higher k 3406 value path(s)"; 3408 } 3409 uses path-properties { 3410 description "The TE path computed properties."; 3411 } 3412 } 3413 } 3414 container computed-path-error-infos { 3415 config false; 3416 description 3417 "Path computation information container."; 3418 list computed-path-error-info { 3419 description 3420 "List of path computation info entries."; 3421 leaf error-description { 3422 type string; 3423 description 3424 "Textual representation of the error occurred during 3425 path compuation."; 3426 } 3427 leaf error-timestamp { 3428 type yang:date-and-time; 3429 description 3430 "Timestamp of last path computation attempt."; 3431 } 3432 leaf error-reason { 3433 type identityref { 3434 base path-computation-error-reason; 3435 } 3436 description 3437 "Reason for the path computation error."; 3438 } 3439 } 3440 } 3441 } 3443 grouping lsp-provisioning-error-info { 3444 description 3445 "Grouping for LSP provisioning error information."; 3446 container lsp-provisioning-error-infos { 3447 config false; 3448 description 3449 "LSP provisioning error information."; 3450 list lsp-provisioning-error-info { 3451 description 3452 "List of LSP provisioning error info entries."; 3453 leaf error-description { 3454 type string; 3455 description 3456 "Textual representation of the error occurred during 3457 path compuation."; 3458 } 3459 leaf error-timestamp { 3460 type yang:date-and-time; 3461 description 3462 "Timestamp of when the reported error occurred."; 3463 } 3464 leaf error-node-id { 3465 type te-types:te-node-id; 3466 default "0.0.0.0"; 3467 description 3468 "Node identifier of node where error occurred."; 3469 } 3470 leaf error-link-id { 3471 type te-types:te-tp-id; 3472 default 0; 3473 description 3474 "Link ID where the error occurred."; 3475 } 3476 } 3477 } 3478 } 3480 grouping protection-restoration-properties-state { 3481 description 3482 "Protection parameters grouping."; 3483 leaf lockout-of-normal { 3484 type boolean; 3485 default 'false'; 3486 description 3487 "When set to 'True', it represents a lockout of normal 3488 traffic external command. When set to 'False', it 3489 represents a clear lockout of normal traffic external 3490 command. The lockout of normal traffic command applies 3491 to this Tunnel."; 3492 reference "RFC4427"; 3493 } 3494 leaf freeze { 3495 type boolean; 3496 default 'false'; 3497 description 3498 "When set to 'True', it represents a freeze external 3499 command. When set to 'False', it represents a clear 3500 freeze external command. The freeze command command 3501 applies to all the Tunnels which are sharing the 3502 protection resources with this Tunnel."; 3503 reference "RFC4427"; 3505 } 3506 leaf lsp-protection-role { 3507 type enumeration { 3508 enum working { 3509 description 3510 "A working LSP must be a primary LSP whilst a protecting 3511 LSP can be either a primary or a secondary LSP. Also, 3512 known as protected LSPs when working LSPs are associated 3513 with protecting LSPs."; 3514 } 3515 enum protecting { 3516 description 3517 "A secondary LSP is an LSP that has been provisioned 3518 in the control plane only; e.g. resource allocation 3519 has not been committed at the data plane."; 3520 } 3521 } 3522 default working; 3523 description "LSP role type."; 3524 reference "RFC4872, section 4.2.1"; 3525 } 3527 leaf lsp-protection-state { 3528 type identityref { 3529 base te-types:lsp-protection-state; 3530 } 3531 default te-types:normal; 3532 description 3533 "The state of the APS state machine controlling which 3534 tunnels is using the resources of the protecting LSP."; 3535 } 3536 leaf protection-group-ingress-node-id { 3537 type te-types:te-node-id; 3538 default "0.0.0.0"; 3539 description 3540 "Indicates the te-node-id of the protection group 3541 ingress node when the APS state represents an extenal 3542 command (LoP, SF, MS) applied to it or a WTR timer 3543 running on it. If the external command is not applied to 3544 the ingress node or the WTR timer is not running on it, 3545 this attribute is not specified. A value 0.0.0.0 is used 3546 when the te-node-id of the protection group ingress node is 3547 unknown (e.g., because the ingress node is outside the scope 3548 of control of the server)"; 3549 } 3550 leaf protection-group-egress-node-id { 3551 type te-types:te-node-id; 3552 default "0.0.0.0"; 3553 description 3554 "Indicates the te-node-id of the protection group egress node 3555 when the APS state represents an extenal command (LoP, SF, 3556 MS) applied to it or a WTR timer running on it. If the 3557 external command is not applied to the ingress node or 3558 the WTR timer is not running on it, this attribute is not 3559 specified. A value 0.0.0.0 is used when the te-node-id of 3560 the protection group ingress node is unknown (e.g., because 3561 the ingress node is outside the scope of control of the 3562 server)"; 3563 } 3564 } 3566 grouping protection-restoration-properties { 3567 description "Protection and restoration parameters."; 3568 container protection { 3569 description "Protection parameters."; 3570 leaf enable { 3571 type boolean; 3572 default 'false'; 3573 description 3574 "A flag to specify if LSP protection is enabled."; 3575 reference "RFC4427"; 3576 } 3577 leaf protection-type { 3578 type identityref { 3579 base te-types:lsp-protection-type; 3580 } 3581 default te-types:lsp-protection-unprotected; 3582 description "LSP protection type."; 3583 } 3584 leaf protection-reversion-disable { 3585 type boolean; 3586 default 'false'; 3587 description "Disable protection reversion to working path."; 3588 } 3589 leaf hold-off-time { 3590 type uint32; 3591 units "milli-seconds"; 3592 default 0; 3593 description 3594 "The time between the declaration of an SF or SD condition 3595 and the initialization of the protection switching 3596 algorithm."; 3597 reference "RFC4427"; 3598 } 3599 leaf wait-to-revert { 3600 type uint16; 3601 units seconds; 3602 description 3603 "Time to wait before attempting LSP reversion."; 3604 reference "RFC4427"; 3605 } 3606 leaf aps-signal-id { 3607 type uint8 { 3608 range "1..255"; 3609 } 3610 default 1; 3611 description 3612 "The APS signal number used to reference the traffic of this 3613 tunnel. The default value for normal traffic is 1. 3614 The default value for extra-traffic is 255. If not specified, 3615 non-default values can be assigned by the server, 3616 if and only if, the server controls both endpoints."; 3617 reference "RFC4427"; 3618 } 3619 } 3620 container restoration { 3621 description "Restoration parameters."; 3622 leaf enable { 3623 type boolean; 3624 default 'false'; 3625 description 3626 "A flag to specify if LSP restoration is enabled."; 3627 reference "RFC4427"; 3628 } 3629 leaf restoration-type { 3630 type identityref { 3631 base te-types:lsp-restoration-type; 3632 } 3633 default te-types:lsp-restoration-restore-any; 3634 description "LSP restoration type."; 3635 } 3636 leaf restoration-scheme { 3637 type identityref { 3638 base te-types:restoration-scheme-type; 3639 } 3640 default te-types:restoration-scheme-preconfigured; 3641 description "LSP restoration scheme."; 3642 } 3643 leaf restoration-reversion-disable { 3644 type boolean; 3645 default 'false'; 3646 description "Disable restoration reversion to working path."; 3647 } 3648 leaf hold-off-time { 3649 type uint32; 3650 units "milli-seconds"; 3651 description 3652 "The time between the declaration of an SF or SD condition 3653 and the initialization of the protection switching 3654 algorithm."; 3655 reference "RFC4427"; 3656 } 3657 leaf wait-to-restore { 3658 type uint16; 3659 units seconds; 3660 description 3661 "Time to wait before attempting LSP restoration."; 3662 reference "RFC4427"; 3663 } 3664 leaf wait-to-revert { 3665 type uint16; 3666 units seconds; 3667 description 3668 "Time to wait before attempting LSP reversion."; 3669 reference "RFC4427"; 3670 } 3671 } 3672 } 3674 grouping tunnel-associations-properties { 3675 description "TE tunnel association grouping."; 3676 container association-objects { 3677 description "TE tunnel associations."; 3678 list association-object { 3679 key "type id source"; 3680 description "List of association base objects."; 3681 reference "RFC4872"; 3682 leaf type { 3683 type identityref { 3684 base te-types:association-type; 3685 } 3686 description "Association type."; 3687 reference "RFC4872"; 3688 } 3689 leaf id { 3690 type uint16; 3691 description "Association identifier."; 3692 reference "RFC4872"; 3693 } 3694 leaf source { 3695 type te-generic-node-id; 3696 description "Association source."; 3697 reference "RFC4872"; 3698 } 3699 } 3700 list association-object-extended { 3701 key "type id source global-source extended-id"; 3702 description "List of extended association objects."; 3703 reference "RFC6780"; 3704 leaf type { 3705 type identityref { 3706 base te-types:association-type; 3707 } 3708 description "Association type."; 3709 reference "RFC4872, RFC6780"; 3710 } 3711 leaf id { 3712 type uint16; 3713 description "Association identifier."; 3714 reference "RFC4872, RFC6780"; 3715 } 3716 leaf source { 3717 type te-generic-node-id; 3718 description "Association source node identifier."; 3719 reference "RFC4872, RFC6780"; 3720 } 3721 leaf global-source { 3722 type uint32; 3723 description "Association global source."; 3724 reference "RFC6780"; 3725 } 3726 leaf extended-id { 3727 type yang:hex-string; 3728 description "Association extended identifier."; 3729 reference "RFC6780"; 3730 } 3731 } 3732 } 3733 } 3735 /* TE tunnel configuration/state grouping */ 3737 /* This grouping will be re-used in path-computation rpc */ 3738 grouping tunnel-hierarchy-properties { 3739 description "A grouping for TE tunnel hierarchy information."; 3740 container hierarchy { 3741 description 3742 "Container for TE hierarchy related information"; 3743 container dependency-tunnels { 3744 description 3745 "List of tunnels that this tunnel can be potentially 3746 dependent on"; 3747 list dependency-tunnel { 3748 key "name"; 3749 description 3750 "A tunnel entry that this tunnel can potentially depend 3751 on."; 3752 leaf name { 3753 type leafref { 3754 path "../../../../../../tunnels/tunnel/name"; 3755 require-instance 'false'; 3756 } 3757 description 3758 "Dependency tunnel name. The tunnel may not have beem 3759 instantiated yet."; 3760 } 3761 leaf encoding { 3762 type identityref { 3763 base te-types:lsp-encoding-types; 3764 } 3765 default te-types:lsp-encoding-packet; 3766 description 3767 "The LSP encoding type for the dependency tunnel."; 3768 reference "RFC3945"; 3769 } 3770 leaf switching-type { 3771 type identityref { 3772 base te-types:switching-capabilities; 3773 } 3774 default te-types:switching-psc1; 3775 description 3776 "The LSP switching type for the dependency tunnel."; 3777 reference "RFC3945"; 3778 } 3779 } 3780 } 3781 container hierarchical-link { 3782 description 3783 "Identifies a hierarchical link (in client layer) 3784 that this tunnel is associated with."; 3785 reference "RFC4206"; 3786 leaf local-te-node-id { 3787 type te-types:te-node-id; 3788 default "0.0.0.0"; 3789 description 3790 "The local TE node identifier."; 3791 } 3792 leaf local-te-link-tp-id { 3793 type te-types:te-tp-id; 3794 default 0; 3795 description 3796 "The local TE link termination point identifier."; 3797 } 3798 leaf remote-te-node-id { 3799 type te-types:te-node-id; 3800 default "0.0.0.0"; 3801 description 3802 "Remote TE node identifier."; 3803 } 3804 uses te-types:te-topology-identifier; 3805 } 3806 } 3807 } 3809 grouping tunnel-properties { 3810 description 3811 "Top level grouping for tunnel properties."; 3812 leaf operational-state { 3813 type identityref { 3814 base te-types:tunnel-state-type; 3815 } 3816 default te-types:tunnel-state-up; 3817 config 'false'; 3818 description "TE tunnel administrative state."; 3819 } 3820 leaf name { 3821 type string; 3822 description "TE tunnel name."; 3823 } 3824 leaf identifier { 3825 type uint16; 3826 description 3827 "TE tunnel Identifier."; 3828 reference "RFC3209"; 3829 } 3830 leaf description { 3831 type string; 3832 default 'None'; 3833 description 3834 "Textual description for this TE tunnel."; 3835 } 3836 leaf encoding { 3837 type identityref { 3838 base te-types:lsp-encoding-types; 3839 } 3840 default te-types:lsp-encoding-packet; 3841 description "LSP encoding type."; 3842 reference "RFC3945"; 3843 } 3844 leaf switching-type { 3845 type identityref { 3846 base te-types:switching-capabilities; 3847 } 3848 default te-types:switching-psc1; 3849 description "LSP switching type."; 3850 reference "RFC3945"; 3851 } 3852 leaf admin-state { 3853 type identityref { 3854 base tunnel-admin-type; 3855 } 3856 default tunnel-admin-up; 3857 description "TE tunnel administrative state."; 3858 } 3859 leaf reoptimize-timer { 3860 type uint16; 3861 units seconds; 3862 description 3863 "Frequency of reoptimization of a traffic engineered LSP."; 3864 } 3865 leaf source { 3866 type te-types:te-node-id; 3867 description "TE tunnel source node ID."; 3868 } 3869 leaf destination { 3870 type te-types:te-node-id; 3871 description "TE tunnel destination node identifier."; 3872 } 3873 leaf src-tp-id { 3874 type yang:hex-string; 3875 default '00:00:00:00'; 3876 description 3877 "TE tunnel source termination point identifier."; 3878 } 3879 leaf dst-tp-id { 3880 type yang:hex-string; 3881 default '00:00:00:00'; 3882 description 3883 "TE tunnel destination termination point identifier."; 3884 } 3885 leaf bidirectional { 3886 type boolean; 3887 default 'false'; 3888 description "Indicates a bidirectional co-routed LSP."; 3890 } 3891 uses tunnel-associations-properties; 3892 uses protection-restoration-properties; 3893 uses te-types:tunnel-constraints; 3894 uses tunnel-hierarchy-properties; 3896 container primary-paths { 3897 description "The set of primary paths."; 3898 list primary-path { 3899 key "name"; 3900 description 3901 "List of primary paths for this tunnel."; 3902 uses primary-path; 3903 container primary-reverse-path { 3904 description "The set of reverse primary paths."; 3905 uses primary-reverse-path; 3906 container candidate-secondary-reverse-paths { 3907 description 3908 "The set of referenced candidate reverse secondary paths 3909 from the full set of seondary reverse paths which may be 3910 used for this primary path."; 3911 list candidate-secondary-reverse-path { 3912 key secondary-path; 3913 description "List of candidate secondary reverse path(s)"; 3914 leaf secondary-path { 3915 type leafref { 3916 path "../../../../../../secondary-reverse-paths/" + 3917 "secondary-reverse-path/name"; 3918 } 3919 description 3920 "A reference to the secondary reverse path that 3921 should be utilised when the containing primary 3922 reverse path option is in use."; 3923 } 3924 } 3925 } 3926 } 3927 container candidate-secondary-paths { 3928 description 3929 "The set of candidate secondary paths which may be used 3930 for this primary path. When secondary paths are specified 3931 in the list the path of the secondary LSP in use must be 3932 restricted to those path options referenced. The 3933 priority of the secondary paths is specified within the 3934 list. Higher priority values are less preferred - that is 3935 to say that a path with priority 0 is the most preferred 3936 path. In the case that the list is empty, any secondary 3937 path option may be utilised when the current primary path 3938 is in use."; 3939 list candidate-secondary-path { 3940 key "secondary-path"; 3941 description 3942 "List of candidate secondary paths for this tunnel."; 3943 leaf secondary-path { 3944 type leafref { 3945 path "../../../../../secondary-paths/" + 3946 "secondary-path/name"; 3947 } 3948 description 3949 "A reference to the secondary path that should be 3950 utilised when the containing primary path option is 3951 in use."; 3952 } 3953 leaf active { 3954 type boolean; 3955 config 'false'; 3956 description 3957 "Indicates the current active path option that has 3958 been selected of the candidate secondary paths."; 3959 } 3960 } 3961 } 3962 } 3963 } 3965 container secondary-paths { 3966 description "The set of secondary paths."; 3967 list secondary-path { 3968 key "name"; 3969 description 3970 "List of secondary paths for this tunnel."; 3971 uses secondary-path; 3972 } 3973 } 3974 container secondary-reverse-paths { 3975 description "The set of secondary reverse paths."; 3976 list secondary-reverse-path { 3977 key "name"; 3978 description 3979 "List of secondary paths for this tunnel."; 3980 uses secondary-reverse-path; 3981 } 3982 } 3983 } 3985 grouping shared-resources-tunnels-state { 3986 description 3987 "The specific tunnel that is using the shared secondary path 3988 resources."; 3989 leaf lsp-shared-resources-tunnel { 3990 type tunnel-ref; 3991 description 3992 "Reference to the tunnel that sharing secondary path 3993 resources with this tunnel."; 3994 } 3995 } 3997 grouping shared-resources-tunnels { 3998 description 3999 "Set of tunnels that share secondary path resources with 4000 this tunnnel."; 4001 container shared-resources-tunnels { 4002 description 4003 "Set of tunnels that share secondary path resources with 4004 this tunnnel."; 4005 leaf-list lsp-shared-resources-tunnel { 4006 type tunnel-ref; 4007 description 4008 "Reference to the tunnel that sharing secondary path 4009 resources with this tunnel."; 4010 } 4011 } 4012 } 4014 grouping tunnel-actions { 4015 description "Tunnel actions."; 4016 action tunnel-action { 4017 description "Tunnel action."; 4018 input { 4019 leaf action-type { 4020 type identityref { 4021 base tunnel-actions-type; 4022 } 4023 description "Tunnel action type."; 4024 } 4025 } 4026 output { 4027 leaf action-result { 4028 type identityref { 4029 base te-types:te-action-result; 4030 } 4031 description "The result of the tunnel action operation"; 4032 } 4033 } 4035 } 4036 } 4038 grouping tunnel-protection-actions { 4039 description 4040 "Protection external command actions."; 4041 action protection-external-commands { 4042 input { 4043 leaf protection-external-command { 4044 type identityref { 4045 base te-types:protection-external-commands; 4046 } 4047 description 4048 "Protection external command."; 4049 } 4050 leaf protection-group-ingress-node-id { 4051 type te-types:te-node-id; 4052 description 4053 "When specified, indicates whether the action is 4054 applied on ingress node. 4055 By default, if neither ingress nor egress node-id 4056 is set, the the action applies to ingress node only."; 4057 } 4058 leaf protection-group-egress-node-id { 4059 type te-types:te-node-id; 4060 description 4061 "When specified, indicates whether the action is 4062 applied on egress node. 4063 By default, if neither ingress nor egress node-id 4064 is set, the the action applies to ingress node only."; 4065 } 4066 leaf path-ref { 4067 type path-ref; 4068 description 4069 "Indicates to which path the external command applies to."; 4070 } 4071 leaf traffic-type { 4072 type enumeration { 4073 enum normal-traffic { 4074 description 4075 "The manual-switch or forced-switch command applies to 4076 the normal traffic (this Tunnel)."; 4077 } 4078 enum null-traffic { 4079 description 4080 "The manual-switch or forced-switch command applies to 4081 the null traffic."; 4082 } 4083 enum extra-traffic { 4084 description 4085 "The manual-switch or forced-switch command applies to 4086 the extra traffic (the extra-traffic Tunnel sharing 4087 protection bandwidth with this Tunnel)."; 4088 } 4089 } 4090 description 4091 "Indicates whether the manual-switch or forced-switch 4092 commands applies to the normal traffic, the null traffic 4093 or the extra-traffic."; 4094 reference "RFC4427"; 4095 } 4096 leaf extra-traffic-tunnel-ref { 4097 type tunnel-ref; 4098 description 4099 "In case there are multiple extra-traffic tunnels sharing 4100 protection bandwidth with this Tunnel (m:n protection), 4101 represents which extra-traffic Tunnel the manual-switch or 4102 forced-switch to extra-traffic command applies to."; 4103 } 4104 } 4105 } 4106 } 4108 /*** End of TE tunnel groupings ***/ 4110 /** 4111 * LSP related generic groupings 4112 */ 4114 grouping lsp-record-route-information-state { 4115 description "LSP Recorded route information grouping."; 4116 container lsp-record-route-information { 4117 description "RSVP recorded route object information."; 4118 list lsp-record-route-information { 4119 when "../../origin-type = 'ingress'" { 4120 description "Applicable on ingress LSPs only."; 4121 } 4122 key "index"; 4123 description "Record route list entry."; 4124 uses te-types:record-route-state; 4125 } 4126 } 4127 } 4129 grouping lsps-state-grouping { 4130 description 4131 "LSPs state operational data grouping."; 4132 container lsps-state { 4133 config 'false'; 4134 description "TE LSPs state container."; 4135 list lsp { 4136 key 4137 "source destination tunnel-id lsp-id "+ 4138 "extended-tunnel-id"; 4139 description "List of LSPs associated with the tunnel."; 4140 uses lsp-properties-state; 4141 uses lsp-record-route-information-state; 4142 } 4143 } 4144 } 4146 /*** End of TE LSP groupings ***/ 4148 /** 4149 * TE global generic groupings 4150 */ 4152 /* Global named admin-groups configuration data */ 4153 grouping named-admin-groups-properties { 4154 description 4155 "Global named administrative groups configuration 4156 grouping."; 4157 leaf name { 4158 type string; 4159 description 4160 "A string name that uniquely identifies a TE 4161 interface named admin-group."; 4162 } 4163 leaf bit-position { 4164 type uint32; 4165 description 4166 "Bit position representing the administrative group."; 4167 reference "RFC3209 and RFC7308"; 4168 } 4169 } 4170 grouping named-admin-groups { 4171 description 4172 "Global named administrative groups configuration 4173 grouping."; 4174 container named-admin-groups { 4175 description "TE named admin groups container."; 4176 list named-admin-group { 4177 if-feature te-types:extended-admin-groups; 4178 if-feature te-types:named-extended-admin-groups; 4179 key "name"; 4180 description 4181 "List of named TE admin-groups."; 4182 uses named-admin-groups-properties; 4183 } 4184 } 4185 } 4187 /* Global named admin-srlgs configuration data */ 4189 grouping named-srlgs { 4190 description 4191 "Global named SRLGs configuration grouping."; 4192 container named-srlgs { 4193 description "TE named SRLGs container."; 4194 list named-srlg { 4195 if-feature te-types:named-srlg-groups; 4196 key "name"; 4197 description 4198 "A list of named SRLG groups."; 4199 leaf name { 4200 type string; 4201 description 4202 "A string name that uniquely identifies a TE 4203 interface named SRLG."; 4204 } 4205 leaf group { 4206 type te-types:srlg; 4207 description "An SRLG value."; 4208 } 4209 leaf cost { 4210 type uint32; 4211 description 4212 "SRLG associated cost. Used during path to append 4213 the path cost when traversing a link with this SRLG."; 4214 } 4215 } 4216 } 4217 } 4219 /* Global named paths constraints configuration data */ 4221 grouping path-constraints-common { 4222 description 4223 "Global named path constraints configuration 4224 grouping."; 4225 uses te-types:common-path-constraints-attributes; 4226 uses te-types:generic-path-disjointness; 4227 uses te-types:path-constraints-route-objects; 4228 uses shared-resources-tunnels { 4229 description 4230 "Set of tunnels that are allowed to share secondary path 4231 resources of this tunnel."; 4232 } 4233 container path-in-segment { 4234 presence 4235 "The end-to-end tunnel starts in a previous domain; 4236 this tunnel is a segment in the current domain."; 4237 description 4238 "If an end-to-end tunnel crosses multiple domains using 4239 the same technology, some additional constraints have to be 4240 taken in consideration in each domain. 4241 This tunnel is a segment that needs to be coordinated 4242 with previous segment stitched on head-end side."; 4243 uses te-types:label-set-info; 4244 } 4245 container path-out-segment { 4246 presence 4247 "The end-to-end tunnel is not terminated in this domain; 4248 this tunnel is a segment in the current domain."; 4249 description 4250 "If an end-to-end tunnel crosses multiple domains using 4251 the same technology, some additional constraints have to be 4252 taken in consideration in each domain. 4253 This tunnel is a segment that needs to be coordinated 4254 with previous segment stitched on head-end side."; 4255 uses te-types:label-set-info; 4256 } 4257 } 4259 grouping named-path-constraints { 4260 description 4261 "Global named path constraints configuration 4262 grouping."; 4263 container named-path-constraints { 4264 description "TE named path constraints container."; 4265 list named-path-constraint { 4266 if-feature te-types:named-path-constraints; 4267 key "name"; 4268 leaf name { 4269 type string; 4270 description 4271 "A string name that uniquely identifies a 4272 path constraint set."; 4273 } 4274 uses path-constraints-common; 4275 description 4276 "A list of named path constraints."; 4277 } 4278 } 4279 } 4281 /* TE globals container data */ 4282 grouping globals-grouping { 4283 description 4284 "Globals TE system-wide configuration data grouping."; 4285 container globals { 4286 description 4287 "Globals TE system-wide configuration data container."; 4288 uses named-admin-groups; 4289 uses named-srlgs; 4290 uses named-path-constraints; 4291 } 4292 } 4294 /* TE tunnels container data */ 4295 grouping tunnels-grouping { 4296 description 4297 "Tunnels TE configuration data grouping."; 4298 container tunnels { 4299 description 4300 "Tunnels TE configuration data container."; 4302 list tunnel { 4303 key "name"; 4304 description "The list of TE tunnels."; 4305 uses tunnel-properties; 4306 uses tunnel-actions; 4307 uses tunnel-protection-actions; 4308 } 4309 } 4310 } 4312 /* TE LSPs ephemeral state container data */ 4313 grouping lsp-properties-state { 4314 description 4315 "LSPs state operational data grouping."; 4316 leaf source { 4317 type te-types:te-node-id; 4318 description 4319 "Tunnel sender address extracted from 4320 SENDER_TEMPLATE object."; 4321 reference "RFC3209"; 4322 } 4323 leaf destination { 4324 type te-types:te-node-id; 4325 description 4326 "The tunnel endpoint address extracted from SESSION object."; 4327 reference "RFC3209"; 4328 } 4329 leaf tunnel-id { 4330 type uint16; 4331 description 4332 "The tunnel identifier used in the SESSION that remains constant 4333 over the life of the tunnel."; 4334 reference "RFC3209"; 4335 } 4336 leaf lsp-id { 4337 type uint16; 4338 description 4339 "Identifier used in the SENDER_TEMPLATE and the FILTER_SPEC 4340 that can be changed to allow a sender to share resources 4341 with itself."; 4342 reference "RFC3209"; 4343 } 4344 leaf extended-tunnel-id { 4345 type yang:dotted-quad; 4346 description "The LSP Extended Tunnel ID."; 4347 reference "RFC3209"; 4348 } 4349 leaf operational-state { 4350 type identityref { 4351 base te-types:lsp-state-type; 4352 } 4353 description "The LSP operational state."; 4354 } 4355 leaf signaling-type { 4356 type identityref { 4357 base te-types:path-signaling-type; 4358 } 4359 description 4360 "The signaling protocol used to set up this LSP."; 4361 } 4362 leaf origin-type { 4363 type enumeration { 4364 enum ingress { 4365 description 4366 "Origin ingress."; 4367 } 4368 enum egress { 4369 description 4370 "Origin egress."; 4372 } 4373 enum transit { 4374 description 4375 "Origin transit."; 4376 } 4377 } 4378 default 'ingress'; 4379 description 4380 "The origin of the LSP relative to the location of the local 4381 switch in the path."; 4382 } 4384 leaf lsp-resource-status { 4385 type enumeration { 4386 enum primary { 4387 description 4388 "A primary LSP is a fully established LSP for which the 4389 resource allocation has been committed at the data 4390 plane."; 4391 } 4392 enum secondary { 4393 description 4394 "A secondary LSP is an LSP that has been provisioned 4395 in the control plane only; e.g. resource allocation 4396 has not been committed at the data plane."; 4397 } 4398 } 4399 default 'primary'; 4400 description "LSP resource allocation state."; 4401 reference "RFC4872, section 4.2.1"; 4402 } 4404 uses protection-restoration-properties-state; 4405 } 4406 /*** End of TE global groupings ***/ 4408 /** 4409 * TE configurations container 4410 */ 4411 container te { 4412 presence "Enable TE feature."; 4413 description 4414 "TE global container."; 4416 /* TE Global Configuration Data */ 4417 uses globals-grouping; 4419 /* TE Tunnel Configuration Data */ 4420 uses tunnels-grouping; 4422 /* TE LSPs State Data */ 4423 uses lsps-state-grouping; 4425 } 4427 /* TE Tunnel RPCs/execution Data */ 4428 rpc tunnels-path-compute { 4429 description "TE tunnels RPC nodes."; 4430 input { 4431 container path-compute-info { 4432 /* An external path compute module may augment this target. */ 4433 description "RPC input information."; 4434 } 4435 } 4436 output { 4437 container path-compute-result { 4438 /* An external path compute module may augment this target. */ 4439 description "RPC output information."; 4440 } 4441 } 4442 } 4444 rpc tunnels-actions { 4445 description "TE tunnels actions RPC"; 4446 input { 4447 container tunnel-info { 4448 description "TE tunnel information."; 4449 choice filter-type { 4450 mandatory true; 4451 description "Filter choice"; 4452 case all-tunnels { 4453 leaf all { 4454 type empty; 4455 mandatory true; 4456 description "Apply action on all TE tunnels."; 4457 } 4458 } 4459 case one-tunnel { 4460 leaf tunnel { 4461 type tunnel-ref; 4462 description 4463 "Apply action on the specific TE tunnel."; 4464 } 4465 } 4466 } 4467 } 4468 container action-info { 4469 description "TE tunnel action information."; 4470 leaf action { 4471 type identityref { 4472 base tunnel-actions-type; 4473 } 4474 description "The action type"; 4475 } 4476 leaf disruptive { 4477 when "derived-from-or-self(../action, " + 4478 "'te:tunnel-action-reoptimize')"; 4479 type empty; 4480 description 4481 "Specifies whether or not the reoptimization action 4482 is allowed to be disruptive"; 4483 } 4484 } 4485 } 4486 output { 4487 leaf action-result { 4488 type identityref { 4489 base te-types:te-action-result; 4490 } 4491 description "The result of the tunnel action operation"; 4492 } 4493 } 4494 } 4495 } 4496 4498 Figure 6: TE generic YANG module 4500 The TE device YANG module "ietf-te-device" imports the following 4501 module(s): 4503 o ietf-yang-types and ietf-inet-types defined in [RFC6991] 4505 o ietf-interfaces defined in [RFC8343] 4507 o ietf-routing-types defined in [RFC8294] 4509 o ietf-te-types defined in [I-D.ietf-teas-yang-te-types] 4511 o ietf-te defined in this document 4513 file "ietf-te-device@2020-03-09.yang" 4514 module ietf-te-device { 4515 yang-version 1.1; 4516 namespace "urn:ietf:params:xml:ns:yang:ietf-te-device"; 4518 /* Replace with IANA when assigned */ 4519 prefix "te-dev"; 4521 /* Import TE generic types */ 4522 import ietf-te { 4523 prefix te; 4524 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 4525 Engineering Tunnels and Interfaces"; 4526 } 4528 /* Import TE generic types */ 4529 import ietf-te-types { 4530 prefix te-types; 4531 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 4532 Common Traffic Engineering Types"; 4533 } 4535 import ietf-interfaces { 4536 prefix if; 4537 reference "RFC8343: A YANG Data Model for Interface Management"; 4538 } 4540 import ietf-routing-types { 4541 prefix "rt-types"; 4542 reference "RFC8294: Common YANG Data Types for the Routing Area"; 4543 } 4545 organization 4546 "IETF Traffic Engineering Architecture and Signaling (TEAS) 4547 Working Group"; 4549 contact 4550 "WG Web: 4551 WG List: 4553 Editor: Tarek Saad 4554 4556 Editor: Rakesh Gandhi 4557 4559 Editor: Vishnu Pavan Beeram 4560 4562 Editor: Himanshu Shah 4563 4565 Editor: Xufeng Liu 4566 4568 Editor: Igor Bryskin 4569 "; 4571 description 4572 "YANG data module for TE device configurations, 4573 state, and RPCs. The model fully conforms to the 4574 Network Management Datastore Architecture (NMDA). 4576 Copyright (c) 2019 IETF Trust and the persons 4577 identified as authors of the code. All rights reserved. 4579 Redistribution and use in source and binary forms, with or 4580 without modification, is permitted pursuant to, and subject 4581 to the license terms contained in, the Simplified BSD License 4582 set forth in Section 4.c of the IETF Trust's Legal Provisions 4583 Relating to IETF Documents 4584 (https://trustee.ietf.org/license-info). 4585 This version of this YANG module is part of RFC XXXX; see 4586 the RFC itself for full legal notices."; 4588 // RFC Ed.: replace XXXX with actual RFC number and remove this 4589 // note. 4591 // RFC Ed.: update the date below with the date of RFC publication 4592 // and remove this note. 4594 revision "2020-03-09" { 4595 description "Latest update to TE device YANG module."; 4596 reference 4597 "RFCXXXX: A YANG Data Model for Traffic Engineering Tunnels 4598 and Interfaces"; 4599 } 4601 /** 4602 * TE LSP device state grouping 4603 */ 4604 grouping lsps-device-state { 4605 description "TE LSP device state grouping"; 4606 container lsp-timers { 4607 when "../te:origin-type = 'ingress'" { 4608 description "Applicable to ingress LSPs only"; 4609 } 4610 description "Ingress LSP timers"; 4611 leaf life-time { 4612 type uint32; 4613 units seconds; 4614 description 4615 "lsp life time"; 4616 } 4618 leaf time-to-install { 4619 type uint32; 4620 units seconds; 4621 description 4622 "lsp installation delay time"; 4623 } 4625 leaf time-to-destroy { 4626 type uint32; 4627 units seconds; 4628 description 4629 "lsp expiration delay time"; 4630 } 4631 } 4633 container downstream-info { 4634 when "../te:origin-type != 'egress'" { 4635 description "Applicable to ingress LSPs only"; 4636 } 4637 description 4638 "downstream information"; 4640 leaf nhop { 4641 type te:te-generic-node-id; 4642 description 4643 "downstream nexthop."; 4644 } 4646 leaf outgoing-interface { 4647 type if:interface-ref; 4648 description 4649 "downstream interface."; 4650 } 4652 leaf neighbor { 4653 type te:te-generic-node-id; 4654 description 4655 "downstream neighbor."; 4656 } 4658 leaf label { 4659 type rt-types:generalized-label; 4660 description 4661 "downstream label."; 4662 } 4663 } 4665 container upstream-info { 4666 when "../te:origin-type != 'ingress'" { 4667 description "Applicable to non-ingress LSPs only"; 4668 } 4669 description 4670 "upstream information"; 4672 leaf phop { 4673 type te:te-generic-node-id; 4674 description 4675 "upstream nexthop or previous-hop."; 4676 } 4678 leaf neighbor { 4679 type te:te-generic-node-id; 4680 description 4681 "upstream neighbor."; 4682 } 4684 leaf label { 4685 type rt-types:generalized-label; 4686 description 4687 "upstream label."; 4688 } 4689 } 4690 } 4692 /** 4693 * Device general groupings. 4694 */ 4695 grouping tunnel-device-config { 4696 description "Device TE tunnel configs"; 4697 leaf path-invalidation-action { 4698 type identityref { 4699 base te-types:path-invalidation-action-type; 4700 } 4701 description "Tunnel path invalidtion action"; 4702 } 4703 } 4705 grouping lsp-device-timers-config { 4706 description "Device TE LSP timers configs"; 4707 leaf lsp-install-interval { 4708 type uint32; 4709 units seconds; 4710 description 4711 "lsp installation delay time"; 4712 } 4713 leaf lsp-cleanup-interval { 4714 type uint32; 4715 units seconds; 4716 description 4717 "lsp cleanup delay time"; 4718 } 4719 leaf lsp-invalidation-interval { 4720 type uint32; 4721 units seconds; 4722 description 4723 "lsp path invalidation before taking action delay time"; 4724 } 4725 } 4727 /** 4728 * TE global device generic groupings 4729 */ 4731 /* TE interface container data */ 4732 grouping interfaces-grouping { 4733 description 4734 "Interface TE configuration data grouping"; 4735 container interfaces { 4736 description 4737 "Configuration data model for TE interfaces."; 4738 uses te-all-attributes; 4739 list interface { 4740 key "interface"; 4741 description "TE interfaces."; 4742 leaf interface { 4743 type if:interface-ref; 4744 description 4745 "TE interface name."; 4746 } 4747 /* TE interface parameters */ 4748 uses te-attributes; 4749 } 4750 } 4751 } 4753 /** 4754 * TE interface device generic groupings 4755 */ 4756 grouping te-admin-groups-config { 4757 description 4758 "TE interface affinities grouping"; 4759 choice admin-group-type { 4760 description 4761 "TE interface administrative groups 4762 representation type"; 4763 case value-admin-groups { 4764 choice value-admin-group-type { 4765 description "choice of admin-groups"; 4766 case admin-groups { 4767 description 4768 "Administrative group/Resource 4769 class/Color."; 4770 leaf admin-group { 4771 type te-types:admin-group; 4772 description 4773 "TE interface administrative group"; 4774 } 4775 } 4776 case extended-admin-groups { 4777 if-feature te-types:extended-admin-groups; 4778 description 4779 "Extended administrative group/Resource 4780 class/Color."; 4781 leaf extended-admin-group { 4782 type te-types:extended-admin-group; 4783 description 4784 "TE interface extended administrativei 4785 group"; 4786 } 4787 } 4788 } 4789 } 4790 case named-admin-groups { 4791 list named-admin-groups { 4792 if-feature te-types:extended-admin-groups; 4793 if-feature te-types:named-extended-admin-groups; 4794 key named-admin-group; 4795 description 4796 "A list of named admin-group entries"; 4797 leaf named-admin-group { 4798 type leafref { 4799 path "../../../../te:globals/" + 4800 "te:named-admin-groups/te:named-admin-group/" + 4801 "te:name"; 4802 } 4803 description "A named admin-group entry"; 4804 } 4806 } 4807 } 4808 } 4809 } 4811 /* TE interface SRLGs */ 4812 grouping te-srlgs-config { 4813 description "TE interface SRLG grouping"; 4814 choice srlg-type { 4815 description "Choice of SRLG configuration"; 4816 case value-srlgs { 4817 list values { 4818 key "value"; 4819 description "List of SRLG values that 4820 this link is part of."; 4821 leaf value { 4822 type uint32 { 4823 range "0..4294967295"; 4824 } 4825 description 4826 "Value of the SRLG"; 4827 } 4828 } 4829 } 4830 case named-srlgs { 4831 list named-srlgs { 4832 if-feature te-types:named-srlg-groups; 4833 key named-srlg; 4834 description 4835 "A list of named SRLG entries"; 4836 leaf named-srlg { 4837 type leafref { 4838 path "../../../../te:globals/" + 4839 "te:named-srlgs/te:named-srlg/te:name"; 4840 } 4841 description 4842 "A named SRLG entry"; 4843 } 4844 } 4845 } 4846 } 4847 } 4849 grouping te-igp-flooding-bandwidth-config { 4850 description 4851 "Configurable items for igp flooding bandwidth 4852 threshold configuration."; 4853 leaf threshold-type { 4854 type enumeration { 4855 enum DELTA { 4856 description 4857 "DELTA indicates that the local 4858 system should flood IGP updates when a 4859 change in reserved bandwidth >= the specified 4860 delta occurs on the interface."; 4861 } 4862 enum THRESHOLD_CROSSED { 4863 description 4864 "THRESHOLD-CROSSED indicates that 4865 the local system should trigger an update (and 4866 hence flood) the reserved bandwidth when the 4867 reserved bandwidth changes such that it crosses, 4868 or becomes equal to one of the threshold values."; 4869 } 4870 } 4871 description 4872 "The type of threshold that should be used to specify the 4873 values at which bandwidth is flooded. DELTA indicates that 4874 the local system should flood IGP updates when a change in 4875 reserved bandwidth >= the specified delta occurs on the 4876 interface. Where THRESHOLD_CROSSED is specified, the local 4877 system should trigger an update (and hence flood) the 4878 reserved bandwidth when the reserved bandwidth changes such 4879 that it crosses, or becomes equal to one of the threshold 4880 values"; 4881 } 4883 leaf delta-percentage { 4884 when "../threshold-type = 'DELTA'" { 4885 description 4886 "The percentage delta can only be specified when the 4887 threshold type is specified to be a percentage delta of 4888 the reserved bandwidth"; 4889 } 4890 type rt-types:percentage; 4891 description 4892 "The percentage of the maximum-reservable-bandwidth 4893 considered as the delta that results in an IGP update 4894 being flooded"; 4895 } 4896 leaf threshold-specification { 4897 when "../threshold-type = 'THRESHOLD_CROSSED'" { 4898 description 4899 "The selection of whether mirrored or separate threshold 4900 values are to be used requires user specified thresholds to 4901 be set"; 4903 } 4904 type enumeration { 4905 enum MIRRORED_UP_DOWN { 4906 description 4907 "MIRRORED_UP_DOWN indicates that a single set of 4908 threshold values should be used for both increasing 4909 and decreasing bandwidth when determining whether 4910 to trigger updated bandwidth values to be flooded 4911 in the IGP TE extensions."; 4912 } 4913 enum SEPARATE_UP_DOWN { 4914 description 4915 "SEPARATE_UP_DOWN indicates that a separate 4916 threshold values should be used for the increasing 4917 and decreasing bandwidth when determining whether 4918 to trigger updated bandwidth values to be flooded 4919 in the IGP TE extensions."; 4920 } 4921 } 4922 description 4923 "This value specifies whether a single set of threshold 4924 values should be used for both increasing and decreasing 4925 bandwidth when determining whether to trigger updated 4926 bandwidth values to be flooded in the IGP TE extensions. 4927 MIRRORED-UP-DOWN indicates that a single value (or set of 4928 values) should be used for both increasing and decreasing 4929 values, where SEPARATE-UP-DOWN specifies that the increasing 4930 and decreasing values will be separately specified"; 4931 } 4933 leaf-list up-thresholds { 4934 when "../threshold-type = 'THRESHOLD_CROSSED'" + 4935 "and ../threshold-specification = 'SEPARATE_UP_DOWN'" { 4936 description 4937 "A list of up-thresholds can only be specified when the 4938 bandwidth update is triggered based on crossing a 4939 threshold and separate up and down thresholds are 4940 required"; 4941 } 4942 type rt-types:percentage; 4943 description 4944 "The thresholds (expressed as a percentage of the maximum 4945 reservable bandwidth) at which bandwidth updates are to be 4946 triggered when the bandwidth is increasing."; 4947 } 4949 leaf-list down-thresholds { 4950 when "../threshold-type = 'THRESHOLD_CROSSED'" + 4951 "and ../threshold-specification = 'SEPARATE_UP_DOWN'" { 4952 description 4953 "A list of down-thresholds can only be specified when the 4954 bandwidth update is triggered based on crossing a 4955 threshold and separate up and down thresholds are 4956 required"; 4957 } 4958 type rt-types:percentage; 4959 description 4960 "The thresholds (expressed as a percentage of the maximum 4961 reservable bandwidth) at which bandwidth updates are to be 4962 triggered when the bandwidth is decreasing."; 4963 } 4965 leaf-list up-down-thresholds { 4966 when "../threshold-type = 'THRESHOLD_CROSSED'" + 4967 "and ../threshold-specification = 'MIRRORED_UP_DOWN'" { 4968 description 4969 "A list of thresholds corresponding to both increasing 4970 and decreasing bandwidths can be specified only when an 4971 update is triggered based on crossing a threshold, and 4972 the same up and down thresholds are required."; 4973 } 4974 type rt-types:percentage; 4975 description 4976 "The thresholds (expressed as a percentage of the maximum 4977 reservable bandwidth of the interface) at which bandwidth 4978 updates are flooded - used both when the bandwidth is 4979 increasing and decreasing"; 4980 } 4981 } 4983 /* TE interface metric */ 4984 grouping te-metric-config { 4985 description "Interface TE metric grouping"; 4986 leaf te-metric { 4987 type te-types:te-metric; 4988 description "Interface TE metric."; 4989 } 4990 } 4992 /* TE interface switching capabilities */ 4993 grouping te-switching-cap-config { 4994 description 4995 "TE interface switching capabilities"; 4996 list switching-capabilities { 4997 key "switching-capability"; 4998 description 4999 "List of interface capabilities for this interface"; 5000 leaf switching-capability { 5001 type identityref { 5002 base te-types:switching-capabilities; 5003 } 5004 description 5005 "Switching Capability for this interface"; 5006 } 5007 leaf encoding { 5008 type identityref { 5009 base te-types:lsp-encoding-types; 5010 } 5011 description 5012 "Encoding supported by this interface"; 5013 } 5014 } 5015 } 5017 grouping te-advertisements-state { 5018 description 5019 "TE interface advertisements state grouping"; 5020 container te-advertisements-state { 5021 description 5022 "TE interface advertisements state container"; 5023 leaf flood-interval { 5024 type uint32; 5025 description 5026 "The periodic flooding interval"; 5027 } 5028 leaf last-flooded-time { 5029 type uint32; 5030 units seconds; 5031 description 5032 "Time elapsed since last flooding in seconds"; 5033 } 5034 leaf next-flooded-time { 5035 type uint32; 5036 units seconds; 5037 description 5038 "Time remained for next flooding in seconds"; 5039 } 5040 leaf last-flooded-trigger { 5041 type enumeration { 5042 enum link-up { 5043 description "Link-up flooding trigger"; 5044 } 5045 enum link-down { 5046 description "Link-up flooding trigger"; 5048 } 5049 enum threshold-up { 5050 description 5051 "Bandwidth reservation up threshold"; 5052 } 5053 enum threshold-down { 5054 description 5055 "Bandwidth reservation down threshold"; 5056 } 5057 enum bandwidth-change { 5058 description "Banwidth capacity change"; 5059 } 5060 enum user-initiated { 5061 description "Initiated by user"; 5062 } 5063 enum srlg-change { 5064 description "SRLG property change"; 5065 } 5066 enum periodic-timer { 5067 description "Periodic timer expired"; 5068 } 5069 } 5070 default 'periodic-timer'; 5071 description "Trigger for the last flood"; 5072 } 5073 list advertized-level-areas { 5074 key level-area; 5075 description 5076 "List of areas the TE interface is advertised 5077 in"; 5078 leaf level-area { 5079 type uint32; 5080 description 5081 "The IGP area or level where the TE 5082 interface state is advertised in"; 5083 } 5084 } 5085 } 5086 } 5088 /* TE interface attributes grouping */ 5089 grouping te-attributes { 5090 description "TE attributes configuration grouping"; 5091 uses te-metric-config; 5092 uses te-admin-groups-config; 5093 uses te-srlgs-config; 5094 uses te-igp-flooding-bandwidth-config; 5095 uses te-switching-cap-config; 5096 container state { 5097 config false; 5098 description 5099 "State parameters for interface TE metric"; 5100 uses te-advertisements-state; 5101 } 5102 } 5104 grouping te-all-attributes { 5105 description 5106 "TE attributes configuration grouping for all 5107 interfaces"; 5108 uses te-igp-flooding-bandwidth-config; 5109 } 5110 /*** End of TE interfaces device groupings ***/ 5112 /** 5113 * TE device augmentations 5114 */ 5115 augment "/te:te" { 5116 description "TE global container."; 5117 /* TE Interface Configuration Data */ 5118 uses interfaces-grouping; 5119 container performance-thresholds { 5120 description 5121 "Performance parameters configurable thresholds"; 5122 } 5123 } 5125 /* TE globals device augmentation */ 5126 augment "/te:te/te:globals" { 5127 description 5128 "Global TE device specific configuration parameters"; 5129 uses lsp-device-timers-config; 5130 } 5132 /* TE tunnels device configuration augmentation */ 5133 augment "/te:te/te:tunnels/te:tunnel" { 5134 description 5135 "Tunnel device dependent augmentation"; 5136 uses lsp-device-timers-config; 5137 } 5139 /* TE LSPs device state augmentation */ 5140 augment "/te:te/te:lsps-state/te:lsp" { 5141 description 5142 "LSP device dependent augmentation"; 5144 uses lsps-device-state; 5145 } 5147 augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + 5148 "/te:secondary-path/te:lsps/te:lsp" { 5149 description 5150 "LSP device dependent augmentation"; 5151 uses lsps-device-state; 5152 } 5154 augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + 5155 "/te:primary-path/te:lsps/te:lsp" { 5156 description 5157 "LSP device dependent augmentation"; 5158 uses lsps-device-state; 5159 } 5161 /* TE interfaces RPCs/execution Data */ 5162 rpc link-state-update { 5163 description 5164 "Triggers a link state update for the specific interface"; 5165 input { 5166 choice filter-type { 5167 mandatory true; 5168 description "Filter choice"; 5169 case match-all { 5170 leaf all { 5171 type empty; 5172 mandatory true; 5173 description "Match all TE interfaces"; 5174 } 5175 } 5176 case match-one-interface { 5177 leaf interface { 5178 type if:interface-ref; 5179 description "Match a specific TE interface"; 5180 } 5181 } 5182 } 5183 } 5184 } 5185 } 5186 5188 Figure 7: TE device specific YANG module 5190 5. IANA Considerations 5192 This document registers the following URIs in the IETF XML registry 5193 [RFC3688]. Following the format in [RFC3688], the following 5194 registrations are requested to be made. 5196 URI: urn:ietf:params:xml:ns:yang:ietf-te 5197 XML: N/A, the requested URI is an XML namespace. 5199 URI: urn:ietf:params:xml:ns:yang:ietf-te-device 5200 XML: N/A, the requested URI is an XML namespace. 5202 This document registers two YANG modules in the YANG Module Names 5203 registry [RFC6020]. 5205 name: ietf-te 5206 namespace: urn:ietf:params:xml:ns:yang:ietf-te 5207 prefix: ietf-te 5208 reference: RFCXXXX 5210 name: ietf-te-device 5211 namespace: urn:ietf:params:xml:ns:yang:ietf-te-device 5212 prefix: ietf-te-device 5213 reference: RFCXXXX 5215 6. Security Considerations 5217 The YANG module defined in this memo is designed to be accessed via 5218 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 5219 secure transport layer and the mandatory-to-implement secure 5220 transport is SSH [RFC6242]. The NETCONF access control model 5221 [RFC8341] provides means to restrict access for particular NETCONF 5223 users to a pre-configured subset of all available NETCONF protocol 5224 operations and content. 5226 There are a number of data nodes defined in the YANG module which are 5227 writable/creatable/deletable (i.e., config true, which is the 5228 default). These data nodes may be considered sensitive or vulnerable 5229 in some network environments. Write operations (e.g., ) 5230 to these data nodes without proper protection can have a negative 5231 effect on network operations. Following are the subtrees and data 5232 nodes and their sensitivity/vulnerability: 5234 "/te/globals": This module specifies the global TE configurations on 5235 a device. Unauthorized access to this container could cause the 5236 device to ignore packets it should receive and process. 5238 "/te/tunnels": This list specifies the configured TE tunnels on a 5239 device. Unauthorized access to this list could cause the device to 5240 ignore packets it should receive and process. 5242 "/te/lsps-state": This list specifies the state derived LSPs. 5243 Unauthorized access to this list could cause the device to ignore 5244 packets it should receive and process. 5246 "/te/interfaces": This list specifies the configured TE interfaces on 5247 a device. Unauthorized access to this list could cause the device to 5248 ignore packets it should receive and process. 5250 7. Acknowledgement 5252 The authors would like to thank the members of the multi-vendor YANG 5253 design team who are involved in the definition of this model. 5255 The authors would also like to thank Loa Andersson, Lou Berger, 5256 Sergio Belotti, Italo Busi, Carlo Perocchio, Francesco Lazzeri, Aihua 5257 Guo, Dhruv Dhody, Anurag Sharma, and Xian Zhang for their comments 5258 and providing valuable feedback on this document. 5260 8. Contributors 5262 Himanshu Shah 5263 Ciena 5265 Email: hshah@ciena.com 5267 Xia Chen 5268 Huawei Technologies 5270 Email: jescia.chenxia@huawei.com 5272 Raqib Jones 5273 Brocade 5275 Email: raqib@Brocade.com 5277 Bin Wen 5278 Comcast 5280 Email: Bin_Wen@cable.comcast.com 5282 9. References 5284 9.1. Normative References 5286 [I-D.ietf-teas-yang-rsvp] 5287 Beeram, V., Saad, T., Gandhi, R., Liu, X., and I. Bryskin, 5288 "A YANG Data Model for Resource Reservation Protocol 5289 (RSVP)", draft-ietf-teas-yang-rsvp-12 (work in progress), 5290 January 2020. 5292 [I-D.ietf-teas-yang-te-types] 5293 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 5294 "Traffic Engineering Common YANG Types", draft-ietf-teas- 5295 yang-te-types-13 (work in progress), November 2019. 5297 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 5298 Requirement Levels", BCP 14, RFC 2119, 5299 DOI 10.17487/RFC2119, March 1997, 5300 . 5302 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 5303 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 5304 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 5305 . 5307 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 5308 Switching (GMPLS) Signaling Resource ReserVation Protocol- 5309 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, 5310 DOI 10.17487/RFC3473, January 2003, 5311 . 5313 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 5314 DOI 10.17487/RFC3688, January 2004, 5315 . 5317 [RFC3945] Mannie, E., Ed., "Generalized Multi-Protocol Label 5318 Switching (GMPLS) Architecture", RFC 3945, 5319 DOI 10.17487/RFC3945, October 2004, 5320 . 5322 [RFC4206] Kompella, K. and Y. Rekhter, "Label Switched Paths (LSP) 5323 Hierarchy with Generalized Multi-Protocol Label Switching 5324 (GMPLS) Traffic Engineering (TE)", RFC 4206, 5325 DOI 10.17487/RFC4206, October 2005, 5326 . 5328 [RFC4872] Lang, J., Ed., Rekhter, Y., Ed., and D. Papadimitriou, 5329 Ed., "RSVP-TE Extensions in Support of End-to-End 5330 Generalized Multi-Protocol Label Switching (GMPLS) 5331 Recovery", RFC 4872, DOI 10.17487/RFC4872, May 2007, 5332 . 5334 [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. 5335 Yasukawa, Ed., "Extensions to Resource Reservation 5336 Protocol - Traffic Engineering (RSVP-TE) for Point-to- 5337 Multipoint TE Label Switched Paths (LSPs)", RFC 4875, 5338 DOI 10.17487/RFC4875, May 2007, 5339 . 5341 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 5342 the Network Configuration Protocol (NETCONF)", RFC 6020, 5343 DOI 10.17487/RFC6020, October 2010, 5344 . 5346 [RFC6107] Shiomoto, K., Ed. and A. Farrel, Ed., "Procedures for 5347 Dynamically Signaled Hierarchical Label Switched Paths", 5348 RFC 6107, DOI 10.17487/RFC6107, February 2011, 5349 . 5351 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 5352 and A. Bierman, Ed., "Network Configuration Protocol 5353 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 5354 . 5356 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 5357 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 5358 . 5360 [RFC6780] Berger, L., Le Faucheur, F., and A. Narayanan, "RSVP 5361 ASSOCIATION Object Extensions", RFC 6780, 5362 DOI 10.17487/RFC6780, October 2012, 5363 . 5365 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 5366 RFC 6991, DOI 10.17487/RFC6991, July 2013, 5367 . 5369 [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS 5370 Traffic Engineering (MPLS-TE)", RFC 7308, 5371 DOI 10.17487/RFC7308, July 2014, 5372 . 5374 [RFC7551] Zhang, F., Ed., Jing, R., and R. Gandhi, Ed., "RSVP-TE 5375 Extensions for Associated Bidirectional Label Switched 5376 Paths (LSPs)", RFC 7551, DOI 10.17487/RFC7551, May 2015, 5377 . 5379 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 5380 RFC 7950, DOI 10.17487/RFC7950, August 2016, 5381 . 5383 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 5384 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 5385 . 5387 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 5388 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 5389 May 2017, . 5391 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 5392 "Common YANG Data Types for the Routing Area", RFC 8294, 5393 DOI 10.17487/RFC8294, December 2017, 5394 . 5396 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 5397 Access Control Model", STD 91, RFC 8341, 5398 DOI 10.17487/RFC8341, March 2018, 5399 . 5401 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 5402 and R. Wilton, "Network Management Datastore Architecture 5403 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 5404 . 5406 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface 5407 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, 5408 . 5410 9.2. Informative References 5412 [RFC4427] Mannie, E., Ed. and D. Papadimitriou, Ed., "Recovery 5413 (Protection and Restoration) Terminology for Generalized 5414 Multi-Protocol Label Switching (GMPLS)", RFC 4427, 5415 DOI 10.17487/RFC4427, March 2006, 5416 . 5418 Authors' Addresses 5420 Tarek Saad 5421 Juniper Networks 5423 Email: tsaad@juniper.net 5425 Rakesh Gandhi 5426 Cisco Systems Inc 5428 Email: rgandhi@cisco.com 5430 Xufeng Liu 5431 Volta Networks 5433 Email: xufeng.liu.ietf@gmail.com 5435 Vishnu Pavan Beeram 5436 Juniper Networks 5438 Email: vbeeram@juniper.net 5440 Igor Bryskin 5441 Individual 5443 Email: i_bryskin@yahoo.com