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