idnits 2.17.1 draft-ietf-teas-yang-te-15.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 144 has weird spacing: '... rw for r...' == Line 145 has weird spacing: '... ro for r...' == Line 684 has weird spacing: '...ic-type ide...' == Line 694 has weird spacing: '...rw name str...' == Line 706 has weird spacing: '...rw name str...' == (28 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (June 12, 2018) is 2144 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-19) exists of draft-ietf-teas-yang-rsvp-09 Summary: 0 errors (**), 0 flaws (~~), 9 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TEAS Working Group T. Saad, Ed. 3 Internet-Draft R. Gandhi 4 Intended status: Standards Track Cisco Systems Inc 5 Expires: December 14, 2018 X. Liu 6 Jabil 7 V. Beeram 8 Juniper Networks 9 H. Shah 10 Ciena 11 I. Bryskin 12 Huawei Technologies 13 June 12, 2018 15 A YANG Data Model for Traffic Engineering Tunnels and Interfaces 16 draft-ietf-teas-yang-te-15 18 Abstract 20 This document defines a YANG data model for the configuration and 21 management of Traffic Engineering (TE) interfaces, tunnels and Label 22 Switched Paths (LSPs). The model is divided into YANG modules that 23 classify data into generic, device-specific, technology agnostic, and 24 technology-specific elements. The model also includes module(s) that 25 contain reusable TE data types and data groupings. 27 This model covers data for configuration, operational state, remote 28 procedural calls, and event notifications. 30 Status of This Memo 32 This Internet-Draft is submitted in full conformance with the 33 provisions of BCP 78 and BCP 79. 35 Internet-Drafts are working documents of the Internet Engineering 36 Task Force (IETF). Note that other groups may also distribute 37 working documents as Internet-Drafts. The list of current Internet- 38 Drafts is at https://datatracker.ietf.org/drafts/current/. 40 Internet-Drafts are draft documents valid for a maximum of six months 41 and may be updated, replaced, or obsoleted by other documents at any 42 time. It is inappropriate to use Internet-Drafts as reference 43 material or to cite them other than as "work in progress." 45 This Internet-Draft will expire on December 14, 2018. 47 Copyright Notice 49 Copyright (c) 2018 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 This document is subject to BCP 78 and the IETF Trust's Legal 53 Provisions Relating to IETF Documents 54 (https://trustee.ietf.org/license-info) in effect on the date of 55 publication of this document. Please review these documents 56 carefully, as they describe your rights and restrictions with respect 57 to this document. Code Components extracted from this document must 58 include Simplified BSD License text as described in Section 4.e of 59 the Trust Legal Provisions and are provided without warranty as 60 described in the Simplified BSD License. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 65 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 66 1.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3 67 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 68 1.4. Open Issues and Next Steps . . . . . . . . . . . . . . . 5 69 1.4.1. TE Technology Models . . . . . . . . . . . . . . . . 5 70 1.4.2. State Data Organization . . . . . . . . . . . . . . . 6 71 2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 6 72 2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 6 73 2.2. Design Considerations . . . . . . . . . . . . . . . . . . 8 74 2.3. Optional Features . . . . . . . . . . . . . . . . . . . . 9 75 2.4. Configuration Inheritance . . . . . . . . . . . . . . . . 9 76 3. TE Generic Model Organization . . . . . . . . . . . . . . . . 9 77 3.1. Global Configuration and State Data . . . . . . . . . . . 10 78 3.2. Interfaces Configuration and State Data . . . . . . . . . 11 79 3.3. Tunnels Configuration and State Data . . . . . . . . . . 12 80 3.3.1. Tunnel Compute-Only Mode . . . . . . . . . . . . . . 13 81 3.3.2. Tunnel Hierarchical Link Endpoint . . . . . . . . . . 14 82 3.4. TE LSPs State Data . . . . . . . . . . . . . . . . . . . 14 83 3.5. Global RPC Data . . . . . . . . . . . . . . . . . . . . . 14 84 3.6. Interface RPC Data . . . . . . . . . . . . . . . . . . . 14 85 3.7. Tunnel RPC Data . . . . . . . . . . . . . . . . . . . . . 14 86 3.8. Global Notifications Data . . . . . . . . . . . . . . . . 15 87 3.9. Interfaces Notifications Data . . . . . . . . . . . . . . 15 88 3.10. Tunnel Notification Data . . . . . . . . . . . . . . . . 15 89 4. TE Generic and Helper YANG Modules . . . . . . . . . . . . . 55 90 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 169 91 6. Security Considerations . . . . . . . . . . . . . . . . . . . 170 92 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 171 93 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 171 94 9. Normative References . . . . . . . . . . . . . . . . . . . . 171 95 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 173 97 1. Introduction 99 YANG [RFC6020] is a data definition language that was introduced to 100 define the contents of a conceptual data store that allows networked 101 devices to be managed using NETCONF [RFC6241]. YANG is proving 102 relevant beyond its initial confines, as bindings to other interfaces 103 (e.g. RESTCONF [RFC8040]) and encoding other than XML (e.g. JSON) 104 are being defined. Furthermore, YANG data models can be used as the 105 basis of implementation for other interfaces, such as CLI and 106 programmatic APIs. 108 This document describes the YANG data models for TE Tunnels, Label 109 Switched Paths (LSPs) and TE interfaces that cover data applicable to 110 generic or device-independent, device-specific, Multiprotocol Label 111 Switching (MPLS) technology specific, and Segment Routing (SR) TE 112 technology. It also describes helper modules that define TE 113 grouping(s) and data types that can be imported by other modules. 115 The document defines the high-level relationship between the modules 116 defined in this document, as well as other external protocol modules. 117 It is expected other data plane technology model(s) will augment the 118 TE generic model. Also, the TE generic model does not include any 119 data specific to a signaling protocol. It is expected YANG models 120 for TE signaling protocols, such as RSVP-TE ([RFC3209], [RFC3473]), 121 or Segment-Routing TE (SR-TE) will augment the TE generic module. 123 1.1. Terminology 125 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 126 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 127 document are to be interpreted as described in BCP 14, RFC 2119 128 [RFC2119]. 130 1.2. Tree Diagram 132 A simplified graphical representation of the data model is presented 133 in each section of the model. The following notations are used for 134 the YANG model data tree representation. 136 138 is one of: 139 + for current 140 x for deprecated 141 o for obsolete 143 is one of: 144 rw for read-write configuration data 145 ro for read-only non-configuration data 146 -x for execution rpcs 147 -n for notifications 149 is the name of the node 151 If the node is augmented into the tree from another module, its name 152 is printed as : 154 is one of: 155 ? for an optional leaf or node 156 ! for a presence container 157 * for a leaf-list or list 158 Brackets [] for a list's keys 159 Curly braces {} for optional feature that make node 160 conditional 161 Colon : for marking case nodes 162 Ellipses ("...") subtree contents not shown 164 Parentheses enclose choice and case nodes, and case nodes are also 165 marked with a colon (":"). 167 is the name of the type for leafs and leaf-lists. 169 1.3. Prefixes in Data Node Names 171 In this document, names of data nodes and other data model objects 172 are prefixed using the standard prefix associated with the 173 corresponding YANG imported modules, as shown in Table 1. 175 +---------------+--------------------+---------------+ 176 | Prefix | YANG module | Reference | 177 +---------------+--------------------+---------------+ 178 | yang | ietf-yang-types | [RFC6991] | 179 | inet | ietf-inet-types | [RFC6991] | 180 | te | ietf-te | this document | 181 | te-types | ietf-te-types | this document | 182 | te-mpls-types | ietf-te-mpls-types | this document | 183 | te-dev | ietf-te-device | this document | 184 | te-mpls | ietf-te-mpls | this document | 185 | te-sr-mpls | ietf-te-sr-mpls | this document | 186 +---------------+--------------------+---------------+ 188 Table 1: Prefixes and corresponding YANG modules 190 1.4. Open Issues and Next Steps 192 This section describes the number of open issues that are under 193 consideration. As issues are resolved, this section will be updated 194 to reflect this and be left there for reference. It is expected that 195 all the issues in this section will be addressed before the document 196 will be ready for final publication. 198 1.4.1. TE Technology Models 200 This document describes the generic TE YANG data model that is 201 independent of any dataplane technology. One of the design 202 objectives is to allow specific data plane technologies models to 203 reuse the generic TE data model and possibly augment it with 204 technology specific data model(s). There are multiple options being 205 considered to achieve this: 207 o The generic TE model, including the lists of TE tunnels, LSPs, and 208 interfaces can be defined and rooted at the top of the YANG tree. 209 Specific leaf(s) under the TE tunnel, LSP, or interface, in this 210 case, can identify the specific technology layer that it belongs 211 to. This approach implies a single list for each of TE tunnel(s), 212 LSP(s), and interface(s) in the model carries elements of 213 different technology layers. 215 o An instance of the generic TE YANG model can be mounted in the 216 YANG tree once for each TE technology layer(s). This approach 217 provides separation of elements belonging to different technology 218 layers into separate lists per layer in the data model. 220 o The generic TE data node(s) and TE list(s) for tunnels, LSPs, and 221 interfaces are defined as grouping(s) in a separate module. The 222 specific technology layer imports the generic TE groupings and 223 uses them their respective technology specific module. 225 This revision of the model leverages the LSP encoding type of a 226 tunnel (and interfaces) to identify the specific technology 227 associated with the a TE interfaces, tunnel(s) and the LSP(s). For 228 example, for an MPLS TE LSP, the LSP encoding type is assumed to be 229 "lsp-encoding-packet". 231 Finally, the TE generic model does not include any signaling protocol 232 data. It is expected that TE signaling protocol module(s) will be 233 defined in other document(s) that will cover the RSVP-TE ([RFC3209], 234 [RFC3473]), and Segment-Routing TE (SR-TE) model and that augment the 235 TE generic model. 237 1.4.2. State Data Organization 239 Pure state data (for example, ephemeral or protocol derived state 240 objects) can be modeled using one of the options below: 242 o Contained inside a read-write container, in a "state" sub- 243 container, as shown in Figure 3 245 o Contained inside a separate read-only container, for example a 246 lsps-state container 248 The Network Management Datastore Architecture (NMDA) addresses the 249 "OpState" that was discussed in the IETF. As per NMDA guidelines for 250 new models and models that are not concerned with the operational 251 state of configuration information, this revision of the draft adopts 252 the NMDA proposal for configuration and state data of this model. 254 2. Model Overview 256 The data model defined in this document covers the core TE features 257 that are commonly supported across different vendor implementations. 258 The support of extended or vendor specific TE feature(s) are expected 259 to be in augmentations to the data models defined in this document. 261 2.1. Module(s) Relationship 263 The TE generic model defined in "ietf-te.yang" covers the building 264 blocks that are device independent and agnostic of any specific 265 technology or control plane instances. The TE device model defined 266 in "ietf-te-device.yang" augments the TE generic model and covers 267 data that is specific to a device - for example, attributes of TE 268 interfaces, or TE timers that are local to a TE node. 270 The TE data relevant to a specific instantiations of data plane 271 technology exists in a separate YANG module(s) that augment the TE 272 generic model. For example, the MPLS-TE module "ietf-te-mpls.yang" 273 is defined in Figure 10 and augments the TE generic model as shown in 274 Figure 1. Similarly, the module "ietf-te-sr-mpls.yang" models the 275 Segment Routing (SR) TE specific data and augments the TE generic and 276 MPLS-TE model(s). 278 The TE data relevant to a TE specific signaling protocol 279 instantiation is outside the scope and is covered in other documents. 280 For example, the RSVP-TE [RFC3209] YANG model augmentation of the TE 281 model is covered in [I-D.ietf-teas-yang-rsvp], and other signaling 282 protocol model(s) (e.g. for Segment-Routing TE) are expected to also 283 augment the TE generic model. 285 ^: import 286 TE generic +---------+ o: augment 287 module | ietf-te |o-------------+ 288 +---------+ \ 289 | o \ \ 290 | |\ \ \ 291 | | \ V \ 292 | | +----------------+ \ 293 | | | ietf-te-device | TE device module 294 | | +----------------+ \ 295 | | o o \ 296 | | / \ \ 297 v | / V V 298 +--------------+ +---------------+ 299 RSVP-TE module | ietf-rsvp-te |o . | ietf-te-mpls | 300 +--------------+ \ +---------------+ 301 ^ \ o 302 | \ +-----------------+ 303 | \ | ietf-te-sr-mpls | 304 | \ +-----------------+ 305 | \ 306 o +-------------------+ 307 +-----------+ | ietf-rsvp-otn-te | 308 RSVP module | ietf-rsvp | +-------------------+ 309 +-----------+ RSVP-TE with OTN 310 extensions 311 (shown for illustration 312 not in this document) 314 Figure 1: Relationship of TE module(s) with other signaling protocol 315 modules 317 +---------+ 318 | ietf-te | ^: import 319 +---------+ o: augment 320 import ^ 321 | 322 | 323 +---------------+ 324 | ietf-te-types | 325 +---------------+ 326 o o 327 | \ 328 | \ 329 +-------------------+ +-------------------+ 330 | ietf-te-mpls-types | | ietf-te-otn-types | 331 +-------------------+ +-------------------+ 332 (shown for illustration 333 not in this document) 335 Figure 2: Relationship between generic and technology specific TE 336 types modules 338 2.2. Design Considerations 340 The following considerations with respect data organization are taken 341 into account: 343 o reusable data elements are grouped into separate TE types 344 module(s) that can be readily imported by other modules whenever 345 needed 347 o reusable TE data types that are data plane independent are grouped 348 in the TE generic types module "ietf-te-types.yang" 350 o reusable TE data elements that are data plane specific (e.g. 351 packet MPLS or switching technologies as defined in [RFC3473]) are 352 expected to be grouped in a technology- specific types module, 353 e.g. "ietf-te-mpls-types.yang". It is expected that technology 354 specific types will augment TE generic types as shown in Figure 2 356 o The TE generic model contains device independent data and can be 357 used to model data off a device (e.g. on a controller). The TE 358 data that is device-specific are grouped in a separate module as 359 shown in Figure 1. 361 o In general, little information in the model is designated as 362 "mandatory", to allow freedom to vendors to adapt the data model 363 to their specific product implementation. 365 2.3. Optional Features 367 Optional features that are beyond the base TE model are left to the 368 specific vendor to decide support using vendor model augmentation 369 and/or using feature checks. 371 This model declares a number of TE functions as features (such as 372 P2MP-TE, soft-preemption etc.). 374 2.4. Configuration Inheritance 376 The defined data model supports configuration inheritance for 377 tunnels, paths, and interfaces. Data elements defined in the main 378 container (e.g. that encompasses the list of tunnels, interfaces, or 379 paths) are assumed to apply equally to all elements of the list, 380 unless overridden explicitly for a certain element of a list (e.g. a 381 tunnel, interface or path). 383 3. TE Generic Model Organization 385 The TE generic model covers configuration, state, RPCs, and 386 notifications data pertaining to TE global parameters, interfaces, 387 tunnels and LSPs parameters that are device independent. 389 The container "te" is the top level container in this data model. 390 The presence of this container is expected to enable TE function 391 system wide. 393 The model follows the guidelines in for modeling the intended, 394 applied and derived state. 396 module: ietf-te 397 +--rw te! 398 +--rw globals 399 . 400 . 402 +--rw tunnels 403 . 404 . 406 +-- lsps-state 408 rpcs: 409 +---x globals-rpc 410 +---x tunnels-rpc 411 notifications: 412 +---n globals-notif 413 +---n tunnels-notif 415 Figure 3: TE generic highlevel model view 417 3.1. Global Configuration and State Data 419 This branch of the data model covers configurations that control TE 420 features behavior system-wide, and its respective state. Examples of 421 such configuration data are: 423 o Table of named SRLG mappings 425 o Table of named (extended) administrative groups mappings 427 o Table of named explicit paths to be referenced by TE tunnels 429 o Table of named path-constraints sets 431 o Auto-bandwidth global parameters 433 o TE diff-serve TE-class maps 435 o System-wide capabilities for LSP reoptimization (included in the 436 TE device model) 438 * Reoptimization timers (periodic interval, LSP installation and 439 cleanup) 441 o System-wide capabilities for TE state flooding (included in the TE 442 device model) 443 * Periodic flooding interval 445 o Global capabilities that affect the originating, traversing and 446 terminating LSPs. For example: 448 * Path selection parameters (e.g. metric to optimize, etc.) 450 * Path or segment protection parameters 452 The global state data is represented under the global "state" sub- 453 container as shown in Figure 3. 455 Examples of such states are: 457 o Global statistics (signaling, admission, preemption, flooding) 459 o Global counters (number of tunnels/LSPs/interfaces) 461 3.2. Interfaces Configuration and State Data 463 This branch of the model covers configuration and state data items 464 corresponding to TE interfaces that are present on a specific device. 465 A new module is introduced that holds the TE device specific 466 properties. 468 Examples of TE interface properties are: 470 o Maximum reservable bandwidth, bandwidth constraints (BC) 472 o Flooding parameters 474 * Flooding intervals and threshold values 476 o Fast reroute backup tunnel properties (such as static, auto- 477 tunnel) 479 o interface attributes 481 * (Extended) administrative groups 483 * SRLG values 485 * TE metric value 487 The state corresponding to the TE interfaces applied configuration, 488 protocol derived state, and stats and counters all fall under the 489 interface "state" sub-container as shown in Figure 4 below: 491 module: ietf-te 492 +--rw te! 493 +--rw interfaces 494 . 495 +-- rw te-attributes 496 +-- rw config 497 <> 498 . 499 +-- ro state 500 <> 501 <> 503 Figure 4: TE interface state 505 This covers state data for TE interfaces such as: 507 o Bandwidth information: maximum bandwidth, available bandwidth at 508 different priorities and for each class-type (CT) 510 o List of admitted LSPs 512 * Name, bandwidth value and pool, time, priority 514 o Statistics: state counters, flooding counters, admission counters 515 (accepted/rejected), preemption counters 517 o Adjacency information 519 * Neighbor address 521 * Metric value 523 3.3. Tunnels Configuration and State Data 525 This branch of the model covers intended, and corresponding applied 526 configuration for tunnels. As well, it holds possible derived state 527 pertaining to TE tunnels. 529 module: ietf-te 530 +--rw te! 531 +--rw tunnels 532 . 533 +-- rw config 534 <> 535 . 536 +-- ro state 537 <> 538 <> 540 Figure 5: TE interface state tree 542 Examples of tunnel configuration date for TE tunnels: 544 o Name and type (e.g. P2P, P2MP) of the TE tunnel 546 o Admin-state 548 o Set of primary and corresponding secondary paths 550 o Routing usage (auto-route announce, forwarding adjacency) 552 o Policy based routing (PBR) parameters 554 3.3.1. Tunnel Compute-Only Mode 556 By default, a configured TE tunnel is provisioned so it can carry 557 traffic as soon as a valid path is computed and an LSP instantiated 558 in the network. In other cases, a TE tunnel may be provisioned for 559 computed path reporting purposes without the need to instantiate an 560 LSP or commit resources in the network. In such a case, a tunnel 561 configuration in "compute-only" mode to distinguish it from default 562 tunnel behavior. 564 A "compute-only" TE tunnel is configured as a usual TE tunnel with 565 associated path constraint(s) and properties on a device or 566 controller. The device or controller is expected to compute the 567 feasible path(s) subject to configured constraints for of "compute- 568 only" tunnel and reflect the computed path(s) in the LSP(s) Record- 569 Route Object (RRO) list. A client may query "on-demand" the 570 "compute-only" TE tunnel computed path(s) properties by querying the 571 state of the tunnel. Alternatively, the client can subscribe on the 572 "compute-only" TE tunnel to be notified of computed path(s) and 573 whenever it changes. 575 3.3.2. Tunnel Hierarchical Link Endpoint 577 TE LSPs can be set up in MPLS or Generalized MPLS (GMPLS) networks to 578 be used to form links to carry traffic in in other (client) networks 579 [RFC6107]. In this case, the model introduces the TE tunnel 580 hierarchical link endpoint parameters to identify the specific link 581 in the client layer that the TE tunnel is associated with. 583 3.4. TE LSPs State Data 585 TE LSPs are derived state data that is usually instantiated via 586 signaling protocols. TE LSPs exists on routers as ingress (starting 587 point of LSP), transit (mid-point of LSP ), or egress (termination 588 point of the LSP). TE LSPs are distinguished by the 5 tuple, and LSP 589 type (P2P or P2MP). In the model, the nodes holding LSPs data exist 590 in the read-only lsps-state list as show in Figure 6. 592 3.5. Global RPC Data 594 This branch of the model covers system-wide RPC execution data to 595 trigger actions and optionally expect responses. Examples of such TE 596 commands are to: 598 o Clear global TE statistics of various features 600 3.6. Interface RPC Data 602 This collection of data in the model defines TE interface RPC 603 execution commands. Examples of these are to: 605 o Clear TE statistics for all or for individual TE interfaces 607 o Trigger immediate flooding for one or all TE interfaces 609 3.7. Tunnel RPC Data 611 This branch of the model covers TE tunnel RPC execution data to 612 trigger actions and optionally expect responses. Examples of such TE 613 commands are: 615 o Clear statistics for all or for individual tunnels 617 o Trigger the tear and setup of existing tunnels or LSPs. 619 3.8. Global Notifications Data 621 This branch of the model covers system-wide notifications data. The 622 node notifies the registered events to the server using the defined 623 notification messages. 625 3.9. Interfaces Notifications Data 627 This branch of the model covers TE interfaces related notifications 628 data. The TE interface configuration is used for specific events 629 registration. Notifications are sent for registered events to the 630 server. Example events for TE interfaces are: 632 o Interface creation and deletion 634 o Interface state transitions 636 o (Soft) preemption triggers 638 o Fast reroute activation 640 3.10. Tunnel Notification Data 642 This branch of the model covers TE tunnels related notifications 643 data. The TE tunnels configuration is used for specific events 644 registration. Notifications are sent for registered events to the 645 server. Example events for TE tunnels are: 647 o Tunnel creation and deletion events 649 o Tunnel state up/down changes 651 o Tunnel state reoptimization changes 653 Figure Figure 6 below shows the tree diagram of the YANG model 654 defined in modules: ietf-te.yang, ietf-te-device.yang, ietf-te- 655 mpls.yang, and ietf-te-sr.yang. 657 module: ietf-te 658 +--rw te! 659 +--rw globals 660 | +--rw named-admin-groups 661 | | +--rw named-admin-group* [name] 662 {te-types:extended-admin-groups,te-types: 663 named-extended-admin-groups}? 664 | | +--rw name string 665 | | +--rw bit-position? uint32 666 | +--rw named-srlgs 667 | | +--rw named-srlg* [name] {te-types:named-srlg-groups}? 668 | | +--rw name string 669 | | +--rw group? te-types:srlg 670 | | +--rw cost? uint32 671 | +--rw named-path-constraints 672 | | +--rw named-path-constraint* [name] 673 {te-types:named-path-constraints}? 674 | | +--rw name string 675 | | +--rw te-bandwidth 676 | | | +--rw (technology)? 677 | | | +--:(generic) 678 | | | +--rw generic? te-bandwidth 679 | | +--rw setup-priority? uint8 680 | | +--rw hold-priority? uint8 681 | | +--rw signaling-type? identityref 682 | | +--rw path-metric-bounds 683 | | | +--rw path-metric-bound* [metric-type] 684 | | | +--rw metric-type identityref 685 | | | +--rw upper-bound? uint64 686 | | +--rw path-affinities 687 | | | +--rw constraints* [usage] 688 | | | +--rw usage identityref 689 | | | +--rw (style)? 690 | | | +--:(value) 691 | | | | +--rw value? te-types:admin-groups 692 | | | +--:(named) 693 | | | +--rw affinity-names* [name] 694 | | | +--rw name string 695 | | +--rw path-srlgs 696 | | | +--rw (style)? 697 | | | +--:(values) 698 | | | | +--rw usage? identityref 699 | | | | +--rw values* te-types:srlg 700 | | | +--:(named) 701 | | | +--rw constraints 702 | | | +--rw constraint* [usage] 703 | | | +--rw usage identityref 704 | | | +--rw constraint 705 | | | +--rw srlg-names* [name] 706 | | | +--rw name string 707 | | +--rw explicit-route-objects 708 | | | +--rw route-object-exclude-always* [index] 709 | | | | +--rw index uint32 710 | | | | +--rw (type)? 711 | | | | +--:(num-unnum-hop) 712 | | | | | +--rw num-unnum-hop 713 | | | | | +--rw node-id? te-types:te-node-id 714 | | | | | +--rw link-tp-id? te-types:te-tp-id 715 | | | | | +--rw hop-type? te-hop-type 716 | | | | | +--rw direction? te-link-direction 717 | | | | +--:(as-number) 718 | | | | | +--rw as-number-hop 719 | | | | | +--rw as-number? binary 720 | | | | | +--rw hop-type? te-hop-type 721 | | | | +--:(label) 722 | | | | +--rw label-hop 723 | | | | +--rw te-label 724 | | | | +--rw (technology)? 725 | | | | | +--:(generic) 726 | | | | | +--rw generic? 727 rt-types:generalized-label 728 | | | | +--rw direction? 729 te-label-direction 730 | | | +--rw route-object-include-exclude* [index] 731 | | | +--rw explicit-route-usage? identityref 732 | | | +--rw index uint32 733 | | | +--rw (type)? 734 | | | +--:(num-unnum-hop) 735 | | | | +--rw num-unnum-hop 736 | | | | +--rw node-id? te-types:te-node-id 737 | | | | +--rw link-tp-id? te-types:te-tp-id 738 | | | | +--rw hop-type? te-hop-type 739 | | | | +--rw direction? te-link-direction 740 | | | +--:(as-number) 741 | | | | +--rw as-number-hop 742 | | | | +--rw as-number? binary 743 | | | | +--rw hop-type? te-hop-type 744 | | | +--:(label) 745 | | | | +--rw label-hop 746 | | | | +--rw te-label 747 | | | | +--rw (technology)? 748 | | | | | +--:(generic) 749 | | | | | +--rw generic? 750 rt-types:generalized-label 751 | | | | +--rw direction? 752 te-label-direction 753 | | | +--:(srlg) 754 | | | +--rw srlg 755 | | | +--rw srlg? uint32 756 | | +--rw shared-resources-tunnels 757 | | | +--rw lsp-shared-resources-tunnel* te:tunnel-ref 758 | | +--rw path-in-segment! 759 | | | +--rw forward 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 range-bitmap? binary 781 | | | +--rw reverse 782 | | | +--rw label-restrictions 783 | | | +--rw label-restriction* [index] 784 | | | +--rw restriction? enumeration 785 | | | +--rw index uint32 786 | | | +--rw label-start 787 | | | | +--rw te-label 788 | | | | +--rw (technology)? 789 | | | | | +--:(generic) 790 | | | | | +--rw generic? 791 rt-types:generalized-label 792 | | | | +--rw direction? 793 te-label-direction 794 | | | +--rw label-end 795 | | | | +--rw te-label 796 | | | | +--rw (technology)? 797 | | | | | +--:(generic) 798 | | | | | +--rw generic? 799 rt-types:generalized-label 800 | | | | +--rw direction? 801 te-label-direction 802 | | | +--rw range-bitmap? binary 803 | | +--rw path-out-segment! 804 | | | +--rw forward 805 | | | | +--rw label-restrictions 806 | | | | +--rw label-restriction* [index] 807 | | | | +--rw restriction? enumeration 808 | | | | +--rw index uint32 809 | | | | +--rw label-start 810 | | | | | +--rw te-label 811 | | | | | +--rw (technology)? 812 | | | | | | +--:(generic) 813 | | | | | | +--rw generic? 814 rt-types:generalized-label 815 | | | | | +--rw direction? 816 te-label-direction 817 | | | | +--rw label-end 818 | | | | | +--rw te-label 819 | | | | | +--rw (technology)? 820 | | | | | | +--:(generic) 821 | | | | | | +--rw generic? 822 rt-types:generalized-label 823 | | | | | +--rw direction? 824 te-label-direction 825 | | | | +--rw range-bitmap? binary 826 | | | +--rw reverse 827 | | | +--rw label-restrictions 828 | | | +--rw label-restriction* [index] 829 | | | +--rw restriction? enumeration 830 | | | +--rw index uint32 831 | | | +--rw label-start 832 | | | | +--rw te-label 833 | | | | +--rw (technology)? 834 | | | | | +--:(generic) 835 | | | | | +--rw generic? 836 rt-types:generalized-label 837 | | | | +--rw direction? 838 te-label-direction 839 | | | +--rw label-end 840 | | | | +--rw te-label 841 | | | | +--rw (technology)? 842 | | | | | +--:(generic) 843 | | | | | +--rw generic? 844 rt-types:generalized-label 845 | | | | +--rw direction? 846 te-label-direction 847 | | | +--rw range-bitmap? binary 848 | | +--ro state 849 | | | +--ro bandwidth-generic_state? te-types:te-bandwidth 850 | | | +--ro disjointness_state? 851 te-types:te-path-disjointness 852 | | +--rw te-mpls:bandwidth 853 | | | +--rw te-mpls:specification-type? 854 te-mpls-types:te-bandwidth-type 855 | | | +--rw te-mpls:set-bandwidth? 856 te-mpls-types:bandwidth-kbps 857 | | | +--rw te-mpls:class-type? 858 te-types:te-ds-class 859 | | | +--ro te-mpls:state 860 | | | +--ro te-mpls:signaled-bandwidth? 861 te-mpls-types:bandwidth-kbps 862 | | +--rw te-sr-mpls:sid-selection-mode? 863 te-sid-selection-mode 864 | | +--rw te-sr-mpls:sid-protection? identityref 865 | +--rw te-dev:lsp-install-interval? uint32 866 | +--rw te-dev:lsp-cleanup-interval? uint32 867 | +--rw te-dev:lsp-invalidation-interval? uint32 868 +--rw tunnels 869 | +--rw tunnel* [name] 870 | | +--rw name string 871 | | +--rw identifier? uint16 872 | | +--rw description? string 873 | | +--rw encoding? identityref 874 | | +--rw switching-type? identityref 875 | | +--rw provisioning-state? identityref 876 | | +--rw preference? uint8 877 | | +--rw reoptimize-timer? uint16 878 | | +--rw source? inet:ip-address 879 | | +--rw destination? inet:ip-address 880 | | +--rw src-tp-id? binary 881 | | +--rw dst-tp-id? binary 882 | | +--rw bidirectional? boolean 883 | | +--rw association-objects 884 | | | +--rw association-object* [type ID source global-source] 885 | | | | +--rw type identityref 886 | | | | +--rw ID uint16 887 | | | | +--rw source inet:ip-address 888 | | | | +--rw global-source inet:ip-address 889 | | | +--rw association-object-extended* [type ID source 890 global-source extended-ID] 891 | | | +--rw type identityref 892 | | | +--rw ID uint16 893 | | | +--rw source inet:ip-address 894 | | | +--rw global-source inet:ip-address 895 | | | +--rw extended-ID binary 896 | | +--rw protection 897 | | | +--rw enable? boolean 898 | | | +--rw protection-type? identityref 899 | | | +--rw protection-reversion-disable? boolean 900 | | | +--rw hold-off-time? uint32 901 | | | +--rw wait-to-revert? uint16 902 | | | +--rw aps-signal-id? uint8 903 | | +--rw restoration 904 | | | +--rw enable? boolean 905 | | | +--rw restoration-type? identityref 906 | | | +--rw restoration-scheme? identityref 907 | | | +--rw restoration-reversion-disable? boolean 908 | | | +--rw hold-off-time? uint32 909 | | | +--rw wait-to-restore? uint16 910 | | | +--rw wait-to-revert? uint16 911 | | +--rw te-topology-identifier 912 | | | +--rw provider-id? te-types:te-global-id 913 | | | +--rw client-id? te-types:te-global-id 914 | | | +--rw topology-id? te-types:te-topology-id 915 | | +--rw te-bandwidth 916 | | | +--rw (technology)? 917 | | | +--:(generic) 918 | | | +--rw generic? te-bandwidth 919 | | +--rw setup-priority? uint8 920 | | +--rw hold-priority? uint8 921 | | +--rw signaling-type? identityref 922 | | +--rw dependency-tunnels 923 | | | +--rw dependency-tunnel* [name] 924 | | | +--rw name -> 925 ../../../../../tunnels/tunnel/name 926 | | | +--rw encoding? identityref 927 | | | +--rw switching-type? identityref 928 | | +--rw hierarchical-link 929 | | | +--rw local-te-node-id? te-types:te-node-id 930 | | | +--rw local-te-link-tp-id? te-types:te-tp-id 931 | | | +--rw remote-te-node-id? te-types:te-node-id 932 | | | +--rw te-topology-identifier 933 | | | +--rw provider-id? te-types:te-global-id 934 | | | +--rw client-id? te-types:te-global-id 935 | | | +--rw topology-id? te-types:te-topology-id 936 | | +--ro state 937 | | | +--ro operational-state? identityref 938 | | | +--ro te-dev:lsp-install-interval? uint32 939 | | | +--ro te-dev:lsp-cleanup-interval? uint32 940 | | | +--ro te-dev:lsp-invalidation-interval? uint32 941 | | +--rw p2p-primary-paths 942 | | | +--rw p2p-primary-path* [name] 943 | | | +--rw name string 944 | | | +--rw path-setup-protocol? identityref 945 | | | +--rw path-computation-method? identityref 946 | | | +--rw path-computation-server? inet:ip-address 947 | | | +--rw compute-only? empty 948 | | | +--rw use-path-computation? boolean 949 | | | +--rw lockdown? empty 950 | | | +--rw path-scope? identityref 951 | | | +--rw optimizations 952 | | | | +--rw (algorithm)? 953 | | | | +--:(metric) {path-optimization-metric}? 954 | | | | | +--rw optimization-metric* [metric-type] 955 | | | | | | +--rw metric-type 956 identityref 957 | | | | | | +--rw weight? 958 uint8 959 | | | | | | +--rw explicit-route-exclude-objects 960 | | | | | | | +--rw route-object-exclude-object* 961 [index] 962 | | | | | | | +--rw index uint32 963 | | | | | | | +--rw (type)? 964 | | | | | | | +--:(num-unnum-hop) 965 | | | | | | | | +--rw num-unnum-hop 966 | | | | | | | | +--rw node-id? 967 te-types:te-node-id 968 | | | | | | | | +--rw link-tp-id? 969 te-types:te-tp-id 970 | | | | | | | | +--rw hop-type? 971 te-hop-type 972 | | | | | | | | +--rw direction? 973 te-link-direction 974 | | | | | | | +--:(as-number) 975 | | | | | | | | +--rw as-number-hop 976 | | | | | | | | +--rw as-number? binary 977 | | | | | | | | +--rw hop-type? 978 te-hop-type 979 | | | | | | | +--:(label) 980 | | | | | | | | +--rw label-hop 981 | | | | | | | | +--rw te-label 982 | | | | | | | | +--rw (technology)? 983 | | | | | | | | | +--:(generic) 984 | | | | | | | | | +--rw generic? 985 rt-types:generalized-label 986 | | | | | | | | +--rw direction? 987 te-label-direction 988 | | | | | | | +--:(srlg) 989 | | | | | | | +--rw srlg 990 | | | | | | | +--rw srlg? uint32 991 | | | | | | +--rw explicit-route-include-objects 992 | | | | | | +--rw route-object-include-object* 993 [index] 994 | | | | | | +--rw index uint32 995 | | | | | | +--rw (type)? 996 | | | | | | +--:(num-unnum-hop) 997 | | | | | | | +--rw num-unnum-hop 998 | | | | | | | +--rw node-id? 999 te-types:te-node-id 1000 | | | | | | | +--rw link-tp-id? 1001 te-types:te-tp-id 1002 | | | | | | | +--rw hop-type? 1003 te-hop-type 1004 | | | | | | | +--rw direction? 1005 te-link-direction 1006 | | | | | | +--:(as-number) 1007 | | | | | | | +--rw as-number-hop 1008 | | | | | | | +--rw as-number? binary 1009 | | | | | | | +--rw hop-type? 1010 te-hop-type 1011 | | | | | | +--:(label) 1012 | | | | | | +--rw label-hop 1013 | | | | | | +--rw te-label 1014 | | | | | | +--rw (technology)? 1015 | | | | | | | +--:(generic) 1016 | | | | | | | +--rw generic? 1017 rt-types:generalized-label 1018 | | | | | | +--rw direction? 1019 te-label-direction 1020 | | | | | +--rw tiebreakers 1021 | | | | | +--rw tiebreaker* [tiebreaker-type] 1022 | | | | | +--rw tiebreaker-type identityref 1023 | | | | +--:(objective-function) 1024 {path-optimization-objective-function}? 1025 | | | | +--rw objective-function 1026 | | | | +--rw objective-function-type? 1027 identityref 1028 | | | +--rw preference? uint8 1029 | | | +--rw named-path-constraint? -> 1030 ../../../../../globals/named-path-constraints/ 1031 named-path-constraint/name 1032 {te-types:named-path-constraints}? 1033 | | | +--rw te-bandwidth 1034 | | | | +--rw (technology)? 1035 | | | | +--:(generic) 1036 | | | | +--rw generic? te-bandwidth 1037 | | | +--rw setup-priority? uint8 1038 | | | +--rw hold-priority? uint8 1039 | | | +--rw signaling-type? identityref 1040 | | | +--rw path-metric-bounds 1041 | | | | +--rw path-metric-bound* [metric-type] 1042 | | | | +--rw metric-type identityref 1043 | | | | +--rw upper-bound? uint64 1044 | | | +--rw path-affinities 1045 | | | | +--rw constraints* [usage] 1046 | | | | +--rw usage identityref 1047 | | | | +--rw (style)? 1048 | | | | +--:(value) 1049 | | | | | +--rw value? 1050 te-types:admin-groups 1051 | | | | +--:(named) 1052 | | | | +--rw affinity-names* [name] 1053 | | | | +--rw name string 1054 | | | +--rw path-srlgs 1055 | | | | +--rw (style)? 1056 | | | | +--:(values) 1057 | | | | | +--rw usage? identityref 1058 | | | | | +--rw values* te-types:srlg 1059 | | | | +--:(named) 1060 | | | | +--rw constraints 1061 | | | | +--rw constraint* [usage] 1062 | | | | +--rw usage identityref 1063 | | | | +--rw constraint 1064 | | | | +--rw srlg-names* [name] 1065 | | | | +--rw name string 1066 | | | +--rw explicit-route-objects 1067 | | | | +--rw route-object-exclude-always* [index] 1068 | | | | | +--rw index uint32 1069 | | | | | +--rw (type)? 1070 | | | | | +--:(num-unnum-hop) 1071 | | | | | | +--rw num-unnum-hop 1072 | | | | | | +--rw node-id? te-types:te-node-id 1073 | | | | | | +--rw link-tp-id? te-types:te-tp-id 1074 | | | | | | +--rw hop-type? te-hop-type 1075 | | | | | | +--rw direction? te-link-direction 1076 | | | | | +--:(as-number) 1077 | | | | | | +--rw as-number-hop 1078 | | | | | | +--rw as-number? binary 1079 | | | | | | +--rw hop-type? te-hop-type 1080 | | | | | +--:(label) 1081 | | | | | +--rw label-hop 1082 | | | | | +--rw te-label 1083 | | | | | +--rw (technology)? 1084 | | | | | | +--:(generic) 1085 | | | | | | +--rw generic? 1086 rt-types:generalized-label 1087 | | | | | +--rw direction? 1088 te-label-direction 1089 | | | | +--rw route-object-include-exclude* [index] 1090 | | | | +--rw explicit-route-usage? identityref 1091 | | | | +--rw index uint32 1092 | | | | +--rw (type)? 1093 | | | | +--:(num-unnum-hop) 1094 | | | | | +--rw num-unnum-hop 1095 | | | | | +--rw node-id? te-types:te-node-id 1096 | | | | | +--rw link-tp-id? te-types:te-tp-id 1097 | | | | | +--rw hop-type? te-hop-type 1098 | | | | | +--rw direction? te-link-direction 1099 | | | | +--:(as-number) 1100 | | | | | +--rw as-number-hop 1101 | | | | | +--rw as-number? binary 1102 | | | | | +--rw hop-type? te-hop-type 1103 | | | | +--:(label) 1104 | | | | | +--rw label-hop 1105 | | | | | +--rw te-label 1106 | | | | | +--rw (technology)? 1107 | | | | | | +--:(generic) 1108 | | | | | | +--rw generic? 1109 rt-types:generalized-label 1110 | | | | | +--rw direction? 1111 te-label-direction 1112 | | | | +--:(srlg) 1113 | | | | +--rw srlg 1114 | | | | +--rw srlg? uint32 1115 | | | +--rw shared-resources-tunnels 1116 | | | | +--rw lsp-shared-resources-tunnel* te:tunnel-ref 1117 | | | +--rw path-in-segment! 1118 | | | | +--rw forward 1119 | | | | | +--rw label-restrictions 1120 | | | | | +--rw label-restriction* [index] 1121 | | | | | +--rw restriction? enumeration 1122 | | | | | +--rw index uint32 1123 | | | | | +--rw label-start 1124 | | | | | | +--rw te-label 1125 | | | | | | +--rw (technology)? 1126 | | | | | | | +--:(generic) 1127 | | | | | | | +--rw generic? 1128 rt-types:generalized-label 1129 | | | | | | +--rw direction? 1130 te-label-direction 1131 | | | | | +--rw label-end 1132 | | | | | | +--rw te-label 1133 | | | | | | +--rw (technology)? 1134 | | | | | | | +--:(generic) 1135 | | | | | | | +--rw generic? 1136 rt-types:generalized-label 1137 | | | | | | +--rw direction? 1138 te-label-direction 1139 | | | | | +--rw range-bitmap? binary 1140 | | | | +--rw reverse 1141 | | | | +--rw label-restrictions 1142 | | | | +--rw label-restriction* [index] 1143 | | | | +--rw restriction? enumeration 1144 | | | | +--rw index uint32 1145 | | | | +--rw label-start 1146 | | | | | +--rw te-label 1147 | | | | | +--rw (technology)? 1148 | | | | | | +--:(generic) 1149 | | | | | | +--rw generic? 1150 rt-types:generalized-label 1151 | | | | | +--rw direction? 1152 te-label-direction 1153 | | | | +--rw label-end 1154 | | | | | +--rw te-label 1155 | | | | | +--rw (technology)? 1156 | | | | | | +--:(generic) 1157 | | | | | | +--rw generic? 1158 rt-types:generalized-label 1159 | | | | | +--rw direction? 1160 te-label-direction 1161 | | | | +--rw range-bitmap? binary 1162 | | | +--rw path-out-segment! 1163 | | | | +--rw forward 1164 | | | | | +--rw label-restrictions 1165 | | | | | +--rw label-restriction* [index] 1166 | | | | | +--rw restriction? enumeration 1167 | | | | | +--rw index uint32 1168 | | | | | +--rw label-start 1169 | | | | | | +--rw te-label 1170 | | | | | | +--rw (technology)? 1171 | | | | | | | +--:(generic) 1172 | | | | | | | +--rw generic? 1173 rt-types:generalized-label 1174 | | | | | | +--rw direction? 1175 te-label-direction 1176 | | | | | +--rw label-end 1177 | | | | | | +--rw te-label 1178 | | | | | | +--rw (technology)? 1179 | | | | | | | +--:(generic) 1180 | | | | | | | +--rw generic? 1181 rt-types:generalized-label 1182 | | | | | | +--rw direction? 1183 te-label-direction 1184 | | | | | +--rw range-bitmap? binary 1185 | | | | +--rw reverse 1186 | | | | +--rw label-restrictions 1187 | | | | +--rw label-restriction* [index] 1188 | | | | +--rw restriction? enumeration 1189 | | | | +--rw index uint32 1190 | | | | +--rw label-start 1191 | | | | | +--rw te-label 1192 | | | | | +--rw (technology)? 1193 | | | | | | +--:(generic) 1194 | | | | | | +--rw generic? 1195 rt-types:generalized-label 1196 | | | | | +--rw direction? 1197 te-label-direction 1198 | | | | +--rw label-end 1199 | | | | | +--rw te-label 1200 | | | | | +--rw (technology)? 1201 | | | | | | +--:(generic) 1202 | | | | | | +--rw generic? 1203 rt-types:generalized-label 1204 | | | | | +--rw direction? 1205 te-label-direction 1206 | | | | +--rw range-bitmap? binary 1207 | | | +--ro state 1208 | | | | +--ro path-properties 1209 | | | | | +--ro path-metric* [metric-type] 1210 | | | | | | +--ro metric-type -> ../state/metric-type 1211 | | | | | | +--ro state 1212 | | | | | | +--ro metric-type? identityref 1213 | | | | | | +--ro accumulative-value? uint64 1214 | | | | | +--ro path-affinities 1215 | | | | | | +--ro constraints* [usage] 1216 | | | | | | +--ro usage identityref 1217 | | | | | | +--ro (style)? 1218 | | | | | | +--:(value) 1219 | | | | | | | +--ro value? 1220 te-types:admin-groups 1221 | | | | | | +--:(named) 1222 | | | | | | +--ro affinity-names* [name] 1223 | | | | | | +--ro name string 1224 | | | | | +--ro path-srlgs 1225 | | | | | | +--ro (style)? 1226 | | | | | | +--:(values) 1227 | | | | | | | +--ro usage? identityref 1228 | | | | | | | +--ro values* te-types:srlg 1229 | | | | | | +--:(named) 1230 | | | | | | +--ro constraints 1231 | | | | | | +--ro constraint* [usage] 1232 | | | | | | +--ro usage identityref 1233 | | | | | | +--ro constraint 1234 | | | | | | +--ro srlg-names* [name] 1235 | | | | | | +--ro name string 1236 | | | | | +--ro path-route-objects 1237 | | | | | | +--ro path-computed-route-object* [index] 1238 | | | | | | +--ro index -> ../state/index 1239 | | | | | | +--ro state 1240 | | | | | | +--ro index? uint32 1241 | | | | | | +--ro (type)? 1242 | | | | | | +--:(num-unnum-hop) 1243 | | | | | | | +--ro num-unnum-hop 1244 | | | | | | | +--ro node-id? 1245 te-types:te-node-id 1246 | | | | | | | +--ro link-tp-id? 1247 te-types:te-tp-id 1248 | | | | | | | +--ro hop-type? te-hop-type 1249 | | | | | | | +--ro direction? 1250 te-link-direction 1251 | | | | | | +--:(as-number) 1252 | | | | | | | +--ro as-number-hop 1253 | | | | | | | +--ro as-number? binary 1254 | | | | | | | +--ro hop-type? te-hop-type 1255 | | | | | | +--:(label) 1256 | | | | | | +--ro label-hop 1257 | | | | | | +--ro te-label 1258 | | | | | | +--ro (technology)? 1259 | | | | | | | +--:(generic) 1260 | | | | | | | +--ro generic? 1261 rt-types:generalized-label 1262 | | | | | | +--ro direction? 1263 te-label-direction 1264 | | | | | +--ro shared-resources-tunnels 1265 | | | | | +--ro lsp-shared-resources-tunnel* 1266 te:tunnel-ref 1267 | | | | +--ro lsps 1268 | | | | | +--ro lsp* [source destination tunnel-id lsp-id 1269 extended-tunnel-id] 1270 | | | | | +--ro source 1271 inet:ip-address 1272 | | | | | +--ro destination 1273 inet:ip-address 1274 | | | | | +--ro tunnel-id 1275 uint16 1276 | | | | | +--ro lsp-id 1277 uint16 1278 | | | | | +--ro extended-tunnel-id 1279 inet:ip-address 1280 | | | | | +--ro operational-state? 1281 identityref 1282 | | | | | +--ro path-setup-protocol? 1283 identityref 1284 | | | | | +--ro origin-type? 1285 enumeration 1286 | | | | | +--ro lsp-resource-status? 1287 enumeration 1288 | | | | | +--ro lockout-of-normal? 1289 boolean 1290 | | | | | +--ro freeze? 1291 boolean 1292 | | | | | +--ro lsp-protection-role? 1293 enumeration 1294 | | | | | +--ro lsp-protection-state? 1295 identityref 1296 | | | | | +--ro protection-group-ingress-node-id? 1297 te-types:te-node-id 1298 | | | | | +--ro protection-group-egress-node-id? 1299 te-types:te-node-id 1300 | | | | | +--ro lsp-shared-resources-tunnel? 1301 te:tunnel-ref 1302 | | | | | +--ro lsp-record-route-subobjects 1303 | | | | | | +--ro record-route-subobject* [index] 1304 | | | | | | +--ro index uint32 1305 | | | | | | +--ro (type)? 1306 | | | | | | +--:(numbered) 1307 | | | | | | | +--ro address? 1308 te-types:te-tp-id 1309 | | | | | | | +--ro ip-flags? binary 1310 | | | | | | +--:(unnumbered) 1311 | | | | | | | +--ro node-id? 1312 te-types:te-node-id 1313 | | | | | | | +--ro link-tp-id? 1314 te-types:te-tp-id 1315 | | | | | | +--:(label) 1316 | | | | | | +--ro label-hop 1317 | | | | | | +--ro te-label 1318 | | | | | | | +--ro (technology)? 1319 | | | | | | | | +--:(generic) 1320 | | | | | | | | +--ro generic? 1321 rt-types:generalized-label 1322 | | | | | | | +--ro direction? 1323 te-label-direction 1324 | | | | | | +--ro label-flags? binary 1325 | | | | | +--ro path-properties 1326 | | | | | | +--ro path-metric* [metric-type] 1327 | | | | | | | +--ro metric-type -> 1328 ../state/metric-type 1329 | | | | | | | +--ro state 1330 | | | | | | | +--ro metric-type? 1331 identityref 1332 | | | | | | | +--ro accumulative-value? uint64 1333 | | | | | | +--ro path-affinities 1334 | | | | | | | +--ro constraints* [usage] 1335 | | | | | | | +--ro usage 1336 identityref 1337 | | | | | | | +--ro (style)? 1338 | | | | | | | +--:(value) 1339 | | | | | | | | +--ro value? 1340 te-types:admin-groups 1341 | | | | | | | +--:(named) 1342 | | | | | | | +--ro affinity-names* [name] 1343 | | | | | | | +--ro name string 1344 | | | | | | +--ro path-srlgs 1345 | | | | | | | +--ro (style)? 1346 | | | | | | | +--:(values) 1347 | | | | | | | | +--ro usage? identityref 1348 | | | | | | | | +--ro values* te-types:srlg 1349 | | | | | | | +--:(named) 1350 | | | | | | | +--ro constraints 1351 | | | | | | | +--ro constraint* [usage] 1352 | | | | | | | +--ro usage 1353 identityref 1354 | | | | | | | +--ro constraint 1355 | | | | | | | +--ro srlg-names* [name] 1356 | | | | | | | +--ro name string 1357 | | | | | | +--ro path-route-objects 1358 | | | | | | | +--ro path-computed-route-object* 1359 [index] 1360 | | | | | | | +--ro index -> ../state/index 1361 | | | | | | | +--ro state 1362 | | | | | | | +--ro index? 1363 uint32 1364 | | | | | | | +--ro (type)? 1365 | | | | | | | +--:(num-unnum-hop) 1366 | | | | | | | | +--ro num-unnum-hop 1367 | | | | | | | | +--ro node-id? 1368 te-types:te-node-id 1369 | | | | | | | | +--ro link-tp-id? 1370 te-types:te-tp-id 1371 | | | | | | | | +--ro hop-type? 1372 te-hop-type 1373 | | | | | | | | +--ro direction? 1374 te-link-direction 1375 | | | | | | | +--:(as-number) 1376 | | | | | | | | +--ro as-number-hop 1377 | | | | | | | | +--ro as-number? binary 1378 | | | | | | | | +--ro hop-type? 1379 te-hop-type 1380 | | | | | | | +--:(label) 1381 | | | | | | | +--ro label-hop 1382 | | | | | | | +--ro te-label 1383 | | | | | | | +--ro (technology)? 1384 | | | | | | | | +--:(generic) 1385 | | | | | | | | +--ro generic? 1386 rt-types:generalized-label 1387 | | | | | | | +--ro direction? 1388 te-label-direction 1389 | | | | | | +--ro shared-resources-tunnels 1390 | | | | | | +--ro lsp-shared-resources-tunnel* 1391 te:tunnel-ref 1392 | | | | | +--ro te-dev:lsp-timers 1393 | | | | | | +--ro te-dev:life-time? uint32 1394 | | | | | | +--ro te-dev:time-to-install? uint32 1395 | | | | | | +--ro te-dev:time-to-destroy? uint32 1396 | | | | | +--ro te-dev:downstream-info 1397 | | | | | | +--ro te-dev:nhop? 1398 inet:ip-address 1399 | | | | | | +--ro te-dev:outgoing-interface? 1400 if:interface-ref 1401 | | | | | | +--ro te-dev:neighbor? 1402 inet:ip-address 1403 | | | | | | +--ro te-dev:label? 1404 rt-types:generalized-label 1405 | | | | | +--ro te-dev:upstream-info 1406 | | | | | +--ro te-dev:phop? inet:ip-address 1407 | | | | | +--ro te-dev:neighbor? inet:ip-address 1408 | | | | | +--ro te-dev:label? 1409 rt-types:generalized-label 1410 | | | | +--ro te-mpls:static-lsp-name? 1411 mpls-static:static-lsp-ref 1412 | | | +--rw p2p-reverse-primary-path 1413 | | | | +--rw name? string 1414 | | | | +--rw path-setup-protocol? identityref 1415 | | | | +--rw path-computation-method? identityref 1416 | | | | +--rw path-computation-server? inet:ip-address 1417 | | | | +--rw compute-only? empty 1418 | | | | +--rw use-path-computation? boolean 1419 | | | | +--rw lockdown? empty 1420 | | | | +--rw path-scope? identityref 1421 | | | | +--rw optimizations 1422 | | | | | +--rw (algorithm)? 1423 | | | | | +--:(metric) {path-optimization-metric}? 1424 | | | | | | +--rw optimization-metric* [metric-type] 1425 | | | | | | | +--rw metric-type 1426 identityref 1427 | | | | | | | +--rw weight? 1428 uint8 1429 | | | | | | | +--rw explicit-route-exclude-objects 1430 | | | | | | | | +--rw route-object-exclude-object* 1431 [index] 1432 | | | | | | | | +--rw index 1433 uint32 1434 | | | | | | | | +--rw (type)? 1435 | | | | | | | | +--:(num-unnum-hop) 1436 | | | | | | | | | +--rw num-unnum-hop 1437 | | | | | | | | | +--rw node-id? 1438 te-types:te-node-id 1439 | | | | | | | | | +--rw link-tp-id? 1440 te-types:te-tp-id 1441 | | | | | | | | | +--rw hop-type? 1442 te-hop-type 1443 | | | | | | | | | +--rw direction? 1444 te-link-direction 1445 | | | | | | | | +--:(as-number) 1446 | | | | | | | | | +--rw as-number-hop 1447 | | | | | | | | | +--rw as-number? binary 1448 | | | | | | | | | +--rw hop-type? 1449 te-hop-type 1450 | | | | | | | | +--:(label) 1451 | | | | | | | | | +--rw label-hop 1452 | | | | | | | | | +--rw te-label 1453 | | | | | | | | | +--rw (technology)? 1454 | | | | | | | | | | +--:(generic) 1455 | | | | | | | | | | +--rw generic? 1456 rt-types:generalized-label 1457 | | | | | | | | | +--rw direction? 1458 te-label-direction 1459 | | | | | | | | +--:(srlg) 1460 | | | | | | | | +--rw srlg 1461 | | | | | | | | +--rw srlg? uint32 1462 | | | | | | | +--rw explicit-route-include-objects 1463 | | | | | | | +--rw route-object-include-object* 1464 [index] 1465 | | | | | | | +--rw index 1466 uint32 1467 | | | | | | | +--rw (type)? 1468 | | | | | | | +--:(num-unnum-hop) 1469 | | | | | | | | +--rw num-unnum-hop 1470 | | | | | | | | +--rw node-id? 1471 te-types:te-node-id 1472 | | | | | | | | +--rw link-tp-id? 1473 te-types:te-tp-id 1474 | | | | | | | | +--rw hop-type? 1475 te-hop-type 1476 | | | | | | | | +--rw direction? 1477 te-link-direction 1478 | | | | | | | +--:(as-number) 1479 | | | | | | | | +--rw as-number-hop 1480 | | | | | | | | +--rw as-number? binary 1481 | | | | | | | | +--rw hop-type? 1482 te-hop-type 1483 | | | | | | | +--:(label) 1484 | | | | | | | +--rw label-hop 1485 | | | | | | | +--rw te-label 1486 | | | | | | | +--rw (technology)? 1487 | | | | | | | | +--:(generic) 1488 | | | | | | | | +--rw generic? 1489 rt-types:generalized-label 1490 | | | | | | | +--rw direction? 1491 te-label-direction 1492 | | | | | | +--rw tiebreakers 1493 | | | | | | +--rw tiebreaker* [tiebreaker-type] 1494 | | | | | | +--rw tiebreaker-type identityref 1495 | | | | | +--:(objective-function) 1496 {path-optimization-objective-function}? 1497 | | | | | +--rw objective-function 1498 | | | | | +--rw objective-function-type? 1499 identityref 1500 | | | | +--rw named-path-constraint? -> 1501 ../../../../../../globals/named-path-constraints/ 1502 named-path-constraint/name 1503 {te-types:named-path-constraints}? 1504 | | | | +--rw te-bandwidth 1505 | | | | | +--rw (technology)? 1506 | | | | | +--:(generic) 1507 | | | | | +--rw generic? te-bandwidth 1508 | | | | +--rw setup-priority? uint8 1509 | | | | +--rw hold-priority? uint8 1510 | | | | +--rw signaling-type? identityref 1511 | | | | +--rw path-metric-bounds 1512 | | | | | +--rw path-metric-bound* [metric-type] 1513 | | | | | +--rw metric-type identityref 1514 | | | | | +--rw upper-bound? uint64 1515 | | | | +--rw path-affinities 1516 | | | | | +--rw constraints* [usage] 1517 | | | | | +--rw usage identityref 1518 | | | | | +--rw (style)? 1519 | | | | | +--:(value) 1520 | | | | | | +--rw value? 1521 te-types:admin-groups 1522 | | | | | +--:(named) 1523 | | | | | +--rw affinity-names* [name] 1524 | | | | | +--rw name string 1525 | | | | +--rw path-srlgs 1526 | | | | | +--rw (style)? 1527 | | | | | +--:(values) 1528 | | | | | | +--rw usage? identityref 1529 | | | | | | +--rw values* te-types:srlg 1530 | | | | | +--:(named) 1531 | | | | | +--rw constraints 1532 | | | | | +--rw constraint* [usage] 1533 | | | | | +--rw usage identityref 1534 | | | | | +--rw constraint 1535 | | | | | +--rw srlg-names* [name] 1536 | | | | | +--rw name string 1537 | | | | +--rw explicit-route-objects 1538 | | | | | +--rw route-object-exclude-always* [index] 1539 | | | | | | +--rw index uint32 1540 | | | | | | +--rw (type)? 1541 | | | | | | +--:(num-unnum-hop) 1542 | | | | | | | +--rw num-unnum-hop 1543 | | | | | | | +--rw node-id? 1544 te-types:te-node-id 1545 | | | | | | | +--rw link-tp-id? te-types:te-tp-id 1546 | | | | | | | +--rw hop-type? te-hop-type 1547 | | | | | | | +--rw direction? te-link-direction 1548 | | | | | | +--:(as-number) 1549 | | | | | | | +--rw as-number-hop 1550 | | | | | | | +--rw as-number? binary 1551 | | | | | | | +--rw hop-type? te-hop-type 1552 | | | | | | +--:(label) 1553 | | | | | | +--rw label-hop 1554 | | | | | | +--rw te-label 1555 | | | | | | +--rw (technology)? 1556 | | | | | | | +--:(generic) 1557 | | | | | | | +--rw generic? 1558 rt-types:generalized-label 1559 | | | | | | +--rw direction? 1560 te-label-direction 1561 | | | | | +--rw route-object-include-exclude* [index] 1562 | | | | | +--rw explicit-route-usage? identityref 1563 | | | | | +--rw index uint32 1564 | | | | | +--rw (type)? 1565 | | | | | +--:(num-unnum-hop) 1566 | | | | | | +--rw num-unnum-hop 1567 | | | | | | +--rw node-id? 1568 te-types:te-node-id 1569 | | | | | | +--rw link-tp-id? te-types:te-tp-id 1570 | | | | | | +--rw hop-type? te-hop-type 1571 | | | | | | +--rw direction? te-link-direction 1572 | | | | | +--:(as-number) 1573 | | | | | | +--rw as-number-hop 1574 | | | | | | +--rw as-number? binary 1575 | | | | | | +--rw hop-type? te-hop-type 1576 | | | | | +--:(label) 1577 | | | | | | +--rw label-hop 1578 | | | | | | +--rw te-label 1579 | | | | | | +--rw (technology)? 1580 | | | | | | | +--:(generic) 1581 | | | | | | | +--rw generic? 1582 rt-types:generalized-label 1583 | | | | | | +--rw direction? 1584 te-label-direction 1585 | | | | | +--:(srlg) 1586 | | | | | +--rw srlg 1587 | | | | | +--rw srlg? uint32 1588 | | | | +--rw shared-resources-tunnels 1589 | | | | | +--rw lsp-shared-resources-tunnel* 1590 te:tunnel-ref 1591 | | | | +--rw path-in-segment! 1592 | | | | | +--rw forward 1593 | | | | | | +--rw label-restrictions 1594 | | | | | | +--rw label-restriction* [index] 1595 | | | | | | +--rw restriction? enumeration 1596 | | | | | | +--rw index uint32 1597 | | | | | | +--rw label-start 1598 | | | | | | | +--rw te-label 1599 | | | | | | | +--rw (technology)? 1600 | | | | | | | | +--:(generic) 1601 | | | | | | | | +--rw generic? 1602 rt-types:generalized-label 1603 | | | | | | | +--rw direction? 1604 te-label-direction 1605 | | | | | | +--rw label-end 1606 | | | | | | | +--rw te-label 1607 | | | | | | | +--rw (technology)? 1608 | | | | | | | | +--:(generic) 1609 | | | | | | | | +--rw generic? 1610 rt-types:generalized-label 1611 | | | | | | | +--rw direction? 1612 te-label-direction 1613 | | | | | | +--rw range-bitmap? binary 1614 | | | | | +--rw reverse 1615 | | | | | +--rw label-restrictions 1616 | | | | | +--rw label-restriction* [index] 1617 | | | | | +--rw restriction? enumeration 1618 | | | | | +--rw index uint32 1619 | | | | | +--rw label-start 1620 | | | | | | +--rw te-label 1621 | | | | | | +--rw (technology)? 1622 | | | | | | | +--:(generic) 1623 | | | | | | | +--rw generic? 1624 rt-types:generalized-label 1625 | | | | | | +--rw direction? 1626 te-label-direction 1627 | | | | | +--rw label-end 1628 | | | | | | +--rw te-label 1629 | | | | | | +--rw (technology)? 1630 | | | | | | | +--:(generic) 1631 | | | | | | | +--rw generic? 1632 rt-types:generalized-label 1633 | | | | | | +--rw direction? 1634 te-label-direction 1635 | | | | | +--rw range-bitmap? binary 1636 | | | | +--rw path-out-segment! 1637 | | | | | +--rw forward 1638 | | | | | | +--rw label-restrictions 1639 | | | | | | +--rw label-restriction* [index] 1640 | | | | | | +--rw restriction? enumeration 1641 | | | | | | +--rw index uint32 1642 | | | | | | +--rw label-start 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 label-end 1651 | | | | | | | +--rw te-label 1652 | | | | | | | +--rw (technology)? 1653 | | | | | | | | +--:(generic) 1654 | | | | | | | | +--rw generic? 1655 rt-types:generalized-label 1656 | | | | | | | +--rw direction? 1657 te-label-direction 1658 | | | | | | +--rw range-bitmap? binary 1659 | | | | | +--rw reverse 1660 | | | | | +--rw label-restrictions 1661 | | | | | +--rw label-restriction* [index] 1662 | | | | | +--rw restriction? enumeration 1663 | | | | | +--rw index uint32 1664 | | | | | +--rw label-start 1665 | | | | | | +--rw te-label 1666 | | | | | | +--rw (technology)? 1667 | | | | | | | +--:(generic) 1668 | | | | | | | +--rw generic? 1669 rt-types:generalized-label 1670 | | | | | | +--rw direction? 1671 te-label-direction 1672 | | | | | +--rw label-end 1673 | | | | | | +--rw te-label 1674 | | | | | | +--rw (technology)? 1675 | | | | | | | +--:(generic) 1676 | | | | | | | +--rw generic? 1677 rt-types:generalized-label 1678 | | | | | | +--rw direction? 1679 te-label-direction 1680 | | | | | +--rw range-bitmap? binary 1681 | | | | +--ro state 1682 | | | | | +--ro path-properties 1683 | | | | | | +--ro path-metric* [metric-type] 1684 | | | | | | | +--ro metric-type -> 1685 ../state/metric-type 1686 | | | | | | | +--ro state 1687 | | | | | | | +--ro metric-type? identityref 1688 | | | | | | | +--ro accumulative-value? uint64 1689 | | | | | | +--ro path-affinities 1690 | | | | | | | +--ro constraints* [usage] 1691 | | | | | | | +--ro usage 1692 identityref 1693 | | | | | | | +--ro (style)? 1694 | | | | | | | +--:(value) 1695 | | | | | | | | +--ro value? 1696 te-types:admin-groups 1697 | | | | | | | +--:(named) 1698 | | | | | | | +--ro affinity-names* [name] 1699 | | | | | | | +--ro name string 1700 | | | | | | +--ro path-srlgs 1701 | | | | | | | +--ro (style)? 1702 | | | | | | | +--:(values) 1703 | | | | | | | | +--ro usage? identityref 1704 | | | | | | | | +--ro values* te-types:srlg 1705 | | | | | | | +--:(named) 1706 | | | | | | | +--ro constraints 1707 | | | | | | | +--ro constraint* [usage] 1708 | | | | | | | +--ro usage identityref 1709 | | | | | | | +--ro constraint 1710 | | | | | | | +--ro srlg-names* [name] 1711 | | | | | | | +--ro name string 1712 | | | | | | +--ro path-route-objects 1713 | | | | | | | +--ro path-computed-route-object* [index] 1714 | | | | | | | +--ro index -> ../state/index 1715 | | | | | | | +--ro state 1716 | | | | | | | +--ro index? uint32 1717 | | | | | | | +--ro (type)? 1718 | | | | | | | +--:(num-unnum-hop) 1719 | | | | | | | | +--ro num-unnum-hop 1720 | | | | | | | | +--ro node-id? 1721 te-types:te-node-id 1722 | | | | | | | | +--ro link-tp-id? 1723 te-types:te-tp-id 1724 | | | | | | | | +--ro hop-type? 1725 te-hop-type 1726 | | | | | | | | +--ro direction? 1727 te-link-direction 1728 | | | | | | | +--:(as-number) 1729 | | | | | | | | +--ro as-number-hop 1730 | | | | | | | | +--ro as-number? binary 1731 | | | | | | | | +--ro hop-type? 1732 te-hop-type 1733 | | | | | | | +--:(label) 1734 | | | | | | | +--ro label-hop 1735 | | | | | | | +--ro te-label 1736 | | | | | | | +--ro (technology)? 1737 | | | | | | | | +--:(generic) 1738 | | | | | | | | +--ro generic? 1739 rt-types:generalized-label 1740 | | | | | | | +--ro direction? 1741 te-label-direction 1742 | | | | | | +--ro shared-resources-tunnels 1743 | | | | | | +--ro lsp-shared-resources-tunnel* 1744 te:tunnel-ref 1745 | | | | | +--ro lsps 1746 | | | | | +--ro lsp* [source destination tunnel-id 1747 lsp-id extended-tunnel-id] 1748 | | | | | +--ro source 1749 inet:ip-address 1750 | | | | | +--ro destination 1751 inet:ip-address 1752 | | | | | +--ro tunnel-id 1753 uint16 1754 | | | | | +--ro lsp-id 1755 uint16 1756 | | | | | +--ro extended-tunnel-id 1757 inet:ip-address 1758 | | | | | +--ro operational-state? 1759 identityref 1760 | | | | | +--ro path-setup-protocol? 1761 identityref 1762 | | | | | +--ro origin-type? 1763 enumeration 1764 | | | | | +--ro lsp-resource-status? 1765 enumeration 1766 | | | | | +--ro lockout-of-normal? 1767 boolean 1768 | | | | | +--ro freeze? 1769 boolean 1770 | | | | | +--ro lsp-protection-role? 1771 enumeration 1772 | | | | | +--ro lsp-protection-state? 1773 identityref 1774 | | | | | +--ro protection-group-ingress-node-id? 1775 te-types:te-node-id 1776 | | | | | +--ro protection-group-egress-node-id? 1777 te-types:te-node-id 1778 | | | | | +--ro lsp-shared-resources-tunnel? 1779 te:tunnel-ref 1780 | | | | | +--ro lsp-record-route-subobjects 1781 | | | | | | +--ro record-route-subobject* [index] 1782 | | | | | | +--ro index uint32 1783 | | | | | | +--ro (type)? 1784 | | | | | | +--:(numbered) 1785 | | | | | | | +--ro address? 1786 te-types:te-tp-id 1787 | | | | | | | +--ro ip-flags? binary 1788 | | | | | | +--:(unnumbered) 1789 | | | | | | | +--ro node-id? 1790 te-types:te-node-id 1791 | | | | | | | +--ro link-tp-id? 1792 te-types:te-tp-id 1793 | | | | | | +--:(label) 1794 | | | | | | +--ro label-hop 1795 | | | | | | +--ro te-label 1796 | | | | | | | +--ro (technology)? 1797 | | | | | | | | +--:(generic) 1798 | | | | | | | | +--ro generic? 1799 rt-types:generalized-label 1800 | | | | | | | +--ro direction? 1801 te-label-direction 1802 | | | | | | +--ro label-flags? binary 1803 | | | | | +--ro path-properties 1804 | | | | | +--ro path-metric* [metric-type] 1805 | | | | | | +--ro metric-type -> 1806 ../state/metric-type 1807 | | | | | | +--ro state 1808 | | | | | | +--ro metric-type? 1809 identityref 1810 | | | | | | +--ro accumulative-value? uint64 1811 | | | | | +--ro path-affinities 1812 | | | | | | +--ro constraints* [usage] 1813 | | | | | | +--ro usage 1814 identityref 1815 | | | | | | +--ro (style)? 1816 | | | | | | +--:(value) 1817 | | | | | | | +--ro value? 1818 te-types:admin-groups 1819 | | | | | | +--:(named) 1820 | | | | | | +--ro affinity-names* [name] 1821 | | | | | | +--ro name string 1822 | | | | | +--ro path-srlgs 1823 | | | | | | +--ro (style)? 1824 | | | | | | +--:(values) 1825 | | | | | | | +--ro usage? 1826 identityref 1827 | | | | | | | +--ro values* 1828 te-types:srlg 1829 | | | | | | +--:(named) 1830 | | | | | | +--ro constraints 1831 | | | | | | +--ro constraint* [usage] 1832 | | | | | | +--ro usage 1833 identityref 1834 | | | | | | +--ro constraint 1835 | | | | | | +--ro srlg-names* 1836 [name] 1837 | | | | | | +--ro name 1838 string 1839 | | | | | +--ro path-route-objects 1840 | | | | | | +--ro path-computed-route-object* 1841 [index] 1842 | | | | | | +--ro index -> ../state/index 1843 | | | | | | +--ro state 1844 | | | | | | +--ro index? 1845 uint32 1846 | | | | | | +--ro (type)? 1847 | | | | | | +--:(num-unnum-hop) 1848 | | | | | | | +--ro num-unnum-hop 1849 | | | | | | | +--ro node-id? 1850 te-types:te-node-id 1851 | | | | | | | +--ro link-tp-id? 1852 te-types:te-tp-id 1853 | | | | | | | +--ro hop-type? 1854 te-hop-type 1855 | | | | | | | +--ro direction? 1856 te-link-direction 1857 | | | | | | +--:(as-number) 1858 | | | | | | | +--ro as-number-hop 1859 | | | | | | | +--ro as-number? 1860 binary 1861 | | | | | | | +--ro hop-type? 1862 te-hop-type 1863 | | | | | | +--:(label) 1864 | | | | | | +--ro label-hop 1865 | | | | | | +--ro te-label 1866 | | | | | | +--ro (technology)? 1867 | | | | | | | +--:(generic) 1868 | | | | | | | +--ro 1869 generic? rt-types:generalized-label 1870 | | | | | | +--ro direction? 1871 te-label-direction 1872 | | | | | +--ro shared-resources-tunnels 1873 | | | | | +--ro lsp-shared-resources-tunnel* 1874 te:tunnel-ref 1875 | | | | +--rw p2p-reverse-secondary-path 1876 | | | | +--rw secondary-path? -> 1877 ../../../../../p2p-secondary-paths/p2p-secondary-path/name 1878 | | | | +--rw path-setup-protocol? identityref 1879 | | | +--rw candidate-p2p-secondary-paths 1880 | | | | +--rw candidate-p2p-secondary-path* [secondary-path] 1881 | | | | +--rw secondary-path -> 1882 ../../../../../p2p-secondary-paths/p2p-secondary-path/name 1883 | | | | +--rw path-setup-protocol? identityref 1884 | | | | +--ro state 1885 | | | | +--ro active? boolean 1886 | | | +--rw te-mpls:static-lsp-name? 1887 mpls-static:static-lsp-ref 1888 | | +--rw p2p-secondary-paths 1889 | | | +--rw p2p-secondary-path* [name] 1890 | | | +--rw name string 1891 | | | +--rw path-setup-protocol? identityref 1892 | | | +--rw path-computation-method? identityref 1893 | | | +--rw path-computation-server? inet:ip-address 1894 | | | +--rw compute-only? empty 1895 | | | +--rw use-path-computation? boolean 1896 | | | +--rw lockdown? empty 1897 | | | +--rw path-scope? identityref 1898 | | | +--rw optimizations 1899 | | | | +--rw (algorithm)? 1900 | | | | +--:(metric) {path-optimization-metric}? 1901 | | | | | +--rw optimization-metric* [metric-type] 1902 | | | | | | +--rw metric-type 1903 identityref 1904 | | | | | | +--rw weight? 1905 uint8 1906 | | | | | | +--rw explicit-route-exclude-objects 1907 | | | | | | | +--rw route-object-exclude-object* 1908 [index] 1909 | | | | | | | +--rw index uint32 1910 | | | | | | | +--rw (type)? 1911 | | | | | | | +--:(num-unnum-hop) 1912 | | | | | | | | +--rw num-unnum-hop 1913 | | | | | | | | +--rw node-id? 1914 te-types:te-node-id 1915 | | | | | | | | +--rw link-tp-id? 1916 te-types:te-tp-id 1917 | | | | | | | | +--rw hop-type? 1918 te-hop-type 1919 | | | | | | | | +--rw direction? 1920 te-link-direction 1921 | | | | | | | +--:(as-number) 1922 | | | | | | | | +--rw as-number-hop 1923 | | | | | | | | +--rw as-number? binary 1924 | | | | | | | | +--rw hop-type? 1925 te-hop-type 1926 | | | | | | | +--:(label) 1927 | | | | | | | | +--rw label-hop 1928 | | | | | | | | +--rw te-label 1929 | | | | | | | | +--rw (technology)? 1930 | | | | | | | | | +--:(generic) 1931 | | | | | | | | | +--rw generic? 1932 rt-types:generalized-label 1933 | | | | | | | | +--rw direction? 1934 te-label-direction 1935 | | | | | | | +--:(srlg) 1936 | | | | | | | +--rw srlg 1937 | | | | | | | +--rw srlg? uint32 1938 | | | | | | +--rw explicit-route-include-objects 1939 | | | | | | +--rw route-object-include-object* 1940 [index] 1941 | | | | | | +--rw index uint32 1942 | | | | | | +--rw (type)? 1943 | | | | | | +--:(num-unnum-hop) 1944 | | | | | | | +--rw num-unnum-hop 1945 | | | | | | | +--rw node-id? 1946 te-types:te-node-id 1947 | | | | | | | +--rw link-tp-id? 1948 te-types:te-tp-id 1949 | | | | | | | +--rw hop-type? 1950 te-hop-type 1951 | | | | | | | +--rw direction? 1952 te-link-direction 1953 | | | | | | +--:(as-number) 1954 | | | | | | | +--rw as-number-hop 1955 | | | | | | | +--rw as-number? binary 1956 | | | | | | | +--rw hop-type? 1957 te-hop-type 1958 | | | | | | +--:(label) 1959 | | | | | | +--rw label-hop 1960 | | | | | | +--rw te-label 1961 | | | | | | +--rw (technology)? 1962 | | | | | | | +--:(generic) 1963 | | | | | | | +--rw generic? 1964 rt-types:generalized-label 1965 | | | | | | +--rw direction? 1966 te-label-direction 1967 | | | | | +--rw tiebreakers 1968 | | | | | +--rw tiebreaker* [tiebreaker-type] 1969 | | | | | +--rw tiebreaker-type identityref 1970 | | | | +--:(objective-function) 1971 {path-optimization-objective-function}? 1972 | | | | +--rw objective-function 1973 | | | | +--rw objective-function-type? 1974 identityref 1975 | | | +--rw preference? uint8 1976 | | | +--rw named-path-constraint? -> 1977 ../../../../../globals/named-path-constraints/ 1978 named-path-constraint/name 1979 {te-types:named-path-constraints}? 1980 | | | +--rw te-bandwidth 1981 | | | | +--rw (technology)? 1982 | | | | +--:(generic) 1983 | | | | +--rw generic? te-bandwidth 1984 | | | +--rw setup-priority? uint8 1985 | | | +--rw hold-priority? uint8 1986 | | | +--rw signaling-type? identityref 1987 | | | +--rw path-metric-bounds 1988 | | | | +--rw path-metric-bound* [metric-type] 1989 | | | | +--rw metric-type identityref 1990 | | | | +--rw upper-bound? uint64 1991 | | | +--rw path-affinities 1992 | | | | +--rw constraints* [usage] 1993 | | | | +--rw usage identityref 1994 | | | | +--rw (style)? 1995 | | | | +--:(value) 1996 | | | | | +--rw value? 1997 te-types:admin-groups 1998 | | | | +--:(named) 1999 | | | | +--rw affinity-names* [name] 2000 | | | | +--rw name string 2001 | | | +--rw path-srlgs 2002 | | | | +--rw (style)? 2003 | | | | +--:(values) 2004 | | | | | +--rw usage? identityref 2005 | | | | | +--rw values* te-types:srlg 2006 | | | | +--:(named) 2007 | | | | +--rw constraints 2008 | | | | +--rw constraint* [usage] 2009 | | | | +--rw usage identityref 2010 | | | | +--rw constraint 2011 | | | | +--rw srlg-names* [name] 2012 | | | | +--rw name string 2013 | | | +--rw explicit-route-objects 2014 | | | | +--rw route-object-exclude-always* [index] 2015 | | | | | +--rw index uint32 2016 | | | | | +--rw (type)? 2017 | | | | | +--:(num-unnum-hop) 2018 | | | | | | +--rw num-unnum-hop 2019 | | | | | | +--rw node-id? te-types:te-node-id 2020 | | | | | | +--rw link-tp-id? te-types:te-tp-id 2021 | | | | | | +--rw hop-type? te-hop-type 2022 | | | | | | +--rw direction? te-link-direction 2023 | | | | | +--:(as-number) 2024 | | | | | | +--rw as-number-hop 2025 | | | | | | +--rw as-number? binary 2026 | | | | | | +--rw hop-type? te-hop-type 2027 | | | | | +--:(label) 2028 | | | | | +--rw label-hop 2029 | | | | | +--rw te-label 2030 | | | | | +--rw (technology)? 2031 | | | | | | +--:(generic) 2032 | | | | | | +--rw generic? 2033 rt-types:generalized-label 2034 | | | | | +--rw direction? 2035 te-label-direction 2036 | | | | +--rw route-object-include-exclude* [index] 2037 | | | | +--rw explicit-route-usage? identityref 2038 | | | | +--rw index uint32 2039 | | | | +--rw (type)? 2040 | | | | +--:(num-unnum-hop) 2041 | | | | | +--rw num-unnum-hop 2042 | | | | | +--rw node-id? te-types:te-node-id 2043 | | | | | +--rw link-tp-id? te-types:te-tp-id 2044 | | | | | +--rw hop-type? te-hop-type 2045 | | | | | +--rw direction? te-link-direction 2046 | | | | +--:(as-number) 2047 | | | | | +--rw as-number-hop 2048 | | | | | +--rw as-number? binary 2049 | | | | | +--rw hop-type? te-hop-type 2050 | | | | +--:(label) 2051 | | | | | +--rw label-hop 2052 | | | | | +--rw te-label 2053 | | | | | +--rw (technology)? 2054 | | | | | | +--:(generic) 2055 | | | | | | +--rw generic? 2056 rt-types:generalized-label 2057 | | | | | +--rw direction? 2058 te-label-direction 2059 | | | | +--:(srlg) 2060 | | | | +--rw srlg 2061 | | | | +--rw srlg? uint32 2062 | | | +--rw shared-resources-tunnels 2063 | | | | +--rw lsp-shared-resources-tunnel* te:tunnel-ref 2064 | | | +--rw path-in-segment! 2065 | | | | +--rw forward 2066 | | | | | +--rw label-restrictions 2067 | | | | | +--rw label-restriction* [index] 2068 | | | | | +--rw restriction? enumeration 2069 | | | | | +--rw index uint32 2070 | | | | | +--rw label-start 2071 | | | | | | +--rw te-label 2072 | | | | | | +--rw (technology)? 2073 | | | | | | | +--:(generic) 2074 | | | | | | | +--rw generic? 2075 rt-types:generalized-label 2076 | | | | | | +--rw direction? 2077 te-label-direction 2078 | | | | | +--rw label-end 2079 | | | | | | +--rw te-label 2080 | | | | | | +--rw (technology)? 2081 | | | | | | | +--:(generic) 2082 | | | | | | | +--rw generic? 2083 rt-types:generalized-label 2084 | | | | | | +--rw direction? 2085 te-label-direction 2086 | | | | | +--rw range-bitmap? binary 2087 | | | | +--rw reverse 2088 | | | | +--rw label-restrictions 2089 | | | | +--rw label-restriction* [index] 2090 | | | | +--rw restriction? enumeration 2091 | | | | +--rw index uint32 2092 | | | | +--rw label-start 2093 | | | | | +--rw te-label 2094 | | | | | +--rw (technology)? 2095 | | | | | | +--:(generic) 2096 | | | | | | +--rw generic? 2097 rt-types:generalized-label 2098 | | | | | +--rw direction? 2099 te-label-direction 2100 | | | | +--rw label-end 2101 | | | | | +--rw te-label 2102 | | | | | +--rw (technology)? 2103 | | | | | | +--:(generic) 2104 | | | | | | +--rw generic? 2105 rt-types:generalized-label 2106 | | | | | +--rw direction? 2107 te-label-direction 2108 | | | | +--rw range-bitmap? binary 2109 | | | +--rw path-out-segment! 2110 | | | | +--rw forward 2111 | | | | | +--rw label-restrictions 2112 | | | | | +--rw label-restriction* [index] 2113 | | | | | +--rw restriction? enumeration 2114 | | | | | +--rw index uint32 2115 | | | | | +--rw label-start 2116 | | | | | | +--rw te-label 2117 | | | | | | +--rw (technology)? 2118 | | | | | | | +--:(generic) 2119 | | | | | | | +--rw generic? 2120 rt-types:generalized-label 2121 | | | | | | +--rw direction? 2122 te-label-direction 2123 | | | | | +--rw label-end 2124 | | | | | | +--rw te-label 2125 | | | | | | +--rw (technology)? 2126 | | | | | | | +--:(generic) 2127 | | | | | | | +--rw generic? 2128 rt-types:generalized-label 2129 | | | | | | +--rw direction? 2130 te-label-direction 2131 | | | | | +--rw range-bitmap? binary 2132 | | | | +--rw reverse 2133 | | | | +--rw label-restrictions 2134 | | | | +--rw label-restriction* [index] 2135 | | | | +--rw restriction? enumeration 2136 | | | | +--rw index uint32 2137 | | | | +--rw label-start 2138 | | | | | +--rw te-label 2139 | | | | | +--rw (technology)? 2140 | | | | | | +--:(generic) 2141 | | | | | | +--rw generic? 2142 rt-types:generalized-label 2143 | | | | | +--rw direction? 2144 te-label-direction 2145 | | | | +--rw label-end 2146 | | | | | +--rw te-label 2147 | | | | | +--rw (technology)? 2148 | | | | | | +--:(generic) 2149 | | | | | | +--rw generic? 2150 rt-types:generalized-label 2151 | | | | | +--rw direction? 2152 te-label-direction 2153 | | | | +--rw range-bitmap? binary 2154 | | | +--rw disjointness? 2155 te-types:te-path-disjointness 2156 | | | +--rw protection 2157 | | | | +--rw enable? boolean 2158 | | | | +--rw protection-type? identityref 2159 | | | | +--rw protection-reversion-disable? boolean 2160 | | | | +--rw hold-off-time? uint32 2161 | | | | +--rw wait-to-revert? uint16 2162 | | | | +--rw aps-signal-id? uint8 2163 | | | +--rw restoration 2164 | | | | +--rw enable? boolean 2165 | | | | +--rw restoration-type? identityref 2166 | | | | +--rw restoration-scheme? identityref 2167 | | | | +--rw restoration-reversion-disable? boolean 2168 | | | | +--rw hold-off-time? uint32 2169 | | | | +--rw wait-to-restore? uint16 2170 | | | | +--rw wait-to-revert? uint16 2171 | | | +--ro state 2172 | | | | +--ro path-properties 2173 | | | | | +--ro path-metric* [metric-type] 2174 | | | | | | +--ro metric-type -> ../state/metric-type 2175 | | | | | | +--ro state 2176 | | | | | | +--ro metric-type? identityref 2177 | | | | | | +--ro accumulative-value? uint64 2178 | | | | | +--ro path-affinities 2179 | | | | | | +--ro constraints* [usage] 2180 | | | | | | +--ro usage identityref 2181 | | | | | | +--ro (style)? 2182 | | | | | | +--:(value) 2183 | | | | | | | +--ro value? 2184 te-types:admin-groups 2185 | | | | | | +--:(named) 2186 | | | | | | +--ro affinity-names* [name] 2187 | | | | | | +--ro name string 2188 | | | | | +--ro path-srlgs 2189 | | | | | | +--ro (style)? 2190 | | | | | | +--:(values) 2191 | | | | | | | +--ro usage? identityref 2192 | | | | | | | +--ro values* te-types:srlg 2193 | | | | | | +--:(named) 2194 | | | | | | +--ro constraints 2195 | | | | | | +--ro constraint* [usage] 2196 | | | | | | +--ro usage identityref 2197 | | | | | | +--ro constraint 2198 | | | | | | +--ro srlg-names* [name] 2199 | | | | | | +--ro name string 2200 | | | | | +--ro path-route-objects 2201 | | | | | | +--ro path-computed-route-object* [index] 2202 | | | | | | +--ro index -> ../state/index 2203 | | | | | | +--ro state 2204 | | | | | | +--ro index? uint32 2205 | | | | | | +--ro (type)? 2206 | | | | | | +--:(num-unnum-hop) 2207 | | | | | | | +--ro num-unnum-hop 2208 | | | | | | | +--ro node-id? 2209 te-types:te-node-id 2210 | | | | | | | +--ro link-tp-id? 2211 te-types:te-tp-id 2212 | | | | | | | +--ro hop-type? te-hop-type 2213 | | | | | | | +--ro direction? 2214 te-link-direction 2215 | | | | | | +--:(as-number) 2216 | | | | | | | +--ro as-number-hop 2217 | | | | | | | +--ro as-number? binary 2218 | | | | | | | +--ro hop-type? te-hop-type 2219 | | | | | | +--:(label) 2220 | | | | | | +--ro label-hop 2221 | | | | | | +--ro te-label 2222 | | | | | | +--ro (technology)? 2223 | | | | | | | +--:(generic) 2224 | | | | | | | +--ro generic? 2225 rt-types:generalized-label 2226 | | | | | | +--ro direction? 2227 te-label-direction 2228 | | | | | +--ro shared-resources-tunnels 2229 | | | | | +--ro lsp-shared-resources-tunnel* 2230 te:tunnel-ref 2231 | | | | +--ro lsps 2232 | | | | | +--ro lsp* [source destination tunnel-id lsp-id 2233 extended-tunnel-id] 2234 | | | | | +--ro source 2235 inet:ip-address 2236 | | | | | +--ro destination 2237 inet:ip-address 2238 | | | | | +--ro tunnel-id 2239 uint16 2240 | | | | | +--ro lsp-id 2241 uint16 2242 | | | | | +--ro extended-tunnel-id 2243 inet:ip-address 2244 | | | | | +--ro operational-state? 2245 identityref 2246 | | | | | +--ro path-setup-protocol? 2247 identityref 2248 | | | | | +--ro origin-type? 2249 enumeration 2250 | | | | | +--ro lsp-resource-status? 2251 enumeration 2252 | | | | | +--ro lockout-of-normal? 2253 boolean 2254 | | | | | +--ro freeze? 2255 boolean 2256 | | | | | +--ro lsp-protection-role? 2257 enumeration 2258 | | | | | +--ro lsp-protection-state? 2259 identityref 2260 | | | | | +--ro protection-group-ingress-node-id? 2261 te-types:te-node-id 2262 | | | | | +--ro protection-group-egress-node-id? 2263 te-types:te-node-id 2264 | | | | | +--ro lsp-shared-resources-tunnel? 2265 te:tunnel-ref 2266 | | | | | +--ro lsp-record-route-subobjects 2267 | | | | | | +--ro record-route-subobject* [index] 2268 | | | | | | +--ro index uint32 2269 | | | | | | +--ro (type)? 2270 | | | | | | +--:(numbered) 2271 | | | | | | | +--ro address? 2272 te-types:te-tp-id 2273 | | | | | | | +--ro ip-flags? binary 2274 | | | | | | +--:(unnumbered) 2275 | | | | | | | +--ro node-id? 2276 te-types:te-node-id 2277 | | | | | | | +--ro link-tp-id? 2278 te-types:te-tp-id 2279 | | | | | | +--:(label) 2280 | | | | | | +--ro label-hop 2281 | | | | | | +--ro te-label 2282 | | | | | | | +--ro (technology)? 2283 | | | | | | | | +--:(generic) 2284 | | | | | | | | +--ro generic? 2285 rt-types:generalized-label 2286 | | | | | | | +--ro direction? 2287 te-label-direction 2288 | | | | | | +--ro label-flags? binary 2289 | | | | | +--ro path-properties 2290 | | | | | | +--ro path-metric* [metric-type] 2291 | | | | | | | +--ro metric-type -> 2292 ../state/metric-type 2293 | | | | | | | +--ro state 2294 | | | | | | | +--ro metric-type? 2295 identityref 2296 | | | | | | | +--ro accumulative-value? uint64 2297 | | | | | | +--ro path-affinities 2298 | | | | | | | +--ro constraints* [usage] 2299 | | | | | | | +--ro usage 2300 identityref 2301 | | | | | | | +--ro (style)? 2302 | | | | | | | +--:(value) 2303 | | | | | | | | +--ro value? 2304 te-types:admin-groups 2305 | | | | | | | +--:(named) 2306 | | | | | | | +--ro affinity-names* [name] 2307 | | | | | | | +--ro name string 2308 | | | | | | +--ro path-srlgs 2309 | | | | | | | +--ro (style)? 2310 | | | | | | | +--:(values) 2311 | | | | | | | | +--ro usage? identityref 2312 | | | | | | | | +--ro values* te-types:srlg 2313 | | | | | | | +--:(named) 2314 | | | | | | | +--ro constraints 2315 | | | | | | | +--ro constraint* [usage] 2316 | | | | | | | +--ro usage 2317 identityref 2318 | | | | | | | +--ro constraint 2319 | | | | | | | +--ro srlg-names* [name] 2320 | | | | | | | +--ro name string 2321 | | | | | | +--ro path-route-objects 2322 | | | | | | | +--ro path-computed-route-object* 2323 [index] 2324 | | | | | | | +--ro index -> ../state/index 2325 | | | | | | | +--ro state 2326 | | | | | | | +--ro index? 2327 uint32 2328 | | | | | | | +--ro (type)? 2329 | | | | | | | +--:(num-unnum-hop) 2330 | | | | | | | | +--ro num-unnum-hop 2331 | | | | | | | | +--ro node-id? 2332 te-types:te-node-id 2333 | | | | | | | | +--ro link-tp-id? 2334 te-types:te-tp-id 2335 | | | | | | | | +--ro hop-type? 2336 te-hop-type 2337 | | | | | | | | +--ro direction? 2338 te-link-direction 2339 | | | | | | | +--:(as-number) 2340 | | | | | | | | +--ro as-number-hop 2341 | | | | | | | | +--ro as-number? binary 2342 | | | | | | | | +--ro hop-type? 2343 te-hop-type 2344 | | | | | | | +--:(label) 2345 | | | | | | | +--ro label-hop 2346 | | | | | | | +--ro te-label 2347 | | | | | | | +--ro (technology)? 2348 | | | | | | | | +--:(generic) 2349 | | | | | | | | +--ro generic? 2350 rt-types:generalized-label 2351 | | | | | | | +--ro direction? 2352 te-label-direction 2353 | | | | | | +--ro shared-resources-tunnels 2354 | | | | | | +--ro lsp-shared-resources-tunnel* 2355 te:tunnel-ref 2356 | | | | | +--ro te-dev:lsp-timers 2357 | | | | | | +--ro te-dev:life-time? uint32 2358 | | | | | | +--ro te-dev:time-to-install? uint32 2359 | | | | | | +--ro te-dev:time-to-destroy? uint32 2360 | | | | | +--ro te-dev:downstream-info 2361 | | | | | | +--ro te-dev:nhop? 2362 inet:ip-address 2363 | | | | | | +--ro te-dev:outgoing-interface? 2364 if:interface-ref 2365 | | | | | | +--ro te-dev:neighbor? 2366 inet:ip-address 2367 | | | | | | +--ro te-dev:label? 2368 rt-types:generalized-label 2369 | | | | | +--ro te-dev:upstream-info 2370 | | | | | +--ro te-dev:phop? inet:ip-address 2371 | | | | | +--ro te-dev:neighbor? inet:ip-address 2372 | | | | | +--ro te-dev:label? 2373 rt-types:generalized-label 2374 | | | | +--ro te-mpls:static-lsp-name? 2375 mpls-static:static-lsp-ref 2376 | | | +--rw te-mpls:static-lsp-name? 2377 mpls-static:static-lsp-ref 2378 | | +---x tunnel-action 2379 | | | +---w input 2380 | | | | +---w action-type? identityref 2381 | | | +--ro output 2382 | | | +--ro action-result? identityref 2383 | | +---x protection-external-commands 2384 | | | +---w input 2385 | | | +---w protection-external-command? identityref 2386 | | | +---w protection-group-ingress-node-id? 2387 te-types:te-node-id 2388 | | | +---w protection-group-egress-node-id? 2389 te-types:te-node-id 2390 | | | +---w path-ref? path-ref 2391 | | | +---w traffic-type? enumeration 2392 | | | +---w extra-traffic-tunnel-ref? te:tunnel-ref 2393 | | +--rw te-dev:lsp-install-interval? uint32 2394 | | +--rw te-dev:lsp-cleanup-interval? uint32 2395 | | +--rw te-dev:lsp-invalidation-interval? uint32 2396 | | +--rw te-mpls:tunnel-igp-shortcut 2397 | | | +--rw te-mpls:shortcut-eligible? boolean 2398 | | | +--rw te-mpls:metric-type? identityref 2399 | | | +--rw te-mpls:metric? int32 2400 | | | +--rw te-mpls:routing-afs* inet:ip-version 2401 | | +--rw te-mpls:forwarding 2402 | | | +--rw te-mpls:binding-label? rt-types:mpls-label 2403 | | | +--rw te-mpls:load-share? uint32 2404 | | | +--rw te-mpls:policy-class? uint8 2405 | | +--rw te-mpls:bandwidth-mpls 2406 | | +--rw te-mpls:specification-type? 2407 te-mpls-types:te-bandwidth-type 2408 | | +--rw te-mpls:set-bandwidth? 2409 te-mpls-types:bandwidth-kbps 2410 | | +--rw te-mpls:class-type? te-types:te-ds-class 2411 | | +--ro te-mpls:state 2412 | | | +--ro te-mpls:signaled-bandwidth? 2413 te-mpls-types:bandwidth-kbps 2414 | | +--rw te-mpls:auto-bandwidth 2415 | | +--rw te-mpls:enabled? boolean 2416 | | +--rw te-mpls:min-bw? 2417 te-mpls-types:bandwidth-kbps 2418 | | +--rw te-mpls:max-bw? 2419 te-mpls-types:bandwidth-kbps 2420 | | +--rw te-mpls:adjust-interval? uint32 2421 | | +--rw te-mpls:adjust-threshold? te-types:percentage 2422 | | +--rw te-mpls:overflow 2423 | | | +--rw te-mpls:enabled? boolean 2424 | | | +--rw te-mpls:overflow-threshold? 2425 te-types:percentage 2426 | | | +--rw te-mpls:trigger-event-count? uint16 2427 | | +--rw te-mpls:underflow 2428 | | +--rw te-mpls:enabled? boolean 2429 | | +--rw te-mpls:underflow-threshold? 2430 te-types:percentage 2431 | | +--rw te-mpls:trigger-event-count? uint16 2432 | +--rw tunnel-p2mp* [name] 2433 | +--rw name string 2434 | +--rw identifier? uint16 2435 | +--rw description? string 2436 | +--ro state 2437 | +--ro operational-state? identityref 2438 +--ro lsps-state 2439 | +--ro lsp* [source destination tunnel-id lsp-id 2440 extended-tunnel-id] 2441 | +--ro source inet:ip-address 2442 | +--ro destination inet:ip-address 2443 | +--ro tunnel-id uint16 2444 | +--ro lsp-id uint16 2445 | +--ro extended-tunnel-id inet:ip-address 2446 | +--ro operational-state? identityref 2447 | +--ro path-setup-protocol? identityref 2448 | +--ro origin-type? enumeration 2449 | +--ro lsp-resource-status? enumeration 2450 | +--ro lockout-of-normal? boolean 2451 | +--ro freeze? boolean 2452 | +--ro lsp-protection-role? enumeration 2453 | +--ro lsp-protection-state? identityref 2454 | +--ro protection-group-ingress-node-id? te-types:te-node-id 2455 | +--ro protection-group-egress-node-id? te-types:te-node-id 2456 | +--ro lsp-record-route-subobjects 2457 | | +--ro record-route-subobject* [index] 2458 | | +--ro index uint32 2459 | | +--ro (type)? 2460 | | +--:(numbered) 2461 | | | +--ro address? te-types:te-tp-id 2462 | | | +--ro ip-flags? binary 2463 | | +--:(unnumbered) 2464 | | | +--ro node-id? te-types:te-node-id 2465 | | | +--ro link-tp-id? te-types:te-tp-id 2466 | | +--:(label) 2467 | | +--ro label-hop 2468 | | +--ro te-label 2469 | | | +--ro (technology)? 2470 | | | | +--:(generic) 2471 | | | | +--ro generic? 2472 rt-types:generalized-label 2473 | | | +--ro direction? te-label-direction 2474 | | +--ro label-flags? binary 2475 | +--ro te-dev:lsp-timers 2476 | | +--ro te-dev:life-time? uint32 2477 | | +--ro te-dev:time-to-install? uint32 2478 | | +--ro te-dev:time-to-destroy? uint32 2479 | +--ro te-dev:downstream-info 2480 | | +--ro te-dev:nhop? inet:ip-address 2481 | | +--ro te-dev:outgoing-interface? if:interface-ref 2482 | | +--ro te-dev:neighbor? inet:ip-address 2483 | | +--ro te-dev:label? 2484 rt-types:generalized-label 2485 | +--ro te-dev:upstream-info 2486 | +--ro te-dev:phop? inet:ip-address 2487 | +--ro te-dev:neighbor? inet:ip-address 2488 | +--ro te-dev:label? rt-types:generalized-label 2489 +--rw te-dev:interfaces 2490 +--rw te-dev:threshold-type? enumeration 2491 +--rw te-dev:delta-percentage? te-types:percentage 2492 +--rw te-dev:threshold-specification? enumeration 2493 +--rw te-dev:up-thresholds* te-types:percentage 2494 +--rw te-dev:down-thresholds* te-types:percentage 2495 +--rw te-dev:up-down-thresholds* te-types:percentage 2496 +--rw te-dev:interface* [interface] 2497 +--rw te-dev:interface 2498 if:interface-ref 2499 +--rw te-dev:te-metric? 2500 te-types:te-metric 2501 +--rw (te-dev:admin-group-type)? 2502 | +--:(te-dev:value-admin-groups) 2503 | | +--rw (te-dev:value-admin-group-type)? 2504 | | +--:(te-dev:admin-groups) 2505 | | | +--rw te-dev:admin-group? 2506 te-types:admin-group 2507 | | +--:(te-dev:extended-admin-groups) 2508 {te-types:extended-admin-groups}? 2509 | | +--rw te-dev:extended-admin-group? 2510 te-types:extended-admin-group 2511 | +--:(te-dev:named-admin-groups) 2512 | +--rw te-dev:named-admin-groups* [named-admin-group] 2513 {te-types:extended-admin-groups,te-types: 2514 named-extended-admin-groups}? 2515 | +--rw te-dev:named-admin-group -> 2516 ../../../../te:globals/named-admin-groups/named-admin-group/ 2517 name 2518 +--rw (te-dev:srlg-type)? 2519 | +--:(te-dev:value-srlgs) 2520 | | +--rw te-dev:values* [value] 2521 | | +--rw te-dev:value uint32 2522 | +--:(te-dev:named-srlgs) 2523 | +--rw te-dev:named-srlgs* [named-srlg] 2524 {te-types:named-srlg-groups}? 2525 | +--rw te-dev:named-srlg -> 2526 ../../../../te:globals/named-srlgs/named-srlg/name 2527 +--rw te-dev:threshold-type? enumeration 2528 +--rw te-dev:delta-percentage? 2529 te-types:percentage 2530 +--rw te-dev:threshold-specification? enumeration 2531 +--rw te-dev:up-thresholds* 2532 te-types:percentage 2533 +--rw te-dev:down-thresholds* 2534 te-types:percentage 2535 +--rw te-dev:up-down-thresholds* 2536 te-types:percentage 2537 +--rw te-dev:switching-capabilities* [switching-capability] 2538 | +--rw te-dev:switching-capability identityref 2539 | +--rw te-dev:encoding? identityref 2540 +--ro te-dev:state 2541 +--ro te-dev:te-advertisements_state 2542 +--ro te-dev:flood-interval? uint32 2543 +--ro te-dev:last-flooded-time? uint32 2544 +--ro te-dev:next-flooded-time? uint32 2545 +--ro te-dev:last-flooded-trigger? enumeration 2546 +--ro te-dev:advertized-level-areas* [level-area] 2547 +--ro te-dev:level-area uint32 2549 rpcs: 2550 +---x globals-rpc 2551 +---x interfaces-rpc 2552 +---x tunnels-rpc 2553 +---w input 2554 | +---w tunnel-info 2555 | +---w (type)? 2556 | +--:(tunnel-p2p) 2557 | | +---w p2p-id? te:tunnel-ref 2558 | +--:(tunnel-p2mp) 2559 | +---w p2mp-id? te:tunnel-p2mp-ref 2560 +--ro output 2561 +--ro result 2562 +--ro result? enumeration 2564 notifications: 2565 +---n globals-notif 2566 +---n tunnels-notif 2567 module: ietf-te-device 2569 rpcs: 2570 +---x interfaces-rpc 2572 notifications: 2573 +---n interfaces-notif 2575 Figure 6: TE generic model configuration and state tree 2577 4. TE Generic and Helper YANG Modules 2579 file "ietf-te-types@2018-06-12.yang" 2580 module ietf-te-types { 2582 namespace "urn:ietf:params:xml:ns:yang:ietf-te-types"; 2584 /* Replace with IANA when assigned */ 2585 prefix "te-types"; 2586 import ietf-inet-types { 2587 prefix inet; 2588 } 2590 import ietf-yang-types { 2591 prefix "yang"; 2592 } 2594 import ietf-routing-types { 2595 prefix "rt-types"; 2596 } 2598 organization 2599 "IETF Traffic Engineering Architecture and Signaling (TEAS) 2600 Working Group"; 2602 contact 2603 "WG Web: 2604 WG List: 2606 WG Chair: Lou Berger 2607 2609 WG Chair: Vishnu Pavan Beeram 2610 2612 Editor: Tarek Saad 2613 2615 Editor: Rakesh Gandhi 2616 2618 Editor: Vishnu Pavan Beeram 2619 2621 Editor: Himanshu Shah 2622 2624 Editor: Xufeng Liu 2625 2627 Editor: Igor Bryskin 2628 "; 2630 description 2631 "This module contains a collection of generally 2632 useful TE specific YANG data type defintions."; 2634 revision "2018-06-12" { 2635 description "Latest revision of TE types"; 2636 reference "RFC3209"; 2637 } 2639 /* 2640 * Identities 2641 */ 2642 identity association-type { 2643 description "Base identity for tunnel association"; 2644 reference "RFC6780, RFC4872, RFC4873"; 2645 } 2646 identity association-type-recovery { 2647 base association-type; 2648 description 2649 "Association Type Recovery used to association LSPs of 2650 same tunnel for recovery"; 2651 reference "RFC4872"; 2652 } 2653 identity association-type-resource-sharing { 2654 base association-type; 2655 description 2656 "Association Type Resource Sharing used to enable resource 2657 sharing during make-before-break."; 2658 reference "RFC4873"; 2659 } 2660 identity association-type-double-sided-bidir { 2661 base association-type; 2662 description 2663 "Association Type Double Sided bidirectional used to associate 2664 two LSPs of two tunnels that are independently configured on 2665 either endpoint"; 2666 reference "RFC7551"; 2667 } 2668 identity association-type-single-sided-bidir { 2669 base association-type; 2670 description 2671 "Association Type Single Sided bidirectional used to associate 2672 two LSPs of two tunnels, where a tunnel is configured on one 2673 side/endpoint, and the other tunnel is dynamically created on 2674 the other endpoint"; 2675 reference "RFC7551"; 2676 } 2678 identity objective-function-type { 2679 description "Base objective function type"; 2680 reference "RFC4657"; 2681 } 2682 identity of-minimize-cost-path { 2683 base objective-function-type; 2684 description 2685 "Mimimuze cost of path objective function"; 2686 } 2687 identity of-minimize-load-path { 2688 base objective-function-type; 2689 description 2690 "Minimize the load on path(s) objective 2691 function"; 2692 } 2693 identity of-maximize-residual-bandwidth { 2694 base objective-function-type; 2695 description 2696 "Maximize the residual bandwidth objective 2697 function"; 2698 } 2699 identity of-minimize-agg-bandwidth-consumption { 2700 base objective-function-type; 2701 description 2702 "minimize the aggregate bandwidth consumption 2703 objective function"; 2704 } 2705 identity of-minimize-load-most-loaded-link { 2706 base objective-function-type; 2707 description 2708 "Minimize the load on the most loaded link 2709 objective function"; 2710 } 2711 identity of-minimize-cost-path-set { 2712 base objective-function-type; 2713 description 2714 "Minimize the cost on a path set objective 2715 function"; 2716 } 2718 identity path-computation-method { 2719 description 2720 "base identity for supported path computation 2721 mechanisms"; 2722 } 2724 identity path-locally-computed { 2725 base path-computation-method; 2726 description 2727 "indicates a constrained-path LSP in which the 2728 path is computed by the local LER"; 2729 } 2730 identity path-externally-queried { 2731 base path-computation-method; 2732 description 2733 "Constrained-path LSP in which the path is 2734 obtained by querying an external source, such as a PCE server. 2735 In the case that an LSP is defined to be externally queried, it 2736 may also have associated explicit definitions (provided 2737 to the external source to aid computation); and the path that is 2738 returned by the external source is not required to provide a 2739 wholly resolved path back to the originating system - that is to 2740 say, some local computation may also be required"; 2741 } 2743 identity path-explicitly-defined { 2744 base path-computation-method; 2745 description 2746 "constrained-path LSP in which the path is 2747 explicitly specified as a collection of strict or/and loose 2748 hops"; 2749 } 2751 /** 2752 * Typedefs 2753 */ 2755 typedef te-bandwidth { 2756 type string { 2757 pattern 2758 '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 2759 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 2760 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' 2761 + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 2762 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 2763 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; 2764 } 2765 description 2766 "This is the generic bandwidth type that is a string containing 2767 a list of numbers separated by commas, with each of these 2768 number can be non-negative decimal, hex integer, or hex float: 2769 (dec | hex | float)[*(','(dec | hex | float))] 2770 For packet switching type, a float number is used, such as 2771 0x1p10. 2772 For OTN switching type, a list of integers can be used, such 2773 as '0,2,3,1', indicating 2 odu0's and 1 odu3. 2774 For DWDM, a list of pairs of slot number and width can be 2775 used, such as '0, 2, 3, 3', indicating a frequency slot 0 with 2776 slot width 2 and a frequency slot 3 with slot width 3."; 2777 } // te-bandwidth 2778 typedef te-ds-class { 2779 type uint8 { 2780 range "0..7"; 2781 } 2782 description 2783 "The Differentiatied Class-Type of traffic."; 2784 reference "RFC4124: section-4.3.1"; 2785 } 2787 typedef te-link-direction { 2788 type enumeration { 2789 enum INCOMING { 2790 description 2791 "explicit route represents an incoming link on a node"; 2792 } 2793 enum OUTGOING { 2794 description 2795 "explicit route represents an outgoing link on a node"; 2796 } 2797 } 2798 description 2799 "enumerated type for specifying direction of link on a node"; 2800 } 2802 typedef te-label-direction { 2803 type enumeration { 2804 enum FORWARD { 2805 description 2806 "Label allocated for the forward LSP direction"; 2807 } 2808 enum REVERSE { 2809 description 2810 "Label allocated for the reverse LSP direction"; 2811 } 2812 } 2813 description 2814 "enumerated type for specifying the forward or reverse 2815 label"; 2816 } 2818 typedef te-hop-type { 2819 type enumeration { 2820 enum LOOSE { 2821 description 2822 "loose hop in an explicit path"; 2823 } 2824 enum STRICT { 2825 description 2826 "strict hop in an explicit path"; 2827 } 2828 } 2829 description 2830 "enumerated type for specifying loose or strict 2831 paths"; 2832 reference "RFC3209: section-4.3.2"; 2833 } 2835 identity LSP_METRIC_TYPE { 2836 description 2837 "Base identity for types of LSP metric specification"; 2838 } 2840 identity LSP_METRIC_RELATIVE { 2841 base LSP_METRIC_TYPE; 2842 description 2843 "The metric specified for the LSPs to which this identity refers 2844 is specified as a relative value to the IGP metric cost to the 2845 LSP's tail-end."; 2846 } 2848 identity LSP_METRIC_ABSOLUTE { 2849 base LSP_METRIC_TYPE; 2850 description 2851 "The metric specified for the LSPs to which this identity refers 2852 is specified as an absolute value"; 2853 } 2855 identity LSP_METRIC_INHERITED { 2856 base LSP_METRIC_TYPE; 2857 description 2858 "The metric for for the LSPs to which this identity refers is 2859 not specified explicitly - but rather inherited from the IGP 2860 cost directly"; 2861 } 2863 identity tunnel-type { 2864 description 2865 "Base identity from which specific tunnel types are 2866 derived."; 2867 } 2869 identity tunnel-p2p { 2870 base tunnel-type; 2871 description 2872 "TE point-to-point tunnel type."; 2873 } 2874 identity tunnel-p2mp { 2875 base tunnel-type; 2876 description 2877 "TE point-to-multipoint tunnel type."; 2878 reference "RFC4875"; 2879 } 2881 identity tunnel-action-type { 2882 description 2883 "Base identity from which specific tunnel action types 2884 are derived."; 2885 } 2887 identity tunnel-action-resetup { 2888 base tunnel-action-type; 2889 description 2890 "TE tunnel action resetup. Tears the 2891 tunnel's current LSP (if any) and 2892 attempts to re-establish a new LSP"; 2893 } 2895 identity tunnel-action-reoptimize { 2896 base tunnel-action-type; 2897 description 2898 "TE tunnel action reoptimize. 2899 Reoptimizes placement of the tunnel LSP(s)"; 2900 } 2902 identity tunnel-action-switchpath { 2903 base tunnel-action-type; 2904 description 2905 "TE tunnel action reoptimize 2906 Switches the tunnel's LSP to use the specified path"; 2907 } 2909 identity te-action-result { 2910 description 2911 "Base identity from which specific TE action results 2912 are derived."; 2913 } 2915 identity te-action-success { 2916 base te-action-result; 2917 description "TE action successul."; 2918 } 2920 identity te-action-fail { 2921 base te-action-result; 2922 description "TE action failed."; 2923 } 2925 identity tunnel-action-inprogress { 2926 base te-action-result; 2927 description "TE action inprogress."; 2928 } 2930 identity tunnel-admin-state-type { 2931 description 2932 "Base identity for TE tunnel admin states"; 2933 } 2935 identity tunnel-admin-state-up { 2936 base tunnel-admin-state-type; 2937 description "Tunnel administratively state up"; 2938 } 2940 identity tunnel-admin-state-down { 2941 base tunnel-admin-state-type; 2942 description "Tunnel administratively state down"; 2943 } 2945 identity tunnel-state-type { 2946 description 2947 "Base identity for TE tunnel states"; 2948 } 2950 identity tunnel-state-up { 2951 base tunnel-state-type; 2952 description "Tunnel state up"; 2953 } 2955 identity tunnel-state-down { 2956 base tunnel-state-type; 2957 description "Tunnel state down"; 2958 } 2960 identity lsp-state-type { 2961 description 2962 "Base identity for TE LSP states"; 2963 } 2965 identity lsp-path-computing { 2966 base lsp-state-type; 2967 description 2968 "State path compute in progress"; 2969 } 2970 identity lsp-path-computation-ok { 2971 base lsp-state-type; 2972 description 2973 "State path compute successful"; 2974 } 2976 identity lsp-path-computatione-failed { 2977 base lsp-state-type; 2978 description 2979 "State path compute failed"; 2980 } 2982 identity lsp-state-setting-up { 2983 base lsp-state-type; 2984 description 2985 "State setting up"; 2986 } 2988 identity lsp-state-setup-ok { 2989 base lsp-state-type; 2990 description 2991 "State setup successful"; 2992 } 2994 identity lsp-state-setup-failed { 2995 base lsp-state-type; 2996 description 2997 "State setup failed"; 2998 } 3000 identity lsp-state-up { 3001 base lsp-state-type; 3002 description "State up"; 3003 } 3005 identity lsp-state-tearing-down { 3006 base lsp-state-type; 3007 description 3008 "State tearing down"; 3009 } 3011 identity lsp-state-down { 3012 base lsp-state-type; 3013 description "State down"; 3014 } 3016 identity path-invalidation-action-type { 3017 description 3018 "Base identity for TE path invalidation action types"; 3019 } 3021 identity path-invalidation-action-drop-type { 3022 base path-invalidation-action-type; 3023 description 3024 "TE path invalidation action drop"; 3025 } 3027 identity path-invalidation-action-drop-tear { 3028 base path-invalidation-action-type; 3029 description 3030 "TE path invalidation action tear"; 3031 } 3033 identity lsp-restoration-type { 3034 description 3035 "Base identity from which LSP restoration types are 3036 derived."; 3037 } 3039 identity lsp-restoration-restore-any { 3040 base lsp-restoration-type; 3041 description 3042 "Restores when any of the LSPs is affected by a failure"; 3043 } 3045 identity lsp-restoration-restore-all { 3046 base lsp-restoration-type; 3047 description 3048 "Restores when all the tunnel LSPs are affected by failure"; 3049 } 3051 identity restoration-scheme-type { 3052 description 3053 "Base identity for LSP restoration schemes"; 3054 reference "RFC4872"; 3055 } 3057 identity restoration-scheme-preconfigured { 3058 base restoration-scheme-type; 3059 description 3060 "Restoration LSP is preconfigured prior to the failure"; 3061 } 3063 identity restoration-scheme-precomputed { 3064 base restoration-scheme-type; 3065 description 3066 "Restoration LSP is precomputed prior to the failure"; 3067 } 3069 identity restoration-scheme-presignaled { 3070 base restoration-scheme-type; 3071 description 3072 "Restoration LSP is presignaledd prior to the failure"; 3073 } 3075 identity lsp-protection-type { 3076 description 3077 "Base identity from which LSP protection types are 3078 derived."; 3079 } 3081 identity lsp-protection-unprotected { 3082 base lsp-protection-type; 3083 description 3084 "LSP protection 'Unprotected'"; 3085 reference "RFC4872"; 3086 } 3088 identity lsp-protection-reroute-extra { 3089 base lsp-protection-type; 3090 description 3091 "LSP protection '(Full) Rerouting'"; 3092 reference "RFC4872"; 3093 } 3095 identity lsp-protection-reroute { 3096 base lsp-protection-type; 3097 description 3098 "LSP protection 'Rerouting without Extra-Traffic'"; 3099 reference "RFC4872"; 3100 } 3102 identity lsp-protection-1-for-n { 3103 base lsp-protection-type; 3104 description 3105 "LSP protection '1:N Protection with Extra-Traffic'"; 3106 reference "RFC4872"; 3107 } 3109 identity lsp-protection-unidir-1-to-1 { 3110 base lsp-protection-type; 3111 description 3112 "LSP protection '1+1 Unidirectional Protection'"; 3113 reference "RFC4872"; 3115 } 3117 identity lsp-protection-bidir-1-to-1 { 3118 base lsp-protection-type; 3119 description 3120 "LSP protection '1+1 Bidirectional Protection'"; 3121 reference "RFC4872"; 3122 } 3124 identity lsp-protection-extra-traffic { 3125 base lsp-protection-type; 3126 description 3127 "LSP protection 'Extra-Traffic'"; 3128 reference 3129 "ITU-T G.808, RFC 4427."; 3130 } 3132 identity lsp-protection-state { 3133 description 3134 "Base identity of protection states for reporting 3135 purposes."; 3136 } 3138 identity normal { 3139 base lsp-protection-state; 3140 description "Normal state."; 3141 } 3143 identity signal-fail-of-protection { 3144 base lsp-protection-state; 3145 description 3146 "There is a SF condition on the protection transport 3147 entity which has higher priority than the FS command."; 3148 reference 3149 "ITU-T G.873.1, G.8031, G.8131"; 3150 } 3152 identity lockout-of-protection { 3153 base lsp-protection-state; 3154 description 3155 "A Loss of Protection (LoP) command is active."; 3156 reference 3157 "ITU-T G.808, RFC 4427"; 3158 } 3160 identity forced-switch { 3161 base lsp-protection-state; 3162 description 3163 "A forced switch (FS) command is active."; 3164 reference 3165 "ITU-T G.808, RFC 4427"; 3166 } 3168 identity signal-fail { 3169 base lsp-protection-state; 3170 description 3171 "There is a SF condition on either the working 3172 or the protection path."; 3173 reference 3174 "ITU-T G.808, RFC 4427"; 3175 } 3177 identity signal-degrade { 3178 base lsp-protection-state; 3179 description 3180 "There is an SD condition on either the working or the 3181 protection path."; 3182 reference 3183 "ITU-T G.808, RFC 4427"; 3184 } 3186 identity manual-switch { 3187 base lsp-protection-state; 3188 description 3189 "A manual switch (MS) command is active."; 3190 reference 3191 "ITU-T G.808, RFC 4427"; 3192 } 3194 identity wait-to-restore { 3195 base lsp-protection-state; 3196 description 3197 "A wait time to restore (WTR) is running."; 3198 reference 3199 "ITU-T G.808, RFC 4427"; 3200 } 3202 identity do-not-revert { 3203 base lsp-protection-state; 3204 description 3205 "A DNR condition is active because of a non-revertive 3206 behavior."; 3207 reference 3208 "ITU-T G.808, RFC 4427"; 3209 } 3210 identity failure-of-protocol { 3211 base lsp-protection-state; 3212 description 3213 "The protection is not working because of a failure of 3214 protocol condition."; 3215 reference 3216 "ITU-T G.873.1, G.8031, G.8131"; 3217 } 3219 identity protection-external-commands { 3220 description 3221 "Protection external commands for trouble shooting 3222 purposes."; 3223 } 3225 identity action-freeze { 3226 base protection-external-commands; 3227 description 3228 "A temporary configuration action initiated by an operator 3229 command to prevent any switch action to be taken and as such 3230 freezes the current state."; 3231 reference 3232 "ITU-T G.808, RFC 4427"; 3233 } 3235 identity clear-freeze { 3236 base protection-external-commands; 3237 description 3238 "An action that clears the active freeze state."; 3239 reference 3240 "ITU-T G.808, RFC 4427"; 3241 } 3243 identity action-lockout-of-normal { 3244 base protection-external-commands; 3245 description 3246 "A temporary configuration action initiated by an operator 3247 command to ensure that the normal traffic is not allowed 3248 to use the protection transport entity."; 3249 reference 3250 "ITU-T G.808, RFC 4427"; 3251 } 3253 identity clear-lockout-of-normal { 3254 base protection-external-commands; 3255 description 3256 "An action that clears the active lockout of normal state."; 3257 reference 3258 "ITU-T G.808, RFC 4427"; 3259 } 3261 identity action-lockout-of-protection { 3262 base protection-external-commands; 3263 description 3264 "A temporary configuration action initiated by an operator 3265 command to ensure that the protection transport entity is 3266 temporarily not availabel to transport a traffic signal 3267 (either normal or extra traffic)."; 3268 reference 3269 "ITU-T G.808, RFC 4427"; 3270 } 3272 identity action-forced-switch { 3273 base protection-external-commands; 3274 description 3275 "A switch action initiated by an operator command to swith 3276 the extra traffic signal, the normal traffic signal, or the 3277 null signal to the protection transport entity, unless an 3278 equal or higher priority switch command is in effect."; 3279 reference 3280 "ITU-T G.808, RFC 4427"; 3281 } 3283 identity action-manual-switch { 3284 base protection-external-commands; 3285 description 3286 "A switch action initiated by an operator command to swith 3287 the extra traffic signal, the normal traffic signal #i, or 3288 the null signal to the protection transport entity, unless 3289 a fault condition exists on other transport entities or an 3290 equal or higher priority switch command is in effect."; 3291 reference 3292 "ITU-T G.808, RFC 4427"; 3293 } 3295 identity action-exercise { 3296 base protection-external-commands; 3297 description 3298 "An action to start testing if the APS communication is 3299 operating correctly. It is lower priority than any other 3300 state or command."; 3301 reference 3302 "ITU-T G.808, RFC 4427"; 3303 } 3305 identity clear { 3306 base protection-external-commands; 3307 description 3308 "An action that clears the active near-end lockout of 3309 protection, forced switch, manual switch, WTR state, 3310 or exercise command."; 3311 reference 3312 "ITU-T G.808, RFC 4427"; 3313 } 3315 identity switching-capabilities { 3316 description 3317 "Base identity for interface switching capabilities"; 3318 reference "RFC3471"; 3319 } 3321 identity switching-psc1 { 3322 base switching-capabilities; 3323 description 3324 "Packet-Switch Capable-1 (PSC-1)"; 3325 reference "RFC3471"; 3326 } 3328 identity switching-evpl { 3329 base switching-capabilities; 3330 description 3331 "Ethernet Virtual Private Line (EVPL)"; 3332 } 3334 identity switching-l2sc { 3335 base switching-capabilities; 3336 description 3337 "Layer-2 Switch Capable (L2SC)"; 3338 reference "RFC3471"; 3339 } 3341 identity switching-tdm { 3342 base switching-capabilities; 3343 description 3344 "Time-Division-Multiplex Capable (TDM)"; 3345 reference "RFC3471"; 3346 } 3348 identity switching-otn { 3349 base switching-capabilities; 3350 description 3351 "OTN-TDM capable"; 3353 } 3355 identity switching-dcsc { 3356 base switching-capabilities; 3357 description 3358 "Data Channel Switching Capable (DCSC)"; 3359 } 3361 identity switching-lsc { 3362 base switching-capabilities; 3363 description 3364 "Lambda-Switch Capable (LSC)"; 3365 reference "RFC3471"; 3366 } 3368 identity switching-fsc { 3369 base switching-capabilities; 3370 description 3371 "Fiber-Switch Capable (FSC)"; 3372 reference "RFC3471"; 3373 } 3375 identity lsp-encoding-types { 3376 description 3377 "Base identity for encoding types"; 3378 reference "RFC3471"; 3379 } 3381 identity lsp-encoding-packet { 3382 base lsp-encoding-types; 3383 description 3384 "Packet LSP encoding"; 3385 reference "RFC3471"; 3386 } 3388 identity lsp-encoding-ethernet { 3389 base lsp-encoding-types; 3390 description 3391 "Ethernet LSP encoding"; 3392 reference "RFC3471"; 3393 } 3395 identity lsp-encoding-pdh { 3396 base lsp-encoding-types; 3397 description 3398 "ANSI/ETSI LSP encoding"; 3399 reference "RFC3471"; 3400 } 3401 identity lsp-encoding-sdh { 3402 base lsp-encoding-types; 3403 description 3404 "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding"; 3405 reference "RFC3471"; 3406 } 3408 identity lsp-encoding-digital-wrapper { 3409 base lsp-encoding-types; 3410 description 3411 "Digital Wrapper LSP encoding"; 3412 reference "RFC3471"; 3413 } 3415 identity lsp-encoding-lambda { 3416 base lsp-encoding-types; 3417 description 3418 "Lambda (photonic) LSP encoding"; 3419 reference "RFC3471"; 3420 } 3422 identity lsp-encoding-fiber { 3423 base lsp-encoding-types; 3424 description 3425 "Fiber LSP encoding"; 3426 reference "RFC3471"; 3427 } 3429 identity lsp-encoding-fiber-channel { 3430 base lsp-encoding-types; 3431 description 3432 "FiberChannel LSP encoding"; 3433 reference "RFC3471"; 3434 } 3436 identity lsp-encoding-oduk { 3437 base lsp-encoding-types; 3438 description 3439 "G.709 ODUk (Digital Path)LSP encoding"; 3440 } 3442 identity lsp-encoding-optical-channel { 3443 base lsp-encoding-types; 3444 description 3445 "Line (e.g., 8B/10B) LSP encoding"; 3446 } 3448 identity lsp-encoding-line { 3449 base lsp-encoding-types; 3450 description 3451 "Line (e.g., 8B/10B) LSP encoding"; 3452 } 3454 identity path-signaling-type { 3455 description 3456 "base identity from which specific LSPs path 3457 setup types are derived"; 3458 } 3460 identity path-setup-static { 3461 base path-signaling-type; 3462 description 3463 "Static LSP provisioning path setup"; 3464 } 3466 identity path-setup-rsvp { 3467 base path-signaling-type; 3468 description 3469 "RSVP-TE signaling path setup"; 3470 reference "RFC3209"; 3471 } 3473 identity path-setup-sr { 3474 base path-signaling-type; 3475 description 3476 "Segment-routing path setup"; 3477 } 3479 identity path-scope-type { 3480 description 3481 "base identity from which specific path 3482 scope types are derived"; 3483 } 3485 identity path-scope-segment { 3486 base path-scope-type; 3487 description 3488 "Path scope segment"; 3489 } 3491 identity path-scope-end-to-end { 3492 base path-scope-type; 3493 description 3494 "Path scope end to end"; 3495 } 3496 /* TE basic features */ 3497 feature p2mp-te { 3498 description 3499 "Indicates support for P2MP-TE"; 3500 reference "RFC4875"; 3501 } 3503 feature frr-te { 3504 description 3505 "Indicates support for TE FastReroute (FRR)"; 3506 reference "RFC4090"; 3507 } 3509 feature extended-admin-groups { 3510 description 3511 "Indicates support for TE link extended admin 3512 groups."; 3513 reference "RFC7308"; 3514 } 3516 feature named-path-affinities { 3517 description 3518 "Indicates support for named path affinities"; 3519 } 3521 feature named-extended-admin-groups { 3522 description 3523 "Indicates support for named extended admin groups"; 3524 } 3526 feature named-srlg-groups { 3527 description 3528 "Indicates support for named SRLG groups"; 3529 } 3531 feature named-path-constraints { 3532 description 3533 "Indicates support for named path constraints"; 3534 } 3536 feature path-optimization-metric { 3537 description 3538 "Indicates support for path optimization metric"; 3539 } 3541 feature path-optimization-objective-function { 3542 description 3543 "Indicates support for path optimization objective function"; 3545 } 3547 identity route-usage-type { 3548 description 3549 "Base identity for route usage"; 3550 } 3552 identity route-include-ero { 3553 base route-usage-type; 3554 description 3555 "Include ERO from route"; 3556 } 3558 identity route-exclude-ero { 3559 base route-usage-type; 3560 description 3561 "Exclude ERO from route"; 3562 } 3564 identity route-exclude-srlg { 3565 base route-usage-type; 3566 description 3567 "Exclude SRLG from route"; 3568 } 3570 identity path-metric-type { 3571 description 3572 "Base identity for path metric type"; 3573 } 3575 identity path-metric-te { 3576 base path-metric-type; 3577 description 3578 "TE path metric"; 3579 reference "RFC3785"; 3580 } 3582 identity path-metric-igp { 3583 base path-metric-type; 3584 description 3585 "IGP path metric"; 3586 reference "RFC3785"; 3587 } 3589 identity path-metric-hop { 3590 base path-metric-type; 3591 description 3592 "Hop path metric"; 3594 } 3596 identity path-metric-delay-average { 3597 base path-metric-type; 3598 description 3599 "Unidirectional average link delay"; 3600 reference "RFC7471"; 3601 } 3603 identity path-metric-residual-bandwidth { 3604 base path-metric-type; 3605 description 3606 "Unidirectional Residual Bandwidth, which is defined to be 3607 Maximum Bandwidth [RFC3630] minus the bandwidth currently 3608 allocated to LSPs."; 3609 reference "RFC7471"; 3610 } 3612 identity path-metric-optimize-includes { 3613 base path-metric-type; 3614 description 3615 "A metric that optimizes the number of included resources 3616 specified in a set"; 3617 } 3619 identity path-metric-optimize-excludes { 3620 base path-metric-type; 3621 description 3622 "A metric that optimizes the number of excluded resources 3623 specified in a set"; 3624 } 3626 identity path-tiebreaker-type { 3627 description 3628 "Base identity for path tie-breaker type"; 3629 } 3631 identity path-tiebreaker-minfill { 3632 base path-tiebreaker-type; 3633 description 3634 "Min-Fill LSP path placement"; 3635 } 3637 identity path-tiebreaker-maxfill { 3638 base path-tiebreaker-type; 3639 description 3640 "Max-Fill LSP path placement"; 3641 } 3642 identity path-tiebreaker-randoom { 3643 base path-tiebreaker-type; 3644 description 3645 "Random LSP path placement"; 3646 } 3648 identity bidir-provisioning-mode { 3649 description 3650 "Base identity for bidirectional provisioning 3651 mode."; 3652 reference "RFC7551"; 3653 } 3655 identity bidir-provisioning-single-sided { 3656 base bidir-provisioning-mode; 3657 description 3658 "Single-sided bidirectional provioning mode"; 3659 reference "RFC7551"; 3660 } 3662 identity bidir-provisioning-double-sided { 3663 base bidir-provisioning-mode; 3664 description 3665 "Double-sided bidirectional provioning mode"; 3666 reference "RFC7551"; 3667 } 3669 identity bidir-association-type { 3670 description 3671 "Base identity for bidirectional association type"; 3672 reference "RFC7551"; 3673 } 3675 identity bidir-assoc-corouted { 3676 base bidir-association-type; 3677 description 3678 "Co-routed bidirectional association type"; 3679 reference "RFC7551"; 3680 } 3682 identity bidir-assoc-non-corouted { 3683 base bidir-association-type; 3684 description 3685 "Non co-routed bidirectional association type"; 3686 reference "RFC7551"; 3687 } 3689 identity resource-affinities-type { 3690 description 3691 "Base identity for resource affinities"; 3692 reference "RFC2702"; 3693 } 3695 identity resource-aff-include-all { 3696 base resource-affinities-type; 3697 description 3698 "The set of attribute filters associated with a 3699 tunnel all of which must be present for a link 3700 to be acceptable"; 3701 reference "RFC2702 and RFC3209"; 3702 } 3704 identity resource-aff-include-any { 3705 base resource-affinities-type; 3706 description 3707 "The set of attribute filters associated with a 3708 tunnel any of which must be present for a link 3709 to be acceptable"; 3710 reference "RFC2702 and RFC3209"; 3711 } 3713 identity resource-aff-exclude-any { 3714 base resource-affinities-type; 3715 description 3716 "The set of attribute filters associated with a 3717 tunnel any of which renders a link unacceptable"; 3718 reference "RFC2702 and RFC3209"; 3719 } 3721 typedef optimization-goal { 3722 type enumeration { 3723 enum minimize { 3724 description "Pick lowest path metric goal"; 3725 } 3726 enum maximize { 3727 description "Pick highest path metric goal"; 3728 } 3729 enum randomize { 3730 description 3731 "Pick a path at random from list of 3732 equally favorable ones"; 3733 } 3734 } 3735 description "TE optimization goal"; 3736 } 3737 identity te-optimization-criterion { 3738 description 3739 "Base identity for TE optimization criterion."; 3740 reference 3741 "RFC3272: Overview and Principles of Internet Traffic 3742 Engineering."; 3743 } 3745 identity not-optimized { 3746 base te-optimization-criterion; 3747 description "Optimization is not applied."; 3748 } 3750 identity cost { 3751 base te-optimization-criterion; 3752 description "Optimized on cost."; 3753 } 3755 identity delay { 3756 base te-optimization-criterion; 3757 description "Optimized on delay."; 3758 } 3760 /* 3761 * Typedefs 3762 */ 3764 typedef percentage { 3765 type uint8 { 3766 range "0..100"; 3767 } 3768 description 3769 "Integer indicating a percentage value"; 3770 } 3772 typedef performance-metric-normality { 3773 type enumeration { 3774 enum "unknown" { 3775 value 0; 3776 description 3777 "Unknown."; 3778 } 3779 enum "normal" { 3780 value 1; 3781 description 3782 "Normal."; 3783 } 3784 enum "abnormal" { 3785 value 2; 3786 description 3787 "Abnormal. The anomalous bit is set."; 3788 } 3789 } 3790 description 3791 "Indicates whether a performance metric is normal, abnormal, or 3792 unknown."; 3793 reference 3794 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 3795 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 3796 RFC7823: Performance-Based Path Selection for Explicitly 3797 Routed Label Switched Paths (LSPs) Using TE Metric 3798 Extensions"; 3799 } 3801 typedef te-admin-status { 3802 type enumeration { 3803 enum up { 3804 description 3805 "Enabled."; 3806 } 3807 enum down { 3808 description 3809 "Disabled."; 3810 } 3811 enum testing { 3812 description 3813 "In some test mode."; 3814 } 3815 enum preparing-maintenance { 3816 description 3817 "Resource is disabled in the control plane to prepare for 3818 graceful shutdown for maintenance purposes."; 3819 reference 3820 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 3821 Traffic Engineering Networks"; 3822 } 3823 enum maintenance { 3824 description 3825 "Resource is disabled in the data plane for maintenance 3826 purposes."; 3827 } 3828 } 3829 description 3830 "Defines a type representing the administrative status of 3831 a TE resource."; 3832 } 3833 typedef te-global-id { 3834 type uint32; 3835 description 3836 "An identifier to uniquely identify an operator, which can be 3837 either a provider or a client. 3838 The definition of this type is taken from RFC6370 and RFC5003. 3839 This attribute type is used solely to provide a globally 3840 unique context for TE topologies."; 3841 } 3843 typedef te-link-access-type { 3844 type enumeration { 3845 enum point-to-point { 3846 description 3847 "The link is point-to-point."; 3848 } 3849 enum multi-access { 3850 description 3851 "The link is multi-access, including broacast and NBMA."; 3852 } 3853 } 3854 description 3855 "Defines a type representing the access type of a TE link."; 3856 reference 3857 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 3858 Version 2."; 3859 } 3861 typedef te-node-id { 3862 type yang:dotted-quad; 3863 description 3864 "An identifier for a node in a topology. 3865 The identifier is represented as 32-bit unsigned integer in 3866 the dotted-quad notation. 3867 This attribute is mapped to Router ID in 3868 RFC3630, RFC5329, RFC5305, and RFC6119."; 3869 } 3871 typedef te-oper-status { 3872 type enumeration { 3873 enum up { 3874 description 3875 "Operational up."; 3876 } 3877 enum down { 3878 description 3879 "Operational down."; 3880 } 3881 enum testing { 3882 description 3883 "In some test mode."; 3884 } 3885 enum unknown { 3886 description 3887 "Status cannot be determined for some reason."; 3888 } 3889 enum preparing-maintenance { 3890 description 3891 "Resource is disabled in the control plane to prepare for 3892 graceful shutdown for maintenance purposes."; 3893 reference 3894 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 3895 Traffic Engineering Networks"; 3896 } 3897 enum maintenance { 3898 description 3899 "Resource is disabled in the data plane for maintenance 3900 purposes."; 3901 } 3902 } 3903 description 3904 "Defines a type representing the operational status of 3905 a TE resource."; 3906 } 3908 typedef te-path-disjointness { 3909 type bits { 3910 bit node { 3911 position 0; 3912 description "Node disjoint."; 3913 } 3914 bit link { 3915 position 1; 3916 description "Link disjoint."; 3917 } 3918 bit srlg { 3919 position 2; 3920 description "SRLG (Shared Risk Link Group) disjoint."; 3921 } 3922 } 3923 description 3924 "Type of the resource disjointness for a TE tunnel path."; 3925 reference 3926 "RFC4872: RSVP-TE Extensions in Support of End-to-End 3927 Generalized Multi-Protocol Label Switching (GMPLS) 3928 Recovery"; 3930 } // te-path-disjointness 3932 typedef te-recovery-status { 3933 type enumeration { 3934 enum normal { 3935 description 3936 "Both the recovery and working spans are fully 3937 allocated and active, data traffic is being 3938 transported over (or selected from) the working 3939 span, and no trigger events are reported."; 3940 } 3941 enum recovery-started { 3942 description 3943 "The recovery action has been started, but not completed."; 3944 } 3945 enum recovery-succeeded { 3946 description 3947 "The recovery action has succeeded. The working span has 3948 reported a failure/degrade condition and the user traffic 3949 is being transported (or selected) on the recovery span."; 3950 } 3951 enum recovery-failed { 3952 description 3953 "The recovery action has failed."; 3954 } 3955 enum reversion-started { 3956 description 3957 "The reversion has started."; 3958 } 3959 enum reversion-failed { 3960 description 3961 "The reversion has failed."; 3962 } 3963 enum recovery-unavailable { 3964 description 3965 "The recovery is unavailable -- either as a result of an 3966 operator Lockout command or a failure condition detected 3967 on the recovery span."; 3968 } 3969 enum recovery-admin { 3970 description 3971 "The operator has issued a command switching the user 3972 traffic to the recovery span."; 3973 } 3974 enum wait-to-restore { 3975 description 3976 "The recovery domain is recovering from a failuer/degrade 3977 condition on the working span that is being controlled by 3978 the Wait-to-Restore (WTR) timer."; 3979 } 3980 } 3981 description 3982 "Defines the status of a recovery action."; 3983 reference 3984 "RFC4427: Recovery (Protection and Restoration) Terminology 3985 for Generalized Multi-Protocol Label Switching (GMPLS). 3986 RFC6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; 3987 } 3989 typedef te-template-name { 3990 type string { 3991 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 3992 } 3993 description 3994 "A type for the name of a TE node template or TE link 3995 template."; 3996 } 3998 typedef te-topology-event-type { 3999 type enumeration { 4000 enum "add" { 4001 value 0; 4002 description 4003 "A TE node or te-link has been added."; 4004 } 4005 enum "remove" { 4006 value 1; 4007 description 4008 "A TE node or te-link has been removed."; 4009 } 4010 enum "update" { 4011 value 2; 4012 description 4013 "A TE node or te-link has been updated."; 4014 } 4015 } 4016 description "TE Event type for notifications"; 4017 } // te-topology-event-type 4019 typedef te-topology-id { 4020 type string { 4021 pattern 4022 '([a-zA-Z0-9\-_.]+:)*' 4023 + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 4024 } 4025 description 4026 "An identifier for a topology. 4027 It is optional to have one or more prefixes at the begining, 4028 separated by colons. The prefixes can be the network-types, 4029 defined in ietf-network.yang, to help user to understand the 4030 topology better before further inquiry."; 4031 } 4033 typedef te-tp-id { 4034 type union { 4035 type uint32; // Unnumbered 4036 type inet:ip-address; // IPv4 or IPv6 address 4037 } 4038 description 4039 "An identifier for a TE link endpoint on a node. 4040 This attribute is mapped to local or remote link identifier in 4041 RFC3630 and RFC5305."; 4042 } 4044 typedef admin-group { 4045 type binary { 4046 length 4; 4047 } 4048 description 4049 "Administrative group/Resource class/Color."; 4050 reference "RFC3630 and RFC5305"; 4051 } 4053 typedef extended-admin-group { 4054 type binary; 4055 description 4056 "Extended administrative group/Resource class/Color."; 4057 reference "RFC7308"; 4058 } 4060 typedef admin-groups { 4061 type union { 4062 type admin-group; 4063 type extended-admin-group; 4064 } 4065 description "TE administrative group derived type"; 4066 } 4068 typedef srlg { 4069 type uint32; 4070 description "SRLG type"; 4071 reference "RFC4203 and RFC5307"; 4072 } 4073 identity path-computation-srlg-type { 4074 description 4075 "Base identity for SRLG path computation"; 4076 } 4078 identity srlg-ignore { 4079 base path-computation-srlg-type; 4080 description 4081 "Ignores SRLGs in path computation"; 4082 } 4084 identity srlg-strict { 4085 base path-computation-srlg-type; 4086 description 4087 "Include strict SRLG check in path computation"; 4088 } 4090 identity srlg-preferred { 4091 base path-computation-srlg-type; 4092 description 4093 "Include preferred SRLG check in path computation"; 4094 } 4096 identity srlg-weighted { 4097 base path-computation-srlg-type; 4098 description 4099 "Include weighted SRLG check in path computation"; 4100 } 4102 typedef te-metric { 4103 type uint32; 4104 description 4105 "TE link metric"; 4106 reference "RFC3785"; 4107 } 4109 /** 4110 * TE bandwidth groupings 4111 **/ 4112 identity otn-rate-type { 4113 description 4114 "Base type to identify OTN bit rates of various information 4115 structures."; 4116 reference "RFC7139"; 4117 } 4118 identity odu0 { 4119 base otn-rate-type; 4120 description 4121 "ODU0 bit rate."; 4122 } 4123 identity odu1 { 4124 base otn-rate-type; 4125 description 4126 "ODU1 bit rate."; 4127 } 4128 identity odu2 { 4129 base otn-rate-type; 4130 description 4131 "ODU2 bit rate."; 4132 } 4133 identity odu3 { 4134 base otn-rate-type; 4135 description 4136 "ODU3 bit rate."; 4137 } 4138 identity odu4 { 4139 base otn-rate-type; 4140 description 4141 "ODU4 bit rate."; 4142 } 4143 identity odu2e { 4144 base otn-rate-type; 4145 description 4146 "ODU2e bit rate."; 4147 } 4148 identity oduc { 4149 base otn-rate-type; 4150 description 4151 "ODUCn bit rate."; 4152 } 4153 identity oduflex { 4154 base otn-rate-type; 4155 description 4156 "ODUflex bit rate."; 4157 } 4159 identity wdm-spectrum-type { 4160 description 4161 "Base type to identify WDM spectrum type."; 4162 } 4163 identity cwdm { 4164 base wdm-spectrum-type; 4165 description "CWDM."; 4166 reference "RFC6205"; 4167 } 4168 identity dwdm { 4169 base wdm-spectrum-type; 4170 description "DWDM."; 4171 reference "RFC6205"; 4172 } 4173 identity flexible-grid { 4174 base wdm-spectrum-type; 4175 description "Flexible grid."; 4176 reference "RFC6205"; 4177 } 4179 grouping te-bandwidth { 4180 description 4181 "This grouping defines the generic TE bandwidth. 4182 For some known data plane technologies, specific modeling 4183 structures are specified. The string encoded te-bandwidth 4184 type is used for un-specified technologies. 4185 The modeling structure can be augmented later for other 4186 technologies."; 4187 container te-bandwidth { 4188 description 4189 "Container that specifies TE bandwidth."; 4190 choice technology { 4191 default generic; 4192 description 4193 "Data plane technology type."; 4194 case generic { 4195 leaf generic { 4196 type te-bandwidth; 4197 description 4198 "Bandwidth specified in a generic format."; 4199 } 4200 } 4201 } 4202 } 4203 } 4205 /** 4206 * TE label groupings 4207 **/ 4208 grouping te-label { 4209 description 4210 "This grouping defines the generic TE label. 4211 The modeling structure can be augmented for each technology. 4212 For un-specified technologies, rt-types:generalized-label 4213 is used."; 4214 container te-label { 4215 description 4216 "Container that specifies TE label."; 4218 choice technology { 4219 default generic; 4220 description 4221 "Data plane technology type."; 4222 case generic { 4223 leaf generic { 4224 type rt-types:generalized-label; 4225 description 4226 "TE label specified in a generic format."; 4227 } 4228 } 4229 } 4230 leaf direction { 4231 type te-label-direction; 4232 description "Label direction"; 4233 } 4234 } 4235 } 4237 /** 4238 * TE performance metric groupings 4239 **/ 4240 grouping performance-metric-container { 4241 description 4242 "A container containing performance metric attributes."; 4243 container performance-metric { 4244 description 4245 "Link performance information in real time."; 4246 reference 4247 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 4248 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 4249 RFC7823: Performance-Based Path Selection for Explicitly 4250 Routed Label Switched Paths (LSPs) Using TE Metric 4251 Extensions"; 4252 container measurement { 4253 description 4254 "Measured performance metric values. Static configuration 4255 and manual overrides of these measurements are also 4256 allowed."; 4257 uses performance-metric-attributes; 4258 } 4259 container normality 4260 { 4261 description 4262 "Performance metric normality values."; 4263 uses performance-metric-normality-attributes; 4264 } 4265 uses performance-metric-throttle-container; 4267 } 4268 } // performance-metric-container 4270 grouping te-topology-identifier { 4271 description 4272 "Augmentation for TE topology."; 4273 container te-topology-identifier { 4274 description "TE topology identifier container"; 4275 leaf provider-id { 4276 type te-types:te-global-id; 4277 description 4278 "An identifier to uniquely identify a provider."; 4279 } 4280 leaf client-id { 4281 type te-types:te-global-id; 4282 description 4283 "An identifier to uniquely identify a client."; 4284 } 4285 leaf topology-id { 4286 type te-types:te-topology-id; 4287 description 4288 "It is presumed that a datastore will contain many 4289 topologies. To distinguish between topologies it is 4290 vital to have UNIQUE topology identifiers."; 4291 } 4292 } 4293 } 4295 grouping performance-metric-attributes { 4296 description 4297 "Link performance information in real time."; 4298 reference 4299 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 4300 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 4301 RFC7823: Performance-Based Path Selection for Explicitly 4302 Routed Label Switched Paths (LSPs) Using TE Metric 4303 Extensions"; 4304 leaf unidirectional-delay { 4305 type uint32 { 4306 range 0..16777215; 4307 } 4308 description "Delay or latency in micro seconds."; 4309 } 4310 leaf unidirectional-min-delay { 4311 type uint32 { 4312 range 0..16777215; 4314 } 4315 description "Minimum delay or latency in micro seconds."; 4316 } 4317 leaf unidirectional-max-delay { 4318 type uint32 { 4319 range 0..16777215; 4320 } 4321 description "Maximum delay or latency in micro seconds."; 4322 } 4323 leaf unidirectional-delay-variation { 4324 type uint32 { 4325 range 0..16777215; 4326 } 4327 description "Delay variation in micro seconds."; 4328 } 4329 leaf unidirectional-packet-loss { 4330 type decimal64 { 4331 fraction-digits 6; 4332 range "0 .. 50.331642"; 4333 } 4334 description 4335 "Packet loss as a percentage of the total traffic sent 4336 over a configurable interval. The finest precision is 4337 0.000003%."; 4338 } 4339 leaf unidirectional-residual-bandwidth { 4340 type rt-types:bandwidth-ieee-float32; 4341 description 4342 "Residual bandwidth that subtracts tunnel 4343 reservations from Maximum Bandwidth (or link capacity) 4344 [RFC3630] and provides an aggregated remainder across QoS 4345 classes."; 4346 } 4347 leaf unidirectional-available-bandwidth { 4348 type rt-types:bandwidth-ieee-float32; 4349 description 4350 "Available bandwidth that is defined to be residual 4351 bandwidth minus the measured bandwidth used for the 4352 actual forwarding of non-RSVP-TE LSP packets. For a 4353 bundled link, available bandwidth is defined to be the 4354 sum of the component link available bandwidths."; 4355 } 4356 leaf unidirectional-utilized-bandwidth { 4357 type rt-types:bandwidth-ieee-float32; 4358 description 4359 "Bandwidth utilization that represents the actual 4360 utilization of the link (i.e. as measured in the router). 4361 For a bundled link, bandwidth utilization is defined to 4362 be the sum of the component link bandwidth 4363 utilizations."; 4364 } 4365 } // performance-metric-attributes 4367 grouping performance-metric-normality-attributes { 4368 description 4369 "Link performance metric normality attributes."; 4370 reference 4371 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 4372 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 4373 RFC7823: Performance-Based Path Selection for Explicitly 4374 Routed Label Switched Paths (LSPs) Using TE Metric 4375 Extensions"; 4376 leaf unidirectional-delay { 4377 type te-types:performance-metric-normality; 4378 description "Delay normality."; 4379 } 4380 leaf unidirectional-min-delay { 4381 type te-types:performance-metric-normality; 4382 description "Minimum delay or latency normality."; 4383 } 4384 leaf unidirectional-max-delay { 4385 type te-types:performance-metric-normality; 4386 description "Maximum delay or latency normality."; 4387 } 4388 leaf unidirectional-delay-variation { 4389 type te-types:performance-metric-normality; 4390 description "Delay variation normality."; 4391 } 4392 leaf unidirectional-packet-loss { 4393 type te-types:performance-metric-normality; 4394 description "Packet loss normality."; 4395 } 4396 leaf unidirectional-residual-bandwidth { 4397 type te-types:performance-metric-normality; 4398 description "Residual bandwidth normality."; 4399 } 4400 leaf unidirectional-available-bandwidth { 4401 type te-types:performance-metric-normality; 4402 description "Available bandwidth normality."; 4403 } 4404 leaf unidirectional-utilized-bandwidth { 4405 type te-types:performance-metric-normality; 4406 description "Bandwidth utilization normality."; 4407 } 4408 } // performance-metric-normality-attributes 4409 grouping performance-metric-throttle-container { 4410 description 4411 "A container controlling performance metric throttle."; 4412 container throttle { 4413 must "suppression-interval >= measure-interval" { 4414 error-message 4415 "suppression-interval cannot be less then 4416 measure-interval."; 4417 description 4418 "Constraint on suppression-interval and 4419 measure-interval."; 4420 } 4421 description 4422 "Link performance information in real time."; 4423 reference 4424 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 4425 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 4426 RFC7823: Performance-Based Path Selection for Explicitly 4427 Routed Label Switched Paths (LSPs) Using TE Metric 4428 Extensions"; 4429 leaf unidirectional-delay-offset { 4430 type uint32 { 4431 range 0..16777215; 4432 } 4433 description 4434 "Offset value to be added to the measured delay value."; 4435 } 4436 leaf measure-interval { 4437 type uint32; 4438 default 30; 4439 description 4440 "Interval in seconds to measure the extended metric 4441 values."; 4442 } 4443 leaf advertisement-interval { 4444 type uint32; 4445 description 4446 "Interval in seconds to advertise the extended metric 4447 values."; 4448 } 4449 leaf suppression-interval { 4450 type uint32 { 4451 range "1 .. max"; 4452 } 4453 default 120; 4454 description 4455 "Interval in seconds to suppress advertising the extended 4456 metric values."; 4458 } 4459 container threshold-out { 4460 uses performance-metric-attributes; 4461 description 4462 "If the measured parameter falls outside an upper bound 4463 for all but the min delay metric (or lower bound for 4464 min-delay metric only) and the advertised value is not 4465 already outside that bound, anomalous announcement will be 4466 triggered."; 4467 } 4468 container threshold-in { 4469 uses performance-metric-attributes; 4470 description 4471 "If the measured parameter falls inside an upper bound 4472 for all but the min delay metric (or lower bound for 4473 min-delay metric only) and the advertised value is not 4474 already inside that bound, normal (anomalous-flag cleared) 4475 announcement will be triggered."; 4476 } 4477 container threshold-accelerated-advertisement { 4478 description 4479 "When the difference between the last advertised value and 4480 current measured value exceed this threshold, anomalous 4481 announcement will be triggered."; 4482 uses performance-metric-attributes; 4483 } 4484 } 4485 } // performance-metric-throttle-container 4487 /** 4488 * TE tunnel generic groupings 4489 **/ 4491 /* Tunnel path selection parameters */ 4492 grouping explicit-route-hop { 4493 description 4494 "The explicit route subobject grouping"; 4495 leaf index { 4496 type uint32; 4497 description "ERO subobject index"; 4498 } 4499 choice type { 4500 description 4501 "The explicit route subobject type"; 4502 case num-unnum-hop { 4503 container num-unnum-hop { 4504 leaf node-id { 4505 type te-types:te-node-id; 4506 description 4507 "The identifier of a node in the TE topology."; 4508 } 4509 leaf link-tp-id { 4510 type te-types:te-tp-id; 4511 description 4512 "TE link termination point identifier. The combination 4513 of TE link ID and the TE node ID is used to identify an 4514 unnumbered TE link."; 4515 } 4516 leaf hop-type { 4517 type te-hop-type; 4518 description "strict or loose hop"; 4519 } 4520 leaf direction { 4521 type te-link-direction; 4522 description "Unnumbered Link ERO direction"; 4523 } 4524 description 4525 "Numbered and Unnumbered link/node explicit route 4526 subobject"; 4527 reference 4528 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 4529 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 4530 } 4531 } 4532 case as-number { 4533 container as-number-hop { 4534 leaf as-number { 4535 type binary { 4536 length 16; 4537 } 4538 description "AS number"; 4539 } 4540 leaf hop-type { 4541 type te-hop-type; 4542 description 4543 "strict or loose hop"; 4544 } 4545 description 4546 "Autonomous System explicit route subobject"; 4547 } 4548 } 4549 case label { 4550 container label-hop { 4551 description "Label hop type"; 4552 uses te-label; 4553 } 4554 description 4555 "The Label ERO subobject"; 4556 } 4557 } 4558 } 4560 grouping record-route-subobject_state { 4561 description 4562 "The record route subobject grouping"; 4563 leaf index { 4564 type uint32; 4565 description "RRO subobject index"; 4566 } 4567 choice type { 4568 description 4569 "The record route subobject type"; 4570 case numbered { 4571 leaf address { 4572 type te-types:te-tp-id; 4573 description 4574 "Numbered link TE termination point address."; 4575 } 4576 leaf ip-flags { 4577 type binary { 4578 length 8; 4579 } 4580 description 4581 "RRO IP address sub-object flags"; 4582 reference "RFC3209"; 4583 } 4584 } 4585 case unnumbered { 4586 leaf node-id { 4587 type te-types:te-node-id; 4588 description 4589 "The identifier of a node in the TE topology."; 4590 } 4591 leaf link-tp-id { 4592 type te-types:te-tp-id; 4593 description 4594 "TE link termination point identifier, used 4595 together with te-node-id to identify the 4596 link termination point"; 4597 } 4598 description 4599 "Unnumbered link record route subobject"; 4600 reference 4601 "RFC3477: Signalling Unnumbered Links in 4602 RSVP-TE"; 4603 } 4604 case label { 4605 container label-hop { 4606 description "Label hop type"; 4607 uses te-label; 4608 leaf label-flags { 4609 type binary { 4610 length 8; 4611 } 4612 description 4613 "Label sub-object flags"; 4614 reference "RFC3209"; 4615 } 4616 } 4617 description 4618 "The Label RRO subobject"; 4619 } 4620 } 4621 } 4623 grouping label-restriction-info { 4624 description "Label set item info"; 4625 leaf restriction { 4626 type enumeration { 4627 enum inclusive { 4628 description "The label or label range is inclusive."; 4629 } 4630 enum exclusive { 4631 description "The label or label range is exclusive."; 4632 } 4633 } 4634 description 4635 "Whether the list item is inclusive or exclusive."; 4636 } 4637 leaf index { 4638 type uint32; 4639 description 4640 "Then index of the label restriction list entry."; 4641 } 4642 container label-start { 4643 description 4644 "This is the starting label if a label range is specified. 4645 This is the label value if a single label is specified, 4646 in which case, attribute 'label-end' is not set."; 4647 uses te-label; 4648 } 4649 container label-end { 4650 description 4651 "The ending label if a label range is specified; 4652 This attribute is not set, If a single label is 4653 specified."; 4654 uses te-label; 4655 } 4656 leaf range-bitmap { 4657 type binary; 4658 description 4659 "When there are gaps between label-start and label-end, 4660 this attribute is used to specified the possitions 4661 of the used labels."; 4662 } 4663 } 4665 grouping label-set-info { 4666 description 4667 "Grouping for List of label restrictions specifying what labels 4668 may or may not be used on a link connectivity."; 4669 container label-restrictions { 4670 description 4671 "The label restrictions container"; 4672 list label-restriction { 4673 key "index"; 4674 description 4675 "The absence of label-set implies that all labels are 4676 acceptable; otherwise only restricted labels are 4677 available."; 4678 reference 4679 "RFC7579: General Network Element Constraint Encoding 4680 for GMPLS-Controlled Networks"; 4681 uses label-restriction-info; 4682 } 4683 } 4684 } 4686 /*** End of TE tunnel groupings ***/ 4687 grouping optimizations_config { 4688 description "Optimization metrics configuration grouping"; 4689 leaf metric-type { 4690 type identityref { 4691 base te-types:path-metric-type; 4692 } 4693 description "TE path metric type"; 4694 } 4695 leaf weight { 4696 type uint8; 4697 description "TE path metric normalization weight"; 4699 } 4700 container explicit-route-exclude-objects { 4701 when "../metric-type = " + 4702 "'te-types:path-metric-optimize-excludes'"; 4703 description 4704 "Container for the exclude route object list"; 4705 uses path-route-exclude-objects; 4706 } 4707 container explicit-route-include-objects { 4708 when "../metric-type = " + 4709 "'te-types:path-metric-optimize-includes'"; 4710 description 4711 "Container for the include route object list"; 4712 uses path-route-include-objects; 4713 } 4714 } 4716 grouping common-constraints_config { 4717 description 4718 "Common constraints grouping that can be set on 4719 a constraint set or directly on the tunnel"; 4721 uses te-types:te-bandwidth { 4722 description 4723 "A requested bandwidth to use for path computation"; 4724 } 4726 leaf setup-priority { 4727 type uint8 { 4728 range "0..7"; 4729 } 4730 description 4731 "TE LSP requested setup priority"; 4732 reference "RFC3209"; 4733 } 4734 leaf hold-priority { 4735 type uint8 { 4736 range "0..7"; 4737 } 4738 description 4739 "TE LSP requested hold priority"; 4740 reference "RFC3209"; 4741 } 4742 leaf signaling-type { 4743 type identityref { 4744 base te-types:path-signaling-type; 4745 } 4746 description "TE tunnel path signaling type"; 4748 } 4749 } 4751 grouping tunnel-constraints_config { 4752 description 4753 "Tunnel constraints grouping that can be set on 4754 a constraint set or directly on the tunnel"; 4755 uses te-types:te-topology-identifier; 4756 uses te-types:common-constraints_config; 4757 } 4759 grouping path-metrics-bounds_config { 4760 description "TE path metric bounds grouping"; 4761 leaf metric-type { 4762 type identityref { 4763 base te-types:path-metric-type; 4764 } 4765 description "TE path metric type"; 4766 } 4767 leaf upper-bound { 4768 type uint64; 4769 description "Upper bound on end-to-end TE path metric"; 4770 } 4771 } 4773 grouping path-objective-function_config { 4774 description "Optimization metrics configuration grouping"; 4775 leaf objective-function-type { 4776 type identityref { 4777 base te-types:objective-function-type; 4778 } 4779 description 4780 "Objective function entry"; 4781 } 4782 } 4784 /** 4785 * TE interface generic groupings 4786 **/ 4787 grouping path-route-objects { 4788 description 4789 "List of EROs to be included or excluded when performing 4790 the path computation."; 4791 container explicit-route-objects { 4792 description 4793 "Container for the exclude route object list"; 4794 list route-object-exclude-always { 4795 key index; 4796 description 4797 "List of explicit route objects to always exclude 4798 from path computation"; 4799 uses te-types:explicit-route-hop; 4800 } 4801 list route-object-include-exclude { 4802 key index; 4803 description 4804 "List of explicit route objects to include or 4805 exclude in path computation"; 4806 leaf explicit-route-usage { 4807 type identityref { 4808 base te-types:route-usage-type; 4809 } 4810 description "Explicit-route usage."; 4811 } 4812 uses te-types:explicit-route-hop { 4813 augment "type" { 4814 case srlg { 4815 container srlg { 4816 description "SRLG container"; 4817 leaf srlg { 4818 type uint32; 4819 description "SRLG value"; 4820 } 4821 } 4822 description "An SRLG value to be included or excluded"; 4823 } 4824 description 4825 "Augmentation to generic explicit route for SRLG 4826 exclusion"; 4827 } 4828 } 4829 } 4830 } 4831 } 4833 grouping path-route-include-objects { 4834 description 4835 "List of EROs to be included when performing 4836 the path computation."; 4837 list route-object-include-object { 4838 key index; 4839 description 4840 "List of explicit route objects to be included 4841 in path computation"; 4842 uses te-types:explicit-route-hop; 4843 } 4845 } 4847 grouping path-route-exclude-objects { 4848 description 4849 "List of EROs to be included when performing 4850 the path computation."; 4851 list route-object-exclude-object { 4852 key index; 4853 description 4854 "List of explicit route objects to be excluded 4855 in path computation"; 4856 uses te-types:explicit-route-hop { 4857 augment "type" { 4858 case srlg { 4859 container srlg { 4860 description "SRLG container"; 4861 leaf srlg { 4862 type uint32; 4863 description "SRLG value"; 4864 } 4865 } 4866 description "An SRLG value to be included or excluded"; 4867 } 4868 description 4869 "Augmentation to generic explicit route for SRLG exclusion"; 4870 } 4871 } 4872 } 4873 } 4875 grouping generic-path-metric-bounds { 4876 description "TE path metric bounds grouping"; 4877 container path-metric-bounds { 4878 description "TE path metric bounds container"; 4879 list path-metric-bound { 4880 key metric-type; 4881 description "List of TE path metric bounds"; 4882 uses path-metrics-bounds_config; 4883 } 4884 } 4885 } 4887 grouping generic-path-optimization { 4888 description "TE generic path optimization grouping"; 4890 container optimizations { 4891 description 4892 "The objective function container that includes 4893 attributes to impose when computing a TE path"; 4895 choice algorithm { 4896 description "Optimizations algorithm."; 4897 case metric { 4898 if-feature path-optimization-metric; 4899 /* Optimize by metric */ 4900 list optimization-metric { 4901 key "metric-type"; 4902 description "TE path metric type"; 4903 uses optimizations_config; 4904 } 4905 /* Tiebreakers */ 4906 container tiebreakers { 4907 description 4908 "The list of tiebreaker criterion to apply 4909 on an equally favored set of paths to pick best"; 4910 list tiebreaker { 4911 key "tiebreaker-type"; 4912 description 4913 "The list of tiebreaker criterion to apply 4914 on an equally favored set of paths to pick best"; 4915 leaf tiebreaker-type { 4916 type identityref { 4917 base te-types:path-metric-type; 4918 } 4919 description "The objective function"; 4920 } 4921 } 4922 } 4923 } 4924 case objective-function { 4925 if-feature path-optimization-objective-function; 4926 /* Objective functions */ 4927 container objective-function { 4928 description 4929 "The objective function container that includes 4930 attributes to impose when computing a TE path"; 4931 uses path-objective-function_config; 4932 } 4933 } 4934 } 4935 } 4936 } 4938 grouping generic-path-affinities { 4939 description 4940 "Path affinities grouping"; 4942 container path-affinities { 4943 description 4944 "Path affinities container"; 4945 list constraint { 4946 key "usage"; 4947 description 4948 "List of named affinity constraints"; 4949 leaf usage { 4950 type identityref { 4951 base resource-affinities-type; 4952 } 4953 description "Affinities usage"; 4954 } 4955 leaf value { 4956 type admin-groups; 4957 description "Affinity value"; 4958 } 4959 } 4960 } 4961 } 4963 grouping generic-path-srlgs { 4964 description 4965 "Path SRLG grouping"; 4966 container path-srlgs { 4967 description 4968 "Path SRLG properties container"; 4969 leaf usage { 4970 type identityref { 4971 base te-types:route-exclude-srlg; 4972 } 4973 description "SRLG usage"; 4974 } 4975 leaf-list values { 4976 type srlg; 4977 description "SRLG value"; 4978 } 4979 } 4980 } 4982 grouping generic-path-disjointness { 4983 description "Path disjointness grouping"; 4984 leaf disjointness { 4985 type te-types:te-path-disjointness; 4986 description 4987 "The type of resource disjointness. 4988 Under primary path, disjointness level applies to 4989 all secondary LSPs. Under secondary, disjointness 4990 level overrides the one under primary"; 4991 } 4992 } 4994 grouping generic-path-constraints { 4995 description 4996 "Global named path constraints configuration 4997 grouping"; 4998 container path-constraints { 4999 description "TE named path constraints container"; 5000 uses common-constraints_config; 5001 uses generic-path-metric-bounds; 5002 uses generic-path-affinities; 5003 uses generic-path-srlgs; 5004 } 5005 } 5007 grouping generic-path-properties { 5008 description "TE generic path properties grouping"; 5009 container path-properties { 5010 config false; 5011 description "The TE path properties"; 5012 list path-metric { 5013 key metric-type; 5014 description "TE path metric type"; 5015 leaf metric-type { 5016 type identityref { 5017 base te-types:path-metric-type; 5018 } 5019 description "TE path metric type"; 5020 } 5021 leaf accumulative-value { 5022 type uint64; 5023 description "TE path metric accumulative value"; 5024 } 5025 } 5026 uses generic-path-affinities; 5027 uses generic-path-srlgs; 5028 container path-route-objects { 5029 description 5030 "Container for the list of route objects either returned by 5031 the computation engine or actually used by an LSP"; 5032 list path-route-object { 5033 key index; 5034 description 5035 "List of route objects either returned by the computation 5036 engine or actually used by an LSP"; 5037 uses explicit-route-hop; 5039 } 5040 } 5041 } 5042 } 5043 } 5044 5046 Figure 7: TE basic types YANG module 5048 file "ietf-te@2018-06-12.yang" 5049 module ietf-te { 5050 yang-version 1.1; 5052 namespace "urn:ietf:params:xml:ns:yang:ietf-te"; 5054 /* Replace with IANA when assigned */ 5055 prefix "te"; 5057 /* Import TE generic types */ 5058 import ietf-te-types { 5059 prefix te-types; 5060 } 5062 import ietf-inet-types { 5063 prefix inet; 5064 } 5066 organization 5067 "IETF Traffic Engineering Architecture and Signaling (TEAS) 5068 Working Group"; 5070 contact 5071 "WG Web: 5072 WG List: 5074 WG Chair: Lou Berger 5075 5077 WG Chair: Vishnu Pavan Beeram 5078 5080 Editor: Tarek Saad 5081 5083 Editor: Rakesh Gandhi 5084 5086 Editor: Vishnu Pavan Beeram 5087 5089 Editor: Himanshu Shah 5090 5092 Editor: Xufeng Liu 5093 5095 Editor: Igor Bryskin 5096 "; 5098 description 5099 "YANG data module for TE configuration, 5100 state, RPC and notifications."; 5102 revision "2018-06-12" { 5103 description "Latest update to TE generic YANG module."; 5104 reference "TBA"; 5105 } 5107 typedef tunnel-ref { 5108 type leafref { 5109 path "/te:te/te:tunnels/te:tunnel/te:name"; 5110 } 5111 description 5112 "This type is used by data models that need to reference 5113 configured TE tunnel."; 5114 } 5116 typedef path-ref { 5117 type union { 5118 type leafref { 5119 path "/te:te/te:tunnels/te:tunnel/" + 5120 "te:p2p-primary-paths/te:p2p-primary-path/te:name"; 5121 } 5122 type leafref { 5123 path "/te:te/te:tunnels/te:tunnel/" + 5124 "te:p2p-secondary-paths/te:p2p-secondary-path/te:name"; 5125 } 5126 } 5127 description 5128 "This type is used by data models that need to reference 5129 configured primary or secondary path of a TE tunnel."; 5130 } 5132 typedef tunnel-p2mp-ref { 5133 type leafref { 5134 path "/te:te/te:tunnels/te:tunnel-p2mp/te:name"; 5136 } 5137 description 5138 "This type is used by data models that need to reference 5139 configured P2MP TE tunnel."; 5140 reference "RFC4875"; 5141 } 5143 /** 5144 * TE tunnel generic groupings 5145 */ 5146 grouping path-affinities-contents_config { 5147 description 5148 "Path affinities constraints grouping"; 5149 reference "RFC3630 and RFC5305"; 5150 leaf usage { 5151 type identityref { 5152 base te-types:resource-affinities-type; 5153 } 5154 description "Affinities usage"; 5155 } 5156 choice style { 5157 description 5158 "Path affinities representation style"; 5159 case value { 5160 leaf value { 5161 type te-types:admin-groups; 5162 description 5163 "Bitmap indicating what bits are of significance"; 5164 } 5165 } 5166 case named { 5167 list affinity-names { 5168 key "name"; 5169 leaf name { 5170 type string; 5171 description "Affinity name"; 5172 } 5173 description "List of named affinities"; 5174 } 5175 } 5176 } 5177 } 5179 grouping path-affinities { 5180 description "Path affinities grouping"; 5181 container path-affinities { 5182 description "Path affinities container"; 5183 list constraints { 5184 key "usage"; 5185 description "List of named affinity constraints"; 5186 uses path-affinities-contents_config; 5187 } 5188 } 5189 } 5191 grouping path-srlgs-values_config { 5192 description "Path SRLG values properties grouping"; 5193 reference "RFC4203 and RFC5307"; 5194 leaf usage { 5195 type identityref { 5196 base te-types:route-exclude-srlg; 5197 } 5198 description "SRLG usage"; 5199 } 5200 leaf-list values { 5201 type te-types:srlg; 5202 description "SRLG value"; 5203 reference "RFC4203 and RFC5307"; 5204 } 5205 } 5207 grouping path-srlgs { 5208 description "Path SRLG properties grouping"; 5209 container path-srlgs { 5210 description "Path SRLG properties container"; 5211 choice style { 5212 description "Type of SRLG representation"; 5213 case values { 5214 uses path-srlgs-values_config; 5215 } 5216 case named { 5217 container constraints { 5218 description "SRLG named constraints"; 5219 list constraint { 5220 key "usage"; 5221 leaf usage { 5222 type identityref { 5223 base te-types:route-exclude-srlg; 5224 } 5225 description "SRLG usage"; 5226 } 5227 container constraint { 5228 description "Container for named SRLG list"; 5229 list srlg-names { 5230 key "name"; 5231 leaf name { 5232 type string; 5233 description "The SRLG name"; 5234 } 5235 description "List named SRLGs"; 5236 } 5237 } 5238 description "List of named SRLG constraints"; 5239 } 5240 } 5241 } 5242 } 5243 } 5244 } 5246 grouping p2p-reverse-primary-path-properties { 5247 description "tunnel path properties."; 5248 reference "RFC7551"; 5249 container p2p-reverse-primary-path { 5250 description "Tunnel reverse primary path properties"; 5251 uses p2p-path-reverse-properties_config; 5252 uses path-constraints-primary_config; 5253 container state { 5254 config false; 5255 description 5256 "Configuration applied parameters and state"; 5257 uses p2p-path-properties_state; 5258 } 5259 container p2p-reverse-secondary-path { 5260 description "Tunnel reverse secondary path properties"; 5261 uses p2p-reverse-path-candidate-secondary-path-config; 5262 } 5263 } 5264 } 5266 grouping p2p-secondary-path-properties { 5267 description "tunnel path properties."; 5268 uses p2p-path-properties_config; 5269 uses path-constraints-secondary_config; 5270 uses protection-restoration-params_config; 5271 container state { 5272 config false; 5273 description 5274 "Configuration applied parameters and state"; 5275 uses p2p-path-properties_state; 5276 } 5277 } 5279 grouping p2p-primary-path-properties { 5280 description 5281 "TE tunnel primary path properties grouping"; 5282 uses p2p-path-properties_config; 5283 uses path-constraints-primary_config; 5284 container state { 5285 config false; 5286 description 5287 "Configuration applied parameters and state"; 5288 uses p2p-path-properties_state; 5289 } 5290 } 5292 grouping path-properties_state { 5293 description "Computed path properties grouping"; 5294 leaf metric-type { 5295 type identityref { 5296 base te-types:path-metric-type; 5297 } 5298 description "TE path metric type"; 5299 } 5300 leaf accumulative-value { 5301 type uint64; 5302 description "TE path metric accumulative value"; 5303 } 5304 } 5306 grouping path-properties { 5307 description "TE computed path properties grouping"; 5308 container path-properties { 5309 description "The TE path computed properties"; 5310 list path-metric { 5311 key metric-type; 5312 description "TE path metric type"; 5313 leaf metric-type { 5314 type leafref { 5315 path "../state/metric-type"; 5316 } 5317 description "TE path metric type"; 5318 } 5319 container state { 5320 config false; 5321 description 5322 "Configuration applied parameters and state"; 5323 uses path-properties_state; 5324 } 5325 } 5326 uses path-affinities; 5327 uses path-srlgs; 5328 container path-route-objects { 5329 description 5330 "Container for the list of computed route objects 5331 as returned by the computation engine"; 5332 list path-computed-route-object { 5333 key index; 5334 description 5335 "List of computed route objects returned by the 5336 computation engine"; 5337 leaf index { 5338 type leafref { 5339 path "../state/index"; 5340 } 5341 description "Index of computed route object"; 5342 } 5343 container state { 5344 config false; 5345 description 5346 "Configuration applied parameters and state"; 5347 uses te-types:explicit-route-hop; 5348 } 5349 } 5350 } 5351 uses shared-resources-tunnels; 5352 } 5353 } 5355 grouping p2p-path-properties_state { 5356 description "TE per path state parameters"; 5357 uses path-properties { 5358 description "The TE path computed properties"; 5359 } 5360 container lsps { 5361 description "TE LSPs container"; 5362 list lsp { 5363 key 5364 "source destination tunnel-id lsp-id "+ 5365 "extended-tunnel-id"; 5366 description "List of LSPs associated with the tunnel."; 5367 uses lsp-properties_state; 5368 uses shared-resources-tunnels_state; 5369 uses lsp-record-route-information_state; 5370 uses path-properties { 5371 description "The TE path actual properties"; 5372 } 5373 } 5374 } 5375 } 5376 grouping p2p-path-properties-common_config { 5377 description 5378 "TE tunnel common path properties configuration grouping"; 5379 leaf name { 5380 type string; 5381 description "TE path name"; 5382 } 5383 leaf path-setup-protocol { 5384 type identityref { 5385 base te-types:path-signaling-type; 5386 } 5387 description 5388 "Signaling protocol used to set up this tunnel"; 5389 } 5390 leaf path-computation-method { 5391 type identityref { 5392 base te-types:path-computation-method; 5393 } 5394 default te-types:path-locally-computed; 5395 description 5396 "The method used for computing the path, either 5397 locally computed, queried from a server or not 5398 computed at all (explicitly configured)."; 5399 } 5400 leaf path-computation-server { 5401 when "../path-computation-method = "+ 5402 "'te-types:path-externally-queried'" { 5403 description 5404 "The path-computation server when the path is 5405 externally queried"; 5406 } 5407 type inet:ip-address; 5408 description 5409 "Address of the external path computation 5410 server"; 5411 } 5412 leaf compute-only { 5413 type empty; 5414 description 5415 "When set, the path is computed and updated whenever 5416 the topology is updated. No resources are committed 5417 or reserved in the network."; 5418 } 5419 leaf use-path-computation { 5420 when "../path-computation-method =" + 5421 " 'te-types:path-locally-computed'"; 5422 type boolean; 5423 description "A CSPF dynamically computed path"; 5425 } 5426 leaf lockdown { 5427 type empty; 5428 description 5429 "Indicates no reoptimization to be attempted for 5430 this path."; 5431 } 5432 leaf path-scope { 5433 type identityref { 5434 base te-types:path-scope-type; 5435 } 5436 default te-types:path-scope-end-to-end; 5437 description "Path scope if segment or an end-to-end path"; 5438 } 5439 } 5441 grouping p2p-path-reverse-properties_config { 5442 description 5443 "TE tunnel reverse path properties configuration 5444 grouping"; 5445 uses p2p-path-properties-common_config; 5446 uses te-types:generic-path-optimization; 5447 leaf named-path-constraint { 5448 if-feature te-types:named-path-constraints; 5449 type leafref { 5450 path "../../../../../../globals/" 5451 + "named-path-constraints/named-path-constraint/" 5452 + "name"; 5453 } 5454 description 5455 "Reference to a globally defined named path 5456 constraint set"; 5457 } 5458 } 5460 grouping p2p-path-properties_config { 5461 description 5462 "TE tunnel path properties configuration grouping"; 5463 uses p2p-path-properties-common_config; 5464 uses te-types:generic-path-optimization; 5465 leaf preference { 5466 type uint8 { 5467 range "1..255"; 5468 } 5469 description 5470 "Specifies a preference for this path. The lower the 5471 number higher the preference"; 5472 } 5473 leaf named-path-constraint { 5474 if-feature te-types:named-path-constraints; 5475 type leafref { 5476 path "../../../../../globals/" 5477 + "named-path-constraints/named-path-constraint/" 5478 + "name"; 5479 } 5480 description 5481 "Reference to a globally defined named path 5482 constraint set"; 5483 } 5484 } 5486 /* TE tunnel configuration data */ 5487 grouping tunnel-p2mp-params_config { 5488 description 5489 "Configuration parameters relating to TE tunnel"; 5490 leaf name { 5491 type string; 5492 description "TE tunnel name."; 5493 } 5494 leaf identifier { 5495 type uint16; 5496 description 5497 "TE tunnel Identifier."; 5498 } 5499 leaf description { 5500 type string; 5501 description 5502 "Textual description for this TE tunnel"; 5503 } 5504 } 5506 grouping hierarchical-link_config { 5507 description 5508 "Hierarchical link configuration grouping"; 5509 reference "RFC4206"; 5510 leaf local-te-node-id { 5511 type te-types:te-node-id; 5512 description 5513 "Local TE node identifier"; 5514 } 5515 leaf local-te-link-tp-id { 5516 type te-types:te-tp-id; 5517 description 5518 "Local TE link termination point identifier"; 5519 } 5520 leaf remote-te-node-id { 5521 type te-types:te-node-id; 5522 description 5523 "Remote TE node identifier"; 5524 } 5525 uses te-types:te-topology-identifier; 5526 } 5528 grouping hierarchical-link { 5529 description 5530 "Hierarchical link grouping"; 5531 reference "RFC4206"; 5532 container hierarchical-link { 5533 description 5534 "Identifies a hierarchical link (in client layer) 5535 that this tunnel is associated with."; 5536 uses hierarchical-link_config; 5537 } 5538 } 5540 grouping protection-restoration-params_state { 5541 description 5542 "Protection parameters grouping"; 5543 leaf lockout-of-normal { 5544 type boolean; 5545 description 5546 " 5547 When set to 'True', it represents a lockout of normal 5548 traffic external command. When set to 'False', it 5549 represents a clear lockout of normal traffic external 5550 command. The lockout of normal traffic command applies 5551 to this Tunnel. 5552 "; 5553 reference 5554 "ITU-T G.808, RFC 4427"; 5555 } 5556 leaf freeze { 5557 type boolean; 5558 description 5559 " 5560 When set to 'True', it represents a freeze external 5561 command. When set to 'False', it represents a clear 5562 freeze external command. The freeze command command 5563 applies to all the Tunnels which are sharing the 5564 protection resources with this Tunnel. 5565 "; 5566 reference 5567 "ITU-T G.808, RFC 4427"; 5568 } 5569 leaf lsp-protection-role { 5570 type enumeration { 5571 enum working { 5572 description 5573 "A working LSP must be a primary LSP whilst a protecting 5574 LSP can be either a primary or a secondary LSP. Also, 5575 known as protected LSPs when working LSPs are associated 5576 with protecting LSPs."; 5577 } 5578 enum protecting { 5579 description 5580 "A secondary LSP is an LSP that has been provisioned 5581 in the control plane only; e.g. resource allocation 5582 has not been committed at the data plane"; 5583 } 5584 } 5585 description "LSP role type"; 5586 reference "rfc4872, section 4.2.1"; 5587 } 5589 leaf lsp-protection-state { 5590 type identityref { 5591 base te-types:lsp-protection-state; 5592 } 5593 description 5594 "The state of the APS state machine controlling which 5595 tunnels is using the resources of the protecting LSP."; 5596 } 5597 leaf protection-group-ingress-node-id { 5598 type te-types:te-node-id; 5599 description 5600 "Indicates the te-node-id of the protection group 5601 ingress node when the APS state represents an extenal 5602 command (LoP, SF, MS) applied to it or a WTR timer 5603 running on it. If the external command is not applied to 5604 the ingress node or the WTR timer is not running on it, 5605 this attribute is not specified. If value 0.0.0.0 is used 5606 when the te-node-id of the protection group ingress node is 5607 unknown (e.g., because the ingress node is outside the scope 5608 of control of the server)"; 5609 } 5610 leaf protection-group-egress-node-id { 5611 type te-types:te-node-id; 5612 description 5613 "Indicates the te-node-id of the protection group egress node 5614 when the APS state represents an extenal command (LoP, SF, 5615 MS) applied to it or a WTR timer running on it. If the 5616 external command is not applied to the ingress node or 5617 the WTR timer is not running on it, this attribute is not 5618 specified. If value 0.0.0.0 is used when the te-node-id of 5619 the protection group ingress node is unknown (e.g., because 5620 the ingress node is outside the scope of control of the 5621 server)"; 5622 } 5623 } 5625 grouping protection-restoration-params_config { 5626 description "Protection and restoration parameters"; 5627 container protection { 5628 description "Protection parameters"; 5629 leaf enable { 5630 type boolean; 5631 default 'false'; 5632 description 5633 "A flag to specify if LSP protection is enabled"; 5634 reference "rfc4427"; 5635 } 5636 leaf protection-type { 5637 type identityref { 5638 base te-types:lsp-protection-type; 5639 } 5640 description "LSP protection type."; 5641 } 5642 leaf protection-reversion-disable { 5643 type boolean; 5644 description "Disable protection reversion to working path"; 5645 } 5646 leaf hold-off-time { 5647 type uint32; 5648 units "milli-seconds"; 5649 default 0; 5650 description 5651 "The time between the declaration of an SF or SD condition 5652 and the initialization of the protection switching 5653 algorithm."; 5654 } 5655 leaf wait-to-revert { 5656 type uint16; 5657 units seconds; 5658 description 5659 "Time to wait before attempting LSP reversion"; 5660 } 5661 leaf aps-signal-id { 5662 type uint8 { 5663 range "1..255"; 5664 } 5665 description 5666 "The APS signal number used to reference the traffic of this 5667 tunnel. The default value for normal traffic is 1. 5668 The default value for extra-traffic is 255. If not specified, 5669 non-default values can be assigned by the server, 5670 if and only if, the server controls both endpoints."; 5671 reference 5672 "ITU-T G.808.1"; 5673 } 5674 } 5675 container restoration { 5676 description "Restoration parameters"; 5677 leaf enable { 5678 type boolean; 5679 default 'false'; 5680 description 5681 "A flag to specify if LSP restoration is enabled"; 5682 reference "rfc4427"; 5683 } 5684 leaf restoration-type { 5685 type identityref { 5686 base te-types:lsp-restoration-type; 5687 } 5688 description "LSP restoration type."; 5689 } 5690 leaf restoration-scheme { 5691 type identityref { 5692 base te-types:restoration-scheme-type; 5693 } 5694 description "LSP restoration scheme."; 5695 } 5696 leaf restoration-reversion-disable { 5697 type boolean; 5698 description "Disable restoration reversion to working path"; 5699 } 5700 leaf hold-off-time { 5701 type uint32; 5702 units "milli-seconds"; 5703 description 5704 "The time between the declaration of an SF or SD condition 5705 and the initialization of the protection switching 5706 algorithm."; 5707 } 5708 leaf wait-to-restore { 5709 type uint16; 5710 units seconds; 5711 description 5712 "Time to wait before attempting LSP restoration"; 5714 } 5715 leaf wait-to-revert { 5716 type uint16; 5717 units seconds; 5718 description 5719 "Time to wait before attempting LSP reversion"; 5720 } 5721 } 5722 } 5724 grouping p2p-dependency-tunnels_config { 5725 description 5726 "Groupong for tunnel dependency list of tunnels"; 5727 container dependency-tunnels { 5728 description "Dependency tunnels list"; 5729 list dependency-tunnel { 5730 key "name"; 5731 description "Dependency tunnel entry"; 5732 leaf name { 5733 type leafref { 5734 path "../../../../../tunnels/tunnel/name"; 5735 require-instance false; 5736 } 5737 description "Dependency tunnel name"; 5738 } 5739 leaf encoding { 5740 type identityref { 5741 base te-types:lsp-encoding-types; 5742 } 5743 description "LSP encoding type"; 5744 reference "RFC3945"; 5745 } 5746 leaf switching-type { 5747 type identityref { 5748 base te-types:switching-capabilities; 5749 } 5750 description "LSP switching type"; 5751 reference "RFC3945"; 5752 } 5753 } 5754 } 5755 } 5757 grouping tunnel-p2p-params_config { 5758 description 5759 "Configuration parameters relating to TE tunnel"; 5760 leaf name { 5761 type string; 5762 description "TE tunnel name."; 5763 } 5764 leaf identifier { 5765 type uint16; 5766 description 5767 "TE tunnel Identifier."; 5768 } 5769 leaf description { 5770 type string; 5771 description 5772 "Textual description for this TE tunnel"; 5773 } 5774 leaf encoding { 5775 type identityref { 5776 base te-types:lsp-encoding-types; 5777 } 5778 description "LSP encoding type"; 5779 reference "RFC3945"; 5780 } 5781 leaf switching-type { 5782 type identityref { 5783 base te-types:switching-capabilities; 5784 } 5785 description "LSP switching type"; 5786 reference "RFC3945"; 5787 } 5788 leaf provisioning-state { 5789 type identityref { 5790 base te-types:tunnel-state-type; 5791 } 5792 default te-types:tunnel-state-up; 5793 description "TE tunnel administrative state."; 5794 } 5795 leaf preference { 5796 type uint8 { 5797 range "1..255"; 5798 } 5799 description 5800 "Specifies a preference for this tunnel. 5801 A lower number signifies a better preference"; 5802 } 5803 leaf reoptimize-timer { 5804 type uint16; 5805 units seconds; 5806 description 5807 "frequency of reoptimization of 5808 a traffic engineered LSP"; 5809 } 5810 leaf source { 5811 type inet:ip-address; 5812 description 5813 "TE tunnel source address."; 5814 } 5815 leaf destination { 5816 type inet:ip-address; 5817 description 5818 "P2P tunnel destination address"; 5819 } 5820 leaf src-tp-id { 5821 type binary; 5822 description 5823 "TE tunnel source termination point identifier."; 5824 } 5825 leaf dst-tp-id { 5826 type binary; 5827 description 5828 "TE tunnel destination termination point identifier."; 5829 } 5830 leaf bidirectional { 5831 type boolean; 5832 default 'false'; 5833 description "TE tunnel bidirectional"; 5834 } 5835 uses tunnel-p2p-associations_config; 5836 uses protection-restoration-params_config; 5837 uses te-types:tunnel-constraints_config; 5838 uses p2p-dependency-tunnels_config; 5839 uses hierarchical-link; 5840 } 5842 grouping tunnel-p2p-associations_config { 5843 description "TE tunnel association grouping"; 5844 container association-objects { 5845 description "TE tunnel associations"; 5846 list association-object { 5847 key "type ID source global-source"; 5848 description "List of association base objects"; 5849 leaf type { 5850 type identityref { 5851 base te-types:association-type; 5852 } 5853 description "Association type"; 5854 } 5855 leaf ID { 5856 type uint16; 5857 description "Association ID"; 5859 } 5860 leaf source { 5861 type inet:ip-address; 5862 description "Association source"; 5863 } 5864 leaf global-source { 5865 type inet:ip-address; 5866 description "Association global source"; 5867 } 5868 } 5869 list association-object-extended { 5870 key "type ID source global-source extended-ID"; 5871 description "List of extended association objects"; 5872 leaf type { 5873 type identityref { 5874 base te-types:association-type; 5875 } 5876 description "Association type"; 5877 } 5878 leaf ID { 5879 type uint16; 5880 description "Association ID"; 5881 } 5882 leaf source { 5883 type inet:ip-address; 5884 description "Association source"; 5885 } 5886 leaf global-source { 5887 type inet:ip-address; 5888 description "Association global source"; 5889 } 5890 leaf extended-ID { 5891 type binary; 5892 description "Association extended ID"; 5893 } 5894 } 5895 } 5896 } 5898 grouping tunnel-p2p-params_state { 5899 description 5900 "State parameters relating to TE tunnel"; 5901 leaf operational-state { 5902 type identityref { 5903 base te-types:tunnel-state-type; 5904 } 5905 default te-types:tunnel-state-up; 5906 description "TE tunnel administrative state."; 5908 } 5909 } 5911 grouping access-segment-info { 5912 description 5913 "info related to a segment"; 5914 container forward { 5915 description 5916 "for the forward direction of this tunnel"; 5917 uses te-types:label-set-info; 5918 } 5919 container reverse { 5920 description 5921 "for the reverse direction of this tunnel"; 5922 uses te-types:label-set-info; 5923 } 5924 } 5926 grouping path-access-segment-info { 5927 description 5928 "If an end-to-end tunnel crosses multiple domains using 5929 the same technology, some additional constraints have to be 5930 taken in consideration in each domain"; 5931 container path-in-segment { 5932 presence 5933 "The end-to-end tunnel starts in a previous domain; 5934 this tunnel is a segment in the current domain."; 5935 description 5936 "This tunnel is a segment that needs to be coordinated 5937 with previous segment stitched on head-end side."; 5938 uses access-segment-info; 5939 } 5940 container path-out-segment { 5941 presence 5942 "The end-to-end tunnel is not terminated in this domain; 5943 this tunnel is a segment in the current domain."; 5944 description 5945 "This tunnel is a segment that needs to be coordinated 5946 with previous segment stitched on head-end side."; 5947 uses access-segment-info; 5948 } 5949 } 5951 /* TE tunnel configuration/state grouping */ 5952 grouping tunnel-p2mp-properties { 5953 description 5954 "Top level grouping for P2MP tunnel properties."; 5955 uses tunnel-p2mp-params_config; 5956 container state { 5957 config false; 5958 description 5959 "Configuration applied parameters and state"; 5960 leaf operational-state { 5961 type identityref { 5962 base te-types:tunnel-state-type; 5963 } 5964 default te-types:tunnel-state-up; 5965 description "TE tunnel administrative state."; 5966 } 5967 } 5968 } 5970 grouping p2p-path-candidate-secondary-path-config { 5971 description 5972 "Configuration parameters relating to a secondary path which 5973 is a candidate for a particular primary path"; 5975 leaf secondary-path { 5976 type leafref { 5977 path "../../../../../p2p-secondary-paths/" + 5978 "p2p-secondary-path/name"; 5979 } 5980 description 5981 "A reference to the secondary path that should be utilised 5982 when the containing primary path option is in use"; 5983 } 5985 leaf path-setup-protocol { 5986 type identityref { 5987 base te-types:path-signaling-type; 5988 } 5989 description 5990 "Signaling protocol used to set up this tunnel"; 5991 } 5992 } 5994 grouping p2p-reverse-path-candidate-secondary-path-config { 5995 description 5996 "Configuration parameters relating to a secondary path which 5997 is a candidate for a particular primary path"; 5999 leaf secondary-path { 6000 type leafref { 6001 path "../../../../../p2p-secondary-paths/" + 6002 "p2p-secondary-path/name"; 6003 } 6004 description 6005 "A reference to the secondary path that should be utilised 6006 when the containing primary path option is in use"; 6007 } 6009 leaf path-setup-protocol { 6010 type identityref { 6011 base te-types:path-signaling-type; 6012 } 6013 description 6014 "Signaling protocol used to set up this tunnel"; 6015 } 6016 } 6018 grouping p2p-path-candidate-secondary-path-state { 6019 description 6020 "Operational state parameters relating to a secondary path 6021 which is a candidate for a particular primary path"; 6023 leaf active { 6024 type boolean; 6025 description 6026 "Indicates the current active path option that has 6027 been selected of the candidate secondary paths"; 6028 } 6029 } 6031 grouping tunnel-p2p-properties { 6032 description 6033 "Top level grouping for tunnel properties."; 6034 uses tunnel-p2p-params_config; 6035 container state { 6036 config false; 6037 description 6038 "Configuration applied parameters and state"; 6039 uses tunnel-p2p-params_state; 6040 } 6041 container p2p-primary-paths { 6042 description "Set of P2P primary aths container"; 6043 list p2p-primary-path { 6044 key "name"; 6045 description 6046 "List of primary paths for this tunnel."; 6047 uses p2p-primary-path-properties; 6048 uses p2p-reverse-primary-path-properties; 6049 container candidate-p2p-secondary-paths { 6050 description 6051 "The set of candidate secondary paths which may be used 6052 for this primary path. When secondary paths are specified 6053 in the list the path of the secondary LSP in use must be 6054 restricted to those path options referenced. The 6055 priority of the secondary paths is specified within the 6056 list. Higher priority values are less preferred - that is 6057 to say that a path with priority 0 is the most preferred 6058 path. In the case that the list is empty, any secondary 6059 path option may be utilised when the current primary path 6060 is in use."; 6061 list candidate-p2p-secondary-path { 6062 key "secondary-path"; 6063 description 6064 "List of secondary paths for this tunnel."; 6065 uses p2p-path-candidate-secondary-path-config; 6067 container state { 6068 config false; 6069 description 6070 "Configuration applied parameters and state"; 6071 uses p2p-path-candidate-secondary-path-state; 6072 } 6073 } 6074 } 6075 } 6076 } 6077 container p2p-secondary-paths { 6078 description "Set of P2P secondary paths container"; 6079 list p2p-secondary-path { 6080 key "name"; 6081 description 6082 "List of secondary paths for this tunnel."; 6083 uses p2p-secondary-path-properties; 6084 } 6085 } 6086 } 6088 grouping shared-resources-tunnels_state { 6089 description 6090 "The specific tunnel that is using the shared secondary path 6091 resources"; 6092 leaf lsp-shared-resources-tunnel { 6093 type te:tunnel-ref; 6094 description 6095 "Reference to the tunnel that sharing secondary path 6096 resources with this tunnel"; 6097 } 6098 } 6099 grouping shared-resources-tunnels { 6100 description 6101 "Set of tunnels that share secondary path resources with 6102 this tunnnel"; 6103 container shared-resources-tunnels { 6104 description 6105 "Set of tunnels that share secondary path resources with 6106 this tunnnel"; 6107 leaf-list lsp-shared-resources-tunnel { 6108 type te:tunnel-ref; 6109 description 6110 "Reference to the tunnel that sharing secondary path 6111 resources with this tunnel"; 6112 } 6113 } 6114 } 6116 grouping tunnel-actions { 6117 description "Tunnel actions"; 6118 action tunnel-action { 6119 description "Tunnel action"; 6120 input { 6121 leaf action-type { 6122 type identityref { 6123 base te-types:tunnel-action-type; 6124 } 6125 description "Tunnel action type"; 6126 } 6127 } 6128 output { 6129 leaf action-result { 6130 type identityref { 6131 base te-types:te-action-result; 6132 } 6133 description "The result of the RPC operation"; 6134 } 6135 } 6136 } 6137 } 6138 grouping tunnel-protection-actions { 6139 description 6140 "Protection external command actions"; 6141 action protection-external-commands { 6142 input { 6143 leaf protection-external-command { 6144 type identityref { 6145 base te-types:protection-external-commands; 6146 } 6147 description 6148 "Protection external command"; 6149 } 6150 leaf protection-group-ingress-node-id { 6151 type te-types:te-node-id; 6152 description 6153 "When specified, indicates whether the action is 6154 applied on ingress node. 6155 By default, if neither ingress nor egress node-id 6156 is set, the the action applies to ingress node only."; 6157 } 6158 leaf protection-group-egress-node-id { 6159 type te-types:te-node-id; 6160 description 6161 "When specified, indicates whether the action is 6162 applied on egress node. 6163 By default, if neither ingress nor egress node-id 6164 is set, the the action applies to ingress node only."; 6165 } 6166 leaf path-ref { 6167 type path-ref; 6168 description 6169 "Indicates to which path the external command applies to."; 6170 } 6171 leaf traffic-type { 6172 type enumeration { 6173 enum normal-traffic { 6174 description 6175 "The manual-switch or forced-switch command applies to 6176 the normal traffic (this Tunnel)."; 6177 } 6178 enum null-traffic { 6179 description 6180 "The manual-switch or forced-switch command applies to 6181 the null traffic."; 6182 } 6183 enum extra-traffic { 6184 description 6185 "The manual-switch or forced-switch command applies to 6186 the extra traffic (the extra-traffic Tunnel sharing 6187 protection bandwidth with this Tunnel)."; 6188 } 6189 } 6190 description 6191 "Indicates whether the manual-switch or forced-switch 6192 commands applies to the normal traffic, the null traffic 6193 or the extra-traffic."; 6194 reference 6195 "ITU-T G.808, RFC 4427"; 6197 } 6198 leaf extra-traffic-tunnel-ref { 6199 type te:tunnel-ref; 6200 description 6201 "In case there are multiple extra-traffic tunnels sharing 6202 protection bandwidth with this Tunnel (m:n protection), 6203 represents which extra-traffic Tunnel the manual-switch or 6204 forced-switch to extra-traffic command applies to."; 6205 } 6206 } 6207 } 6208 } 6210 /*** End of TE tunnel groupings ***/ 6212 /** 6213 * LSP related generic groupings 6214 */ 6215 grouping lsp-record-route-information_state { 6216 description "recorded route information grouping"; 6217 container lsp-record-route-subobjects { 6218 description "RSVP recorded route object information"; 6219 list record-route-subobject { 6220 when "../../origin-type = 'ingress'" { 6221 description "Applicable on non-ingress LSPs only"; 6222 } 6223 key "index"; 6224 description "Record route sub-object list"; 6225 uses te-types:record-route-subobject_state; 6226 } 6227 } 6228 } 6230 grouping lsps-state-grouping { 6231 description 6232 "LSPs state operational data grouping"; 6233 container lsps-state { 6234 config false; 6235 description "TE LSPs state container"; 6236 list lsp { 6237 key 6238 "source destination tunnel-id lsp-id "+ 6239 "extended-tunnel-id"; 6240 description "List of LSPs associated with the tunnel."; 6241 uses lsp-properties_state; 6242 uses lsp-record-route-information_state; 6243 } 6244 } 6246 } 6248 /*** End of TE LSP groupings ***/ 6250 /** 6251 * TE global generic groupings 6252 */ 6254 /* Global named admin-groups configuration data */ 6255 grouping named-admin-groups_config { 6256 description 6257 "Global named administrative groups configuration 6258 grouping"; 6259 leaf name { 6260 type string; 6261 description 6262 "A string name that uniquely identifies a TE 6263 interface named admin-group"; 6264 } 6265 leaf bit-position { 6266 type uint32; 6267 description 6268 "Bit position representing the administrative group"; 6269 } 6270 } 6271 grouping named-admin-groups { 6272 description 6273 "Global named administrative groups configuration 6274 grouping"; 6275 container named-admin-groups { 6276 description "TE named admin groups container"; 6277 list named-admin-group { 6278 if-feature te-types:extended-admin-groups; 6279 if-feature te-types:named-extended-admin-groups; 6280 key "name"; 6281 description 6282 "List of named TE admin-groups"; 6283 uses named-admin-groups_config; 6284 } 6285 } 6286 } 6288 /* Global named admin-srlgs configuration data */ 6289 grouping named-srlgs_config { 6290 description 6291 "Global named SRLGs configuration grouping"; 6292 leaf name { 6293 type string; 6294 description 6295 "A string name that uniquely identifies a TE 6296 interface named srlg"; 6297 } 6298 leaf group { 6299 type te-types:srlg; 6300 description "An SRLG value"; 6301 } 6302 leaf cost { 6303 type uint32; 6304 description 6305 "SRLG associated cost. Used during path to append 6306 the path cost when traversing a link with this SRLG"; 6307 } 6308 } 6310 grouping named-srlgs { 6311 description 6312 "Global named SRLGs configuration grouping"; 6313 container named-srlgs { 6314 description "TE named SRLGs container"; 6315 list named-srlg { 6316 if-feature te-types:named-srlg-groups; 6317 key "name"; 6318 description 6319 "A list of named SRLG groups"; 6320 uses named-srlgs_config; 6321 } 6322 } 6323 } 6325 /* Global named paths constraints configuration data */ 6326 grouping path-constraints_state { 6327 description 6328 "TE path constraints state"; 6329 leaf bandwidth-generic_state { 6330 type te-types:te-bandwidth; 6331 description 6332 "A technology agnostic requested bandwidth to use 6333 for path computation"; 6334 } 6335 leaf disjointness_state { 6336 type te-types:te-path-disjointness; 6337 description 6338 "The type of resource disjointness."; 6339 } 6340 } 6341 grouping path-constraints-common_config { 6342 description 6343 "Global named path constraints configuration 6344 grouping"; 6345 uses te-types:common-constraints_config; 6346 uses te-types:generic-path-metric-bounds; 6347 uses path-affinities; 6348 uses path-srlgs; 6349 uses te-types:path-route-objects; 6350 uses shared-resources-tunnels { 6351 description 6352 "Set of tunnels that are allowed to share secondary path 6353 resources of this tunnel"; 6354 } 6355 uses path-access-segment-info { 6356 description 6357 "Tunnel constraints induced by other segments."; 6358 } 6359 } 6361 grouping path-constraints-primary_config { 6362 description 6363 "Global named path constraints configuration 6364 grouping"; 6365 uses path-constraints-common_config; 6366 } 6368 grouping path-constraints-secondary_config { 6369 description 6370 "Global named path constraints configuration 6371 grouping"; 6372 uses path-constraints-common_config; 6373 uses te-types:generic-path-disjointness; 6374 } 6376 grouping path-constraints { 6377 description "Per path constraints"; 6378 uses path-constraints-common_config; 6379 container state { 6380 config false; 6381 description 6382 "Configuration applied parameters and state"; 6383 uses path-constraints_state; 6384 } 6385 } 6387 grouping named-path-constraints { 6388 description 6389 "Global named path constraints configuration 6390 grouping"; 6391 container named-path-constraints { 6392 description "TE named path constraints container"; 6393 list named-path-constraint { 6394 if-feature te-types:named-path-constraints; 6395 key "name"; 6396 leaf name { 6397 type string; 6398 description 6399 "A string name that uniquely identifies a 6400 path constraint set"; 6401 } 6402 uses path-constraints; 6403 description 6404 "A list of named path constraints"; 6405 } 6406 } 6407 } 6409 /* TE globals container data */ 6410 grouping globals-grouping { 6411 description 6412 "Globals TE system-wide configuration data grouping"; 6413 container globals { 6414 description 6415 "Globals TE system-wide configuration data container"; 6416 uses named-admin-groups; 6417 uses named-srlgs; 6418 uses named-path-constraints; 6419 } 6420 } 6422 /* TE tunnels container data */ 6423 grouping tunnels-grouping { 6424 description 6425 "Tunnels TE configuration data grouping"; 6426 container tunnels { 6427 description 6428 "Tunnels TE configuration data container"; 6430 list tunnel { 6431 key "name"; 6432 description "P2P TE tunnels list."; 6433 uses tunnel-p2p-properties; 6434 uses tunnel-actions; 6435 uses tunnel-protection-actions; 6436 } 6437 list tunnel-p2mp { 6438 key "name"; 6439 unique "identifier"; 6440 description "P2MP TE tunnels list."; 6441 uses tunnel-p2mp-properties; 6442 } 6443 } 6444 } 6446 /* TE LSPs ephemeral state container data */ 6447 grouping lsp-properties_state { 6448 description 6449 "LSPs state operational data grouping"; 6450 leaf source { 6451 type inet:ip-address; 6452 description 6453 "Tunnel sender address extracted from 6454 SENDER_TEMPLATE object"; 6455 reference "RFC3209"; 6456 } 6457 leaf destination { 6458 type inet:ip-address; 6459 description 6460 "Tunnel endpoint address extracted from 6461 SESSION object"; 6462 reference "RFC3209"; 6463 } 6464 leaf tunnel-id { 6465 type uint16; 6466 description 6467 "Tunnel identifier used in the SESSION 6468 that remains constant over the life 6469 of the tunnel."; 6470 reference "RFC3209"; 6471 } 6472 leaf lsp-id { 6473 type uint16; 6474 description 6475 "Identifier used in the SENDER_TEMPLATE 6476 and the FILTER_SPEC that can be changed 6477 to allow a sender to share resources with 6478 itself."; 6479 reference "RFC3209"; 6480 } 6481 leaf extended-tunnel-id { 6482 type inet:ip-address; 6483 description 6484 "Extended Tunnel ID of the LSP."; 6486 reference "RFC3209"; 6487 } 6488 leaf operational-state { 6489 type identityref { 6490 base te-types:lsp-state-type; 6491 } 6492 description "LSP operational state."; 6493 } 6494 leaf path-setup-protocol { 6495 type identityref { 6496 base te-types:path-signaling-type; 6497 } 6498 description 6499 "Signaling protocol used to set up this tunnel"; 6500 } 6501 leaf origin-type { 6502 type enumeration { 6503 enum ingress { 6504 description 6505 "Origin ingress"; 6506 } 6507 enum egress { 6508 description 6509 "Origin egress"; 6510 } 6511 enum transit { 6512 description 6513 "transit"; 6514 } 6515 } 6516 description 6517 "Origin type of LSP relative to the location 6518 of the local switch in the path."; 6519 } 6521 leaf lsp-resource-status { 6522 type enumeration { 6523 enum primary { 6524 description 6525 "A primary LSP is a fully established LSP for 6526 which the resource allocation has been committed 6527 at the data plane"; 6528 } 6529 enum secondary { 6530 description 6531 "A secondary LSP is an LSP that has been provisioned 6532 in the control plane only; e.g. resource allocation 6533 has not been committed at the data plane"; 6535 } 6536 } 6537 description "LSP resource allocation type"; 6538 reference "rfc4872, section 4.2.1"; 6539 } 6541 uses protection-restoration-params_state; 6542 } 6543 /*** End of TE global groupings ***/ 6545 /** 6546 * TE configurations container 6547 */ 6548 container te { 6549 presence "Enable TE feature."; 6550 description 6551 "TE global container."; 6553 /* TE Global Configuration Data */ 6554 uses globals-grouping; 6556 /* TE Tunnel Configuration Data */ 6557 uses tunnels-grouping; 6559 /* TE LSPs State Data */ 6560 uses lsps-state-grouping; 6562 } 6564 /* TE Global RPCs/execution Data */ 6565 rpc globals-rpc { 6566 description 6567 "Execution data for TE global."; 6568 } 6570 /* TE interfaces RPCs/execution Data */ 6571 rpc interfaces-rpc { 6572 description 6573 "Execution data for TE interfaces."; 6574 } 6576 /* TE Tunnel RPCs/execution Data */ 6577 rpc tunnels-rpc { 6578 description "TE tunnels RPC nodes"; 6579 input { 6580 container tunnel-info { 6581 description "Tunnel Identification"; 6582 choice type { 6583 description "Tunnel information type"; 6584 case tunnel-p2p { 6585 leaf p2p-id { 6586 type te:tunnel-ref; 6587 description "P2P TE tunnel"; 6588 } 6589 } 6590 case tunnel-p2mp { 6591 leaf p2mp-id { 6592 type te:tunnel-p2mp-ref; 6593 description "P2MP TE tunnel"; 6594 } 6595 } 6596 } 6597 } 6598 } 6599 output { 6600 container result { 6601 description 6602 "The container result of the RPC operation"; 6603 leaf result { 6604 type enumeration { 6605 enum success { 6606 description "Origin ingress"; 6607 } 6608 enum in-progress { 6609 description "Origin egress"; 6610 } 6611 enum fail { 6612 description "transit"; 6613 } 6614 } 6615 description "The result of the RPC operation"; 6616 } 6617 } 6618 } 6619 } 6621 /* TE Global Notification Data */ 6622 notification globals-notif { 6623 description 6624 "Notification messages for Global TE."; 6625 } 6627 /* TE Tunnel Notification Data */ 6628 notification tunnels-notif { 6629 description 6630 "Notification messages for TE tunnels."; 6632 } 6633 } 6634 6636 Figure 8: TE generic YANG module 6638 file "ietf-te-device@2018-02-15.yang" 6639 module ietf-te-device { 6641 namespace "urn:ietf:params:xml:ns:yang:ietf-te-device"; 6643 /* Replace with IANA when assigned */ 6644 prefix "te-dev"; 6646 /* Import TE generic types */ 6647 import ietf-te { 6648 prefix te; 6649 } 6651 /* Import TE generic types */ 6652 import ietf-te-types { 6653 prefix te-types; 6654 } 6656 import ietf-interfaces { 6657 prefix if; 6658 } 6660 import ietf-inet-types { 6661 prefix inet; 6662 } 6664 import ietf-routing-types { 6665 prefix "rt-types"; 6666 } 6668 organization 6669 "IETF Traffic Engineering Architecture and Signaling (TEAS) 6670 Working Group"; 6672 contact 6673 "WG Web: 6674 WG List: 6676 WG Chair: Lou Berger 6677 6679 WG Chair: Vishnu Pavan Beeram 6680 6682 Editor: Tarek Saad 6683 6685 Editor: Rakesh Gandhi 6686 6688 Editor: Vishnu Pavan Beeram 6689 6691 Editor: Himanshu Shah 6692 6694 Editor: Xufeng Liu 6695 6697 Editor: Xia Chen 6698 6700 Editor: Raqib Jones 6701 6703 Editor: Bin Wen 6704 "; 6706 description 6707 "YANG data module for TE device configurations, 6708 state, RPC and notifications."; 6710 revision "2018-02-15" { 6711 description "Latest update to TE device YANG module."; 6712 reference "TBA"; 6713 } 6715 /** 6716 * TE LSP device state grouping 6717 */ 6718 grouping lsps-device_state { 6719 description "TE LSP device state grouping"; 6720 container lsp-timers { 6721 when "../te:origin-type = 'ingress'" { 6722 description "Applicable to ingress LSPs only"; 6723 } 6724 description "Ingress LSP timers"; 6725 leaf life-time { 6726 type uint32; 6727 units seconds; 6728 description 6729 "lsp life time"; 6730 } 6732 leaf time-to-install { 6733 type uint32; 6734 units seconds; 6735 description 6736 "lsp installation delay time"; 6737 } 6739 leaf time-to-destroy { 6740 type uint32; 6741 units seconds; 6742 description 6743 "lsp expiration delay time"; 6744 } 6745 } 6747 container downstream-info { 6748 when "../te:origin-type != 'egress'" { 6749 description "Applicable to ingress LSPs only"; 6750 } 6751 description 6752 "downstream information"; 6754 leaf nhop { 6755 type inet:ip-address; 6756 description 6757 "downstream nexthop."; 6758 } 6760 leaf outgoing-interface { 6761 type if:interface-ref; 6762 description 6763 "downstream interface."; 6764 } 6766 leaf neighbor { 6767 type inet:ip-address; 6768 description 6769 "downstream neighbor."; 6770 } 6772 leaf label { 6773 type rt-types:generalized-label; 6774 description 6775 "downstream label."; 6776 } 6777 } 6779 container upstream-info { 6780 when "../te:origin-type != 'ingress'" { 6781 description "Applicable to non-ingress LSPs only"; 6782 } 6783 description 6784 "upstream information"; 6786 leaf phop { 6787 type inet:ip-address; 6788 description 6789 "upstream nexthop or previous-hop."; 6790 } 6792 leaf neighbor { 6793 type inet:ip-address; 6794 description 6795 "upstream neighbor."; 6796 } 6798 leaf label { 6799 type rt-types:generalized-label; 6800 description 6801 "upstream label."; 6802 } 6803 } 6804 } 6806 /** 6807 * Device general groupings. 6808 */ 6809 grouping tunnel-device_config { 6810 description "Device TE tunnel configs"; 6811 leaf path-invalidation-action { 6812 type identityref { 6813 base te-types:path-invalidation-action-type; 6814 } 6815 description "Tunnel path invalidtion action"; 6816 } 6817 } 6819 grouping lsp-device-timers_config { 6820 description "Device TE LSP timers configs"; 6821 leaf lsp-install-interval { 6822 type uint32; 6823 units seconds; 6824 description 6825 "lsp installation delay time"; 6826 } 6827 leaf lsp-cleanup-interval { 6828 type uint32; 6829 units seconds; 6830 description 6831 "lsp cleanup delay time"; 6832 } 6833 leaf lsp-invalidation-interval { 6834 type uint32; 6835 units seconds; 6836 description 6837 "lsp path invalidation before taking action delay time"; 6838 } 6839 } 6840 grouping lsp-device-timers { 6841 description "TE LSP timers configuration"; 6842 uses lsp-device-timers_config; 6843 } 6845 /** 6846 * TE global device generic groupings 6847 */ 6849 /* TE interface container data */ 6850 grouping interfaces-grouping { 6851 description 6852 "Interface TE configuration data grouping"; 6853 container interfaces { 6854 description 6855 "Configuration data model for TE interfaces."; 6856 uses te-all-attributes; 6857 list interface { 6858 key "interface"; 6859 description "TE interfaces."; 6860 leaf interface { 6861 type if:interface-ref; 6862 description 6863 "TE interface name."; 6864 } 6865 /* TE interface parameters */ 6866 uses te-attributes; 6867 } 6868 } 6869 } 6870 /** 6871 * TE interface device generic groupings 6872 */ 6873 grouping te-admin-groups_config { 6874 description 6875 "TE interface affinities grouping"; 6876 choice admin-group-type { 6877 description 6878 "TE interface administrative groups 6879 representation type"; 6880 case value-admin-groups { 6881 choice value-admin-group-type { 6882 description "choice of admin-groups"; 6883 case admin-groups { 6884 description 6885 "Administrative group/Resource 6886 class/Color."; 6887 leaf admin-group { 6888 type te-types:admin-group; 6889 description 6890 "TE interface administrative group"; 6891 } 6892 } 6893 case extended-admin-groups { 6894 if-feature te-types:extended-admin-groups; 6895 description 6896 "Extended administrative group/Resource 6897 class/Color."; 6898 leaf extended-admin-group { 6899 type te-types:extended-admin-group; 6900 description 6901 "TE interface extended administrativei 6902 group"; 6903 } 6904 } 6905 } 6906 } 6907 case named-admin-groups { 6908 list named-admin-groups { 6909 if-feature te-types:extended-admin-groups; 6910 if-feature te-types:named-extended-admin-groups; 6911 key named-admin-group; 6912 description 6913 "A list of named admin-group entries"; 6914 leaf named-admin-group { 6915 type leafref { 6916 path "../../../../te:globals/" + 6917 "te:named-admin-groups/te:named-admin-group/" + 6918 "te:name"; 6919 } 6920 description "A named admin-group entry"; 6921 } 6922 } 6923 } 6924 } 6925 } 6927 /* TE interface SRLGs */ 6928 grouping te-srlgs_config { 6929 description "TE interface SRLG grouping"; 6930 choice srlg-type { 6931 description "Choice of SRLG configuration"; 6932 case value-srlgs { 6933 list values { 6934 key "value"; 6935 description "List of SRLG values that 6936 this link is part of."; 6937 leaf value { 6938 type uint32 { 6939 range "0..4294967295"; 6940 } 6941 description 6942 "Value of the SRLG"; 6943 } 6944 } 6945 } 6946 case named-srlgs { 6947 list named-srlgs { 6948 if-feature te-types:named-srlg-groups; 6949 key named-srlg; 6950 description 6951 "A list of named SRLG entries"; 6952 leaf named-srlg { 6953 type leafref { 6954 path "../../../../te:globals/" + 6955 "te:named-srlgs/te:named-srlg/te:name"; 6956 } 6957 description 6958 "A named SRLG entry"; 6959 } 6960 } 6961 } 6962 } 6963 } 6965 grouping te-igp-flooding-bandwidth_config { 6966 description 6967 "Configurable items for igp flooding bandwidth 6968 threshold configuration."; 6969 leaf threshold-type { 6970 type enumeration { 6971 enum DELTA { 6972 description 6973 "DELTA indicates that the local 6974 system should flood IGP updates when a 6975 change in reserved bandwidth >= the specified 6976 delta occurs on the interface."; 6977 } 6978 enum THRESHOLD_CROSSED { 6979 description 6980 "THRESHOLD-CROSSED indicates that 6981 the local system should trigger an update (and 6982 hence flood) the reserved bandwidth when the 6983 reserved bandwidth changes such that it crosses, 6984 or becomes equal to one of the threshold values."; 6985 } 6986 } 6987 description 6988 "The type of threshold that should be used to specify the 6989 values at which bandwidth is flooded. DELTA indicates that 6990 the local system should flood IGP updates when a change in 6991 reserved bandwidth >= the specified delta occurs on the 6992 interface. Where THRESHOLD_CROSSED is specified, the local 6993 system should trigger an update (and hence flood) the 6994 reserved bandwidth when the reserved bandwidth changes such 6995 that it crosses, or becomes equal to one of the threshold 6996 values"; 6997 } 6999 leaf delta-percentage { 7000 when "../threshold-type = 'DELTA'" { 7001 description 7002 "The percentage delta can only be specified when the 7003 threshold type is specified to be a percentage delta of 7004 the reserved bandwidth"; 7005 } 7006 type te-types:percentage; 7007 description 7008 "The percentage of the maximum-reservable-bandwidth 7009 considered as the delta that results in an IGP update 7010 being flooded"; 7011 } 7012 leaf threshold-specification { 7013 when "../threshold-type = 'THRESHOLD_CROSSED'" { 7014 description 7015 "The selection of whether mirrored or separate threshold 7016 values are to be used requires user specified thresholds to 7017 be set"; 7018 } 7019 type enumeration { 7020 enum MIRRORED_UP_DOWN { 7021 description 7022 "MIRRORED_UP_DOWN indicates that a single set of 7023 threshold values should be used for both increasing 7024 and decreasing bandwidth when determining whether 7025 to trigger updated bandwidth values to be flooded 7026 in the IGP TE extensions."; 7027 } 7028 enum SEPARATE_UP_DOWN { 7029 description 7030 "SEPARATE_UP_DOWN indicates that a separate 7031 threshold values should be used for the increasing 7032 and decreasing bandwidth when determining whether 7033 to trigger updated bandwidth values to be flooded 7034 in the IGP TE extensions."; 7035 } 7036 } 7037 description 7038 "This value specifies whether a single set of threshold 7039 values should be used for both increasing and decreasing 7040 bandwidth when determining whether to trigger updated 7041 bandwidth values to be flooded in the IGP TE extensions. 7042 MIRRORED-UP-DOWN indicates that a single value (or set of 7043 values) should be used for both increasing and decreasing 7044 values, where SEPARATE-UP-DOWN specifies that the increasing 7045 and decreasing values will be separately specified"; 7046 } 7048 leaf-list up-thresholds { 7049 when "../threshold-type = 'THRESHOLD_CROSSED'" + 7050 "and ../threshold-specification = 'SEPARATE_UP_DOWN'" { 7051 description 7052 "A list of up-thresholds can only be specified when the 7053 bandwidth update is triggered based on crossing a 7054 threshold and separate up and down thresholds are 7055 required"; 7056 } 7057 type te-types:percentage; 7058 description 7059 "The thresholds (expressed as a percentage of the maximum 7060 reservable bandwidth) at which bandwidth updates are to be 7061 triggered when the bandwidth is increasing."; 7063 } 7065 leaf-list down-thresholds { 7066 when "../threshold-type = 'THRESHOLD_CROSSED'" + 7067 "and ../threshold-specification = 'SEPARATE_UP_DOWN'" { 7068 description 7069 "A list of down-thresholds can only be specified when the 7070 bandwidth update is triggered based on crossing a 7071 threshold and separate up and down thresholds are 7072 required"; 7073 } 7074 type te-types:percentage; 7075 description 7076 "The thresholds (expressed as a percentage of the maximum 7077 reservable bandwidth) at which bandwidth updates are to be 7078 triggered when the bandwidth is decreasing."; 7079 } 7081 leaf-list up-down-thresholds { 7082 when "../threshold-type = 'THRESHOLD_CROSSED'" + 7083 "and ../threshold-specification = 'MIRRORED_UP_DOWN'" { 7084 description 7085 "A list of thresholds corresponding to both increasing 7086 and decreasing bandwidths can be specified only when an 7087 update is triggered based on crossing a threshold, and 7088 the same up and down thresholds are required."; 7089 } 7090 type te-types:percentage; 7091 description 7092 "The thresholds (expressed as a percentage of the maximum 7093 reservable bandwidth of the interface) at which bandwidth 7094 updates are flooded - used both when the bandwidth is 7095 increasing and decreasing"; 7096 } 7097 } 7099 /* TE interface metric */ 7100 grouping te-metric_config { 7101 description "Interface TE metric grouping"; 7102 leaf te-metric { 7103 type te-types:te-metric; 7104 description "Interface TE metric."; 7105 } 7106 } 7108 /* TE interface switching capabilities */ 7109 grouping te-switching-cap_config { 7110 description 7111 "TE interface switching capabilities"; 7112 list switching-capabilities { 7113 key "switching-capability"; 7114 description 7115 "List of interface capabilities for this interface"; 7116 leaf switching-capability { 7117 type identityref { 7118 base te-types:switching-capabilities; 7119 } 7120 description 7121 "Switching Capability for this interface"; 7122 } 7123 leaf encoding { 7124 type identityref { 7125 base te-types:lsp-encoding-types; 7126 } 7127 description 7128 "Encoding supported by this interface"; 7129 } 7130 } 7131 } 7133 grouping te-advertisements_state { 7134 description 7135 "TE interface advertisements state grouping"; 7136 container te-advertisements_state { 7137 description 7138 "TE interface advertisements state container"; 7139 leaf flood-interval { 7140 type uint32; 7141 description 7142 "The periodic flooding interval"; 7143 } 7144 leaf last-flooded-time { 7145 type uint32; 7146 units seconds; 7147 description 7148 "Time elapsed since last flooding in seconds"; 7149 } 7150 leaf next-flooded-time { 7151 type uint32; 7152 units seconds; 7153 description 7154 "Time remained for next flooding in seconds"; 7155 } 7156 leaf last-flooded-trigger { 7157 type enumeration { 7158 enum link-up { 7159 description "Link-up flooding trigger"; 7160 } 7161 enum link-down { 7162 description "Link-up flooding trigger"; 7163 } 7164 enum threshold-up { 7165 description 7166 "Bandwidth reservation up threshold"; 7167 } 7168 enum threshold-down { 7169 description 7170 "Bandwidth reservation down threshold"; 7171 } 7172 enum bandwidth-change { 7173 description "Banwidth capacity change"; 7174 } 7175 enum user-initiated { 7176 description "Initiated by user"; 7177 } 7178 enum srlg-change { 7179 description "SRLG property change"; 7180 } 7181 enum periodic-timer { 7182 description "Periodic timer expired"; 7183 } 7184 } 7185 description "Trigger for the last flood"; 7186 } 7187 list advertized-level-areas { 7188 key level-area; 7189 description 7190 "List of areas the TE interface is advertised 7191 in"; 7192 leaf level-area { 7193 type uint32; 7194 description 7195 "The IGP area or level where the TE 7196 interface state is advertised in"; 7197 } 7198 } 7199 } 7200 } 7202 /* TE interface attributes grouping */ 7203 grouping te-attributes { 7204 description "TE attributes configuration grouping"; 7205 uses te-metric_config; 7206 uses te-admin-groups_config; 7207 uses te-srlgs_config; 7208 uses te-igp-flooding-bandwidth_config; 7209 uses te-switching-cap_config; 7210 container state { 7211 config false; 7212 description 7213 "State parameters for interface TE metric"; 7214 uses te-advertisements_state; 7215 } 7216 } 7218 grouping te-all-attributes { 7219 description 7220 "TE attributes configuration grouping for all 7221 interfaces"; 7222 uses te-igp-flooding-bandwidth_config; 7223 } 7224 /*** End of TE interfaces device groupings ***/ 7226 /** 7227 * TE device augmentations 7228 */ 7229 augment "/te:te" { 7230 description "TE global container."; 7231 /* TE Interface Configuration Data */ 7232 uses interfaces-grouping; 7233 } 7235 /* TE globals device augmentation */ 7236 augment "/te:te/te:globals" { 7237 description 7238 "Global TE device specific configuration parameters"; 7239 uses lsp-device-timers; 7240 } 7242 /* TE tunnels device configuration augmentation */ 7243 augment "/te:te/te:tunnels/te:tunnel" { 7244 description 7245 "Tunnel device dependent augmentation"; 7246 uses lsp-device-timers_config; 7247 } 7248 augment "/te:te/te:tunnels/te:tunnel/te:state" { 7249 description 7250 "Tunnel device dependent augmentation"; 7251 uses lsp-device-timers_config; 7252 } 7253 /* TE LSPs device state augmentation */ 7254 augment "/te:te/te:lsps-state/te:lsp" { 7255 description 7256 "LSP device dependent augmentation"; 7257 uses lsps-device_state; 7258 } 7260 augment "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + 7261 "/te:p2p-secondary-path/te:state/te:lsps/te:lsp" { 7262 description 7263 "LSP device dependent augmentation"; 7264 uses lsps-device_state; 7265 } 7267 augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + 7268 "/te:p2p-primary-path/te:state/te:lsps/te:lsp" { 7269 description 7270 "LSP device dependent augmentation"; 7271 uses lsps-device_state; 7272 } 7274 /* TE interfaces RPCs/execution Data */ 7275 rpc interfaces-rpc { 7276 description 7277 "Execution data for TE interfaces."; 7278 } 7280 /* TE Interfaces Notification Data */ 7281 notification interfaces-notif { 7282 description 7283 "Notification messages for TE interfaces."; 7284 } 7285 } 7286 7288 Figure 9: TE MPLS specific types YANG module 7290 file "ietf-te-mpls@2018-02-15.yang" 7291 module ietf-te-mpls { 7293 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls"; 7295 /* Replace with IANA when assigned */ 7296 prefix "te-mpls"; 7298 /* Import TE base model */ 7299 import ietf-te { 7300 prefix te; 7302 } 7304 /* Import TE MPLS types */ 7305 import ietf-te-mpls-types { 7306 prefix "te-mpls-types"; 7307 } 7309 /* Import TE generic types */ 7310 import ietf-te-types { 7311 prefix te-types; 7312 } 7314 /* Import routing types */ 7315 import ietf-routing-types { 7316 prefix "rt-types"; 7317 } 7319 import ietf-mpls-static { 7320 prefix mpls-static; 7321 } 7323 import ietf-inet-types { 7324 prefix inet; 7325 } 7327 organization 7328 "IETF Traffic Engineering Architecture and Signaling (TEAS) 7329 Working Group"; 7331 contact 7332 "WG Web: 7333 WG List: 7335 WG Chair: Lou Berger 7336 7338 WG Chair: Vishnu Pavan Beeram 7339 7341 Editor: Tarek Saad 7342 7344 Editor: Rakesh Gandhi 7345 7347 Editor: Vishnu Pavan Beeram 7348 7350 Editor: Himanshu Shah 7351 7353 Editor: Xufeng Liu 7354 7356 Editor: Xia Chen 7357 7359 Editor: Raqib Jones 7360 7362 Editor: Bin Wen 7363 "; 7365 description 7366 "YANG data module for MPLS TE configurations, 7367 state, RPC and notifications."; 7369 revision "2018-02-15" { 7370 description "Latest update to MPLS TE YANG module."; 7371 reference "TBD"; 7372 } 7374 /* MPLS TE tunnel properties*/ 7376 grouping tunnel-igp-shortcut_config { 7377 description "TE tunnel IGP shortcut configs"; 7378 leaf shortcut-eligible { 7379 type boolean; 7380 default "true"; 7381 description 7382 "Whether this LSP is considered to be eligible for us as a 7383 shortcut in the IGP. In the case that this leaf is set to 7384 true, the IGP SPF calculation uses the metric specified to 7385 determine whether traffic should be carried over this LSP"; 7386 } 7387 leaf metric-type { 7388 type identityref { 7389 base te-types:LSP_METRIC_TYPE; 7390 } 7391 default te-types:LSP_METRIC_INHERITED; 7392 description 7393 "The type of metric specification that should be used to set 7394 the LSP(s) metric"; 7395 } 7396 leaf metric { 7397 type int32; 7398 description 7399 "The value of the metric that should be specified. The value 7400 supplied in this leaf is used in conjunction with the metric 7401 type to determine the value of the metric used by the system. 7402 Where the metric-type is set to LSP_METRIC_ABSOLUTE - the 7403 value of this leaf is used directly; where it is set to 7404 LSP_METRIC_RELATIVE, the relevant (positive or negative) 7405 offset is used to formulate the metric; where metric-type 7406 is LSP_METRIC_INHERITED, the value of this leaf is not 7407 utilised"; 7408 } 7409 leaf-list routing-afs { 7410 type inet:ip-version; 7411 description 7412 "Address families"; 7413 } 7414 } 7416 grouping tunnel-igp-shortcuts { 7417 description 7418 "TE tunnel IGP shortcut grouping"; 7419 container tunnel-igp-shortcut { 7420 description 7421 "Tunnel IGP shortcut properties"; 7422 uses tunnel-igp-shortcut_config; 7423 } 7424 } 7426 grouping tunnel-forwarding-adjacency_configs { 7427 description "Tunnel forwarding adjacency grouping"; 7428 leaf binding-label { 7429 type rt-types:mpls-label; 7430 description "MPLS tunnel binding label"; 7431 } 7432 leaf load-share { 7433 type uint32 { 7434 range "1..4294967295"; 7435 } 7436 description "ECMP tunnel forwarding 7437 load-share factor."; 7438 } 7439 leaf policy-class { 7440 type uint8 { 7441 range "1..7"; 7442 } 7443 description 7444 "The class associated with this tunnel"; 7445 } 7447 } 7449 grouping tunnel-forwarding-adjacency { 7450 description "Properties for using tunnel in forwarding."; 7451 container forwarding { 7452 description 7453 "Tunnel forwarding properties container"; 7454 uses tunnel-forwarding-adjacency_configs; 7455 } 7456 } 7458 /*** End of MPLS TE tunnel configuration/state */ 7459 grouping te-lsp-auto-bandwidth_config { 7460 description 7461 "Configuration parameters related to autobandwidth"; 7463 leaf enabled { 7464 type boolean; 7465 default false; 7466 description 7467 "enables mpls auto-bandwidth on the 7468 lsp"; 7469 } 7471 leaf min-bw { 7472 type te-mpls-types:bandwidth-kbps; 7473 description 7474 "set the minimum bandwidth in Kbps for an 7475 auto-bandwidth LSP"; 7476 } 7478 leaf max-bw { 7479 type te-mpls-types:bandwidth-kbps; 7480 description 7481 "set the maximum bandwidth in Kbps for an 7482 auto-bandwidth LSP"; 7483 } 7485 leaf adjust-interval { 7486 type uint32; 7487 description 7488 "time in seconds between adjustments to 7489 LSP bandwidth"; 7490 } 7492 leaf adjust-threshold { 7493 type te-types:percentage; 7494 description 7495 "percentage difference between the LSP's 7496 specified bandwidth and its current bandwidth 7497 allocation -- if the difference is greater than the 7498 specified percentage, auto-bandwidth adjustment is 7499 triggered"; 7500 } 7501 } 7503 grouping te-lsp-overflow_config { 7504 description 7505 "configuration for mpls lsp bandwidth 7506 overflow adjustment"; 7508 leaf enabled { 7509 type boolean; 7510 default false; 7511 description 7512 "enables mpls lsp bandwidth overflow 7513 adjustment on the lsp"; 7514 } 7516 leaf overflow-threshold { 7517 type te-types:percentage; 7518 description 7519 "bandwidth percentage change to trigger 7520 an overflow event"; 7522 } 7524 leaf trigger-event-count { 7525 type uint16; 7526 description 7527 "number of consecutive overflow sample 7528 events needed to trigger an overflow adjustment"; 7529 } 7530 } 7532 grouping te-lsp-underflow_config { 7533 description 7534 "configuration for mpls lsp bandwidth 7535 underflow adjustment"; 7537 leaf enabled { 7538 type boolean; 7539 default false; 7540 description 7541 "enables bandwidth underflow 7542 adjustment on the lsp"; 7544 } 7546 leaf underflow-threshold { 7547 type te-types:percentage; 7548 description 7549 "bandwidth percentage change to trigger 7550 and underflow event"; 7551 } 7553 leaf trigger-event-count { 7554 type uint16; 7555 description 7556 "number of consecutive underflow sample 7557 events needed to trigger an underflow adjustment"; 7558 } 7559 } 7560 grouping te-tunnel-bandwidth_config { 7561 description 7562 "Configuration parameters related to bandwidth for a tunnel"; 7564 leaf specification-type { 7565 type te-mpls-types:te-bandwidth-type; 7566 default SPECIFIED; 7567 description 7568 "The method used for settign the bandwidth, either explicitly 7569 specified or configured"; 7570 } 7572 leaf set-bandwidth { 7573 when "../specification-type = 'SPECIFIED'" { 7574 description 7575 "The bandwidth value when bandwidth is explicitly 7576 specified"; 7577 } 7578 type te-mpls-types:bandwidth-kbps; 7579 description 7580 "set bandwidth explicitly, e.g., using 7581 offline calculation"; 7582 } 7583 leaf class-type { 7584 type te-types:te-ds-class; 7585 description 7586 "The Class-Type of traffic transported by the LSP."; 7587 reference "RFC4124: section-4.3.1"; 7588 } 7589 } 7591 grouping te-tunnel-bandwidth_state { 7592 description 7593 "Operational state parameters relating to bandwidth for a tunnel"; 7595 leaf signaled-bandwidth { 7596 type te-mpls-types:bandwidth-kbps; 7597 description 7598 "The currently signaled bandwidth of the LSP. In the case where 7599 the bandwidth is specified explicitly, then this will match the 7600 value of the set-bandwidth leaf; in cases where the bandwidth is 7601 dynamically computed by the system, the current value of the 7602 bandwidth should be reflected."; 7603 } 7604 } 7606 grouping tunnel-bandwidth_top { 7607 description 7608 "Top level grouping for specifying bandwidth for a tunnel"; 7610 container bandwidth-mpls { 7611 description 7612 "Bandwidth configuration for TE LSPs"; 7614 uses te-tunnel-bandwidth_config; 7616 container state { 7617 config false; 7618 description 7619 "State parameters related to bandwidth 7620 configuration of TE tunnels"; 7621 uses te-tunnel-bandwidth_state; 7622 } 7624 container auto-bandwidth { 7625 when "../specification-type = 'AUTO'" { 7626 description 7627 "Include this container for auto bandwidth 7628 specific configuration"; 7629 } 7630 description 7631 "Parameters related to auto-bandwidth"; 7633 uses te-lsp-auto-bandwidth_config; 7635 container overflow { 7636 description 7637 "configuration of MPLS overflow bandwidth 7638 adjustement for the LSP"; 7640 uses te-lsp-overflow_config; 7641 } 7643 container underflow { 7644 description 7645 "configuration of MPLS underflow bandwidth 7646 adjustement for the LSP"; 7648 uses te-lsp-underflow_config; 7649 } 7650 } 7651 } 7652 } 7654 grouping te-path-bandwidth_top { 7655 description 7656 "Top level grouping for specifying bandwidth for a TE path"; 7658 container bandwidth { 7659 description 7660 "Bandwidth configuration for TE LSPs"; 7662 uses te-tunnel-bandwidth_config; 7663 container state { 7664 config false; 7665 description 7666 "State parameters related to bandwidth 7667 configuration of TE tunnels"; 7668 uses te-tunnel-bandwidth_state; 7669 } 7670 } 7671 } 7673 /** 7674 * MPLS TE augmentations 7675 */ 7677 /* MPLS TE tunnel augmentations */ 7678 augment "/te:te/te:tunnels/te:tunnel" { 7679 description "MPLS TE tunnel config augmentations"; 7680 uses tunnel-igp-shortcuts; 7681 uses tunnel-forwarding-adjacency; 7682 uses tunnel-bandwidth_top; 7683 } 7685 /* MPLS TE LSPs augmentations */ 7686 augment "/te:te/te:tunnels/te:tunnel/" + 7687 "te:p2p-primary-paths/te:p2p-primary-path" { 7688 when "/te:te/te:tunnels/te:tunnel" + 7689 "/te:p2p-primary-paths/te:p2p-primary-path" + 7690 "/te:path-setup-protocol = 'te-types:path-setup-static'" { 7691 description 7692 "When the path is statically provisioned"; 7693 } 7694 description "MPLS TE LSP augmentation"; 7695 leaf static-lsp-name { 7696 type mpls-static:static-lsp-ref; 7697 description "Static LSP name"; 7698 } 7699 } 7701 augment "/te:te/te:tunnels/te:tunnel/" + 7702 "te:p2p-primary-paths/te:p2p-primary-path/" + 7703 "te:state" { 7704 description "MPLS TE LSP augmentation"; 7705 leaf static-lsp-name { 7706 type mpls-static:static-lsp-ref; 7707 description "Static LSP name"; 7708 } 7709 } 7710 augment "/te:te/te:tunnels/te:tunnel/" + 7711 "te:p2p-secondary-paths/te:p2p-secondary-path" { 7712 when "/te:te/te:tunnels/te:tunnel" + 7713 "/te:p2p-secondary-paths/te:p2p-secondary-path/" + 7714 "te:path-setup-protocol = 'te-types:path-setup-static'" { 7715 description 7716 "When the path is statically provisioned"; 7717 } 7718 description "MPLS TE LSP augmentation"; 7719 leaf static-lsp-name { 7720 type mpls-static:static-lsp-ref; 7721 description "Static LSP name"; 7722 } 7723 } 7724 augment "/te:te/te:tunnels/te:tunnel/" + 7725 "te:p2p-secondary-paths/te:p2p-secondary-path/" + 7726 "te:state" { 7727 description "MPLS TE LSP augmentation"; 7728 leaf static-lsp-name { 7729 type mpls-static:static-lsp-ref; 7730 description "Static LSP name"; 7731 } 7732 } 7733 augment "/te:te/te:globals/te:named-path-constraints/" + 7734 "te:named-path-constraint" { 7735 description "foo"; 7736 uses te-path-bandwidth_top; 7737 } 7738 } 7739 7741 Figure 10: TE MPLS YANG module 7743 file "ietf-te-mpls-types@2018-02-15.yang" 7744 module ietf-te-mpls-types { 7746 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls-types"; 7748 /* Replace with IANA when assigned */ 7749 prefix "te-mpls-types"; 7751 organization 7752 "IETF TEAS Working Group"; 7754 contact "Fill me"; 7756 description 7757 "This module contains a collection of generally 7758 useful TE specific YANG data type defintions."; 7760 revision "2018-02-15" { 7761 description "Latest revision of TE MPLS types"; 7762 reference "RFC3209"; 7763 } 7765 identity backup-protection-type { 7766 description 7767 "Base identity for backup protection type"; 7768 } 7770 identity backup-protection-link { 7771 base backup-protection-type; 7772 description 7773 "backup provides link protection only"; 7774 } 7776 identity backup-protection-node-link { 7777 base backup-protection-type; 7778 description 7779 "backup offers node (preferred) or link protection"; 7780 } 7781 identity bc-model-type { 7782 description 7783 "Base identity for Diffserv-TE bandwidth constraint 7784 model type"; 7785 } 7787 identity bc-model-rdm { 7788 base bc-model-type; 7789 description 7790 "Russian Doll bandwidth constraint model type."; 7791 } 7793 identity bc-model-mam { 7794 base bc-model-type; 7795 description 7796 "Maximum Allocation bandwidth constraint 7797 model type."; 7798 } 7800 identity bc-model-mar { 7801 base bc-model-type; 7802 description 7803 "Maximum Allocation with Reservation 7804 bandwidth constraint model type."; 7805 } 7807 typedef bandwidth-kbps { 7808 type uint64; 7809 units "Kbps"; 7810 description 7811 "Bandwidth values expressed in kilobits per second"; 7812 } 7814 typedef bandwidth-mbps { 7815 type uint64; 7816 units "Mbps"; 7817 description 7818 "Bandwidth values expressed in megabits per second"; 7819 } 7821 typedef bandwidth-gbps { 7822 type uint64; 7823 units "Gbps"; 7824 description 7825 "Bandwidth values expressed in gigabits per second"; 7826 } 7828 typedef te-bandwidth-type { 7829 type enumeration { 7830 enum SPECIFIED { 7831 description 7832 "Bandwidth is explicitly specified"; 7833 } 7834 enum AUTO { 7835 description 7836 "Bandwidth is automatically computed"; 7837 } 7838 } 7839 description 7840 "enumerated type for specifying whether bandwidth is 7841 explicitly specified or automatically computed"; 7842 } 7844 typedef bfd-type { 7845 type enumeration { 7846 enum classical { 7847 description "BFD classical session type."; 7848 } 7849 enum seamless { 7850 description "BFD seamless session type."; 7851 } 7852 } 7853 default "classical"; 7854 description 7855 "Type of BFD session"; 7856 } 7858 typedef bfd-encap-mode-type { 7859 type enumeration { 7860 enum gal { 7861 description 7862 "BFD with GAL mode"; 7863 } 7864 enum ip { 7865 description 7866 "BFD with IP mode"; 7867 } 7868 } 7869 default ip; 7870 description 7871 "Possible BFD transport modes when running over TE 7872 LSPs."; 7873 } 7874 } 7875 7876 Figure 11: TE MPLS types YANG module 7878 file "ietf-te-sr-mpls@2018-02-15.yang" 7879 module ietf-te-sr-mpls { 7881 namespace "urn:ietf:params:xml:ns:yang:ietf-te-sr-mpls"; 7883 /* Replace with IANA when assigned */ 7884 prefix "te-sr-mpls"; 7886 /* Import TE generic types */ 7887 import ietf-te { 7888 prefix te; 7889 } 7891 /* Import TE generic types */ 7892 import ietf-te-types { 7893 prefix te-types; 7894 } 7896 organization 7897 "IETF Traffic Engineering Architecture and Signaling (TEAS) 7898 Working Group"; 7900 contact 7901 "WG Web: 7902 WG List: 7904 WG Chair: Lou Berger 7905 7907 WG Chair: Vishnu Pavan Beeram 7908 7910 Editor: Tarek Saad 7911 7913 Editor: Rakesh Gandhi 7914 7916 Editor: Vishnu Pavan Beeram 7917 7919 Editor: Himanshu Shah 7920 7922 Editor: Xufeng Liu 7923 7925 Editor: Xia Chen 7926 7928 Editor: Raqib Jones 7929 7931 Editor: Bin Wen 7932 "; 7934 description 7935 "YANG data module for MPLS TE configurations, 7936 state, RPC and notifications."; 7938 revision "2018-02-15" { 7939 description "Latest update to MPLS TE YANG module."; 7940 reference "TBD"; 7941 } 7943 identity sr-protection-type { 7944 description 7945 "The Adj-SID base protection types"; 7946 } 7948 identity sr-protection-type-protected { 7949 base sr-protection-type; 7950 description 7951 "The Adj-SID is eligible if protected"; 7952 } 7954 identity sr-protection-type-unprotected { 7955 base sr-protection-type; 7956 description 7957 "The Adj-SID is eligible if unprotected"; 7958 } 7960 identity sr-protection-type-any { 7961 base sr-protection-type; 7962 description 7963 "The Adj-SID is eligible if protected or unprotected"; 7964 } 7966 typedef te-sid-selection-mode { 7967 type enumeration { 7968 enum ADJ_SID_ONLY { 7969 description 7970 "The SR-TE tunnel should only use adjacency SIDs 7971 to build the SID stack to be pushed for the LSP"; 7972 } 7973 enum MIXED_MODE { 7974 description 7975 "The SR-TE tunnel can use a mix of adjacency 7976 and prefix SIDs to build the SID stack to be pushed 7977 to the LSP"; 7978 } 7979 } 7980 description "SID selection mode type"; 7981 } 7983 /* MPLS SR-TE tunnel properties*/ 7984 grouping tunnel-sr-mpls-properties_config { 7985 description "MPLS TE SR tunnel properties"; 7986 leaf path-signaling-type { 7987 type identityref { 7988 base te-types:path-signaling-type; 7989 } 7990 description "TE tunnel path signaling type"; 7991 } 7992 } 7994 grouping te-sr-named-path-constraints_config { 7995 description 7996 "Configuration parameters relating to SR-TE LSPs"; 7998 leaf sid-selection-mode { 7999 type te-sid-selection-mode; 8000 default MIXED_MODE; 8001 description 8002 "The restrictions placed on the SIDs to be selected by the 8003 calculation method for the explicit path when it is 8004 instantiated for a SR-TE LSP"; 8005 } 8007 leaf sid-protection { 8008 type identityref { 8009 base sr-protection-type; 8010 } 8011 default sr-protection-type-any; 8012 description 8013 "When set to protected only SIDs that are 8014 protected are to be selected by the calculating method 8015 when the explicit path is instantiated by a SR-TE LSP."; 8016 } 8017 } 8019 grouping te-sr-named-path-constraints { 8020 description "Named TE SR path constraints grouping"; 8021 uses te-sr-named-path-constraints_config; 8022 } 8024 /*** End of MPLS SR-TE tunnel configuration/state */ 8026 /** 8027 * MPLS TE augmentations 8028 */ 8029 augment "/te:te/te:globals/te:named-path-constraints" + 8030 "/te:named-path-constraint" { 8031 description 8032 "Augmentations for MPLS SR-TE config named constraints"; 8033 uses te-sr-named-path-constraints; 8034 } 8036 /* MPLS TE tunnel augmentations */ 8038 /* MPLS TE LSPs augmentations */ 8039 } 8040 8042 Figure 12: SR TE MPLS YANG module 8044 5. IANA Considerations 8046 This document registers the following URIs in the IETF XML registry 8047 [RFC3688]. Following the format in [RFC3688], the following 8048 registration is requested to be made. 8050 URI: urn:ietf:params:xml:ns:yang:ietf-te XML: N/A, the requested URI 8051 is an XML namespace. 8053 URI: urn:ietf:params:xml:ns:yang:ietf-te-device XML: N/A, the 8054 requested URI is an XML namespace. 8056 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls XML: N/A, the requested 8057 URI is an XML namespace. 8059 URI: urn:ietf:params:xml:ns:yang:ietf-te-sr-mpls XML: N/A, the 8060 requested URI is an XML namespace. 8062 URI: urn:ietf:params:xml:ns:yang:ietf-te-types XML: N/A, the 8063 requested URI is an XML namespace. 8065 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls-types XML: N/A, the 8066 requested URI is an XML namespace. 8068 This document registers a YANG module in the YANG Module Names 8069 registry [RFC6020]. 8071 name: ietf-te namespace: urn:ietf:params:xml:ns:yang:ietf-te prefix: 8072 ietf-te reference: RFC3209 8074 name: ietf-te-device namespace: urn:ietf:params:xml:ns:yang:ietf-te 8075 prefix: ietf-te-device reference: RFC3209 8077 name: ietf-te-mpls namespace: urn:ietf:params:xml:ns:yang:ietf-te- 8078 mpls prefix: ietf-te-mpls reference: RFC3209 8080 name: ietf-te-sr-mpls namespace: urn:ietf:params:xml:ns:yang:ietf-te- 8081 sr-mpls prefix: ietf-te-sr-mpls 8083 name: ietf-te-types namespace: urn:ietf:params:xml:ns:yang:ietf-te- 8084 types prefix: ietf-te-types reference: RFC3209 8086 name: ietf-te-mpls-types namespace: urn:ietf:params:xml:ns:yang:ietf- 8087 te-mpls-types prefix: ietf-te-mpls-types reference: RFC3209 8089 6. Security Considerations 8091 The YANG module defined in this memo is designed to be accessed via 8092 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 8093 secure transport layer and the mandatory-to-implement secure 8094 transport is SSH [RFC6242]. The NETCONF access control model 8095 [RFC8341] provides means to restrict access for particular NETCONF 8097 users to a pre-configured subset of all available NETCONF protocol 8098 operations and content. 8100 There are a number of data nodes defined in the YANG module which are 8101 writable/creatable/deletable (i.e., config true, which is the 8102 default). These data nodes may be considered sensitive or vulnerable 8103 in some network environments. Write operations (e.g., ) 8104 to these data nodes without proper protection can have a negative 8105 effect on network operations. Following are the subtrees and data 8106 nodes and their sensitivity/vulnerability: 8108 "/te/globals": This module specifies the global TE configurations on 8109 a device. Unauthorized access to this container could cause the 8110 device to ignore packets it should receive and process. 8112 "/te/tunnels": This list specifies the configured TE tunnels on a 8113 device. Unauthorized access to this list could cause the device to 8114 ignore packets it should receive and process. 8116 "/te/lsps-state": This list specifies the state derived LSPs. 8117 Unauthorized access to this list could cause the device to ignore 8118 packets it should receive and process. 8120 "/te/interfaces": This list specifies the configured TE interfaces on 8121 a device. Unauthorized access to this list could cause the device to 8122 ignore packets it should receive and process. 8124 7. Acknowledgement 8126 The authors would like to thank the members of the multi-vendor YANG 8127 design team who are involved in the definition of this model. 8129 The authors would also like to thank Loa Andersson, Lou Berger, 8130 Sergio Belotti, Italo Busi, Carlo Perocchio, Francesco Lazzeri, Aihua 8131 Guo, Dhruv Dhody, Anurag Sharma, and Xian Zhang for their comments 8132 and providing valuable feedback on this document. 8134 8. Contributors 8136 Xia Chen 8137 Huawei Technologies 8139 Email: jescia.chenxia@huawei.com 8141 Raqib Jones 8142 Brocade 8144 Email: raqib@Brocade.com 8146 Bin Wen 8147 Comcast 8149 Email: Bin_Wen@cable.comcast.com 8151 9. Normative References 8153 [I-D.ietf-teas-yang-rsvp] 8154 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 8155 and H. Shah, "A YANG Data Model for Resource Reservation 8156 Protocol (RSVP)", draft-ietf-teas-yang-rsvp-09 (work in 8157 progress), May 2018. 8159 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 8160 Requirement Levels", BCP 14, RFC 2119, 8161 DOI 10.17487/RFC2119, March 1997, 8162 . 8164 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 8165 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 8166 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 8167 . 8169 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 8170 Switching (GMPLS) Signaling Resource ReserVation Protocol- 8171 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, 8172 DOI 10.17487/RFC3473, January 2003, 8173 . 8175 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 8176 DOI 10.17487/RFC3688, January 2004, 8177 . 8179 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 8180 the Network Configuration Protocol (NETCONF)", RFC 6020, 8181 DOI 10.17487/RFC6020, October 2010, 8182 . 8184 [RFC6107] Shiomoto, K., Ed. and A. Farrel, Ed., "Procedures for 8185 Dynamically Signaled Hierarchical Label Switched Paths", 8186 RFC 6107, DOI 10.17487/RFC6107, February 2011, 8187 . 8189 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 8190 and A. Bierman, Ed., "Network Configuration Protocol 8191 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 8192 . 8194 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 8195 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 8196 . 8198 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 8199 RFC 6991, DOI 10.17487/RFC6991, July 2013, 8200 . 8202 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 8203 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 8204 . 8206 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 8207 Access Control Model", STD 91, RFC 8341, 8208 DOI 10.17487/RFC8341, March 2018, 8209 . 8211 Authors' Addresses 8213 Tarek Saad (editor) 8214 Cisco Systems Inc 8216 Email: tsaad@cisco.com 8218 Rakesh Gandhi 8219 Cisco Systems Inc 8221 Email: rgandhi@cisco.com 8223 Xufeng Liu 8224 Jabil 8226 Email: Xufeng_Liu@jabil.com 8228 Vishnu Pavan Beeram 8229 Juniper Networks 8231 Email: vbeeram@juniper.net 8233 Himanshu Shah 8234 Ciena 8236 Email: hshah@ciena.com 8238 Igor Bryskin 8239 Huawei Technologies 8241 Email: Igor.Bryskin@huawei.com