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