idnits 2.17.1 draft-ietf-teas-yang-te-14.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 05, 2018) is 2237 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 6, 2018 X. Liu 6 Jabil 7 V. Beeram 8 Juniper Networks 9 H. Shah 10 Ciena 11 I. Bryskin 12 Huawei Technologies 13 March 05, 2018 15 A YANG Data Model for Traffic Engineering Tunnels and Interfaces 16 draft-ietf-teas-yang-te-14 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 6, 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-05.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-05" { 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 ***/ 4521 grouping optimizations_config { 4522 description "Optimization metrics configuration grouping"; 4523 leaf metric-type { 4524 type identityref { 4525 base te-types:path-metric-type; 4526 } 4527 description "TE path metric type"; 4528 } 4529 leaf weight { 4530 type uint8; 4531 description "TE path metric normalization weight"; 4532 } 4533 container explicit-route-exclude-objects { 4534 when "../metric-type = " + 4535 "'te-types:path-metric-optimize-excludes'"; 4536 description 4537 "Container for the exclude route object list"; 4538 uses path-route-exclude-objects; 4539 } 4540 container explicit-route-include-objects { 4541 when "../metric-type = " + 4542 "'te-types:path-metric-optimize-includes'"; 4543 description 4544 "Container for the include route object list"; 4545 uses path-route-include-objects; 4546 } 4547 } 4549 grouping common-constraints_config { 4550 description 4551 "Common constraints grouping that can be set on 4552 a constraint set or directly on the tunnel"; 4554 uses te-types:te-bandwidth { 4555 description 4556 "A requested bandwidth to use for path computation"; 4557 } 4559 leaf setup-priority { 4560 type uint8 { 4561 range "0..7"; 4562 } 4563 description 4564 "TE LSP requested setup priority"; 4565 reference "RFC3209"; 4566 } 4567 leaf hold-priority { 4568 type uint8 { 4569 range "0..7"; 4570 } 4571 description 4572 "TE LSP requested hold priority"; 4573 reference "RFC3209"; 4574 } 4575 leaf signaling-type { 4576 type identityref { 4577 base te-types:path-signaling-type; 4578 } 4579 description "TE tunnel path signaling type"; 4580 } 4581 } 4583 grouping tunnel-constraints_config { 4584 description 4585 "Tunnel constraints grouping that can be set on 4586 a constraint set or directly on the tunnel"; 4587 uses te-types:te-topology-identifier; 4588 uses te-types:common-constraints_config; 4589 } 4591 grouping path-metrics-bounds_config { 4592 description "TE path metric bounds grouping"; 4593 leaf metric-type { 4594 type identityref { 4595 base te-types:path-metric-type; 4596 } 4597 description "TE path metric type"; 4598 } 4599 leaf upper-bound { 4600 type uint64; 4601 description "Upper bound on end-to-end TE path metric"; 4602 } 4604 } 4606 grouping path-objective-function_config { 4607 description "Optimization metrics configuration grouping"; 4608 leaf objective-function-type { 4609 type identityref { 4610 base te-types:objective-function-type; 4611 } 4612 description 4613 "Objective function entry"; 4614 } 4615 } 4617 /** 4618 * TE interface generic groupings 4619 **/ 4620 grouping path-route-objects { 4621 description 4622 "List of EROs to be included or excluded when performing 4623 the path computation."; 4624 container explicit-route-objects { 4625 description 4626 "Container for the exclude route object list"; 4627 list route-object-exclude-always { 4628 key index; 4629 description 4630 "List of explicit route objects to always exclude 4631 from path computation"; 4632 uses te-types:explicit-route-hop; 4633 } 4634 list route-object-include-exclude { 4635 key index; 4636 description 4637 "List of explicit route objects to include or 4638 exclude in path computation"; 4639 leaf explicit-route-usage { 4640 type identityref { 4641 base te-types:route-usage-type; 4642 } 4643 description "Explicit-route usage."; 4644 } 4645 uses te-types:explicit-route-hop; 4646 } 4647 } 4648 } 4650 grouping path-route-include-objects { 4651 description 4652 "List of EROs to be included when performing 4653 the path computation."; 4654 list route-object-include-object { 4655 key index; 4656 description 4657 "List of explicit route objects to be included 4658 in path computation"; 4659 uses te-types:explicit-route-hop; 4660 } 4661 } 4663 grouping path-route-exclude-objects { 4664 description 4665 "List of EROs to be included when performing 4666 the path computation."; 4667 list route-object-exclude-object { 4668 key index; 4669 description 4670 "List of explicit route objects to be excluded 4671 in path computation"; 4672 uses te-types:explicit-route-hop; 4673 } 4674 } 4676 grouping generic-path-metric-bounds { 4677 description "TE path metric bounds grouping"; 4678 container path-metric-bounds { 4679 description "TE path metric bounds container"; 4680 list path-metric-bound { 4681 key metric-type; 4682 description "List of TE path metric bounds"; 4683 uses path-metrics-bounds_config; 4684 } 4685 } 4686 } 4688 grouping generic-path-optimization { 4689 description "TE generic path optimization grouping"; 4691 container optimizations { 4692 description 4693 "The objective function container that includes 4694 attributes to impose when computing a TE path"; 4696 choice algorithm { 4697 description "Optimizations algorithm."; 4698 case metric { 4699 if-feature path-optimization-metric; 4700 /* Optimize by metric */ 4701 list optimization-metric { 4702 key "metric-type"; 4703 description "TE path metric type"; 4704 uses optimizations_config; 4705 } 4706 /* Tiebreakers */ 4707 container tiebreakers { 4708 description 4709 "The list of tiebreaker criterion to apply 4710 on an equally favored set of paths to pick best"; 4711 list tiebreaker { 4712 key "tiebreaker-type"; 4713 description 4714 "The list of tiebreaker criterion to apply 4715 on an equally favored set of paths to pick best"; 4716 leaf tiebreaker-type { 4717 type identityref { 4718 base te-types:path-metric-type; 4719 } 4720 description "The objective function"; 4721 } 4722 } 4723 } 4724 } 4725 case objective-function { 4726 if-feature path-optimization-objective-function; 4727 /* Objective functions */ 4728 container objective-function { 4729 description 4730 "The objective function container that includes 4731 attributes to impose when computing a TE path"; 4732 uses path-objective-function_config; 4733 } 4734 } 4735 } 4736 } 4737 } 4739 grouping generic-path-affinities { 4740 description 4741 "Path affinities grouping"; 4742 container path-affinities { 4743 description 4744 "Path affinities container"; 4745 list constraint { 4746 key "usage"; 4747 description 4748 "List of named affinity constraints"; 4749 leaf usage { 4750 type identityref { 4751 base resource-affinities-type; 4752 } 4753 description "Affinities usage"; 4754 } 4755 leaf value { 4756 type admin-groups; 4757 description "Affinity value"; 4758 } 4759 } 4760 } 4761 } 4763 grouping generic-path-srlgs { 4764 description 4765 "Path SRLG grouping"; 4766 container path-srlgs { 4767 description 4768 "Path SRLG properties container"; 4769 leaf usage { 4770 type identityref { 4771 base te-types:route-exclude-srlg; 4772 } 4773 description "SRLG usage"; 4774 } 4775 leaf-list values { 4776 type srlg; 4777 description "SRLG value"; 4778 } 4779 } 4780 } 4782 grouping generic-path-disjointness { 4783 description "Path disjointness grouping"; 4784 leaf disjointness { 4785 type te-types:te-path-disjointness; 4786 description 4787 "The type of resource disjointness. 4788 Under primary path, disjointness level applies to 4789 all secondary LSPs. Under secondary, disjointness 4790 level overrides the one under primary"; 4791 } 4792 } 4794 grouping generic-path-constraints { 4795 description 4796 "Global named path constraints configuration 4797 grouping"; 4798 container path-constraints { 4799 description "TE named path constraints container"; 4800 uses common-constraints_config; 4801 uses generic-path-disjointness; 4802 uses generic-path-metric-bounds; 4803 uses generic-path-affinities; 4804 uses generic-path-srlgs; 4805 } 4806 } 4808 grouping generic-path-properties { 4809 description "TE generic path properties grouping"; 4810 container path-properties { 4811 config false; 4812 description "The TE path properties"; 4813 list path-metric { 4814 key metric-type; 4815 description "TE path metric type"; 4816 leaf metric-type { 4817 type identityref { 4818 base te-types:path-metric-type; 4819 } 4820 description "TE path metric type"; 4821 } 4822 leaf accumulative-value { 4823 type uint64; 4824 description "TE path metric accumulative value"; 4825 } 4826 } 4827 uses generic-path-affinities; 4828 uses generic-path-srlgs; 4829 container path-route-objects { 4830 description 4831 "Container for the list of route objects either returned by 4832 the computation engine or actually used by an LSP"; 4833 list path-route-object { 4834 key index; 4835 description 4836 "List of route objects either returned by the computation 4837 engine or actually used by an LSP"; 4838 uses explicit-route-hop; 4839 } 4840 } 4841 } 4842 } 4843 } 4844 4846 Figure 7: TE basic types YANG module 4848 file "ietf-te@2018-03-03.yang" 4849 module ietf-te { 4850 yang-version 1.1; 4852 namespace "urn:ietf:params:xml:ns:yang:ietf-te"; 4854 /* Replace with IANA when assigned */ 4855 prefix "te"; 4857 /* Import TE generic types */ 4858 import ietf-te-types { 4859 prefix te-types; 4860 } 4862 import ietf-inet-types { 4863 prefix inet; 4864 } 4866 organization 4867 "IETF Traffic Engineering Architecture and Signaling (TEAS) 4868 Working Group"; 4870 contact 4871 "WG Web: 4872 WG List: 4874 WG Chair: Lou Berger 4875 4877 WG Chair: Vishnu Pavan Beeram 4878 4880 Editor: Tarek Saad 4881 4883 Editor: Rakesh Gandhi 4884 4886 Editor: Vishnu Pavan Beeram 4887 4889 Editor: Himanshu Shah 4890 4892 Editor: Xufeng Liu 4893 4895 Editor: Igor Bryskin 4896 "; 4898 description 4899 "YANG data module for TE configuration, 4900 state, RPC and notifications."; 4902 revision "2018-03-03" { 4903 description "Latest update to TE generic YANG module."; 4904 reference "TBA"; 4905 } 4907 typedef tunnel-ref { 4908 type leafref { 4909 path "/te:te/te:tunnels/te:tunnel/te:name"; 4910 } 4911 description 4912 "This type is used by data models that need to reference 4913 configured TE tunnel."; 4914 } 4916 typedef path-ref { 4917 type union { 4918 type leafref { 4919 path "/te:te/te:tunnels/te:tunnel/" + 4920 "te:p2p-primary-paths/te:p2p-primary-path/te:name"; 4921 } 4922 type leafref { 4923 path "/te:te/te:tunnels/te:tunnel/" + 4924 "te:p2p-secondary-paths/te:p2p-secondary-path/te:name"; 4925 } 4926 } 4927 description 4928 "This type is used by data models that need to reference 4929 configured primary or secondary path of a TE tunnel."; 4930 } 4932 typedef tunnel-p2mp-ref { 4933 type leafref { 4934 path "/te:te/te:tunnels/te:tunnel-p2mp/te:name"; 4935 } 4936 description 4937 "This type is used by data models that need to reference 4938 configured P2MP TE tunnel."; 4939 reference "RFC4875"; 4941 } 4943 /** 4944 * TE tunnel generic groupings 4945 */ 4946 grouping path-affinities-contents_config { 4947 description 4948 "Path affinities constraints grouping"; 4949 reference "RFC3630 and RFC5305"; 4950 leaf usage { 4951 type identityref { 4952 base te-types:resource-affinities-type; 4953 } 4954 description "Affinities usage"; 4955 } 4956 choice style { 4957 description 4958 "Path affinities representation style"; 4959 case value { 4960 leaf value { 4961 type te-types:admin-groups; 4962 description 4963 "Bitmap indicating what bits are of significance"; 4964 } 4965 } 4966 case named { 4967 list affinity-names { 4968 key "name"; 4969 leaf name { 4970 type string; 4971 description "Affinity name"; 4972 } 4973 description "List of named affinities"; 4974 } 4975 } 4976 } 4977 } 4979 grouping path-affinities { 4980 description "Path affinities grouping"; 4981 container path-affinities { 4982 description "Path affinities container"; 4983 list constraints { 4984 key "usage"; 4985 description "List of named affinity constraints"; 4986 uses path-affinities-contents_config; 4987 } 4988 } 4990 } 4992 grouping path-srlgs-values_config { 4993 description "Path SRLG values properties grouping"; 4994 reference "RFC4203 and RFC5307"; 4995 leaf usage { 4996 type identityref { 4997 base te-types:route-exclude-srlg; 4998 } 4999 description "SRLG usage"; 5000 } 5001 leaf-list values { 5002 type te-types:srlg; 5003 description "SRLG value"; 5004 reference "RFC4203 and RFC5307"; 5005 } 5006 } 5008 grouping path-srlgs { 5009 description "Path SRLG properties grouping"; 5010 container path-srlgs { 5011 description "Path SRLG properties container"; 5012 choice style { 5013 description "Type of SRLG representation"; 5014 case values { 5015 uses path-srlgs-values_config; 5016 } 5017 case named { 5018 container constraints { 5019 description "SRLG named constraints"; 5020 list constraint { 5021 key "usage"; 5022 leaf usage { 5023 type identityref { 5024 base te-types:route-exclude-srlg; 5025 } 5026 description "SRLG usage"; 5027 } 5028 container constraint { 5029 description "Container for named SRLG list"; 5030 list srlg-names { 5031 key "name"; 5032 leaf name { 5033 type string; 5034 description "The SRLG name"; 5035 } 5036 description "List named SRLGs"; 5037 } 5039 } 5040 description "List of named SRLG constraints"; 5041 } 5042 } 5043 } 5044 } 5045 } 5046 } 5048 grouping bidirectional-association_config { 5049 description 5050 "TE tunnel associated bidirectional leaves 5051 grouping"; 5052 reference "RFC7551"; 5053 leaf id { 5054 type uint16; 5055 description 5056 "The TE tunnel association identifier."; 5057 } 5058 leaf source { 5059 type inet:ip-address; 5060 description "The TE tunnel association source."; 5061 } 5062 leaf global-source { 5063 type inet:ip-address; 5064 description "The TE tunnel association global source."; 5065 } 5066 leaf type { 5067 type identityref { 5068 base te-types:bidir-association-type; 5069 } 5070 default te-types:bidir-assoc-non-corouted; 5071 description "The TE tunnel association type."; 5072 } 5073 leaf provisioning { 5074 type identityref { 5075 base te-types:bidir-provisioning-mode; 5076 } 5077 description 5078 "Describes the provisioning model of the 5079 associated bidirectional LSP"; 5080 reference 5081 "draft-ietf-teas-mpls-tp-rsvpte-ext- 5082 associated-lsp, section-3.2"; 5083 } 5084 } 5086 grouping bidir-assoc-properties { 5087 description 5088 "TE tunnel associated bidirectional properties 5089 grouping"; 5090 reference "RFC7551"; 5091 container bidirectional { 5092 description 5093 "TE tunnel associated bidirectional attributes."; 5094 container association { 5095 description 5096 "Tunnel bidirectional association properties"; 5097 uses bidirectional-association_config; 5098 } 5099 } 5100 } 5102 grouping p2p-reverse-primary-path-properties { 5103 description "tunnel path properties."; 5104 reference "RFC7551"; 5105 container p2p-reverse-primary-path { 5106 description "Tunnel reverse primary path properties"; 5107 uses p2p-path-reverse-properties_config; 5108 container state { 5109 config false; 5110 description 5111 "Configuration applied parameters and state"; 5112 uses p2p-path-properties_state; 5113 } 5114 container p2p-reverse-secondary-path { 5115 description "Tunnel reverse secondary path properties"; 5116 uses p2p-reverse-path-candidate-secondary-path-config; 5117 } 5118 } 5119 } 5121 grouping p2p-secondary-path-properties { 5122 description "tunnel path properties."; 5123 uses p2p-path-properties_config; 5124 uses protection-restoration-params_config; 5125 container state { 5126 config false; 5127 description 5128 "Configuration applied parameters and state"; 5129 uses p2p-path-properties_state; 5130 } 5131 } 5133 grouping p2p-primary-path-properties { 5134 description 5135 "TE tunnel primary path properties grouping"; 5136 uses hierarchical-link; 5137 uses p2p-path-properties_config; 5138 container state { 5139 config false; 5140 description 5141 "Configuration applied parameters and state"; 5142 uses p2p-path-properties_state; 5143 } 5144 } 5146 grouping path-properties_state { 5147 description "Computed path properties grouping"; 5148 leaf metric-type { 5149 type identityref { 5150 base te-types:path-metric-type; 5151 } 5152 description "TE path metric type"; 5153 } 5154 leaf accumulative-value { 5155 type uint64; 5156 description "TE path metric accumulative value"; 5157 } 5158 } 5160 grouping path-properties { 5161 description "TE computed path properties grouping"; 5162 container path-properties { 5163 description "The TE path computed properties"; 5164 list path-metric { 5165 key metric-type; 5166 description "TE path metric type"; 5167 leaf metric-type { 5168 type leafref { 5169 path "../state/metric-type"; 5170 } 5171 description "TE path metric type"; 5172 } 5173 container state { 5174 config false; 5175 description 5176 "Configuration applied parameters and state"; 5177 uses path-properties_state; 5178 } 5179 } 5180 uses path-affinities; 5181 uses path-srlgs; 5182 container path-route-objects { 5183 description 5184 "Container for the list of computed route objects 5185 as returned by the computation engine"; 5186 list path-computed-route-object { 5187 key index; 5188 description 5189 "List of computed route objects returned by the 5190 computation engine"; 5191 leaf index { 5192 type leafref { 5193 path "../state/index"; 5194 } 5195 description "Index of computed route object"; 5196 } 5197 container state { 5198 config false; 5199 description 5200 "Configuration applied parameters and state"; 5201 uses te-types:explicit-route-hop; 5202 } 5203 } 5204 } 5205 uses shared-resources-tunnels; 5206 } 5207 } 5209 grouping p2p-path-properties_state { 5210 description "TE per path state parameters"; 5211 uses path-properties { 5212 description "The TE path computed properties"; 5213 } 5214 container lsps { 5215 description "TE LSPs container"; 5216 list lsp { 5217 key 5218 "source destination tunnel-id lsp-id "+ 5219 "extended-tunnel-id"; 5220 description "List of LSPs associated with the tunnel."; 5221 uses lsp-properties_state; 5222 uses shared-resources-tunnels_state; 5223 uses lsp-record-route-information_state; 5224 uses path-properties { 5225 description "The TE path actual properties"; 5226 } 5227 } 5228 } 5229 } 5230 grouping p2p-path-properties-common_config { 5231 description 5232 "TE tunnel common path properties configuration grouping"; 5233 leaf name { 5234 type string; 5235 description "TE path name"; 5236 } 5237 leaf path-setup-protocol { 5238 type identityref { 5239 base te-types:path-signaling-type; 5240 } 5241 description 5242 "Signaling protocol used to set up this tunnel"; 5243 } 5244 leaf path-computation-method { 5245 type identityref { 5246 base te-types:path-computation-method; 5247 } 5248 default te-types:path-locally-computed; 5249 description 5250 "The method used for computing the path, either 5251 locally computed, queried from a server or not 5252 computed at all (explicitly configured)."; 5253 } 5254 leaf path-computation-server { 5255 when "../path-computation-method = "+ 5256 "'te-types:path-externally-queried'" { 5257 description 5258 "The path-computation server when the path is 5259 externally queried"; 5260 } 5261 type inet:ip-address; 5262 description 5263 "Address of the external path computation 5264 server"; 5265 } 5266 leaf compute-only { 5267 type empty; 5268 description 5269 "When set, the path is computed and updated whenever 5270 the topology is updated. No resources are committed 5271 or reserved in the network."; 5272 } 5273 leaf use-path-computation { 5274 when "../path-computation-method =" + 5275 " 'te-types:path-locally-computed'"; 5276 type boolean; 5277 description "A CSPF dynamically computed path"; 5279 } 5280 leaf lockdown { 5281 type empty; 5282 description 5283 "Indicates no reoptimization to be attempted for 5284 this path."; 5285 } 5286 leaf path-scope { 5287 type identityref { 5288 base te-types:path-scope-type; 5289 } 5290 default te-types:path-scope-end-to-end; 5291 description "Path scope if segment or an end-to-end path"; 5292 } 5293 } 5295 grouping p2p-path-reverse-properties_config { 5296 description 5297 "TE tunnel reverse path properties configuration 5298 grouping"; 5299 uses p2p-path-properties-common_config; 5300 uses path-constraints_config; 5301 uses te-types:generic-path-optimization; 5302 leaf named-path-constraint { 5303 if-feature te-types:named-path-constraints; 5304 type leafref { 5305 path "../../../../../../globals/" 5306 + "named-path-constraints/named-path-constraint/" 5307 + "name"; 5308 } 5309 description 5310 "Reference to a globally defined named path 5311 constraint set"; 5312 } 5313 } 5315 grouping p2p-path-properties_config { 5316 description 5317 "TE tunnel path properties configuration grouping"; 5318 uses p2p-path-properties-common_config; 5319 uses path-constraints_config; 5320 uses te-types:generic-path-optimization; 5321 leaf preference { 5322 type uint8 { 5323 range "1..255"; 5324 } 5325 description 5326 "Specifies a preference for this path. The lower the 5327 number higher the preference"; 5328 } 5329 leaf named-path-constraint { 5330 if-feature te-types:named-path-constraints; 5331 type leafref { 5332 path "../../../../../globals/" 5333 + "named-path-constraints/named-path-constraint/" 5334 + "name"; 5335 } 5336 description 5337 "Reference to a globally defined named path 5338 constraint set"; 5339 } 5340 } 5342 /* TE tunnel configuration data */ 5343 grouping tunnel-p2mp-params_config { 5344 description 5345 "Configuration parameters relating to TE tunnel"; 5346 leaf name { 5347 type string; 5348 description "TE tunnel name."; 5349 } 5350 leaf identifier { 5351 type uint16; 5352 description 5353 "TE tunnel Identifier."; 5354 } 5355 leaf description { 5356 type string; 5357 description 5358 "Textual description for this TE tunnel"; 5359 } 5360 } 5362 grouping hierarchical-link_config { 5363 description 5364 "Hierarchical link configuration grouping"; 5365 reference "RFC4206"; 5366 leaf local-te-node-id { 5367 type te-types:te-node-id; 5368 description 5369 "Local TE node identifier"; 5370 } 5371 leaf local-te-link-tp-id { 5372 type te-types:te-tp-id; 5373 description 5374 "Local TE link termination point identifier"; 5376 } 5377 leaf remote-te-node-id { 5378 type te-types:te-node-id; 5379 description 5380 "Remote TE node identifier"; 5381 } 5382 uses te-types:te-topology-identifier; 5383 } 5385 grouping hierarchical-link { 5386 description 5387 "Hierarchical link grouping"; 5388 reference "RFC4206"; 5389 container hierarchical-link { 5390 description 5391 "Identifies a hierarchical link (in client layer) 5392 that this tunnel is associated with."; 5393 uses hierarchical-link_config; 5394 } 5395 } 5397 grouping protection-restoration-params_state { 5398 description 5399 "Protection parameters grouping"; 5400 leaf lockout-of-normal { 5401 type boolean; 5402 description 5403 " 5404 When set to 'True', it represents a lockout of normal 5405 traffic external command. When set to 'False', it 5406 represents a clear lockout of normal traffic external 5407 command. The lockout of normal traffic command applies 5408 to this Tunnel. 5409 "; 5410 reference 5411 "ITU-T G.808, RFC 4427"; 5412 } 5413 leaf freeze { 5414 type boolean; 5415 description 5416 " 5417 When set to 'True', it represents a freeze external 5418 command. When set to 'False', it represents a clear 5419 freeze external command. The freeze command command 5420 applies to all the Tunnels which are sharing the 5421 protection resources with this Tunnel. 5422 "; 5423 reference 5424 "ITU-T G.808, RFC 4427"; 5425 } 5426 leaf lsp-protection-role { 5427 type enumeration { 5428 enum working { 5429 description 5430 "A working LSP must be a primary LSP whilst a protecting 5431 LSP can be either a primary or a secondary LSP. Also, 5432 known as protected LSPs when working LSPs are associated 5433 with protecting LSPs."; 5434 } 5435 enum protecting { 5436 description 5437 "A secondary LSP is an LSP that has been provisioned 5438 in the control plane only; e.g. resource allocation 5439 has not been committed at the data plane"; 5440 } 5441 } 5442 description "LSP role type"; 5443 reference "rfc4872, section 4.2.1"; 5444 } 5446 leaf lsp-protection-state { 5447 type identityref { 5448 base te-types:lsp-protection-state; 5449 } 5450 description 5451 "The state of the APS state machine controlling which 5452 tunnels is using the resources of the protecting LSP."; 5453 } 5454 leaf protection-group-ingress-node-id { 5455 type te-types:te-node-id; 5456 description 5457 "Indicates the te-node-id of the protection group 5458 ingress node when the APS state represents an extenal 5459 command (LoP, SF, MS) applied to it or a WTR timer 5460 running on it. If the external command is not applied to 5461 the ingress node or the WTR timer is not running on it, 5462 this attribute is not specified. If value 0.0.0.0 is used 5463 when the te-node-id of the protection group ingress node is 5464 unknown (e.g., because the ingress node is outside the scope 5465 of control of the server)"; 5466 } 5467 leaf protection-group-egress-node-id { 5468 type te-types:te-node-id; 5469 description 5470 "Indicates the te-node-id of the protection group egress node 5471 when the APS state represents an extenal command (LoP, SF, 5472 MS) applied to it or a WTR timer running on it. If the 5473 external command is not applied to the ingress node or 5474 the WTR timer is not running on it, this attribute is not 5475 specified. If value 0.0.0.0 is used when the te-node-id of 5476 the protection group ingress node is unknown (e.g., because 5477 the ingress node is outside the scope of control of the 5478 server)"; 5479 } 5480 } 5482 grouping protection-restoration-params_config { 5483 description "Protection and restoration parameters"; 5484 container protection { 5485 description "Protection parameters"; 5486 leaf enable { 5487 type boolean; 5488 default 'false'; 5489 description 5490 "A flag to specify if LSP protection is enabled"; 5491 reference "rfc4427"; 5492 } 5493 leaf protection-type { 5494 type identityref { 5495 base te-types:lsp-protection-type; 5496 } 5497 description "LSP protection type."; 5498 } 5499 leaf protection-reversion-disable { 5500 type boolean; 5501 description "Disable protection reversion to working path"; 5502 } 5503 leaf hold-off-time { 5504 type uint32; 5505 units "milli-seconds"; 5506 default 0; 5507 description 5508 "The time between the declaration of an SF or SD condition 5509 and the initialization of the protection switching 5510 algorithm."; 5511 } 5512 leaf wait-to-revert { 5513 type uint16; 5514 units seconds; 5515 description 5516 "Time to wait before attempting LSP reversion"; 5517 } 5518 leaf aps-signal-id { 5519 type uint8 { 5520 range "1..255"; 5521 } 5522 description 5523 "The APS signal number used to reference the traffic of this 5524 tunnel. The default value for normal traffic is 1. 5525 The default value for extra-traffic is 255. If not specified, 5526 non-default values can be assigned by the server, 5527 if and only if, the server controls both endpoints."; 5528 reference 5529 "ITU-T G.808.1"; 5530 } 5531 } 5532 container restoration { 5533 description "Restoration parameters"; 5534 leaf enable { 5535 type boolean; 5536 default 'false'; 5537 description 5538 "A flag to specify if LSP restoration is enabled"; 5539 reference "rfc4427"; 5540 } 5541 leaf restoration-type { 5542 type identityref { 5543 base te-types:lsp-restoration-type; 5544 } 5545 description "LSP restoration type."; 5546 } 5547 leaf restoration-scheme { 5548 type identityref { 5549 base te-types:restoration-scheme-type; 5550 } 5551 description "LSP restoration scheme."; 5552 } 5553 leaf restoration-reversion-disable { 5554 type boolean; 5555 description "Disable restoration reversion to working path"; 5556 } 5557 leaf hold-off-time { 5558 type uint32; 5559 units "milli-seconds"; 5560 description 5561 "The time between the declaration of an SF or SD condition 5562 and the initialization of the protection switching 5563 algorithm."; 5564 } 5565 leaf wait-to-restore { 5566 type uint16; 5567 units seconds; 5568 description 5569 "Time to wait before attempting LSP restoration"; 5570 } 5571 leaf wait-to-revert { 5572 type uint16; 5573 units seconds; 5574 description 5575 "Time to wait before attempting LSP reversion"; 5576 } 5577 } 5578 } 5580 grouping p2p-dependency-tunnels_config { 5581 description 5582 "Groupong for tunnel dependency list of tunnels"; 5583 container dependency-tunnels { 5584 description "Dependency tunnels list"; 5585 list dependency-tunnel { 5586 key "name"; 5587 description "Dependency tunnel entry"; 5588 leaf name { 5589 type leafref { 5590 path "../../../../../tunnels/tunnel/name"; 5591 require-instance false; 5592 } 5593 description "Dependency tunnel name"; 5594 } 5595 leaf encoding { 5596 type identityref { 5597 base te-types:lsp-encoding-types; 5598 } 5599 description "LSP encoding type"; 5600 reference "RFC3945"; 5601 } 5602 leaf switching-type { 5603 type identityref { 5604 base te-types:switching-capabilities; 5605 } 5606 description "LSP switching type"; 5607 reference "RFC3945"; 5608 } 5609 } 5610 } 5611 } 5613 grouping tunnel-p2p-params_config { 5614 description 5615 "Configuration parameters relating to TE tunnel"; 5617 leaf name { 5618 type string; 5619 description "TE tunnel name."; 5620 } 5621 leaf identifier { 5622 type uint16; 5623 description 5624 "TE tunnel Identifier."; 5625 } 5626 leaf description { 5627 type string; 5628 description 5629 "Textual description for this TE tunnel"; 5630 } 5631 leaf encoding { 5632 type identityref { 5633 base te-types:lsp-encoding-types; 5634 } 5635 description "LSP encoding type"; 5636 reference "RFC3945"; 5637 } 5638 leaf switching-type { 5639 type identityref { 5640 base te-types:switching-capabilities; 5641 } 5642 description "LSP switching type"; 5643 reference "RFC3945"; 5644 } 5645 leaf provisioning-state { 5646 type identityref { 5647 base te-types:tunnel-state-type; 5648 } 5649 default te-types:tunnel-state-up; 5650 description "TE tunnel administrative state."; 5651 } 5652 leaf preference { 5653 type uint8 { 5654 range "1..255"; 5655 } 5656 description 5657 "Specifies a preference for this tunnel. 5658 A lower number signifies a better preference"; 5659 } 5660 leaf reoptimize-timer { 5661 type uint16; 5662 units seconds; 5663 description 5664 "frequency of reoptimization of 5665 a traffic engineered LSP"; 5666 } 5667 leaf source { 5668 type inet:ip-address; 5669 description 5670 "TE tunnel source address."; 5671 } 5672 leaf destination { 5673 type inet:ip-address; 5674 description 5675 "P2P tunnel destination address"; 5676 } 5677 leaf src-tp-id { 5678 type binary; 5679 description 5680 "TE tunnel source termination point identifier."; 5681 } 5682 leaf dst-tp-id { 5683 type binary; 5684 description 5685 "TE tunnel destination termination point identifier."; 5686 } 5687 uses protection-restoration-params_config; 5688 uses te-types:tunnel-constraints_config; 5689 uses p2p-dependency-tunnels_config; 5690 } 5692 grouping tunnel-p2p-params_state { 5693 description 5694 "State parameters relating to TE tunnel"; 5695 leaf operational-state { 5696 type identityref { 5697 base te-types:tunnel-state-type; 5698 } 5699 default te-types:tunnel-state-up; 5700 description "TE tunnel administrative state."; 5701 } 5702 } 5704 grouping access-segment-info { 5705 description 5706 "info related to a segment"; 5707 container forward { 5708 description 5709 "for the forward direction of this tunnel"; 5710 uses te-types:label-set-info; 5711 } 5712 container reverse { 5713 description 5714 "for the reverse direction of this tunnel"; 5715 uses te-types:label-set-info; 5716 } 5717 } 5719 grouping path-access-segment-info { 5720 description 5721 "If an end-to-end tunnel crosses multiple domains using 5722 the same technology, some additional constraints have to be 5723 taken in consideration in each domain"; 5724 container path-in-segment { 5725 presence 5726 "The end-to-end tunnel starts in a previous domain; 5727 this tunnel is a segment in the current domain."; 5728 description 5729 "This tunnel is a segment that needs to be coordinated 5730 with previous segment stitched on head-end side."; 5731 uses access-segment-info; 5732 } 5733 container path-out-segment { 5734 presence 5735 "The end-to-end tunnel is not terminated in this domain; 5736 this tunnel is a segment in the current domain."; 5737 description 5738 "This tunnel is a segment that needs to be coordinated 5739 with previous segment stitched on head-end side."; 5740 uses access-segment-info; 5741 } 5742 } 5744 /* TE tunnel configuration/state grouping */ 5745 grouping tunnel-p2mp-properties { 5746 description 5747 "Top level grouping for P2MP tunnel properties."; 5748 uses tunnel-p2mp-params_config; 5749 container state { 5750 config false; 5751 description 5752 "Configuration applied parameters and state"; 5753 leaf operational-state { 5754 type identityref { 5755 base te-types:tunnel-state-type; 5756 } 5757 default te-types:tunnel-state-up; 5758 description "TE tunnel administrative state."; 5759 } 5760 } 5762 } 5764 grouping p2p-path-candidate-secondary-path-config { 5765 description 5766 "Configuration parameters relating to a secondary path which 5767 is a candidate for a particular primary path"; 5769 leaf secondary-path { 5770 type leafref { 5771 path "../../../../../p2p-secondary-paths/" + 5772 "p2p-secondary-path/name"; 5773 } 5774 description 5775 "A reference to the secondary path that should be utilised 5776 when the containing primary path option is in use"; 5777 } 5779 leaf path-setup-protocol { 5780 type identityref { 5781 base te-types:path-signaling-type; 5782 } 5783 description 5784 "Signaling protocol used to set up this tunnel"; 5785 } 5786 } 5788 grouping p2p-reverse-path-candidate-secondary-path-config { 5789 description 5790 "Configuration parameters relating to a secondary path which 5791 is a candidate for a particular primary path"; 5793 leaf secondary-path { 5794 type leafref { 5795 path "../../../../../p2p-secondary-paths/" + 5796 "p2p-secondary-path/name"; 5797 } 5798 description 5799 "A reference to the secondary path that should be utilised 5800 when the containing primary path option is in use"; 5801 } 5803 leaf path-setup-protocol { 5804 type identityref { 5805 base te-types:path-signaling-type; 5806 } 5807 description 5808 "Signaling protocol used to set up this tunnel"; 5809 } 5811 } 5813 grouping p2p-path-candidate-secondary-path-state { 5814 description 5815 "Operational state parameters relating to a secondary path 5816 which is a candidate for a particular primary path"; 5818 leaf active { 5819 type boolean; 5820 description 5821 "Indicates the current active path option that has 5822 been selected of the candidate secondary paths"; 5823 } 5824 } 5826 grouping tunnel-p2p-properties { 5827 description 5828 "Top level grouping for tunnel properties."; 5829 uses tunnel-p2p-params_config; 5830 container state { 5831 config false; 5832 description 5833 "Configuration applied parameters and state"; 5834 uses tunnel-p2p-params_state; 5835 } 5836 uses bidir-assoc-properties; 5837 container p2p-primary-paths { 5838 description "Set of P2P primary aths container"; 5839 list p2p-primary-path { 5840 key "name"; 5841 description 5842 "List of primary paths for this tunnel."; 5843 uses p2p-primary-path-properties; 5844 uses p2p-reverse-primary-path-properties; 5845 container candidate-p2p-secondary-paths { 5846 description 5847 "The set of candidate secondary paths which may be used 5848 for this primary path. When secondary paths are specified 5849 in the list the path of the secondary LSP in use must be 5850 restricted to those path options referenced. The 5851 priority of the secondary paths is specified within the 5852 list. Higher priority values are less preferred - that is 5853 to say that a path with priority 0 is the most preferred 5854 path. In the case that the list is empty, any secondary 5855 path option may be utilised when the current primary path 5856 is in use."; 5857 list candidate-p2p-secondary-path { 5858 key "secondary-path"; 5859 description 5860 "List of secondary paths for this tunnel."; 5861 uses p2p-path-candidate-secondary-path-config; 5863 container state { 5864 config false; 5865 description 5866 "Configuration applied parameters and state"; 5867 uses p2p-path-candidate-secondary-path-state; 5868 } 5869 } 5870 } 5871 } 5872 } 5873 container p2p-secondary-paths { 5874 description "Set of P2P secondary paths container"; 5875 list p2p-secondary-path { 5876 key "name"; 5877 description 5878 "List of secondary paths for this tunnel."; 5879 uses p2p-secondary-path-properties; 5880 } 5881 } 5882 } 5884 grouping shared-resources-tunnels_state { 5885 description 5886 "The specific tunnel that is using the shared secondary path 5887 resources"; 5888 leaf lsp-shared-resources-tunnel { 5889 type te:tunnel-ref; 5890 description 5891 "Reference to the tunnel that sharing secondary path 5892 resources with this tunnel"; 5893 } 5894 } 5895 grouping shared-resources-tunnels { 5896 description 5897 "Set of tunnels that share secondary path resources with 5898 this tunnnel"; 5899 container shared-resources-tunnels { 5900 description 5901 "Set of tunnels that share secondary path resources with 5902 this tunnnel"; 5903 leaf-list lsp-shared-resources-tunnel { 5904 type te:tunnel-ref; 5905 description 5906 "Reference to the tunnel that sharing secondary path 5907 resources with this tunnel"; 5908 } 5909 } 5910 } 5912 grouping tunnel-actions { 5913 description "Tunnel actions"; 5914 action tunnel-action { 5915 description "Tunnel action"; 5916 input { 5917 leaf action-type { 5918 type identityref { 5919 base te-types:tunnel-action-type; 5920 } 5921 description "Tunnel action type"; 5922 } 5923 } 5924 output { 5925 leaf action-result { 5926 type identityref { 5927 base te-types:te-action-result; 5928 } 5929 description "The result of the RPC operation"; 5930 } 5931 } 5932 } 5933 } 5934 grouping tunnel-protection-actions { 5935 description 5936 "Protection external command actions"; 5937 action protection-external-commands { 5938 input { 5939 leaf protection-external-command { 5940 type identityref { 5941 base te-types:protection-external-commands; 5942 } 5943 description 5944 "Protection external command"; 5945 } 5946 leaf protection-group-ingress-node-id { 5947 type te-types:te-node-id; 5948 description 5949 "Indicates the te-node-id of the protection group 5950 ingress node when the extenal command has to be 5951 applied to it. If the external command is not applied 5952 to the ingress node, this attribute is not specified."; 5953 } 5954 leaf protection-group-egress-node-id { 5955 type te-types:te-node-id; 5956 description 5957 "Indicates the te-node-id of the protection group egress 5958 node when the extenal command has to be applied to it. 5959 If the external command is not applied to the egress node, 5960 This attribute is not specified."; 5961 } 5962 leaf path-ref { 5963 type path-ref; 5964 description 5965 "Indicates to which path the external command applies to."; 5966 } 5967 leaf traffic-type { 5968 type enumeration { 5969 enum normal-traffic { 5970 description 5971 "The manual-switch or forced-switch command applies to 5972 the normal traffic (this Tunnel)."; 5973 } 5974 enum null-traffic { 5975 description 5976 "The manual-switch or forced-switch command applies to 5977 the null traffic."; 5978 } 5979 enum extra-traffic { 5980 description 5981 "The manual-switch or forced-switch command applies to 5982 the extra traffic (the extra-traffic Tunnel sharing 5983 protection bandwidth with this Tunnel)."; 5984 } 5985 } 5986 description 5987 "Indicates whether the manual-switch or forced-switch 5988 commands applies to the normal traffic, the null traffic 5989 or the extra-traffic."; 5990 reference 5991 "ITU-T G.808, RFC 4427"; 5992 } 5993 leaf extra-traffic-tunnel-ref { 5994 type te:tunnel-ref; 5995 description 5996 "In case there are multiple extra-traffic tunnels sharing 5997 protection bandwidth with this Tunnel (m:n protection), 5998 represents which extra-traffic Tunnel the manual-switch or 5999 forced-switch to extra-traffic command applies to."; 6000 } 6001 } 6002 } 6004 } 6006 /*** End of TE tunnel groupings ***/ 6008 /** 6009 * LSP related generic groupings 6010 */ 6011 grouping lsp-record-route-information_state { 6012 description "recorded route information grouping"; 6013 container lsp-record-route-subobjects { 6014 description "RSVP recorded route object information"; 6015 list record-route-subobject { 6016 when "../../origin-type = 'ingress'" { 6017 description "Applicable on non-ingress LSPs only"; 6018 } 6019 key "index"; 6020 description "Record route sub-object list"; 6021 uses te-types:record-route-subobject_state; 6022 } 6023 } 6024 } 6026 grouping lsps-state-grouping { 6027 description 6028 "LSPs state operational data grouping"; 6029 container lsps-state { 6030 config false; 6031 description "TE LSPs state container"; 6032 list lsp { 6033 key 6034 "source destination tunnel-id lsp-id "+ 6035 "extended-tunnel-id"; 6036 description "List of LSPs associated with the tunnel."; 6037 uses lsp-properties_state; 6038 uses lsp-record-route-information_state; 6039 } 6040 } 6041 } 6043 /*** End of TE LSP groupings ***/ 6045 /** 6046 * TE global generic groupings 6047 */ 6049 /* Global named admin-groups configuration data */ 6050 grouping named-admin-groups_config { 6051 description 6052 "Global named administrative groups configuration 6053 grouping"; 6054 leaf name { 6055 type string; 6056 description 6057 "A string name that uniquely identifies a TE 6058 interface named admin-group"; 6059 } 6060 leaf bit-position { 6061 type uint32; 6062 description 6063 "Bit position representing the administrative group"; 6064 } 6065 } 6066 grouping named-admin-groups { 6067 description 6068 "Global named administrative groups configuration 6069 grouping"; 6070 container named-admin-groups { 6071 description "TE named admin groups container"; 6072 list named-admin-group { 6073 if-feature te-types:extended-admin-groups; 6074 if-feature te-types:named-extended-admin-groups; 6075 key "name"; 6076 description 6077 "List of named TE admin-groups"; 6078 uses named-admin-groups_config; 6079 } 6080 } 6081 } 6083 /* Global named admin-srlgs configuration data */ 6084 grouping named-srlgs_config { 6085 description 6086 "Global named SRLGs configuration grouping"; 6087 leaf name { 6088 type string; 6089 description 6090 "A string name that uniquely identifies a TE 6091 interface named srlg"; 6092 } 6093 leaf group { 6094 type te-types:srlg; 6095 description "An SRLG value"; 6096 } 6097 leaf cost { 6098 type uint32; 6099 description 6100 "SRLG associated cost. Used during path to append 6101 the path cost when traversing a link with this SRLG"; 6102 } 6103 } 6105 grouping named-srlgs { 6106 description 6107 "Global named SRLGs configuration grouping"; 6108 container named-srlgs { 6109 description "TE named SRLGs container"; 6110 list named-srlg { 6111 if-feature te-types:named-srlg-groups; 6112 key "name"; 6113 description 6114 "A list of named SRLG groups"; 6115 uses named-srlgs_config; 6116 } 6117 } 6118 } 6120 /* Global named paths constraints configuration data */ 6121 grouping path-constraints_state { 6122 description 6123 "TE path constraints state"; 6124 leaf bandwidth-generic_state { 6125 type te-types:te-bandwidth; 6126 description 6127 "A technology agnostic requested bandwidth to use 6128 for path computation"; 6129 } 6130 leaf disjointness_state { 6131 type te-types:te-path-disjointness; 6132 description 6133 "The type of resource disjointness."; 6134 } 6135 } 6137 grouping path-constraints_config { 6138 description 6139 "Global named path constraints configuration 6140 grouping"; 6141 uses te-types:common-constraints_config; 6142 uses te-types:generic-path-disjointness; 6143 uses te-types:generic-path-metric-bounds; 6144 uses path-affinities; 6145 uses path-srlgs; 6146 uses te-types:path-route-objects; 6147 uses shared-resources-tunnels { 6148 description 6149 "Set of tunnels that are allowed to share secondary path 6150 resources of this tunnel"; 6151 } 6152 uses path-access-segment-info { 6153 description 6154 "Tunnel constraints induced by other segments."; 6155 } 6156 } 6158 grouping path-constraints { 6159 description "Per path constraints"; 6160 uses path-constraints_config; 6161 container state { 6162 config false; 6163 description 6164 "Configuration applied parameters and state"; 6165 uses path-constraints_state; 6166 } 6167 } 6169 grouping named-path-constraints { 6170 description 6171 "Global named path constraints configuration 6172 grouping"; 6173 container named-path-constraints { 6174 description "TE named path constraints container"; 6175 list named-path-constraint { 6176 if-feature te-types:named-path-constraints; 6177 key "name"; 6178 leaf name { 6179 type string; 6180 description 6181 "A string name that uniquely identifies a 6182 path constraint set"; 6183 } 6184 uses path-constraints; 6185 description 6186 "A list of named path constraints"; 6187 } 6188 } 6189 } 6191 /* TE globals container data */ 6192 grouping globals-grouping { 6193 description 6194 "Globals TE system-wide configuration data grouping"; 6195 container globals { 6196 description 6197 "Globals TE system-wide configuration data container"; 6198 uses named-admin-groups; 6199 uses named-srlgs; 6200 uses named-path-constraints; 6201 } 6202 } 6204 /* TE tunnels container data */ 6205 grouping tunnels-grouping { 6206 description 6207 "Tunnels TE configuration data grouping"; 6208 container tunnels { 6209 description 6210 "Tunnels TE configuration data container"; 6212 list tunnel { 6213 key "name"; 6214 description "P2P TE tunnels list."; 6215 uses tunnel-p2p-properties; 6216 uses tunnel-actions; 6217 uses tunnel-protection-actions; 6218 } 6219 list tunnel-p2mp { 6220 key "name"; 6221 unique "identifier"; 6222 description "P2MP TE tunnels list."; 6223 uses tunnel-p2mp-properties; 6224 } 6225 } 6226 } 6228 /* TE LSPs ephemeral state container data */ 6229 grouping lsp-properties_state { 6230 description 6231 "LSPs state operational data grouping"; 6232 leaf source { 6233 type inet:ip-address; 6234 description 6235 "Tunnel sender address extracted from 6236 SENDER_TEMPLATE object"; 6237 reference "RFC3209"; 6238 } 6239 leaf destination { 6240 type inet:ip-address; 6241 description 6242 "Tunnel endpoint address extracted from 6243 SESSION object"; 6245 reference "RFC3209"; 6246 } 6247 leaf tunnel-id { 6248 type uint16; 6249 description 6250 "Tunnel identifier used in the SESSION 6251 that remains constant over the life 6252 of the tunnel."; 6253 reference "RFC3209"; 6254 } 6255 leaf lsp-id { 6256 type uint16; 6257 description 6258 "Identifier used in the SENDER_TEMPLATE 6259 and the FILTER_SPEC that can be changed 6260 to allow a sender to share resources with 6261 itself."; 6262 reference "RFC3209"; 6263 } 6264 leaf extended-tunnel-id { 6265 type inet:ip-address; 6266 description 6267 "Extended Tunnel ID of the LSP."; 6268 reference "RFC3209"; 6269 } 6270 leaf operational-state { 6271 type identityref { 6272 base te-types:lsp-state-type; 6273 } 6274 description "LSP operational state."; 6275 } 6276 leaf path-setup-protocol { 6277 type identityref { 6278 base te-types:path-signaling-type; 6279 } 6280 description 6281 "Signaling protocol used to set up this tunnel"; 6282 } 6283 leaf origin-type { 6284 type enumeration { 6285 enum ingress { 6286 description 6287 "Origin ingress"; 6288 } 6289 enum egress { 6290 description 6291 "Origin egress"; 6292 } 6293 enum transit { 6294 description 6295 "transit"; 6296 } 6297 } 6298 description 6299 "Origin type of LSP relative to the location 6300 of the local switch in the path."; 6301 } 6303 leaf lsp-resource-status { 6304 type enumeration { 6305 enum primary { 6306 description 6307 "A primary LSP is a fully established LSP for 6308 which the resource allocation has been committed 6309 at the data plane"; 6310 } 6311 enum secondary { 6312 description 6313 "A secondary LSP is an LSP that has been provisioned 6314 in the control plane only; e.g. resource allocation 6315 has not been committed at the data plane"; 6316 } 6317 } 6318 description "LSP resource allocation type"; 6319 reference "rfc4872, section 4.2.1"; 6320 } 6322 uses protection-restoration-params_state; 6323 } 6324 /*** End of TE global groupings ***/ 6326 /** 6327 * TE configurations container 6328 */ 6329 container te { 6330 presence "Enable TE feature."; 6331 description 6332 "TE global container."; 6334 /* TE Global Configuration Data */ 6335 uses globals-grouping; 6337 /* TE Tunnel Configuration Data */ 6338 uses tunnels-grouping; 6340 /* TE LSPs State Data */ 6341 uses lsps-state-grouping; 6343 } 6345 /* TE Global RPCs/execution Data */ 6346 rpc globals-rpc { 6347 description 6348 "Execution data for TE global."; 6349 } 6351 /* TE interfaces RPCs/execution Data */ 6352 rpc interfaces-rpc { 6353 description 6354 "Execution data for TE interfaces."; 6355 } 6357 /* TE Tunnel RPCs/execution Data */ 6358 rpc tunnels-rpc { 6359 description "TE tunnels RPC nodes"; 6360 input { 6361 container tunnel-info { 6362 description "Tunnel Identification"; 6363 choice type { 6364 description "Tunnel information type"; 6365 case tunnel-p2p { 6366 leaf p2p-id { 6367 type te:tunnel-ref; 6368 description "P2P TE tunnel"; 6369 } 6370 } 6371 case tunnel-p2mp { 6372 leaf p2mp-id { 6373 type te:tunnel-p2mp-ref; 6374 description "P2MP TE tunnel"; 6375 } 6376 } 6377 } 6378 } 6379 } 6380 output { 6381 container result { 6382 description 6383 "The container result of the RPC operation"; 6384 leaf result { 6385 type enumeration { 6386 enum success { 6387 description "Origin ingress"; 6388 } 6389 enum in-progress { 6390 description "Origin egress"; 6391 } 6392 enum fail { 6393 description "transit"; 6394 } 6395 } 6396 description "The result of the RPC operation"; 6397 } 6398 } 6399 } 6400 } 6402 /* TE Global Notification Data */ 6403 notification globals-notif { 6404 description 6405 "Notification messages for Global TE."; 6406 } 6408 /* TE Tunnel Notification Data */ 6409 notification tunnels-notif { 6410 description 6411 "Notification messages for TE tunnels."; 6412 } 6413 } 6414 6416 Figure 8: TE generic YANG module 6418 file "ietf-te-device@2018-02-15.yang" 6419 module ietf-te-device { 6421 namespace "urn:ietf:params:xml:ns:yang:ietf-te-device"; 6423 /* Replace with IANA when assigned */ 6424 prefix "te-dev"; 6426 /* Import TE generic types */ 6427 import ietf-te { 6428 prefix te; 6429 } 6431 /* Import TE generic types */ 6432 import ietf-te-types { 6433 prefix te-types; 6434 } 6436 import ietf-interfaces { 6437 prefix if; 6438 } 6440 import ietf-inet-types { 6441 prefix inet; 6442 } 6444 import ietf-routing-types { 6445 prefix "rt-types"; 6446 } 6448 organization 6449 "IETF Traffic Engineering Architecture and Signaling (TEAS) 6450 Working Group"; 6452 contact 6453 "WG Web: 6454 WG List: 6456 WG Chair: Lou Berger 6457 6459 WG Chair: Vishnu Pavan Beeram 6460 6462 Editor: Tarek Saad 6463 6465 Editor: Rakesh Gandhi 6466 6468 Editor: Vishnu Pavan Beeram 6469 6471 Editor: Himanshu Shah 6472 6474 Editor: Xufeng Liu 6475 6477 Editor: Xia Chen 6478 6480 Editor: Raqib Jones 6481 6483 Editor: Bin Wen 6484 "; 6486 description 6487 "YANG data module for TE device configurations, 6488 state, RPC and notifications."; 6490 revision "2018-02-15" { 6491 description "Latest update to TE device YANG module."; 6492 reference "TBA"; 6493 } 6495 /** 6496 * TE LSP device state grouping 6497 */ 6498 grouping lsps-device_state { 6499 description "TE LSP device state grouping"; 6500 container lsp-timers { 6501 when "../te:origin-type = 'ingress'" { 6502 description "Applicable to ingress LSPs only"; 6503 } 6504 description "Ingress LSP timers"; 6505 leaf life-time { 6506 type uint32; 6507 units seconds; 6508 description 6509 "lsp life time"; 6510 } 6512 leaf time-to-install { 6513 type uint32; 6514 units seconds; 6515 description 6516 "lsp installation delay time"; 6517 } 6519 leaf time-to-destroy { 6520 type uint32; 6521 units seconds; 6522 description 6523 "lsp expiration delay time"; 6524 } 6525 } 6527 container downstream-info { 6528 when "../te:origin-type != 'egress'" { 6529 description "Applicable to ingress LSPs only"; 6530 } 6531 description 6532 "downstream information"; 6534 leaf nhop { 6535 type inet:ip-address; 6536 description 6537 "downstream nexthop."; 6538 } 6540 leaf outgoing-interface { 6541 type if:interface-ref; 6542 description 6543 "downstream interface."; 6544 } 6546 leaf neighbor { 6547 type inet:ip-address; 6548 description 6549 "downstream neighbor."; 6550 } 6552 leaf label { 6553 type rt-types:generalized-label; 6554 description 6555 "downstream label."; 6556 } 6557 } 6559 container upstream-info { 6560 when "../te:origin-type != 'ingress'" { 6561 description "Applicable to non-ingress LSPs only"; 6562 } 6563 description 6564 "upstream information"; 6566 leaf phop { 6567 type inet:ip-address; 6568 description 6569 "upstream nexthop or previous-hop."; 6570 } 6572 leaf neighbor { 6573 type inet:ip-address; 6574 description 6575 "upstream neighbor."; 6576 } 6578 leaf label { 6579 type rt-types:generalized-label; 6580 description 6581 "upstream label."; 6583 } 6584 } 6585 } 6587 /** 6588 * Device general groupings. 6589 */ 6590 grouping tunnel-device_config { 6591 description "Device TE tunnel configs"; 6592 leaf path-invalidation-action { 6593 type identityref { 6594 base te-types:path-invalidation-action-type; 6595 } 6596 description "Tunnel path invalidtion action"; 6597 } 6598 } 6600 grouping lsp-device-timers_config { 6601 description "Device TE LSP timers configs"; 6602 leaf lsp-install-interval { 6603 type uint32; 6604 units seconds; 6605 description 6606 "lsp installation delay time"; 6607 } 6608 leaf lsp-cleanup-interval { 6609 type uint32; 6610 units seconds; 6611 description 6612 "lsp cleanup delay time"; 6613 } 6614 leaf lsp-invalidation-interval { 6615 type uint32; 6616 units seconds; 6617 description 6618 "lsp path invalidation before taking action delay time"; 6619 } 6620 } 6621 grouping lsp-device-timers { 6622 description "TE LSP timers configuration"; 6623 uses lsp-device-timers_config; 6624 } 6626 /** 6627 * TE global device generic groupings 6628 */ 6630 /* TE interface container data */ 6631 grouping interfaces-grouping { 6632 description 6633 "Interface TE configuration data grouping"; 6634 container interfaces { 6635 description 6636 "Configuration data model for TE interfaces."; 6637 uses te-all-attributes; 6638 list interface { 6639 key "interface"; 6640 description "TE interfaces."; 6641 leaf interface { 6642 type if:interface-ref; 6643 description 6644 "TE interface name."; 6645 } 6646 /* TE interface parameters */ 6647 uses te-attributes; 6648 } 6649 } 6650 } 6652 /** 6653 * TE interface device generic groupings 6654 */ 6655 grouping te-admin-groups_config { 6656 description 6657 "TE interface affinities grouping"; 6658 choice admin-group-type { 6659 description 6660 "TE interface administrative groups 6661 representation type"; 6662 case value-admin-groups { 6663 choice value-admin-group-type { 6664 description "choice of admin-groups"; 6665 case admin-groups { 6666 description 6667 "Administrative group/Resource 6668 class/Color."; 6669 leaf admin-group { 6670 type te-types:admin-group; 6671 description 6672 "TE interface administrative group"; 6673 } 6674 } 6675 case extended-admin-groups { 6676 if-feature te-types:extended-admin-groups; 6677 description 6678 "Extended administrative group/Resource 6679 class/Color."; 6680 leaf extended-admin-group { 6681 type te-types:extended-admin-group; 6682 description 6683 "TE interface extended administrativei 6684 group"; 6685 } 6686 } 6687 } 6688 } 6689 case named-admin-groups { 6690 list named-admin-groups { 6691 if-feature te-types:extended-admin-groups; 6692 if-feature te-types:named-extended-admin-groups; 6693 key named-admin-group; 6694 description 6695 "A list of named admin-group entries"; 6696 leaf named-admin-group { 6697 type leafref { 6698 path "../../../../te:globals/" + 6699 "te:named-admin-groups/te:named-admin-group/" + 6700 "te:name"; 6701 } 6702 description "A named admin-group entry"; 6703 } 6704 } 6705 } 6706 } 6707 } 6709 /* TE interface SRLGs */ 6710 grouping te-srlgs_config { 6711 description "TE interface SRLG grouping"; 6712 choice srlg-type { 6713 description "Choice of SRLG configuration"; 6714 case value-srlgs { 6715 list values { 6716 key "value"; 6717 description "List of SRLG values that 6718 this link is part of."; 6719 leaf value { 6720 type uint32 { 6721 range "0..4294967295"; 6722 } 6723 description 6724 "Value of the SRLG"; 6725 } 6726 } 6728 } 6729 case named-srlgs { 6730 list named-srlgs { 6731 if-feature te-types:named-srlg-groups; 6732 key named-srlg; 6733 description 6734 "A list of named SRLG entries"; 6735 leaf named-srlg { 6736 type leafref { 6737 path "../../../../te:globals/" + 6738 "te:named-srlgs/te:named-srlg/te:name"; 6739 } 6740 description 6741 "A named SRLG entry"; 6742 } 6743 } 6744 } 6745 } 6746 } 6748 grouping te-igp-flooding-bandwidth_config { 6749 description 6750 "Configurable items for igp flooding bandwidth 6751 threshold configuration."; 6752 leaf threshold-type { 6753 type enumeration { 6754 enum DELTA { 6755 description 6756 "DELTA indicates that the local 6757 system should flood IGP updates when a 6758 change in reserved bandwidth >= the specified 6759 delta occurs on the interface."; 6760 } 6761 enum THRESHOLD_CROSSED { 6762 description 6763 "THRESHOLD-CROSSED indicates that 6764 the local system should trigger an update (and 6765 hence flood) the reserved bandwidth when the 6766 reserved bandwidth changes such that it crosses, 6767 or becomes equal to one of the threshold values."; 6768 } 6769 } 6770 description 6771 "The type of threshold that should be used to specify the 6772 values at which bandwidth is flooded. DELTA indicates that 6773 the local system should flood IGP updates when a change in 6774 reserved bandwidth >= the specified delta occurs on the 6775 interface. Where THRESHOLD_CROSSED is specified, the local 6776 system should trigger an update (and hence flood) the 6777 reserved bandwidth when the reserved bandwidth changes such 6778 that it crosses, or becomes equal to one of the threshold 6779 values"; 6780 } 6782 leaf delta-percentage { 6783 when "../threshold-type = 'DELTA'" { 6784 description 6785 "The percentage delta can only be specified when the 6786 threshold type is specified to be a percentage delta of 6787 the reserved bandwidth"; 6788 } 6789 type te-types:percentage; 6790 description 6791 "The percentage of the maximum-reservable-bandwidth 6792 considered as the delta that results in an IGP update 6793 being flooded"; 6794 } 6795 leaf threshold-specification { 6796 when "../threshold-type = 'THRESHOLD_CROSSED'" { 6797 description 6798 "The selection of whether mirrored or separate threshold 6799 values are to be used requires user specified thresholds to 6800 be set"; 6801 } 6802 type enumeration { 6803 enum MIRRORED_UP_DOWN { 6804 description 6805 "MIRRORED_UP_DOWN indicates that a single set of 6806 threshold values should be used for both increasing 6807 and decreasing bandwidth when determining whether 6808 to trigger updated bandwidth values to be flooded 6809 in the IGP TE extensions."; 6810 } 6811 enum SEPARATE_UP_DOWN { 6812 description 6813 "SEPARATE_UP_DOWN indicates that a separate 6814 threshold values should be used for the increasing 6815 and decreasing bandwidth when determining whether 6816 to trigger updated bandwidth values to be flooded 6817 in the IGP TE extensions."; 6818 } 6819 } 6820 description 6821 "This value specifies whether a single set of threshold 6822 values should be used for both increasing and decreasing 6823 bandwidth when determining whether to trigger updated 6824 bandwidth values to be flooded in the IGP TE extensions. 6825 MIRRORED-UP-DOWN indicates that a single value (or set of 6826 values) should be used for both increasing and decreasing 6827 values, where SEPARATE-UP-DOWN specifies that the increasing 6828 and decreasing values will be separately specified"; 6829 } 6831 leaf-list up-thresholds { 6832 when "../threshold-type = 'THRESHOLD_CROSSED'" + 6833 "and ../threshold-specification = 'SEPARATE_UP_DOWN'" { 6834 description 6835 "A list of up-thresholds can only be specified when the 6836 bandwidth update is triggered based on crossing a 6837 threshold and separate up and down thresholds are 6838 required"; 6839 } 6840 type te-types:percentage; 6841 description 6842 "The thresholds (expressed as a percentage of the maximum 6843 reservable bandwidth) at which bandwidth updates are to be 6844 triggered when the bandwidth is increasing."; 6845 } 6847 leaf-list down-thresholds { 6848 when "../threshold-type = 'THRESHOLD_CROSSED'" + 6849 "and ../threshold-specification = 'SEPARATE_UP_DOWN'" { 6850 description 6851 "A list of down-thresholds can only be specified when the 6852 bandwidth update is triggered based on crossing a 6853 threshold and separate up and down thresholds are 6854 required"; 6855 } 6856 type te-types:percentage; 6857 description 6858 "The thresholds (expressed as a percentage of the maximum 6859 reservable bandwidth) at which bandwidth updates are to be 6860 triggered when the bandwidth is decreasing."; 6861 } 6863 leaf-list up-down-thresholds { 6864 when "../threshold-type = 'THRESHOLD_CROSSED'" + 6865 "and ../threshold-specification = 'MIRRORED_UP_DOWN'" { 6866 description 6867 "A list of thresholds corresponding to both increasing 6868 and decreasing bandwidths can be specified only when an 6869 update is triggered based on crossing a threshold, and 6870 the same up and down thresholds are required."; 6871 } 6872 type te-types:percentage; 6873 description 6874 "The thresholds (expressed as a percentage of the maximum 6875 reservable bandwidth of the interface) at which bandwidth 6876 updates are flooded - used both when the bandwidth is 6877 increasing and decreasing"; 6878 } 6879 } 6881 /* TE interface metric */ 6882 grouping te-metric_config { 6883 description "Interface TE metric grouping"; 6884 leaf te-metric { 6885 type te-types:te-metric; 6886 description "Interface TE metric."; 6887 } 6888 } 6890 /* TE interface switching capabilities */ 6891 grouping te-switching-cap_config { 6892 description 6893 "TE interface switching capabilities"; 6894 list switching-capabilities { 6895 key "switching-capability"; 6896 description 6897 "List of interface capabilities for this interface"; 6898 leaf switching-capability { 6899 type identityref { 6900 base te-types:switching-capabilities; 6901 } 6902 description 6903 "Switching Capability for this interface"; 6904 } 6905 leaf encoding { 6906 type identityref { 6907 base te-types:lsp-encoding-types; 6908 } 6909 description 6910 "Encoding supported by this interface"; 6911 } 6912 } 6913 } 6915 grouping te-advertisements_state { 6916 description 6917 "TE interface advertisements state grouping"; 6918 container te-advertisements_state { 6919 description 6920 "TE interface advertisements state container"; 6921 leaf flood-interval { 6922 type uint32; 6923 description 6924 "The periodic flooding interval"; 6925 } 6926 leaf last-flooded-time { 6927 type uint32; 6928 units seconds; 6929 description 6930 "Time elapsed since last flooding in seconds"; 6931 } 6932 leaf next-flooded-time { 6933 type uint32; 6934 units seconds; 6935 description 6936 "Time remained for next flooding in seconds"; 6937 } 6938 leaf last-flooded-trigger { 6939 type enumeration { 6940 enum link-up { 6941 description "Link-up flooding trigger"; 6942 } 6943 enum link-down { 6944 description "Link-up flooding trigger"; 6945 } 6946 enum threshold-up { 6947 description 6948 "Bandwidth reservation up threshold"; 6949 } 6950 enum threshold-down { 6951 description 6952 "Bandwidth reservation down threshold"; 6953 } 6954 enum bandwidth-change { 6955 description "Banwidth capacity change"; 6956 } 6957 enum user-initiated { 6958 description "Initiated by user"; 6959 } 6960 enum srlg-change { 6961 description "SRLG property change"; 6962 } 6963 enum periodic-timer { 6964 description "Periodic timer expired"; 6965 } 6966 } 6967 description "Trigger for the last flood"; 6969 } 6970 list advertized-level-areas { 6971 key level-area; 6972 description 6973 "List of areas the TE interface is advertised 6974 in"; 6975 leaf level-area { 6976 type uint32; 6977 description 6978 "The IGP area or level where the TE 6979 interface state is advertised in"; 6980 } 6981 } 6982 } 6983 } 6985 /* TE interface attributes grouping */ 6986 grouping te-attributes { 6987 description "TE attributes configuration grouping"; 6988 uses te-metric_config; 6989 uses te-admin-groups_config; 6990 uses te-srlgs_config; 6991 uses te-igp-flooding-bandwidth_config; 6992 uses te-switching-cap_config; 6993 container state { 6994 config false; 6995 description 6996 "State parameters for interface TE metric"; 6997 uses te-advertisements_state; 6998 } 6999 } 7001 grouping te-all-attributes { 7002 description 7003 "TE attributes configuration grouping for all 7004 interfaces"; 7005 uses te-igp-flooding-bandwidth_config; 7006 } 7007 /*** End of TE interfaces device groupings ***/ 7009 /** 7010 * TE device augmentations 7011 */ 7012 augment "/te:te" { 7013 description "TE global container."; 7014 /* TE Interface Configuration Data */ 7015 uses interfaces-grouping; 7017 } 7019 /* TE globals device augmentation */ 7020 augment "/te:te/te:globals" { 7021 description 7022 "Global TE device specific configuration parameters"; 7023 uses lsp-device-timers; 7024 } 7026 /* TE tunnels device configuration augmentation */ 7027 augment "/te:te/te:tunnels/te:tunnel" { 7028 description 7029 "Tunnel device dependent augmentation"; 7030 uses lsp-device-timers_config; 7031 } 7032 augment "/te:te/te:tunnels/te:tunnel/te:state" { 7033 description 7034 "Tunnel device dependent augmentation"; 7035 uses lsp-device-timers_config; 7036 } 7038 /* TE LSPs device state augmentation */ 7039 augment "/te:te/te:lsps-state/te:lsp" { 7040 description 7041 "LSP device dependent augmentation"; 7042 uses lsps-device_state; 7043 } 7045 augment "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + 7046 "/te:p2p-secondary-path/te:state/te:lsps/te:lsp" { 7047 description 7048 "LSP device dependent augmentation"; 7049 uses lsps-device_state; 7050 } 7052 augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + 7053 "/te:p2p-primary-path/te:state/te:lsps/te:lsp" { 7054 description 7055 "LSP device dependent augmentation"; 7056 uses lsps-device_state; 7057 } 7059 /* TE interfaces RPCs/execution Data */ 7060 rpc interfaces-rpc { 7061 description 7062 "Execution data for TE interfaces."; 7063 } 7064 /* TE Interfaces Notification Data */ 7065 notification interfaces-notif { 7066 description 7067 "Notification messages for TE interfaces."; 7068 } 7069 } 7070 7072 Figure 9: TE MPLS specific types YANG module 7074 file "ietf-te-mpls@2018-02-15.yang" 7075 module ietf-te-mpls { 7077 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls"; 7079 /* Replace with IANA when assigned */ 7080 prefix "te-mpls"; 7082 /* Import TE base model */ 7083 import ietf-te { 7084 prefix te; 7085 } 7087 /* Import TE MPLS types */ 7088 import ietf-te-mpls-types { 7089 prefix "te-mpls-types"; 7090 } 7092 /* Import TE generic types */ 7093 import ietf-te-types { 7094 prefix te-types; 7095 } 7097 /* Import routing types */ 7098 import ietf-routing-types { 7099 prefix "rt-types"; 7100 } 7102 import ietf-mpls-static { 7103 prefix mpls-static; 7104 } 7106 import ietf-inet-types { 7107 prefix inet; 7108 } 7110 organization 7111 "IETF Traffic Engineering Architecture and Signaling (TEAS) 7112 Working Group"; 7114 contact 7115 "WG Web: 7116 WG List: 7118 WG Chair: Lou Berger 7119 7121 WG Chair: Vishnu Pavan Beeram 7122 7124 Editor: Tarek Saad 7125 7127 Editor: Rakesh Gandhi 7128 7130 Editor: Vishnu Pavan Beeram 7131 7133 Editor: Himanshu Shah 7134 7136 Editor: Xufeng Liu 7137 7139 Editor: Xia Chen 7140 7142 Editor: Raqib Jones 7143 7145 Editor: Bin Wen 7146 "; 7148 description 7149 "YANG data module for MPLS TE configurations, 7150 state, RPC and notifications."; 7152 revision "2018-02-15" { 7153 description "Latest update to MPLS TE YANG module."; 7154 reference "TBD"; 7155 } 7157 /* MPLS TE tunnel properties*/ 7159 grouping tunnel-igp-shortcut_config { 7160 description "TE tunnel IGP shortcut configs"; 7161 leaf shortcut-eligible { 7162 type boolean; 7163 default "true"; 7164 description 7165 "Whether this LSP is considered to be eligible for us as a 7166 shortcut in the IGP. In the case that this leaf is set to 7167 true, the IGP SPF calculation uses the metric specified to 7168 determine whether traffic should be carried over this LSP"; 7169 } 7170 leaf metric-type { 7171 type identityref { 7172 base te-types:LSP_METRIC_TYPE; 7173 } 7174 default te-types:LSP_METRIC_INHERITED; 7175 description 7176 "The type of metric specification that should be used to set 7177 the LSP(s) metric"; 7178 } 7179 leaf metric { 7180 type int32; 7181 description 7182 "The value of the metric that should be specified. The value 7183 supplied in this leaf is used in conjunction with the metric 7184 type to determine the value of the metric used by the system. 7185 Where the metric-type is set to LSP_METRIC_ABSOLUTE - the 7186 value of this leaf is used directly; where it is set to 7187 LSP_METRIC_RELATIVE, the relevant (positive or negative) 7188 offset is used to formulate the metric; where metric-type 7189 is LSP_METRIC_INHERITED, the value of this leaf is not 7190 utilised"; 7191 } 7192 leaf-list routing-afs { 7193 type inet:ip-version; 7194 description 7195 "Address families"; 7196 } 7197 } 7199 grouping tunnel-igp-shortcuts { 7200 description 7201 "TE tunnel IGP shortcut grouping"; 7202 container tunnel-igp-shortcut { 7203 description 7204 "Tunnel IGP shortcut properties"; 7205 uses tunnel-igp-shortcut_config; 7206 } 7207 } 7208 grouping tunnel-forwarding-adjacency_configs { 7209 description "Tunnel forwarding adjacency grouping"; 7210 leaf binding-label { 7211 type rt-types:mpls-label; 7212 description "MPLS tunnel binding label"; 7213 } 7214 leaf load-share { 7215 type uint32 { 7216 range "1..4294967295"; 7217 } 7218 description "ECMP tunnel forwarding 7219 load-share factor."; 7220 } 7221 leaf policy-class { 7222 type uint8 { 7223 range "1..7"; 7224 } 7225 description 7226 "The class associated with this tunnel"; 7227 } 7228 } 7230 grouping tunnel-forwarding-adjacency { 7231 description "Properties for using tunnel in forwarding."; 7232 container forwarding { 7233 description 7234 "Tunnel forwarding properties container"; 7235 uses tunnel-forwarding-adjacency_configs; 7236 } 7237 } 7239 /*** End of MPLS TE tunnel configuration/state */ 7240 grouping te-lsp-auto-bandwidth_config { 7241 description 7242 "Configuration parameters related to autobandwidth"; 7244 leaf enabled { 7245 type boolean; 7246 default false; 7247 description 7248 "enables mpls auto-bandwidth on the 7249 lsp"; 7250 } 7252 leaf min-bw { 7253 type te-mpls-types:bandwidth-kbps; 7254 description 7255 "set the minimum bandwidth in Kbps for an 7256 auto-bandwidth LSP"; 7257 } 7259 leaf max-bw { 7260 type te-mpls-types:bandwidth-kbps; 7261 description 7262 "set the maximum bandwidth in Kbps for an 7263 auto-bandwidth LSP"; 7264 } 7266 leaf adjust-interval { 7267 type uint32; 7268 description 7269 "time in seconds between adjustments to 7270 LSP bandwidth"; 7271 } 7273 leaf adjust-threshold { 7274 type te-types:percentage; 7275 description 7276 "percentage difference between the LSP's 7277 specified bandwidth and its current bandwidth 7278 allocation -- if the difference is greater than the 7279 specified percentage, auto-bandwidth adjustment is 7280 triggered"; 7281 } 7282 } 7284 grouping te-lsp-overflow_config { 7285 description 7286 "configuration for mpls lsp bandwidth 7287 overflow adjustment"; 7289 leaf enabled { 7290 type boolean; 7291 default false; 7292 description 7293 "enables mpls lsp bandwidth overflow 7294 adjustment on the lsp"; 7295 } 7297 leaf overflow-threshold { 7298 type te-types:percentage; 7299 description 7300 "bandwidth percentage change to trigger 7301 an overflow event"; 7303 } 7304 leaf trigger-event-count { 7305 type uint16; 7306 description 7307 "number of consecutive overflow sample 7308 events needed to trigger an overflow adjustment"; 7309 } 7310 } 7312 grouping te-lsp-underflow_config { 7313 description 7314 "configuration for mpls lsp bandwidth 7315 underflow adjustment"; 7317 leaf enabled { 7318 type boolean; 7319 default false; 7320 description 7321 "enables bandwidth underflow 7322 adjustment on the lsp"; 7323 } 7325 leaf underflow-threshold { 7326 type te-types:percentage; 7327 description 7328 "bandwidth percentage change to trigger 7329 and underflow event"; 7330 } 7332 leaf trigger-event-count { 7333 type uint16; 7334 description 7335 "number of consecutive underflow sample 7336 events needed to trigger an underflow adjustment"; 7337 } 7338 } 7339 grouping te-tunnel-bandwidth_config { 7340 description 7341 "Configuration parameters related to bandwidth for a tunnel"; 7343 leaf specification-type { 7344 type te-mpls-types:te-bandwidth-type; 7345 default SPECIFIED; 7346 description 7347 "The method used for settign the bandwidth, either explicitly 7348 specified or configured"; 7349 } 7351 leaf set-bandwidth { 7352 when "../specification-type = 'SPECIFIED'" { 7353 description 7354 "The bandwidth value when bandwidth is explicitly 7355 specified"; 7356 } 7357 type te-mpls-types:bandwidth-kbps; 7358 description 7359 "set bandwidth explicitly, e.g., using 7360 offline calculation"; 7361 } 7362 leaf class-type { 7363 type te-types:te-ds-class; 7364 description 7365 "The Class-Type of traffic transported by the LSP."; 7366 reference "RFC4124: section-4.3.1"; 7367 } 7368 } 7370 grouping te-tunnel-bandwidth_state { 7371 description 7372 "Operational state parameters relating to bandwidth for a tunnel"; 7374 leaf signaled-bandwidth { 7375 type te-mpls-types:bandwidth-kbps; 7376 description 7377 "The currently signaled bandwidth of the LSP. In the case where 7378 the bandwidth is specified explicitly, then this will match the 7379 value of the set-bandwidth leaf; in cases where the bandwidth is 7380 dynamically computed by the system, the current value of the 7381 bandwidth should be reflected."; 7382 } 7383 } 7385 grouping tunnel-bandwidth_top { 7386 description 7387 "Top level grouping for specifying bandwidth for a tunnel"; 7389 container bandwidth-mpls { 7390 description 7391 "Bandwidth configuration for TE LSPs"; 7393 uses te-tunnel-bandwidth_config; 7395 container state { 7396 config false; 7397 description 7398 "State parameters related to bandwidth 7399 configuration of TE tunnels"; 7401 uses te-tunnel-bandwidth_state; 7402 } 7404 container auto-bandwidth { 7405 when "../specification-type = 'AUTO'" { 7406 description 7407 "Include this container for auto bandwidth 7408 specific configuration"; 7409 } 7410 description 7411 "Parameters related to auto-bandwidth"; 7413 uses te-lsp-auto-bandwidth_config; 7415 container overflow { 7416 description 7417 "configuration of MPLS overflow bandwidth 7418 adjustement for the LSP"; 7420 uses te-lsp-overflow_config; 7421 } 7423 container underflow { 7424 description 7425 "configuration of MPLS underflow bandwidth 7426 adjustement for the LSP"; 7428 uses te-lsp-underflow_config; 7429 } 7430 } 7431 } 7432 } 7434 grouping te-path-bandwidth_top { 7435 description 7436 "Top level grouping for specifying bandwidth for a TE path"; 7438 container bandwidth { 7439 description 7440 "Bandwidth configuration for TE LSPs"; 7442 uses te-tunnel-bandwidth_config; 7443 container state { 7444 config false; 7445 description 7446 "State parameters related to bandwidth 7447 configuration of TE tunnels"; 7448 uses te-tunnel-bandwidth_state; 7450 } 7451 } 7452 } 7454 /** 7455 * MPLS TE augmentations 7456 */ 7458 /* MPLS TE tunnel augmentations */ 7459 augment "/te:te/te:tunnels/te:tunnel" { 7460 description "MPLS TE tunnel config augmentations"; 7461 uses tunnel-igp-shortcuts; 7462 uses tunnel-forwarding-adjacency; 7463 uses tunnel-bandwidth_top; 7464 } 7466 /* MPLS TE LSPs augmentations */ 7467 augment "/te:te/te:tunnels/te:tunnel/" + 7468 "te:p2p-primary-paths/te:p2p-primary-path" { 7469 when "/te:te/te:tunnels/te:tunnel" + 7470 "/te:p2p-primary-paths/te:p2p-primary-path" + 7471 "/te:path-setup-protocol = 'te-types:path-setup-static'" { 7472 description 7473 "When the path is statically provisioned"; 7474 } 7475 description "MPLS TE LSP augmentation"; 7476 leaf static-lsp-name { 7477 type mpls-static:static-lsp-ref; 7478 description "Static LSP name"; 7479 } 7480 } 7482 augment "/te:te/te:tunnels/te:tunnel/" + 7483 "te:p2p-primary-paths/te:p2p-primary-path/" + 7484 "te:state" { 7485 description "MPLS TE LSP augmentation"; 7486 leaf static-lsp-name { 7487 type mpls-static:static-lsp-ref; 7488 description "Static LSP name"; 7489 } 7490 } 7491 augment "/te:te/te:tunnels/te:tunnel/" + 7492 "te:p2p-secondary-paths/te:p2p-secondary-path" { 7493 when "/te:te/te:tunnels/te:tunnel" + 7494 "/te:p2p-secondary-paths/te:p2p-secondary-path/" + 7495 "te:path-setup-protocol = 'te-types:path-setup-static'" { 7496 description 7497 "When the path is statically provisioned"; 7498 } 7499 description "MPLS TE LSP augmentation"; 7500 leaf static-lsp-name { 7501 type mpls-static:static-lsp-ref; 7502 description "Static LSP name"; 7503 } 7504 } 7505 augment "/te:te/te:tunnels/te:tunnel/" + 7506 "te:p2p-secondary-paths/te:p2p-secondary-path/" + 7507 "te:state" { 7508 description "MPLS TE LSP augmentation"; 7509 leaf static-lsp-name { 7510 type mpls-static:static-lsp-ref; 7511 description "Static LSP name"; 7512 } 7513 } 7515 augment "/te:te/te:globals/te:named-path-constraints/" + 7516 "te:named-path-constraint" { 7517 description "foo"; 7518 uses te-path-bandwidth_top; 7519 } 7520 } 7521 7523 Figure 10: TE MPLS YANG module 7525 file "ietf-te-mpls-types@2018-02-15.yang" 7526 module ietf-te-mpls-types { 7528 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls-types"; 7530 /* Replace with IANA when assigned */ 7531 prefix "te-mpls-types"; 7533 organization 7534 "IETF TEAS Working Group"; 7536 contact "Fill me"; 7538 description 7539 "This module contains a collection of generally 7540 useful TE specific YANG data type defintions."; 7542 revision "2018-02-15" { 7543 description "Latest revision of TE MPLS types"; 7544 reference "RFC3209"; 7545 } 7547 identity backup-protection-type { 7548 description 7549 "Base identity for backup protection type"; 7550 } 7552 identity backup-protection-link { 7553 base backup-protection-type; 7554 description 7555 "backup provides link protection only"; 7556 } 7558 identity backup-protection-node-link { 7559 base backup-protection-type; 7560 description 7561 "backup offers node (preferred) or link protection"; 7562 } 7564 identity bc-model-type { 7565 description 7566 "Base identity for Diffserv-TE bandwidth constraint 7567 model type"; 7568 } 7570 identity bc-model-rdm { 7571 base bc-model-type; 7572 description 7573 "Russian Doll bandwidth constraint model type."; 7574 } 7576 identity bc-model-mam { 7577 base bc-model-type; 7578 description 7579 "Maximum Allocation bandwidth constraint 7580 model type."; 7581 } 7583 identity bc-model-mar { 7584 base bc-model-type; 7585 description 7586 "Maximum Allocation with Reservation 7587 bandwidth constraint model type."; 7588 } 7590 typedef bandwidth-kbps { 7591 type uint64; 7592 units "Kbps"; 7593 description 7594 "Bandwidth values expressed in kilobits per second"; 7595 } 7597 typedef bandwidth-mbps { 7598 type uint64; 7599 units "Mbps"; 7600 description 7601 "Bandwidth values expressed in megabits per second"; 7602 } 7604 typedef bandwidth-gbps { 7605 type uint64; 7606 units "Gbps"; 7607 description 7608 "Bandwidth values expressed in gigabits per second"; 7609 } 7611 typedef te-bandwidth-type { 7612 type enumeration { 7613 enum SPECIFIED { 7614 description 7615 "Bandwidth is explicitly specified"; 7616 } 7617 enum AUTO { 7618 description 7619 "Bandwidth is automatically computed"; 7620 } 7621 } 7622 description 7623 "enumerated type for specifying whether bandwidth is 7624 explicitly specified or automatically computed"; 7625 } 7627 typedef bfd-type { 7628 type enumeration { 7629 enum classical { 7630 description "BFD classical session type."; 7631 } 7632 enum seamless { 7633 description "BFD seamless session type."; 7634 } 7635 } 7636 default "classical"; 7637 description 7638 "Type of BFD session"; 7639 } 7640 typedef bfd-encap-mode-type { 7641 type enumeration { 7642 enum gal { 7643 description 7644 "BFD with GAL mode"; 7645 } 7646 enum ip { 7647 description 7648 "BFD with IP mode"; 7649 } 7650 } 7651 default ip; 7652 description 7653 "Possible BFD transport modes when running over TE 7654 LSPs."; 7655 } 7656 } 7657 7659 Figure 11: TE MPLS types YANG module 7661 file "ietf-te-sr-mpls@2018-02-15.yang" 7662 module ietf-te-sr-mpls { 7664 namespace "urn:ietf:params:xml:ns:yang:ietf-te-sr-mpls"; 7666 /* Replace with IANA when assigned */ 7667 prefix "te-sr-mpls"; 7669 /* Import TE generic types */ 7670 import ietf-te { 7671 prefix te; 7672 } 7674 /* Import TE generic types */ 7675 import ietf-te-types { 7676 prefix te-types; 7677 } 7679 organization 7680 "IETF Traffic Engineering Architecture and Signaling (TEAS) 7681 Working Group"; 7683 contact 7684 "WG Web: 7685 WG List: 7687 WG Chair: Lou Berger 7688 7690 WG Chair: Vishnu Pavan Beeram 7691 7693 Editor: Tarek Saad 7694 7696 Editor: Rakesh Gandhi 7697 7699 Editor: Vishnu Pavan Beeram 7700 7702 Editor: Himanshu Shah 7703 7705 Editor: Xufeng Liu 7706 7708 Editor: Xia Chen 7709 7711 Editor: Raqib Jones 7712 7714 Editor: Bin Wen 7715 "; 7717 description 7718 "YANG data module for MPLS TE configurations, 7719 state, RPC and notifications."; 7721 revision "2018-02-15" { 7722 description "Latest update to MPLS TE YANG module."; 7723 reference "TBD"; 7724 } 7726 identity sr-protection-type { 7727 description 7728 "The Adj-SID base protection types"; 7729 } 7731 identity sr-protection-type-protected { 7732 base sr-protection-type; 7733 description 7734 "The Adj-SID is eligible if protected"; 7735 } 7736 identity sr-protection-type-unprotected { 7737 base sr-protection-type; 7738 description 7739 "The Adj-SID is eligible if unprotected"; 7740 } 7742 identity sr-protection-type-any { 7743 base sr-protection-type; 7744 description 7745 "The Adj-SID is eligible if protected or unprotected"; 7746 } 7748 typedef te-sid-selection-mode { 7749 type enumeration { 7750 enum ADJ_SID_ONLY { 7751 description 7752 "The SR-TE tunnel should only use adjacency SIDs 7753 to build the SID stack to be pushed for the LSP"; 7754 } 7755 enum MIXED_MODE { 7756 description 7757 "The SR-TE tunnel can use a mix of adjacency 7758 and prefix SIDs to build the SID stack to be pushed 7759 to the LSP"; 7760 } 7761 } 7762 description "SID selection mode type"; 7763 } 7765 /* MPLS SR-TE tunnel properties*/ 7766 grouping tunnel-sr-mpls-properties_config { 7767 description "MPLS TE SR tunnel properties"; 7768 leaf path-signaling-type { 7769 type identityref { 7770 base te-types:path-signaling-type; 7771 } 7772 description "TE tunnel path signaling type"; 7773 } 7774 } 7776 grouping te-sr-named-path-constraints_config { 7777 description 7778 "Configuration parameters relating to SR-TE LSPs"; 7780 leaf sid-selection-mode { 7781 type te-sid-selection-mode; 7782 default MIXED_MODE; 7783 description 7784 "The restrictions placed on the SIDs to be selected by the 7785 calculation method for the explicit path when it is 7786 instantiated for a SR-TE LSP"; 7787 } 7789 leaf sid-protection { 7790 type identityref { 7791 base sr-protection-type; 7792 } 7793 default sr-protection-type-any; 7794 description 7795 "When set to protected only SIDs that are 7796 protected are to be selected by the calculating method 7797 when the explicit path is instantiated by a SR-TE LSP."; 7798 } 7799 } 7801 grouping te-sr-named-path-constraints { 7802 description "Named TE SR path constraints grouping"; 7803 uses te-sr-named-path-constraints_config; 7804 } 7806 /*** End of MPLS SR-TE tunnel configuration/state */ 7808 /** 7809 * MPLS TE augmentations 7810 */ 7811 augment "/te:te/te:globals/te:named-path-constraints" + 7812 "/te:named-path-constraint" { 7813 description 7814 "Augmentations for MPLS SR-TE config named constraints"; 7815 uses te-sr-named-path-constraints; 7816 } 7818 /* MPLS TE tunnel augmentations */ 7820 /* MPLS TE LSPs augmentations */ 7821 } 7822 7824 Figure 12: SR TE MPLS YANG module 7826 5. IANA Considerations 7828 This document registers the following URIs in the IETF XML registry 7829 [RFC3688]. Following the format in [RFC3688], the following 7830 registration is requested to be made. 7832 URI: urn:ietf:params:xml:ns:yang:ietf-te XML: N/A, the requested URI 7833 is an XML namespace. 7835 URI: urn:ietf:params:xml:ns:yang:ietf-te-device XML: N/A, the 7836 requested URI is an XML namespace. 7838 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls XML: N/A, the requested 7839 URI is an XML namespace. 7841 URI: urn:ietf:params:xml:ns:yang:ietf-te-sr-mpls XML: N/A, the 7842 requested URI is an XML namespace. 7844 URI: urn:ietf:params:xml:ns:yang:ietf-te-types XML: N/A, the 7845 requested URI is an XML namespace. 7847 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls-types XML: N/A, the 7848 requested URI is an XML namespace. 7850 This document registers a YANG module in the YANG Module Names 7851 registry [RFC6020]. 7853 name: ietf-te namespace: urn:ietf:params:xml:ns:yang:ietf-te prefix: 7854 ietf-te reference: RFC3209 7856 name: ietf-te-device namespace: urn:ietf:params:xml:ns:yang:ietf-te 7857 prefix: ietf-te-device reference: RFC3209 7859 name: ietf-te-mpls namespace: urn:ietf:params:xml:ns:yang:ietf-te- 7860 mpls prefix: ietf-te-mpls reference: RFC3209 7862 name: ietf-te-sr-mpls namespace: urn:ietf:params:xml:ns:yang:ietf-te- 7863 sr-mpls prefix: ietf-te-sr-mpls 7865 name: ietf-te-types namespace: urn:ietf:params:xml:ns:yang:ietf-te- 7866 types prefix: ietf-te-types reference: RFC3209 7868 name: ietf-te-mpls-types namespace: urn:ietf:params:xml:ns:yang:ietf- 7869 te-mpls-types prefix: ietf-te-mpls-types reference: RFC3209 7871 6. Security Considerations 7873 The YANG module defined in this memo is designed to be accessed via 7874 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 7875 secure transport layer and the mandatory-to-implement secure 7876 transport is SSH [RFC6242]. The NETCONF access control model 7877 [RFC6536] provides means to restrict access for particular NETCONF 7878 users to a pre-configured subset of all available NETCONF protocol 7879 operations and content. 7881 There are a number of data nodes defined in the YANG module which are 7882 writable/creatable/deletable (i.e., config true, which is the 7883 default). These data nodes may be considered sensitive or vulnerable 7884 in some network environments. Write operations (e.g., ) 7885 to these data nodes without proper protection can have a negative 7886 effect on network operations. Following are the subtrees and data 7887 nodes and their sensitivity/vulnerability: 7889 "/te/globals": This module specifies the global TE configurations on 7890 a device. Unauthorized access to this container could cause the 7891 device to ignore packets it should receive and process. 7893 "/te/tunnels": This list specifies the configured TE tunnels on a 7894 device. Unauthorized access to this list could cause the device to 7895 ignore packets it should receive and process. 7897 "/te/lsps-state": This list specifies the state derived LSPs. 7898 Unauthorized access to this list could cause the device to ignore 7899 packets it should receive and process. 7901 "/te/interfaces": This list specifies the configured TE interfaces on 7902 a device. Unauthorized access to this list could cause the device to 7903 ignore packets it should receive and process. 7905 7. Acknowledgement 7907 The authors would like to thank the members of the multi-vendor YANG 7908 design team who are involved in the definition of this model. 7910 The authors would also like to thank Loa Andersson, Lou Berger, 7911 Sergio Belotti, Italo Busi, Carlo Perocchio, Francesco Lazzeri, Aihua 7912 Guo, Dhruv Dhody, Anurag Sharma, and Xian Zhang for their comments 7913 and providing valuable feedback on this document. 7915 8. Contributors 7916 Xia Chen 7917 Huawei Technologies 7919 Email: jescia.chenxia@huawei.com 7921 Raqib Jones 7922 Brocade 7924 Email: raqib@Brocade.com 7926 Bin Wen 7927 Comcast 7929 Email: Bin_Wen@cable.comcast.com 7931 9. Normative References 7933 [I-D.ietf-teas-yang-rsvp] 7934 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 7935 and H. Shah, "A YANG Data Model for Resource Reservation 7936 Protocol (RSVP)", draft-ietf-teas-yang-rsvp-08 (work in 7937 progress), October 2017. 7939 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 7940 Requirement Levels", BCP 14, RFC 2119, 7941 DOI 10.17487/RFC2119, March 1997, 7942 . 7944 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 7945 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 7946 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 7947 . 7949 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 7950 Switching (GMPLS) Signaling Resource ReserVation Protocol- 7951 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, 7952 DOI 10.17487/RFC3473, January 2003, 7953 . 7955 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 7956 DOI 10.17487/RFC3688, January 2004, 7957 . 7959 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 7960 the Network Configuration Protocol (NETCONF)", RFC 6020, 7961 DOI 10.17487/RFC6020, October 2010, 7962 . 7964 [RFC6107] Shiomoto, K., Ed. and A. Farrel, Ed., "Procedures for 7965 Dynamically Signaled Hierarchical Label Switched Paths", 7966 RFC 6107, DOI 10.17487/RFC6107, February 2011, 7967 . 7969 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 7970 and A. Bierman, Ed., "Network Configuration Protocol 7971 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 7972 . 7974 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 7975 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 7976 . 7978 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 7979 Protocol (NETCONF) Access Control Model", RFC 6536, 7980 DOI 10.17487/RFC6536, March 2012, 7981 . 7983 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 7984 RFC 6991, DOI 10.17487/RFC6991, July 2013, 7985 . 7987 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 7988 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 7989 . 7991 Authors' Addresses 7993 Tarek Saad (editor) 7994 Cisco Systems Inc 7996 Email: tsaad@cisco.com 7998 Rakesh Gandhi 7999 Cisco Systems Inc 8001 Email: rgandhi@cisco.com 8002 Xufeng Liu 8003 Jabil 8005 Email: Xufeng_Liu@jabil.com 8007 Vishnu Pavan Beeram 8008 Juniper Networks 8010 Email: vbeeram@juniper.net 8012 Himanshu Shah 8013 Ciena 8015 Email: hshah@ciena.com 8017 Igor Bryskin 8018 Huawei Technologies 8020 Email: Igor.Bryskin@huawei.com