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