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