idnits 2.17.1 draft-ietf-teas-yang-te-types-11.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 -- The document date (October 01, 2019) is 1669 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) -- Obsolete informational reference (is this intentional?): RFC 3272 (Obsoleted by RFC 9522) Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TEAS Working Group T. Saad 3 Internet-Draft Juniper Networks 4 Intended status: Standards Track R. Gandhi 5 Expires: April 3, 2020 Cisco Systems Inc 6 X. Liu 7 Volta Networks 8 V. Beeram 9 Juniper Networks 10 I. Bryskin 11 Huawei Technologies 12 October 01, 2019 14 Traffic Engineering Common YANG Types 15 draft-ietf-teas-yang-te-types-11 17 Abstract 19 This document defines a collection of common data types and groupings 20 in YANG data modeling language. These derived common types and 21 groupings are intended to be imported by modules that model Traffic 22 Engineering (TE) configuration and state capabilities. 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at https://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on April 3, 2020. 41 Copyright Notice 43 Copyright (c) 2019 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (https://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 59 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 60 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 61 2. Acronyms and Abbreviations . . . . . . . . . . . . . . . . . 3 62 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 3.1. TE Types Module Contents . . . . . . . . . . . . . . . . 4 64 3.2. Packet TE Types Module Contents . . . . . . . . . . . . . 8 65 4. TE Types YANG Module . . . . . . . . . . . . . . . . . . . . 8 66 5. Packet TE Types YANG Module . . . . . . . . . . . . . . . . . 67 67 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 76 68 7. Security Considerations . . . . . . . . . . . . . . . . . . . 76 69 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 77 70 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 77 71 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 77 72 10.1. Normative References . . . . . . . . . . . . . . . . . . 77 73 10.2. Informative References . . . . . . . . . . . . . . . . . 79 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 85 76 1. Introduction 78 YANG [RFC6020] and [RFC7950] is a data modeling language used to 79 model configuration data, state data, Remote Procedure Calls, and 80 notifications for network management protocols such as NETCONF 81 [RFC6241]. The YANG language supports a small set of built-in data 82 types and provides mechanisms to derive other types from the built-in 83 types. 85 This document introduces a collection of common data types derived 86 from the built-in YANG data types. The derived types and groupings 87 are designed to be the common types applicable for modeling Traffic 88 Engineering (TE) features in model(s) defined outside of this 89 document. 91 1.1. Terminology 93 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 94 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 95 "OPTIONAL" in this document are to be interpreted as described in BCP 96 14 [RFC2119] [RFC8174] when, and only when, they appear in all 97 capitals, as shown here. 99 The terminology for describing YANG data models is found in 100 [RFC7950]. 102 1.2. Prefixes in Data Node Names 104 In this document, names of data nodes and other data model objects 105 are prefixed using the standard prefix associated with the 106 corresponding YANG imported modules, as shown in Table 1. 108 +-----------------+----------------------+---------------+ 109 | Prefix | YANG module | Reference | 110 +-----------------+----------------------+---------------+ 111 | yang | ietf-yang-types | [RFC6991] | 112 | inet | ietf-inet-types | [RFC6991] | 113 | rt-types | ietf-routing-types | [RFC8294] | 114 | te-types | ietf-te-types | this document | 115 | te-packet-types | ietf-te-packet-types | this document | 116 +-----------------+----------------------+---------------+ 118 Table 1: Prefixes and corresponding YANG modules 120 2. Acronyms and Abbreviations 122 GMPLS: Generalized Multiprotocol Label Switching 124 LSP: Label Switched Path 126 LSR: Label Switching Router 128 LER: Label Edge Router 130 MPLS: Multiprotocol Label Switching 132 RSVP: Resource Reservation Protocol 134 TE: Traffic Engineering 136 DS-TE: Differentiated Services Traffic Engineering 138 SRLG: Shared Link Risk Group 140 NBMA: Non-Broadcast Multiple-access Network 142 APS: Automatic Protection Switching 143 SD: Signal Degrade 145 SF: Signal Fail 147 WTR: Wait to Restore 149 PM: Performance Metrics 151 3. Overview 153 This document defines two YANG modules for common TE types: ietf-te- 154 types for TE generic types and ietf-te-packet-types for packet- 155 specific types. Other technology-specific TE types are outside the 156 scope of this document. 158 3.1. TE Types Module Contents 160 The ietf-te-types module contains common TE types that are 161 independent and agnostic of any specific technology or control plane 162 instance. 164 The ietf-te-types module contains the following YANG reusable types 165 and groupings: 167 te-bandwidth: 169 A YANG grouping that defines the generic TE bandwidth. The 170 modeling structure allows augmentation for each technology. For 171 un-specified technologies, the string encoded te-bandwidth type is 172 used. 174 te-label: 176 A YANG grouping that defines the generic TE label. The modeling 177 structure allows augmentation for each technology. For un- 178 specified technologies, rt-types:generalized-label is used. 180 performance-metrics-attributes: 182 A YANG grouping that defines one-way and two-way measured 183 performance metrics and anomalous indication on link(s) or the 184 path as defined in [RFC7471], [RFC8570], and [RFC7823]. 186 performance-metrics-throttle-container: 188 A YANG grouping that defines configurable thresholds for 189 advertisement suppression and measurement intervals. 191 te-ds-class: 193 A type representing the Differentiated-Services (DS) Class-Type of 194 traffic as defined in [RFC4124]. 196 te-label-direction: 198 An enumerated type for specifying the forward or reverse direction 199 of a label. 201 te-hop-type: 203 An enumerated type for specifying hop as loose or strict. 205 te-global-id: 207 A type representing the identifier that uniquely identify an 208 operator, which can be either a provider or a client. The 209 definition of this type is taken from [RFC6370] and [RFC5003]. 210 This attribute type is used solely to provide a globally unique 211 context for TE topologies. 213 te-node-id: 215 A type representing the identifier for a node in a TE topology. 216 The identifier is represented as 4 octets in dotted-quad notation. 217 This attribute MAY be mapped to the Router Address described in 218 Section 2.4.1 of [RFC3630], the TE Router ID described in 219 Section 3 of [RFC6827], the Traffic Engineering Router ID 220 described in Section 4.3 of [RFC5305], or the TE Router ID 221 described in Section 3.2.1 of [RFC6119]. The reachability of such 222 a TE node MAY be achieved by a mechanism such as Section 6.2 of 223 [RFC6827]. 225 te-topology-id: 227 A type representing the identifier for a topology. It is optional 228 to have one or more prefixes at the beginning, separated by 229 colons. The prefixes can be the network-types, defined in ietf- 230 network [RFC8345], to help user to understand the topology better 231 before further inquiry. 233 te-tp-id: 235 A type representing the identifier of a TE interface link 236 termination endpoint (TP) on a specific TE node where the TE link 237 connects. This attribute is mapped to local or remote link 238 identifier in [RFC3630] and [RFC5305]. 240 te-path-disjointness: 242 A type representing the different resource disjointness options 243 for a TE tunnel path as defined in [RFC4872]. 245 admin-groups: 247 A union type for TE link's classic or extended administrative 248 groups as defined in [RFC3630] and [RFC5305]. 250 srlg: 252 A type representing the Shared Risk Link Group (SRLG) as defined 253 in [RFC4203] and [RFC5307]. 255 te-metric: 257 A type representing the TE metric as defined in [RFC3785]. 259 te-recovery-status: 261 An enumerated type for the different status of a recovery action 262 as defined in [RFC4427] and [RFC6378]. 264 path-attribute-flags: 266 A base YANG identity for supported LSP path flags as defined in 267 [RFC3209], [RFC4090], [RFC4736], [RFC5712], [RFC4920], [RFC5420], 268 [RFC7570], [RFC4875], [RFC5151], [RFC5150], [RFC6001], [RFC6790], 269 [RFC7260], [RFC8001], [RFC8149], and [RFC8169]. 271 link-protection-type: 273 A base YANG identity for supported link protection types as 274 defined in [RFC4872], [RFC4427] 276 restoration-scheme-type: 278 A base YANG identity for supported LSP restoration schemes as 279 defined in [RFC4872]. 281 protection-external-commands: 283 A base YANG identity for supported protection external commands 284 for trouble shooting purposes as defined in [RFC4427]. 286 association-type: 288 A base YANG identity for supported Label Switched Path (LSP) 289 association types as defined in [RFC6780], [RFC4872], [RFC4873]. 291 objective-function-type: 293 A base YANG identity for supported path computation objective 294 functions as defined in [RFC5541]. 296 te-tunnel-type: 298 A base YANG identity for supported TE tunnel types as defined in 299 [RFC3209] and [RFC4875]. 301 lsp-encoding-types: 303 base YANG identity for supported LSP encoding types as defined in 304 [RFC3471]. 306 lsp-protection-type: 308 A base YANG identity for supported LSP protection types as defined 309 in [RFC4872] and [RFC4873]. 311 switching-capabilities: 313 A base YANG identity for supported interface switching 314 capabilities as defined in [RFC3471]. 316 resource-affinities-type: 318 A base YANG identity for supported attribute filters associated 319 with a tunnel that must be satisfied for a link to be acceptable 320 as defined in [RFC2702] and [RFC3209]. 322 path-metric-type: 324 A base YANG identity for supported path metric types as defined in 325 [RFC3785] and [RFC7471]. 327 explicit-route-hop: 329 A YANG grouping that defines supported explicit routes as defined 330 in [RFC3209] and [RFC3477]. 332 te-link-access-type: 334 An enumerated type for the different TE link access types as 335 defined in [RFC3630]. 337 3.2. Packet TE Types Module Contents 339 The ietf-te-packet-types module covers the common types and groupings 340 that are specific to packet technology. 342 The ietf-te-packet-types module contains the following YANG reusable 343 types and groupings: 345 backup-protection-type: 347 A base YANG identity for supported protection types that a backup 348 or bypass tunnel can provide as defined in [RFC4090]. 350 te-class-type: 352 A type that represents the Diffserv-TE class-type as defined in 353 [RFC4124]. 355 bc-type: 357 A type that represents the Diffserv-TE Bandwidth Constraint (BC) 358 as defined in [RFC4124]. 360 bc-model-type: 362 A base YANG identity for supported Diffserv-TE bandwidth 363 constraint models as defined in [RFC4125], [RFC4126] and 364 [RFC4127]. 366 te-bandwidth-requested-type: 368 An enumerated type for the different options to request bandwidth 369 for a specific tunnel. 371 performance-metrics-attributes-packet: 373 A YANG grouping that contains the generic performance metrics and 374 additional packet specific metrics. 376 4. TE Types YANG Module 378 The ietf-te-types module imports from the following modules: 380 o ietf-yang-types and ietf-inet-types defined in [RFC6991] 382 o ietf-routing-types defined in [RFC8294] 383 In addition to the references cross-referenced in Section 3.1, this 384 model also references the following RFCs in defining the types and 385 YANG grouping of the YANG module: [RFC3272], [RFC4202], [RFC4328], 386 [RFC4657], [RFC5817], [RFC6004], [RFC6511], [RFC6205], [RFC7139], 387 [RFC7308], [RFC7551], [RFC7571], [RFC7579], [RFC4090], [RFC4561] and 388 [RFC7951], [G709]. 390 file "ietf-te-types@2019-10-01.yang" 391 module ietf-te-types { 392 yang-version 1.1; 393 namespace "urn:ietf:params:xml:ns:yang:ietf-te-types"; 395 /* Replace with IANA when assigned */ 396 prefix "te-types"; 398 import ietf-inet-types { 399 prefix inet; 400 reference "RFC6991: Common YANG Data Types"; 401 } 403 import ietf-yang-types { 404 prefix "yang"; 405 reference "RFC6991: Common YANG Data Types"; 406 } 408 import ietf-routing-types { 409 prefix "rt-types"; 410 reference "RFC8294: Common YANG Data Types for the Routing Area"; 411 } 413 organization 414 "IETF Traffic Engineering Architecture and Signaling (TEAS) 415 Working Group"; 417 contact 418 "WG Web: 419 WG List: 421 Editor: Tarek Saad 422 424 Editor: Rakesh Gandhi 425 427 Editor: Vishnu Pavan Beeram 428 430 Editor: Himanshu Shah 431 433 Editor: Xufeng Liu 434 436 Editor: Igor Bryskin 437 439 Editor: Young Lee 440 "; 442 description 443 "This module contains a collection of generally useful TE 444 specific YANG data type definitions. The model fully conforms 445 to the Network Management Datastore Architecture (NMDA). 447 Copyright (c) 2018 IETF Trust and the persons 448 identified as authors of the code. All rights reserved. 450 Redistribution and use in source and binary forms, with or 451 without modification, is permitted pursuant to, and subject 452 to the license terms contained in, the Simplified BSD License 453 set forth in Section 4.c of the IETF Trust's Legal Provisions 454 Relating to IETF Documents 455 (https://trustee.ietf.org/license-info). 456 This version of this YANG module is part of RFC XXXX; see 457 the RFC itself for full legal notices."; 459 // RFC Ed.: replace XXXX with actual RFC number and remove this 460 // note. 462 // RFC Ed.: update the date below with the date of RFC publication 463 // and remove this note. 465 revision "2019-10-01" { 466 description "Latest revision of TE types"; 467 reference 468 "RFC XXXX: A YANG Data Model for Common Traffic Engineering 469 Types"; 470 } 472 /** 473 * Typedefs 474 */ 475 typedef admin-group { 476 type yang:hex-string { 477 /* 01:02:03:04 */ 478 length "1..11"; 480 } 481 description 482 "Administrative group/Resource class/Color representation in 483 hex-string type."; 484 reference "RFC3630 and RFC5305"; 485 } 487 typedef admin-groups { 488 type union { 489 type admin-group; 490 type extended-admin-group; 491 } 492 description "TE administrative group derived type"; 493 } 495 typedef extended-admin-group { 496 type yang:hex-string; 497 description 498 "Extended administrative group/Resource class/Color 499 representation in hex-string type"; 500 reference "RFC7308"; 501 } 503 typedef path-attribute-flags { 504 type union { 505 type identityref { 506 base session-attributes-flags; 507 } 508 type identityref { 509 base lsp-attributes-flags; 510 } 511 } 512 description "Path attributes flags type"; 513 } 515 typedef performance-metrics-normality { 516 type enumeration { 517 enum "unknown" { 518 value 0; 519 description 520 "Unknown."; 521 } 522 enum "normal" { 523 value 1; 524 description 525 "Normal. Indicates anomalous bit is not set"; 526 } 527 enum "abnormal" { 528 value 2; 529 description 530 "Abnormal. Indicate that the anomalous bit is set."; 531 } 532 } 533 description 534 "Indicates whether a performance metric is normal (anomalous 535 bit not set, abnormal (anomalous bit set), or unknown."; 536 reference 537 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 538 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 539 RFC7823: Performance-Based Path Selection for Explicitly 540 Routed Label Switched Paths (LSPs) Using TE Metric 541 Extensions"; 542 } 544 typedef srlg { 545 type uint32; 546 description "SRLG type"; 547 reference "RFC4203 and RFC5307"; 548 } 550 typedef te-common-status { 551 type enumeration { 552 enum up { 553 description 554 "Enabled."; 555 } 556 enum down { 557 description 558 "Disabled."; 559 } 560 enum testing { 561 description 562 "In some test mode."; 563 } 564 enum preparing-maintenance { 565 description 566 "Resource is disabled in the control plane to prepare for 567 graceful shutdown for maintenance purposes."; 568 reference 569 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 570 Traffic Engineering Networks"; 571 } 572 enum maintenance { 573 description 574 "Resource is disabled in the data plane for maintenance 575 purposes."; 577 } 578 enum unknown { 579 description 580 "Status is unknown"; 581 } 582 } 583 description 584 "Defines a type representing the common states of a TE 585 resource."; 586 } 588 typedef te-bandwidth { 589 type string { 590 pattern 591 '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 592 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 593 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' 594 + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 595 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 596 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; 597 } 598 description 599 "This is the generic bandwidth type that is a string containing 600 a list of numbers separated by commas, with each of these 601 number can be non-negative decimal, hex integer, or hex float: 602 (dec | hex | float)[*(','(dec | hex | float))] 603 For packet switching type, the string encoding follows the 604 type bandwidth-ieee-float32 defined in RFC 8294 (e.g. 0x1p10). 605 For OTN switching type, a list of integers can be used, such 606 as '0,2,3,1', indicating 2 odu0's and 1 odu3. 607 For DWDM, a list of pairs of slot number and width can be 608 used, such as '0,2,3,3', indicating a frequency slot 0 with 609 slot width 2 and a frequency slot 3 with slot width 3. 610 Canonically, the string is represented as all lowercase and in 611 hex where the prefix '0x' precedes the hex number"; 612 reference "RFC 8294, G709"; 613 } // te-bandwidth 615 typedef te-ds-class { 616 type uint8 { 617 range '0..7'; 618 } 619 description 620 "The Differentiated Class-Type of traffic."; 621 reference "RFC4124: section-4.3.1"; 622 } 624 typedef te-global-id { 625 type uint32; 626 description 627 "An identifier to uniquely identify an operator, which can be 628 either a provider or a client. 629 The definition of this type is taken from RFC6370 and RFC5003. 630 This attribute type is used solely to provide a globally 631 unique context for TE topologies."; 632 } 634 typedef te-hop-type { 635 type enumeration { 636 enum loose { 637 description 638 "loose hop in an explicit path"; 639 } 640 enum strict { 641 description 642 "strict hop in an explicit path"; 643 } 644 } 645 description 646 "enumerated type for specifying loose or strict 647 paths"; 648 reference "RFC3209: section-4.3.2"; 649 } 651 typedef te-link-access-type { 652 type enumeration { 653 enum point-to-point { 654 description 655 "The link is point-to-point."; 656 } 657 enum multi-access { 658 description 659 "The link is multi-access, including broadcast and NBMA."; 660 } 661 } 662 description 663 "Defines a type representing the access type of a TE link."; 664 reference 665 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 666 Version 2."; 667 } 669 typedef te-label-direction { 670 type enumeration { 671 enum forward { 672 description 673 "Label allocated for the forward LSP direction"; 674 } 675 enum reverse { 676 description 677 "Label allocated for the reverse LSP direction"; 678 } 679 } 680 description 681 "enumerated type for specifying the forward or reverse 682 label"; 683 } 685 typedef te-link-direction { 686 type enumeration { 687 enum incoming { 688 description 689 "explicit route represents an incoming link on a node"; 690 } 691 enum outgoing { 692 description 693 "explicit route represents an outgoing link on a node"; 694 } 695 } 696 description 697 "enumerated type for specifying direction of link on a node"; 698 } 700 typedef te-metric { 701 type uint32; 702 description "TE metric"; 703 reference "RFC3785"; 704 } 706 typedef te-node-id { 707 type yang:dotted-quad; 708 description 709 "A type representing the identifier for a node in a TE 710 topology. 711 The identifier is represented as 4 octets in dotted-quad 712 notation. 713 This attribute MAY be mapped to the Router Address described 714 in Section 2.4.1 of [RFC3630], the TE Router ID described in 715 Section 3 of [RFC6827], the Traffic Engineering Router ID 716 described in Section 4.3 of [RFC5305], or the TE Router ID 717 described in Section 3.2.1 of [RFC6119]. 718 The reachability of such a TE node MAY be achieved by a 719 mechanism such as Section 6.2 of [RFC6827]."; 720 } 721 typedef te-oper-status { 722 type te-common-status; 723 description 724 "Defines a type representing the operational status of 725 a TE resource."; 726 } 727 typedef te-admin-status { 728 type te-common-status; 729 description 730 "Defines a type representing the administrative status of 731 a TE resource."; 732 } 734 typedef te-path-disjointness { 735 type bits { 736 bit node { 737 position 0; 738 description "Node disjoint."; 739 } 740 bit link { 741 position 1; 742 description "Link disjoint."; 743 } 744 bit srlg { 745 position 2; 746 description "SRLG (Shared Risk Link Group) disjoint."; 747 } 748 } 749 description 750 "Type of the resource disjointness for a TE tunnel path."; 751 reference 752 "RFC4872: RSVP-TE Extensions in Support of End-to-End 753 Generalized Multi-Protocol Label Switching (GMPLS) 754 Recovery"; 755 } // te-path-disjointness 757 typedef te-recovery-status { 758 type enumeration { 759 enum normal { 760 description 761 "Both the recovery and working spans are fully 762 allocated and active, data traffic is being 763 transported over (or selected from) the working 764 span, and no trigger events are reported."; 765 } 766 enum recovery-started { 767 description 768 "The recovery action has been started, but not completed."; 770 } 771 enum recovery-succeeded { 772 description 773 "The recovery action has succeeded. The working span has 774 reported a failure/degrade condition and the user traffic 775 is being transported (or selected) on the recovery span."; 776 } 777 enum recovery-failed { 778 description 779 "The recovery action has failed."; 780 } 781 enum reversion-started { 782 description 783 "The reversion has started."; 784 } 785 enum reversion-succeeded { 786 description 787 "The reversion action has succeeded."; 788 } 789 enum reversion-failed { 790 description 791 "The reversion has failed."; 792 } 793 enum recovery-unavailable { 794 description 795 "The recovery is unavailable -- either as a result of an 796 operator Lockout command or a failure condition detected 797 on the recovery span."; 798 } 799 enum recovery-admin { 800 description 801 "The operator has issued a command switching the user 802 traffic to the recovery span."; 803 } 804 enum wait-to-restore { 805 description 806 "The recovery domain is recovering from a failure/degrade 807 condition on the working span that is being controlled by 808 the Wait-to-Restore (WTR) timer."; 809 } 810 } 811 description 812 "Defines the status of a recovery action."; 813 reference 814 "RFC4427: Recovery (Protection and Restoration) Terminology 815 for Generalized Multi-Protocol Label Switching (GMPLS). 816 RFC6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; 817 } 818 typedef te-template-name { 819 type string { 820 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 821 } 822 description 823 "A type for the name of a TE node template or TE link 824 template."; 825 } 827 typedef te-topology-event-type { 828 type enumeration { 829 enum "add" { 830 value 0; 831 description 832 "A TE node or te-link has been added."; 833 } 834 enum "remove" { 835 value 1; 836 description 837 "A TE node or te-link has been removed."; 838 } 839 enum "update" { 840 value 2; 841 description 842 "A TE node or te-link has been updated."; 843 } 844 } 845 description "TE Event type for notifications"; 846 } // te-topology-event-type 848 typedef te-topology-id { 849 type union { 850 type string { 851 length 0; // empty string 852 } 853 type string { 854 pattern 855 '([a-zA-Z0-9\-_.]+:)*' 856 + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 857 } 858 } 859 description 860 "An identifier for a topology. 861 It is optional to have one or more prefixes at the beginning, 862 separated by colons. The prefixes can be the network-types, 863 defined in ietf-network.yang, to help user to understand the 864 topology better before further inquiry."; 865 reference "RFC8345"; 867 } 869 typedef te-tp-id { 870 type union { 871 type uint32; // Unnumbered 872 type inet:ip-address; // IPv4 or IPv6 address 873 } 874 description 875 "An identifier for a TE link endpoint on a node. 876 This attribute is mapped to local or remote link identifier in 877 RFC3630 and RFC5305."; 878 } 880 /* TE features */ 881 feature p2mp-te { 882 description 883 "Indicates support for P2MP-TE"; 884 reference "RFC4875"; 885 } 887 feature frr-te { 888 description 889 "Indicates support for TE FastReroute (FRR)"; 890 reference "RFC4090"; 891 } 893 feature extended-admin-groups { 894 description 895 "Indicates support for TE link extended admin 896 groups."; 897 reference "RFC7308"; 898 } 900 feature named-path-affinities { 901 description 902 "Indicates support for named path affinities"; 903 } 905 feature named-extended-admin-groups { 906 description 907 "Indicates support for named extended admin groups"; 908 } 910 feature named-srlg-groups { 911 description 912 "Indicates support for named SRLG groups"; 913 } 914 feature named-path-constraints { 915 description 916 "Indicates support for named path constraints"; 917 } 919 feature path-optimization-metric { 920 description 921 "Indicates support for path optimization metric"; 922 } 924 feature path-optimization-objective-function { 925 description 926 "Indicates support for path optimization objective function"; 927 } 929 /* 930 * Identities 931 */ 932 identity session-attributes-flags { 933 description 934 "Base identity for the RSVP-TE session attributes flags"; 935 } 936 identity local-protection-desired { 937 base session-attributes-flags; 938 description "Fastreroute local protection is desired."; 939 reference "RFC3209"; 940 } 941 identity se-style-desired { 942 base session-attributes-flags; 943 description 944 "Shared explicit style to allow the LSP to be 945 established sharing resources with the old LSP."; 946 reference "RFC3209"; 947 } 948 identity local-recording-desired { 949 base session-attributes-flags; 950 description "Local recording desired"; 951 reference "RFC3209"; 952 } 953 identity bandwidth-protection-desired { 954 base session-attributes-flags; 955 description 956 "Request FRR bandwidth protection on LSRs if 957 present."; 958 reference "RFC4090"; 959 } 960 identity node-protection-desired { 961 base session-attributes-flags; 962 description 963 "Request FRR node protection on LSRs if 964 present."; 965 reference "RFC4090"; 966 } 967 identity path-reevaluation-request { 968 base session-attributes-flags; 969 description 970 "This flag indicates that a path re-evaluation (of the 971 current path in use) is requested. Note that this does 972 not trigger any LSP Reroute but instead just signals a 973 request to evaluate whether a preferable path exists."; 974 reference "RFC4736"; 975 } 976 identity soft-preemption-desired { 977 base session-attributes-flags; 978 description 979 "Soft-preemption of LSP resources is desired"; 980 reference "RFC5712"; 981 } 983 identity lsp-attributes-flags { 984 description "Base identity for per hop attribute flags"; 985 } 986 identity end-to-end-rerouting-desired { 987 base lsp-attributes-flags; 988 description 989 "Indicates end-to-end re-routing behavior for an 990 LSP under establishment. This MAY also be used for 991 specifying the behavior of end-to-end LSP recovery for 992 established LSPs."; 993 reference "RFC4920, RFC5420, RFC7570"; 994 } 995 identity boundary-rerouting-desired { 996 base lsp-attributes-flags; 997 description 998 "Indicates boundary re-routing behavior for an LSP under 999 establishment. This MAY also be used for specifying the 1000 segment-based LSP recovery through nested crankback for 1001 established LSPs. The boundary ABR/ASBR can either decide 1002 to forward the PathErr message upstream to an upstream boundary 1003 ABR/ASBR or to the ingress LSR. 1004 Alternatively, it can try to select another egress boundary 1005 LSR."; 1006 reference "RFC4920, RFC5420, RFC7570"; 1007 } 1008 identity segment-based-rerouting-desired { 1009 base lsp-attributes-flags; 1010 description 1011 "Indicates segment-based re-routing behavior for an LSP under 1012 establishment. This MAY also be used to specify the segment- 1013 based LSP recovery for established LSPs."; 1014 reference "RFC4920, RFC5420, RFC7570"; 1015 } 1016 identity lsp-integrity-required { 1017 base lsp-attributes-flags; 1018 description "Indicates LSP integrity is required"; 1019 reference "RFC4875, RFC7570"; 1021 } 1022 identity contiguous-lsp-desired { 1023 base lsp-attributes-flags; 1024 description "Indicates contiguous LSP is desired"; 1025 reference "RFC5151, RFC7570"; 1026 } 1027 identity lsp-stitching-desired { 1028 base lsp-attributes-flags; 1029 description "Indicates LSP stitching is desired"; 1030 reference "RFC5150, RFC7570"; 1031 } 1032 identity pre-planned-lsp-flag { 1033 base lsp-attributes-flags; 1034 description 1035 "Indicates the LSP MUST be provisioned in the 1036 control plane only."; 1037 reference "RFC6001, RFC7570"; 1038 } 1039 identity non-php-behavior-flag { 1040 base lsp-attributes-flags; 1041 description 1042 "Indicates non-php behavior for the LSP is desired"; 1043 reference "RFC6511, RFC7570"; 1044 } 1045 identity oob-mapping-flag { 1046 base lsp-attributes-flags; 1047 description 1048 "Indicates signaling of the egress binding information 1049 is out-of-band , (e.g., via Border Gateway Protocol (BGP))"; 1050 reference "RFC6511, RFC7570"; 1051 } 1052 identity entropy-label-capability { 1053 base lsp-attributes-flags; 1054 description "Indicates entropy label capability"; 1055 reference "RFC6790, RFC7570"; 1056 } 1057 identity oam-mep-entity-desired { 1058 base lsp-attributes-flags; 1059 description 1060 "OAM Maintenance Entity Group End Point (MEP) entities desired"; 1061 reference "RFC7260"; 1062 } 1063 identity oam-mip-entity-desired { 1064 base lsp-attributes-flags; 1065 description 1066 "OAM Maintenance Entity Group Intermediate Points (MIP) 1067 entities desired"; 1068 reference "RFC7260"; 1069 } 1070 identity srlg-collection-desired { 1071 base lsp-attributes-flags; 1072 description "SRLG collection desired"; 1073 reference "RFC8001, RFC7570"; 1074 } 1075 identity loopback-desired { 1076 base lsp-attributes-flags; 1077 description 1078 "This flag indicates a particular node on the LSP is 1079 required to enter loopback mode. This can also be 1080 used for specifying the loopback state of the node."; 1081 reference "RFC7571"; 1082 } 1083 identity p2mp-te-tree-eval-request { 1084 base lsp-attributes-flags; 1085 description "P2MP-TE tree re-evaluation request"; 1086 reference "RFC8149"; 1087 } 1088 identity rtm-set-desired { 1089 base lsp-attributes-flags; 1090 description 1091 "Residence Time Measurement (RTM) attribute flag requested"; 1092 reference "RFC8169"; 1093 } 1095 identity link-protection-type { 1096 description "Base identity for link protection type."; 1097 } 1098 identity link-protection-unprotected { 1099 base link-protection-type; 1100 description "Unprotected link type"; 1101 reference "RFC4872"; 1102 } 1103 identity link-protection-extra-traffic { 1104 base link-protection-type; 1105 description "Extra-traffic protected link type"; 1106 reference "RFC4427."; 1107 } 1108 identity link-protection-shared { 1109 base link-protection-type; 1110 description "Shared protected link type"; 1111 reference "RFC4872"; 1112 } 1113 identity link-protection-1-for-1 { 1114 base link-protection-type; 1115 description "One for one protected link type"; 1116 reference "RFC4872"; 1117 } 1118 identity link-protection-1-plus-1 { 1119 base link-protection-type; 1120 description "One plus one protected link type"; 1121 reference "RFC4872"; 1122 } 1123 identity link-protection-enhanced { 1124 base link-protection-type; 1125 description "Enhanced protection protected link type"; 1126 reference "RFC4872"; 1127 } 1129 identity association-type { 1130 description "Base identity for tunnel association"; 1131 } 1132 identity association-type-recovery { 1133 base association-type; 1134 description 1135 "Association Type Recovery used to associate LSPs of 1136 same tunnel for recovery"; 1137 reference "RFC6780, RFC4872"; 1138 } 1139 identity association-type-resource-sharing { 1140 base association-type; 1141 description 1142 "Association Type Resource Sharing used to enable resource 1143 sharing during make-before-break."; 1144 reference "RFC6780, RFC4873"; 1145 } 1146 identity association-type-double-sided-bidir { 1147 base association-type; 1148 description 1149 "Association Type Double Sided bidirectional used to associate 1150 two LSPs of two tunnels that are independently configured on 1151 either endpoint"; 1152 reference "RFC7551"; 1153 } 1154 identity association-type-single-sided-bidir { 1155 base association-type; 1156 description 1157 "Association Type Single Sided bidirectional used to associate 1158 two LSPs of two tunnels, where a tunnel is configured on one 1159 side/endpoint, and the other tunnel is dynamically created on 1160 the other endpoint"; 1161 reference "RFC6780,RFC7551"; 1162 } 1164 identity objective-function-type { 1165 description "Base objective function type"; 1166 } 1167 identity of-minimize-cost-path { 1168 base objective-function-type; 1169 description 1170 "Minimize cost of path objective function"; 1171 reference "RFC5541"; 1172 } 1173 identity of-minimize-load-path { 1174 base objective-function-type; 1175 description 1176 "Minimize the load on path(s) objective 1177 function"; 1178 reference "RFC5541"; 1179 } 1180 identity of-maximize-residual-bandwidth { 1181 base objective-function-type; 1182 description 1183 "Maximize the residual bandwidth objective 1184 function"; 1185 reference "RFC5541"; 1186 } 1187 identity of-minimize-agg-bandwidth-consumption { 1188 base objective-function-type; 1189 description 1190 "minimize the aggregate bandwidth consumption 1191 objective function"; 1192 reference "RFC5541"; 1193 } 1194 identity of-minimize-load-most-loaded-link { 1195 base objective-function-type; 1196 description 1197 "Minimize the load on the most loaded link 1198 objective function"; 1199 reference "RFC5541"; 1200 } 1201 identity of-minimize-cost-path-set { 1202 base objective-function-type; 1203 description 1204 "Minimize the cost on a path set objective 1205 function"; 1206 reference "RFC5541"; 1207 } 1209 identity path-computation-method { 1210 description 1211 "base identity for supported path computation 1212 mechanisms"; 1213 } 1214 identity path-locally-computed { 1215 base path-computation-method; 1216 description 1217 "indicates a constrained-path LSP in which the 1218 path is computed by the local LER"; 1219 reference "RFC3272 section 5.4"; 1220 } 1221 identity path-externally-queried { 1222 base path-computation-method; 1223 description 1224 "Constrained-path LSP in which the path is 1225 obtained by querying an external source, such as a PCE server. 1226 In the case that an LSP is defined to be externally queried, it 1227 may also have associated explicit definitions (provided 1228 to the external source to aid computation). The path that is 1229 returned by the external source may require further local 1230 computation on the device."; 1231 reference "RFC4657, RFC3272"; 1232 } 1233 identity path-explicitly-defined { 1234 base path-computation-method; 1235 description 1236 "constrained-path LSP in which the path is 1237 explicitly specified as a collection of strict or/and loose 1238 hops"; 1239 reference "RFC3209 and RFC3272"; 1240 } 1242 identity lsp-metric-type { 1243 description 1244 "Base identity for types of LSP metric specification"; 1245 } 1246 identity lsp-metric-relative { 1247 base lsp-metric-type; 1248 description 1249 "The metric specified for the LSPs to which this identity refers 1250 is specified as a relative value to the IGP metric cost to the 1251 LSP's tail-end."; 1252 reference "RFC4657"; 1253 } 1254 identity lsp-metric-absolute { 1255 base lsp-metric-type; 1256 description 1257 "The metric specified for the LSPs to which this identity refers 1258 is specified as an absolute value"; 1259 reference "RFC4657"; 1260 } 1261 identity lsp-metric-inherited { 1262 base lsp-metric-type; 1263 description 1264 "The metric for the LSPs to which this identity refers is 1265 not specified explicitly - but rather inherited from the IGP 1266 cost directly"; 1267 reference "RFC4657"; 1268 } 1270 identity te-tunnel-type { 1271 description 1272 "Base identity from which specific tunnel types are 1273 derived."; 1274 } 1275 identity te-tunnel-p2p { 1276 base te-tunnel-type; 1277 description 1278 "TE point-to-point tunnel type."; 1279 reference "RFC3209"; 1280 } 1281 identity te-tunnel-p2mp { 1282 base te-tunnel-type; 1283 description 1284 "TE point-to-multipoint tunnel type."; 1285 reference "RFC4875"; 1286 } 1288 identity tunnel-action-type { 1289 description 1290 "Base identity from which specific tunnel action types 1291 are derived."; 1292 } 1293 identity tunnel-action-resetup { 1294 base tunnel-action-type; 1295 description 1296 "TE tunnel action resetup. Tears the 1297 tunnel's current LSP (if any) and 1298 attempts to re-establish a new LSP"; 1299 } 1300 identity tunnel-action-reoptimize { 1301 base tunnel-action-type; 1302 description 1303 "TE tunnel action reoptimize. 1304 Reoptimizes placement of the tunnel LSP(s)"; 1305 } 1306 identity tunnel-action-switchpath { 1307 base tunnel-action-type; 1308 description 1309 "TE tunnel action switchpath 1310 Switches the tunnel's LSP to use the specified path"; 1311 } 1313 identity te-action-result { 1314 description 1315 "Base identity from which specific TE action results 1316 are derived."; 1317 } 1318 identity te-action-success { 1319 base te-action-result; 1320 description "TE action successful."; 1321 } 1322 identity te-action-fail { 1323 base te-action-result; 1324 description "TE action failed."; 1325 } 1326 identity tunnel-action-inprogress { 1327 base te-action-result; 1328 description "TE action inprogress."; 1329 } 1331 identity tunnel-admin-state-type { 1332 description 1333 "Base identity for TE tunnel admin states"; 1334 } 1335 identity tunnel-admin-state-up { 1336 base tunnel-admin-state-type; 1337 description "Tunnel administratively state up"; 1338 } 1339 identity tunnel-admin-state-down { 1340 base tunnel-admin-state-type; 1341 description "Tunnel administratively state down"; 1342 } 1344 identity tunnel-state-type { 1345 description 1346 "Base identity for TE tunnel states"; 1347 } 1348 identity tunnel-state-up { 1349 base tunnel-state-type; 1350 description "Tunnel state up"; 1351 } 1352 identity tunnel-state-down { 1353 base tunnel-state-type; 1354 description "Tunnel state down"; 1355 } 1357 identity lsp-state-type { 1358 description 1359 "Base identity for TE LSP states"; 1360 } 1361 identity lsp-path-computing { 1362 base lsp-state-type; 1363 description 1364 "State path compute in progress"; 1365 } 1366 identity lsp-path-computation-ok { 1367 base lsp-state-type; 1368 description 1369 "State path compute successful"; 1370 } 1371 identity lsp-path-computation-failed { 1372 base lsp-state-type; 1373 description 1374 "State path compute failed"; 1375 } 1376 identity lsp-state-setting-up { 1377 base lsp-state-type; 1378 description 1379 "State setting up"; 1380 } 1381 identity lsp-state-setup-ok { 1382 base lsp-state-type; 1383 description 1384 "State setup successful"; 1385 } 1386 identity lsp-state-setup-failed { 1387 base lsp-state-type; 1388 description 1389 "State setup failed"; 1390 } 1391 identity lsp-state-up { 1392 base lsp-state-type; 1393 description "State up"; 1395 } 1396 identity lsp-state-tearing-down { 1397 base lsp-state-type; 1398 description 1399 "State tearing down"; 1400 } 1401 identity lsp-state-down { 1402 base lsp-state-type; 1403 description "State down"; 1404 } 1406 identity path-invalidation-action-type { 1407 description 1408 "Base identity for TE path invalidation action types"; 1409 } 1410 identity path-invalidation-action-drop { 1411 base path-invalidation-action-type; 1412 description 1413 "TE path invalidation action to drop"; 1414 reference "RFC3209 section 2.5"; 1415 } 1416 identity path-invalidation-action-teardown { 1417 base path-invalidation-action-type; 1418 description 1419 "TE path invalidation action teardown"; 1420 reference "RFC3209 section 2.5"; 1421 } 1423 identity lsp-restoration-type { 1424 description 1425 "Base identity from which LSP restoration types are 1426 derived."; 1427 } 1428 identity lsp-restoration-restore-any { 1429 base lsp-restoration-type; 1430 description 1431 "Restores when any of the LSPs is affected by a failure"; 1432 } 1433 identity lsp-restoration-restore-all { 1434 base lsp-restoration-type; 1435 description 1436 "Restores when all the tunnel LSPs are affected by failure"; 1437 } 1439 identity restoration-scheme-type { 1440 description 1441 "Base identity for LSP restoration schemes"; 1442 } 1443 identity restoration-scheme-preconfigured { 1444 base restoration-scheme-type; 1445 description 1446 "Restoration LSP is preconfigured prior to the failure"; 1447 reference "RFC4427"; 1448 } 1449 identity restoration-scheme-precomputed { 1450 base restoration-scheme-type; 1451 description 1452 "Restoration LSP is precomputed prior to the failure"; 1453 reference "RFC4427"; 1454 } 1455 identity restoration-scheme-presignaled { 1456 base restoration-scheme-type; 1457 description 1458 "Restoration LSP is presignaled prior to the failure"; 1459 reference "RFC4427"; 1460 } 1462 identity lsp-protection-type { 1463 description 1464 "Base identity from which LSP protection types are 1465 derived."; 1466 reference "RFC4872"; 1467 } 1468 identity lsp-protection-unprotected { 1469 base lsp-protection-type; 1470 description 1471 "LSP protection 'Unprotected'"; 1472 reference "RFC4872"; 1473 } 1474 identity lsp-protection-reroute-extra { 1475 base lsp-protection-type; 1476 description 1477 "LSP protection '(Full) Rerouting'"; 1478 reference "RFC4872"; 1479 } 1480 identity lsp-protection-reroute { 1481 base lsp-protection-type; 1482 description 1483 "LSP protection 'Rerouting without Extra-Traffic'"; 1484 reference "RFC4872"; 1485 } 1486 identity lsp-protection-1-for-n { 1487 base lsp-protection-type; 1488 description 1489 "LSP protection '1:N Protection with Extra-Traffic'"; 1490 reference "RFC4872"; 1492 } 1493 identity lsp-protection-unidir-1-for-1 { 1494 base lsp-protection-type; 1495 description 1496 "LSP protection '1:1 Unidirectional Protection'"; 1497 reference "RFC4872"; 1498 } 1499 identity lsp-protection-bidir-1-for-1 { 1500 base lsp-protection-type; 1501 description 1502 "LSP protection '1:1 Bidirectional Protection'"; 1503 reference "RFC4872"; 1504 } 1505 identity lsp-protection-unidir-1-plus-1 { 1506 base lsp-protection-type; 1507 description 1508 "LSP protection '1+1 Unidirectional Protection'"; 1509 reference "RFC4872"; 1510 } 1511 identity lsp-protection-bidir-1-plus-1 { 1512 base lsp-protection-type; 1513 description 1514 "LSP protection '1+1 Bidirectional Protection'"; 1515 reference "RFC4872"; 1516 } 1517 identity lsp-protection-extra-traffic { 1518 base lsp-protection-type; 1519 description 1520 "LSP protection 'Extra-Traffic'"; 1521 reference 1522 "RFC4427."; 1523 } 1525 identity lsp-protection-state { 1526 description 1527 "Base identity of protection states for reporting 1528 purposes."; 1529 } 1530 identity normal { 1531 base lsp-protection-state; 1532 description "Normal state."; 1533 } 1534 identity signal-fail-of-protection { 1535 base lsp-protection-state; 1536 description 1537 "There is a signal fail condition on the protection 1538 transport entity which has higher priority than the 1539 forced switch command."; 1541 reference 1542 "RFC4427"; 1543 } 1544 identity lockout-of-protection { 1545 base lsp-protection-state; 1546 description 1547 "A Loss of Protection (LoP) command is active."; 1548 reference 1549 "RFC4427"; 1550 } 1551 identity forced-switch { 1552 base lsp-protection-state; 1553 description 1554 "A forced switch command is active."; 1555 reference 1556 "RFC4427"; 1557 } 1558 identity signal-fail { 1559 base lsp-protection-state; 1560 description 1561 "There is a signal fail condition on either the working 1562 or the protection path."; 1563 reference 1564 "RFC4427"; 1565 } 1566 identity signal-degrade { 1567 base lsp-protection-state; 1568 description 1569 "There is an signal degrade condition on either the working 1570 or the protection path."; 1571 reference 1572 "RFC4427"; 1573 } 1574 identity manual-switch { 1575 base lsp-protection-state; 1576 description 1577 "A manual switch command is active."; 1578 reference 1579 "RFC4427"; 1580 } 1581 identity wait-to-restore { 1582 base lsp-protection-state; 1583 description 1584 "A wait time to restore (WTR) is running."; 1585 reference 1586 "RFC4427"; 1587 } 1588 identity do-not-revert { 1589 base lsp-protection-state; 1590 description 1591 "A DNR condition is active because of a non-revertive 1592 behavior."; 1593 reference 1594 "RFC4427"; 1595 } 1596 identity failure-of-protocol { 1597 base lsp-protection-state; 1598 description 1599 "The protection is not working because of a failure of 1600 protocol condition."; 1601 reference 1602 "RFC4427"; 1603 } 1605 identity protection-external-commands { 1606 description 1607 "Base identity from which protection external commands 1608 for trouble shooting purposes are derived."; 1609 } 1610 identity action-freeze { 1611 base protection-external-commands; 1612 description 1613 "A temporary configuration action initiated by an operator 1614 command to prevent any switch action to be taken and as such 1615 freezes the current state."; 1616 reference 1617 "RFC4427"; 1618 } 1619 identity clear-freeze { 1620 base protection-external-commands; 1621 description 1622 "An action that clears the active freeze state."; 1623 reference 1624 "RFC4427"; 1625 } 1626 identity action-lockout-of-normal { 1627 base protection-external-commands; 1628 description 1629 "A temporary configuration action initiated by an operator 1630 command to ensure that the normal traffic is not allowed 1631 to use the protection transport entity."; 1632 reference 1633 "RFC4427"; 1634 } 1635 identity clear-lockout-of-normal { 1636 base protection-external-commands; 1637 description 1638 "An action that clears the active lockout of normal state."; 1639 reference 1640 "RFC4427"; 1641 } 1642 identity action-lockout-of-protection { 1643 base protection-external-commands; 1644 description 1645 "A temporary configuration action initiated by an operator 1646 command to ensure that the protection transport entity is 1647 temporarily not available to transport a traffic signal 1648 (either normal or extra traffic)."; 1649 reference 1650 "RFC4427"; 1651 } 1652 identity action-forced-switch { 1653 base protection-external-commands; 1654 description 1655 "A switch action initiated by an operator command to switch 1656 the extra traffic signal, the normal traffic signal, or the 1657 null signal to the protection transport entity, unless an 1658 equal or higher priority switch command is in effect."; 1659 reference 1660 "RFC4427"; 1661 } 1662 identity action-manual-switch { 1663 base protection-external-commands; 1664 description 1665 "A switch action initiated by an operator command to switch 1666 the extra traffic signal, the normal traffic signal, or 1667 the null signal to the protection transport entity, unless 1668 a fault condition exists on other transport entities or an 1669 equal or higher priority switch command is in effect."; 1670 reference 1671 "RFC4427"; 1672 } 1673 identity action-exercise { 1674 base protection-external-commands; 1675 description 1676 "An action to start testing if the APS communication is 1677 operating correctly. It is lower priority than any other 1678 state or command."; 1679 reference 1680 "RFC4427"; 1681 } 1682 identity clear { 1683 base protection-external-commands; 1684 description 1685 "An action that clears the active near-end lockout of 1686 protection, forced switch, manual switch, WTR state, 1687 or exercise command."; 1688 reference 1689 "RFC4427"; 1690 } 1692 identity switching-capabilities { 1693 description 1694 "Base identity for interface switching capabilities"; 1695 reference "RFC3471"; 1696 } 1697 identity switching-psc1 { 1698 base switching-capabilities; 1699 description 1700 "Packet-Switch Capable-1 (PSC-1)"; 1701 reference "RFC3471"; 1702 } 1703 identity switching-evpl { 1704 base switching-capabilities; 1705 description 1706 "Ethernet Virtual Private Line (EVPL)"; 1707 reference "RFC6004"; 1708 } 1709 identity switching-l2sc { 1710 base switching-capabilities; 1711 description 1712 "Layer-2 Switch Capable (L2SC)"; 1713 reference "RFC3471"; 1714 } 1715 identity switching-tdm { 1716 base switching-capabilities; 1717 description 1718 "Time-Division-Multiplex Capable (TDM)"; 1719 reference "RFC3471"; 1720 } 1721 identity switching-otn { 1722 base switching-capabilities; 1723 description 1724 "OTN-TDM capable"; 1725 reference "RFC7138"; 1726 } 1727 identity switching-dcsc { 1728 base switching-capabilities; 1729 description 1730 "Data Channel Switching Capable (DCSC)"; 1731 reference "RFC6002"; 1732 } 1733 identity switching-lsc { 1734 base switching-capabilities; 1735 description 1736 "Lambda-Switch Capable (LSC)"; 1737 reference "RFC3471"; 1738 } 1739 identity switching-fsc { 1740 base switching-capabilities; 1741 description 1742 "Fiber-Switch Capable (FSC)"; 1743 reference "RFC3471"; 1744 } 1746 identity lsp-encoding-types { 1747 description 1748 "Base identity for encoding types"; 1749 reference "RFC3471"; 1750 } 1751 identity lsp-encoding-packet { 1752 base lsp-encoding-types; 1753 description 1754 "Packet LSP encoding"; 1755 reference "RFC3471"; 1756 } 1757 identity lsp-encoding-ethernet { 1758 base lsp-encoding-types; 1759 description 1760 "Ethernet LSP encoding"; 1761 reference "RFC3471"; 1762 } 1763 identity lsp-encoding-pdh { 1764 base lsp-encoding-types; 1765 description 1766 "ANSI/ETSI LSP encoding"; 1767 reference "RFC3471"; 1768 } 1769 identity lsp-encoding-sdh { 1770 base lsp-encoding-types; 1771 description 1772 "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding"; 1773 reference "RFC3471"; 1774 } 1775 identity lsp-encoding-digital-wrapper { 1776 base lsp-encoding-types; 1777 description 1778 "Digital Wrapper LSP encoding"; 1779 reference "RFC3471"; 1780 } 1781 identity lsp-encoding-lambda { 1782 base lsp-encoding-types; 1783 description 1784 "Lambda (photonic) LSP encoding"; 1785 reference "RFC3471"; 1786 } 1787 identity lsp-encoding-fiber { 1788 base lsp-encoding-types; 1789 description 1790 "Fiber LSP encoding"; 1791 reference "RFC3471"; 1792 } 1793 identity lsp-encoding-fiber-channel { 1794 base lsp-encoding-types; 1795 description 1796 "Fiber Channel LSP encoding"; 1797 reference "RFC3471"; 1798 } 1799 identity lsp-encoding-oduk { 1800 base lsp-encoding-types; 1801 description 1802 "G.709 ODUk (Digital Path) LSP encoding"; 1803 reference "RFC4328"; 1804 } 1805 identity lsp-encoding-optical-channel { 1806 base lsp-encoding-types; 1807 description 1808 "G.709 Optical Channel LSP encoding"; 1809 reference "RFC4328"; 1810 } 1811 identity lsp-encoding-line { 1812 base lsp-encoding-types; 1813 description 1814 "Line (e.g., 8B/10B) LSP encoding"; 1815 reference "RFC6004"; 1816 } 1818 identity path-signaling-type { 1819 description 1820 "base identity from which specific LSPs path 1821 setup types are derived"; 1822 } 1823 identity path-setup-static { 1824 base path-signaling-type; 1825 description 1826 "Static LSP provisioning path setup"; 1827 } 1828 identity path-setup-rsvp { 1829 base path-signaling-type; 1830 description 1831 "RSVP-TE signaling path setup"; 1832 reference "RFC3209"; 1833 } 1834 identity path-setup-sr { 1835 base path-signaling-type; 1836 description 1837 "Segment-routing path setup"; 1838 } 1840 identity path-scope-type { 1841 description 1842 "base identity from which specific path 1843 scope types are derived"; 1844 } 1845 identity path-scope-segment { 1846 base path-scope-type; 1847 description 1848 "Path scope segment"; 1849 reference "RFC4873"; 1850 } 1851 identity path-scope-end-to-end { 1852 base path-scope-type; 1853 description 1854 "Path scope end to end"; 1855 reference "RFC4873"; 1856 } 1858 identity route-usage-type { 1859 description 1860 "Base identity for route usage"; 1861 } 1862 identity route-include-object { 1863 base route-usage-type; 1864 description 1865 "Include route object"; 1866 } 1867 identity route-exclude-object { 1868 base route-usage-type; 1869 description 1870 "Exclude route object"; 1871 reference "RFC4874"; 1872 } 1873 identity route-exclude-srlg { 1874 base route-usage-type; 1875 description "Exclude SRLG"; 1876 reference "RFC4874"; 1878 } 1880 identity path-metric-type { 1881 description 1882 "Base identity for path metric type"; 1883 } 1884 identity path-metric-te { 1885 base path-metric-type; 1886 description 1887 "TE path metric"; 1888 reference "RFC3785"; 1889 } 1890 identity path-metric-igp { 1891 base path-metric-type; 1892 description 1893 "IGP path metric"; 1894 reference "RFC3785"; 1895 } 1896 identity path-metric-hop { 1897 base path-metric-type; 1898 description 1899 "Hop path metric"; 1900 } 1901 identity path-metric-delay-average { 1902 base path-metric-type; 1903 description 1904 "Unidirectional average link delay"; 1905 reference "RFC7471"; 1906 } 1907 identity path-metric-delay-minimum { 1908 base path-metric-type; 1909 description 1910 "Unidirectional minimum link delay"; 1911 reference "RFC7471"; 1912 } 1913 identity path-metric-residual-bandwidth { 1914 base path-metric-type; 1915 description 1916 "Unidirectional Residual Bandwidth, which is defined to be 1917 Maximum Bandwidth [RFC3630] minus the bandwidth currently 1918 allocated to LSPs."; 1919 reference "RFC7471"; 1920 } 1921 identity path-metric-optimize-includes { 1922 base path-metric-type; 1923 description 1924 "A metric that optimizes the number of included resources 1925 specified in a set"; 1927 } 1928 identity path-metric-optimize-excludes { 1929 base path-metric-type; 1930 description 1931 "A metric that optimizes to a maximum the number of excluded 1932 resources specified in a set"; 1933 } 1935 identity path-tiebreaker-type { 1936 description 1937 "Base identity for path tie-breaker type"; 1938 } 1939 identity path-tiebreaker-minfill { 1940 base path-tiebreaker-type; 1941 description 1942 "Min-Fill LSP path placement"; 1943 } 1944 identity path-tiebreaker-maxfill { 1945 base path-tiebreaker-type; 1946 description 1947 "Max-Fill LSP path placement"; 1948 } 1949 identity path-tiebreaker-random { 1950 base path-tiebreaker-type; 1951 description 1952 "Random LSP path placement"; 1953 } 1955 identity resource-affinities-type { 1956 description 1957 "Base identity for resource affinities"; 1958 reference "RFC2702"; 1959 } 1960 identity resource-aff-include-all { 1961 base resource-affinities-type; 1962 description 1963 "The set of attribute filters associated with a 1964 tunnel all of which must be present for a link 1965 to be acceptable"; 1966 reference "RFC2702 and RFC3209"; 1967 } 1968 identity resource-aff-include-any { 1969 base resource-affinities-type; 1970 description 1971 "The set of attribute filters associated with a 1972 tunnel any of which must be present for a link 1973 to be acceptable"; 1974 reference "RFC2702 and RFC3209"; 1976 } 1977 identity resource-aff-exclude-any { 1978 base resource-affinities-type; 1979 description 1980 "The set of attribute filters associated with a 1981 tunnel any of which renders a link unacceptable"; 1982 reference "RFC2702 and RFC3209"; 1983 } 1985 identity te-optimization-criterion { 1986 description 1987 "Base identity for TE optimization criterion."; 1988 reference 1989 "RFC3272: Overview and Principles of Internet Traffic 1990 Engineering."; 1991 } 1992 identity not-optimized { 1993 base te-optimization-criterion; 1994 description "Optimization is not applied."; 1995 } 1996 identity cost { 1997 base te-optimization-criterion; 1998 description "Optimized on cost."; 1999 reference "RFC5541"; 2000 } 2001 identity delay { 2002 base te-optimization-criterion; 2003 description "Optimized on delay."; 2004 reference "RFC5541"; 2005 } 2007 identity path-computation-srlg-type { 2008 description 2009 "Base identity for SRLG path computation"; 2010 } 2011 identity srlg-ignore { 2012 base path-computation-srlg-type; 2013 description 2014 "Ignores SRLGs in path computation"; 2015 } 2016 identity srlg-strict { 2017 base path-computation-srlg-type; 2018 description 2019 "Include strict SRLG check in path computation"; 2020 } 2021 identity srlg-preferred { 2022 base path-computation-srlg-type; 2023 description 2024 "Include preferred SRLG check in path computation"; 2025 } 2026 identity srlg-weighted { 2027 base path-computation-srlg-type; 2028 description 2029 "Include weighted SRLG check in path computation"; 2030 } 2032 /** 2033 * TE bandwidth groupings 2034 **/ 2035 grouping te-bandwidth { 2036 description 2037 "This grouping defines the generic TE bandwidth. 2038 For some known data plane technologies, specific modeling 2039 structures are specified. The string encoded te-bandwidth 2040 type is used for un-specified technologies. 2041 The modeling structure can be augmented later for other 2042 technologies."; 2043 container te-bandwidth { 2044 description 2045 "Container that specifies TE bandwidth. The choices 2046 can be augmented for specific dataplane technologies."; 2047 choice technology { 2048 default generic; 2049 description 2050 "Data plane technology type."; 2051 case generic { 2052 leaf generic { 2053 type te-bandwidth; 2054 description 2055 "Bandwidth specified in a generic format."; 2056 } 2057 } 2058 } 2059 } 2060 } 2062 /** 2063 * TE label groupings 2064 **/ 2065 grouping te-label { 2066 description 2067 "This grouping defines the generic TE label. 2068 The modeling structure can be augmented for each technology. 2069 For un-specified technologies, rt-types:generalized-label 2070 is used."; 2071 container te-label { 2072 description 2073 "Container that specifies TE label. The choices can 2074 be augmented for specific dataplane technologies."; 2075 choice technology { 2076 default generic; 2077 description 2078 "Data plane technology type."; 2079 case generic { 2080 leaf generic { 2081 type rt-types:generalized-label; 2082 description 2083 "TE label specified in a generic format."; 2084 } 2085 } 2086 } 2087 leaf direction { 2088 type te-label-direction; 2089 default 'forward'; 2090 description "Label direction"; 2091 } 2092 } 2093 } 2095 grouping te-topology-identifier { 2096 description 2097 "Augmentation for TE topology."; 2098 container te-topology-identifier { 2099 description "TE topology identifier container"; 2100 leaf provider-id { 2101 type te-global-id; 2102 default 0; 2103 description 2104 "An identifier to uniquely identify a provider. If omitted, 2105 it assumes the default topology provider ID=0"; 2106 } 2107 leaf client-id { 2108 type te-global-id; 2109 default 0; 2110 description 2111 "An identifier to uniquely identify a client. If omitted, 2112 it assumes the default topology client ID=0"; 2113 } 2114 leaf topology-id { 2115 type te-topology-id; 2116 default ''; 2117 description 2118 "When the datastore contains several topologies, the 2119 topology-id distinguishes between them. If omitted, the 2120 default empty string topology-id is assumed"; 2121 } 2122 } 2123 } 2125 /** 2126 * TE performance metric groupings 2127 **/ 2128 grouping performance-metrics-one-way-delay-loss { 2129 description 2130 "Performance Metric (PM) information in real time that can 2131 be applicable to links or connections. PM defined 2132 in this grouping is applicable to generic TE performance 2133 metrics as well as packet TE performance metrics."; 2134 reference 2135 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2136 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2137 RFC7823: Performance-Based Path Selection for Explicitly 2138 Routed Label Switched Paths (LSPs) Using TE Metric 2139 Extensions"; 2140 leaf one-way-delay { 2141 type uint32 { 2142 range '0..16777215'; 2143 } 2144 description "One-way delay or latency in micro seconds."; 2145 } 2146 leaf one-way-delay-normality { 2147 type te-types:performance-metrics-normality; 2148 description "One-way delay normality."; 2149 } 2150 } 2152 grouping performance-metrics-two-way-delay-loss { 2153 description 2154 "Performance metric information in real time that can 2155 be applicable to links or connections. PM defined 2156 in this grouping is applicable to generic TE performance 2157 metrics as well as packet TE performance metrics."; 2158 reference 2159 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2160 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2161 RFC7823: Performance-Based Path Selection for Explicitly 2162 Routed Label Switched Paths (LSPs) Using TE Metric 2163 Extensions"; 2164 leaf two-way-delay { 2165 type uint32 { 2166 range '0..16777215'; 2167 } 2168 description "Two-way delay or latency in micro seconds."; 2169 } 2170 leaf two-way-delay-normality { 2171 type te-types:performance-metrics-normality; 2172 description "Two-way delay normality."; 2173 } 2174 } 2176 grouping performance-metrics-one-way-bandwidth { 2177 description 2178 "Performance metric information in real time that can 2179 be applicable to links. PM defined 2180 in this grouping is applicable to generic TE performance 2181 metrics as well as packet TE performance metrics."; 2182 reference 2183 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2184 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2185 RFC7823: Performance-Based Path Selection for Explicitly 2186 Routed Label Switched Paths (LSPs) Using TE Metric 2187 Extensions"; 2189 leaf one-way-residual-bandwidth { 2190 type rt-types:bandwidth-ieee-float32; 2191 default '0x0p0'; 2192 description 2193 "Residual bandwidth that subtracts tunnel 2194 reservations from Maximum Bandwidth (or link capacity) 2195 [RFC3630] and provides an aggregated remainder across QoS 2196 classes."; 2197 } 2198 leaf one-way-residual-bandwidth-normality { 2199 type te-types:performance-metrics-normality; 2200 default 'normal'; 2201 description "Residual bandwidth normality."; 2202 } 2203 leaf one-way-available-bandwidth { 2204 type rt-types:bandwidth-ieee-float32; 2205 default '0x0p0'; 2206 description 2207 "Available bandwidth that is defined to be residual 2208 bandwidth minus the measured bandwidth used for the 2209 actual forwarding of non-RSVP-TE LSP packets. For a 2210 bundled link, available bandwidth is defined to be the 2211 sum of the component link available bandwidths."; 2212 } 2213 leaf one-way-available-bandwidth-normality { 2214 type te-types:performance-metrics-normality; 2215 default 'normal'; 2216 description "Available bandwidth normality."; 2217 } 2218 leaf one-way-utilized-bandwidth { 2219 type rt-types:bandwidth-ieee-float32; 2220 default '0x0p0'; 2221 description 2222 "Bandwidth utilization that represents the actual 2223 utilization of the link (i.e. as measured in the router). 2224 For a bundled link, bandwidth utilization is defined to 2225 be the sum of the component link bandwidth 2226 utilizations."; 2227 } 2228 leaf one-way-utilized-bandwidth-normality { 2229 type te-types:performance-metrics-normality; 2230 default 'normal'; 2231 description "Bandwidth utilization normality."; 2232 } 2233 } 2235 grouping one-way-performance-metrics { 2236 description 2237 "One-way performance metrics throttle grouping."; 2238 leaf one-way-delay { 2239 type uint32 { 2240 range '0..16777215'; 2241 } 2242 default 0; 2243 description "One-way delay or latency in micro seconds."; 2244 } 2245 leaf one-way-residual-bandwidth { 2246 type rt-types:bandwidth-ieee-float32; 2247 default '0x0p0'; 2248 description 2249 "Residual bandwidth that subtracts tunnel 2250 reservations from Maximum Bandwidth (or link capacity) 2251 [RFC3630] and provides an aggregated remainder across QoS 2252 classes."; 2253 } 2254 leaf one-way-available-bandwidth { 2255 type rt-types:bandwidth-ieee-float32; 2256 default '0x0p0'; 2257 description 2258 "Available bandwidth that is defined to be residual 2259 bandwidth minus the measured bandwidth used for the 2260 actual forwarding of non-RSVP-TE LSP packets. For a 2261 bundled link, available bandwidth is defined to be the 2262 sum of the component link available bandwidths."; 2263 } 2264 leaf one-way-utilized-bandwidth { 2265 type rt-types:bandwidth-ieee-float32; 2266 default '0x0p0'; 2267 description 2268 "Bandwidth utilization that represents the actual 2269 utilization of the link (i.e. as measured in the router). 2270 For a bundled link, bandwidth utilization is defined to 2271 be the sum of the component link bandwidth 2272 utilizations."; 2273 } 2274 } 2276 grouping two-way-performance-metrics { 2277 description 2278 "Two-way performance metrics throttle grouping."; 2279 leaf two-way-delay { 2280 type uint32 { 2281 range '0..16777215'; 2282 } 2283 default 0; 2284 description "Two-way delay or latency in micro seconds."; 2285 } 2286 } 2288 grouping performance-metrics-thresholds { 2289 description 2290 "Grouping for configurable thresholds for measured attributes"; 2291 uses one-way-performance-metrics; 2292 uses two-way-performance-metrics; 2293 } 2295 grouping performance-metrics-attributes { 2296 description 2297 "A container containing performance metric attributes."; 2298 container performance-metrics-one-way { 2299 description 2300 "One-way link performance information in real time."; 2301 reference 2302 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2303 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2304 RFC7823: Performance-Based Path Selection for Explicitly 2305 Routed Label Switched Paths (LSPs) Using TE Metric 2306 Extensions"; 2307 uses performance-metrics-one-way-delay-loss; 2308 uses performance-metrics-one-way-bandwidth; 2309 } 2310 container performance-metrics-two-way { 2311 description 2312 "Two-way link performance information in real time."; 2313 reference 2314 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2315 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2316 RFC7823: Performance-Based Path Selection for Explicitly 2317 Routed Label Switched Paths (LSPs) Using TE Metric 2318 Extensions"; 2319 uses performance-metrics-two-way-delay-loss; 2320 } 2321 } 2323 grouping performance-metrics-throttle-container { 2324 description 2325 "A container controlling performance metric throttle."; 2326 container throttle { 2327 must "suppression-interval >= measure-interval" { 2328 error-message 2329 "suppression-interval cannot be less then 2330 measure-interval."; 2331 description 2332 "Constraint on suppression-interval and 2333 measure-interval."; 2334 } 2335 description 2336 "Link performance information in real time."; 2337 reference 2338 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2339 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2340 RFC7823: Performance-Based Path Selection for Explicitly 2341 Routed Label Switched Paths (LSPs) Using TE Metric 2342 Extensions"; 2343 leaf one-way-delay-offset { 2344 type uint32 { 2345 range '0..16777215'; 2346 } 2347 default 0; 2348 description 2349 "Offset value to be added to the measured delay value."; 2350 } 2351 leaf measure-interval { 2352 type uint32; 2353 default 30; 2354 description 2355 "Interval in seconds to measure the extended metric 2356 values."; 2357 } 2358 leaf advertisement-interval { 2359 type uint32; 2360 default 0; 2361 description 2362 "Interval in seconds to advertise the extended metric 2363 values."; 2364 } 2365 leaf suppression-interval { 2366 type uint32 { 2367 range '1 .. max'; 2368 } 2369 default 120; 2370 description 2371 "Interval in seconds to suppress advertising the extended 2372 metric values."; 2373 reference "RFC 7810, Section-6"; 2374 } 2375 container threshold-out { 2376 uses performance-metrics-thresholds; 2377 description 2378 "If the measured parameter falls outside an upper bound 2379 for all but the min delay metric (or lower bound for 2380 min-delay metric only) and the advertised value is not 2381 already outside that bound, anomalous announcement will be 2382 triggered."; 2383 } 2384 container threshold-in { 2385 uses performance-metrics-thresholds; 2386 description 2387 "If the measured parameter falls inside an upper bound 2388 for all but the min delay metric (or lower bound for 2389 min-delay metric only) and the advertised value is not 2390 already inside that bound, normal (anomalous-flag cleared) 2391 announcement will be triggered."; 2392 } 2393 container threshold-accelerated-advertisement { 2394 description 2395 "When the difference between the last advertised value and 2396 current measured value exceed this threshold, anomalous 2397 announcement will be triggered."; 2398 uses performance-metrics-thresholds; 2399 } 2400 } 2401 } // performance-metrics-throttle-container 2403 /** 2404 * TE tunnel generic groupings 2405 **/ 2406 grouping explicit-route-hop { 2407 description 2408 "The explicit route entry grouping"; 2409 choice type { 2410 description 2411 "The explicit route entry type"; 2412 case numbered-node-hop { 2413 container numbered-node-hop { 2414 leaf node-id { 2415 type te-node-id; 2416 mandatory true; 2417 description 2418 "The identifier of a node in the TE topology."; 2419 } 2420 leaf hop-type { 2421 type te-hop-type; 2422 default 'strict'; 2423 description "strict or loose hop"; 2424 } 2425 description "Numbered node route hop"; 2426 reference 2427 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2428 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2429 } 2430 } 2431 case numbered-link-hop { 2432 container numbered-link-hop { 2433 leaf link-tp-id { 2434 type te-tp-id; 2435 mandatory true; 2436 description 2437 "TE link termination point identifier."; 2438 } 2439 leaf hop-type { 2440 type te-hop-type; 2441 default 'strict'; 2442 description "strict or loose hop"; 2443 } 2444 leaf direction { 2445 type te-link-direction; 2446 default 'outgoing'; 2447 description "Link route object direction"; 2448 } 2449 description 2450 "Numbered link explicit route hop"; 2451 reference 2452 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2453 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2454 } 2456 } 2457 case unnumbered-link-hop { 2458 container unnumbered-link-hop { 2459 leaf link-tp-id { 2460 type te-tp-id; 2461 mandatory true; 2462 description 2463 "TE link termination point identifier. The combination 2464 of TE link ID and the TE node ID is used to identify an 2465 unnumbered TE link."; 2466 } 2467 leaf node-id { 2468 type te-node-id; 2469 mandatory true; 2470 description 2471 "The identifier of a node in the TE topology."; 2472 } 2473 leaf hop-type { 2474 type te-hop-type; 2475 default 'strict'; 2476 description "strict or loose hop"; 2477 } 2478 leaf direction { 2479 type te-link-direction; 2480 default 'outgoing'; 2481 description "Link route object direction"; 2482 } 2483 description 2484 "Unnumbered link explicit route hop"; 2485 reference 2486 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2487 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2488 } 2489 } 2490 case as-number { 2491 container as-number-hop { 2492 leaf as-number { 2493 type inet:as-number; 2494 mandatory true; 2495 description "The AS number"; 2496 } 2497 leaf hop-type { 2498 type te-hop-type; 2499 default 'strict'; 2500 description "strict or loose hop"; 2501 } 2502 description 2503 "Autonomous System explicit route hop"; 2505 } 2506 } 2507 case label { 2508 container label-hop { 2509 description "Label hop type"; 2510 uses te-label; 2511 } 2512 description 2513 "The label explicit route hop type"; 2514 } 2515 } 2516 } 2518 grouping record-route-state { 2519 description 2520 "The record route grouping"; 2521 leaf index { 2522 type uint32; 2523 description 2524 "Record route hop index. The index is used to 2525 identify an entry in the list. The order of entries 2526 is defined by the user without relying on key values"; 2527 } 2528 choice type { 2529 description 2530 "The record route entry type"; 2531 case numbered-node-hop { 2532 container numbered-node-hop { 2533 description "Numbered node route hop container"; 2534 leaf node-id { 2535 type te-node-id; 2536 mandatory true; 2537 description 2538 "The identifier of a node in the TE topology."; 2539 } 2540 leaf-list flags { 2541 type path-attribute-flags; 2542 description "Record route per hop flags"; 2543 reference "RFC3209, RFC4090, RFC4561"; 2544 } 2545 } 2546 description "Numbered node route hop"; 2547 } 2548 case numbered-link-hop { 2549 container numbered-link-hop { 2550 description "Numbered link route hop container"; 2551 leaf link-tp-id { 2552 type te-tp-id; 2553 mandatory true; 2554 description 2555 "Numbered TE link termination point identifier."; 2556 } 2557 leaf-list flags { 2558 type path-attribute-flags; 2559 description "Record route per hop flags"; 2560 reference "RFC3209, RFC4090, RFC4561"; 2561 } 2562 } 2563 description "Numbered link route hop"; 2564 } 2565 case unnumbered-link-hop { 2566 container unnumbered-link-hop { 2567 leaf link-tp-id { 2568 type te-tp-id; 2569 mandatory true; 2570 description 2571 "TE link termination point identifier. The combination 2572 of TE link ID and the TE node ID is used to identify an 2573 unnumbered TE link."; 2574 } 2575 leaf node-id { 2576 type te-node-id; 2577 description 2578 "The identifier of a node in the TE topology."; 2579 } 2580 leaf-list flags { 2581 type path-attribute-flags; 2582 description "Record route per hop flags"; 2583 reference "RFC3209, RFC4090, RFC4561"; 2584 } 2585 description 2586 "Unnumbered link record route hop"; 2587 reference 2588 "RFC3477: Signalling Unnumbered Links in 2589 RSVP-TE"; 2590 } 2591 description "Unnumbered link route hop"; 2592 } 2593 case label { 2594 container label-hop { 2595 description "Label route hop type"; 2596 uses te-label; 2597 leaf-list flags { 2598 type path-attribute-flags; 2599 description "Record route per hop flags"; 2600 reference "RFC3209, RFC4090, RFC4561"; 2602 } 2603 } 2604 description 2605 "The Label record route entry types"; 2606 } 2607 } 2608 } 2610 grouping label-restriction-info { 2611 description "Label set item info"; 2612 leaf restriction { 2613 type enumeration { 2614 enum inclusive { 2615 description "The label or label range is inclusive."; 2616 } 2617 enum exclusive { 2618 description "The label or label range is exclusive."; 2619 } 2620 } 2621 default 'inclusive'; 2622 description 2623 "Whether the list item is inclusive or exclusive."; 2624 } 2625 leaf index { 2626 type uint32; 2627 description 2628 "The index of the label restriction list entry."; 2629 } 2630 container label-start { 2631 must "(not(../label-end/te-label/direction) and" + 2632 " not(te-label/direction))" 2633 + " or " 2634 + "(../label-end/te-label/direction = te-label/direction)" 2635 + " or " 2636 + "(not(te-label/direction) and" + 2637 " (../label-end/te-label/direction = 'forward'))" 2638 + " or " 2639 + "(not(../label-end/te-label/direction) and" + 2640 " (te-label/direction = 'forward'))" { 2641 error-message 2642 "label-start and label-end must have the same direction."; 2643 } 2644 description 2645 "This is the starting label if a label range is specified. 2646 This is the label value if a single label is specified, 2647 in which case, attribute 'label-end' is not set."; 2648 uses te-label; 2649 } 2650 container label-end { 2651 must "(not(../label-start/te-label/direction) and" + 2652 " not(te-label/direction))" 2653 + " or " 2654 + "(../label-start/te-label/direction = te-label/direction)" 2655 + " or " 2656 + "(not(te-label/direction) and" + 2657 " (../label-start/te-label/direction = 'forward'))" 2658 + " or " 2659 + "(not(../label-start/te-label/direction) and" + 2660 " (te-label/direction = 'forward'))" { 2661 error-message 2662 "label-start and label-end must have the same direction."; 2663 } 2664 description 2665 "The ending label if a label range is specified; 2666 This attribute is not set, If a single label is 2667 specified."; 2668 uses te-label; 2669 } 2670 container label-step { 2671 description 2672 "The step increment between labels in the label range. 2673 The label start/end values will have to be consistent 2674 with the sign of label step. For example, 2675 label-start < label-end enforces label-step > 0 2676 label-start > label-end enforces label-step < 0"; 2677 choice technology { 2678 default generic; 2679 description 2680 "Data plane technology type."; 2681 case generic { 2682 leaf generic { 2683 type int32; 2684 default 1; 2685 description "Label range step"; 2686 } 2687 } 2688 } 2689 } 2690 leaf range-bitmap { 2691 type yang:hex-string; 2692 description 2693 "When there are gaps between label-start and label-end, 2694 this attribute is used to specify the positions 2695 of the used labels. This is represented in big-endian as 2696 hex-string. 2698 Each bit-position in the range-bitmap hex-string maps to a 2699 label in the range derived from the label-start. 2701 For example, assuming label-start=16000 and 2702 range-bitmap=0x01000001, then: 2703 - bit-position(0) is set, and the corresponding mapped label 2704 from the range is: 16000 + (0 * label-step) or 2705 16000 for default label-step=1. 2706 - bit-position(24) is set, and the corresponding mapped label 2707 from the range is: 16000 + (24 * label-step) or 2708 16024 for default label-step=1"; 2709 } 2710 } 2712 grouping label-set-info { 2713 description 2714 "Grouping for List of label restrictions specifying what labels 2715 may or may not be used on a link connectivity."; 2716 container label-restrictions { 2717 description 2718 "The label restrictions container"; 2719 list label-restriction { 2720 key "index"; 2721 description 2722 "The absence of label-set implies that all labels are 2723 acceptable; otherwise only restricted labels are 2724 available."; 2725 reference 2726 "RFC7579: General Network Element Constraint Encoding 2727 for GMPLS-Controlled Networks"; 2728 uses label-restriction-info; 2729 } 2730 } 2731 } 2733 grouping optimization-metric-entry { 2734 description "Optimization metrics configuration grouping"; 2735 leaf metric-type { 2736 type identityref { 2737 base path-metric-type; 2738 } 2739 description 2740 "Identifies an entry in the list of metric-types to 2741 optimize the TE path for."; 2742 } 2743 leaf weight { 2744 type uint8; 2745 default 1; 2746 description "TE path metric normalization weight"; 2747 } 2748 container explicit-route-exclude-objects { 2749 when "../metric-type = " + 2750 "'te-types:path-metric-optimize-excludes'"; 2751 description 2752 "Container for the exclude route object list"; 2753 uses path-route-exclude-objects; 2754 } 2755 container explicit-route-include-objects { 2756 when "../metric-type = " + 2757 "'te-types:path-metric-optimize-includes'"; 2758 description 2759 "Container for the include route object list"; 2760 uses path-route-include-objects; 2761 } 2762 } 2764 grouping common-constraints { 2765 description 2766 "Common constraints grouping that can be set on 2767 a constraint set or directly on the tunnel"; 2769 uses te-bandwidth { 2770 description 2771 "A requested bandwidth to use for path computation"; 2772 } 2774 leaf link-protection { 2775 type identityref { 2776 base link-protection-type; 2777 } 2778 default te-types:link-protection-unprotected; 2779 description 2780 "Link protection type required for the links included 2781 in the computed path"; 2782 reference 2783 "RFC4202: Routing Extensions in Support of 2784 Generalized Multi-Protocol Label Switching (GMPLS)."; 2785 } 2787 leaf setup-priority { 2788 type uint8 { 2789 range '0..7'; 2790 } 2791 default 7; 2792 description 2793 "TE LSP requested setup priority"; 2795 reference "RFC3209"; 2796 } 2797 leaf hold-priority { 2798 type uint8 { 2799 range '0..7'; 2800 } 2801 default 7; 2802 description 2803 "TE LSP requested hold priority"; 2804 reference "RFC3209"; 2805 } 2806 leaf signaling-type { 2807 type identityref { 2808 base path-signaling-type; 2809 } 2810 default te-types:path-setup-rsvp; 2811 description "TE tunnel path signaling type"; 2812 } 2813 } 2815 grouping tunnel-constraints { 2816 description 2817 "Tunnel constraints grouping that can be set on 2818 a constraint set or directly on the tunnel"; 2819 uses te-topology-identifier; 2820 uses common-constraints; 2821 } 2823 grouping path-constraints-route-objects { 2824 description 2825 "List of route entries to be included or excluded when performing 2826 path computation."; 2827 container explicit-route-objects-always { 2828 description 2829 "Container for the exclude route object list"; 2830 list route-object-exclude-always { 2831 key index; 2832 ordered-by user; 2833 description 2834 "List of route objects to always exclude 2835 from path computation"; 2836 leaf index { 2837 type uint32; 2838 description 2839 "Explicit route object index. The index is used to 2840 identify an entry in the list. The order of entries 2841 is defined by the user without relying on key values"; 2842 } 2843 uses explicit-route-hop; 2844 } 2845 list route-object-include-exclude { 2846 key index; 2847 ordered-by user; 2848 description 2849 "List of route objects to include or exclude in path 2850 computation"; 2851 leaf explicit-route-usage { 2852 type identityref { 2853 base route-usage-type; 2854 } 2855 default te-types:route-include-object; 2856 description 2857 "Include or exclude usage. Default is to include"; 2858 } 2859 leaf index { 2860 type uint32; 2861 description 2862 "Route object include-exclude index. The index is used to 2863 identify an entry in the list. The order of entries 2864 is defined by the user without relying on key values"; 2865 } 2866 uses explicit-route-hop { 2867 augment "type" { 2868 case srlg { 2869 container srlg { 2870 description "SRLG container"; 2871 leaf srlg { 2872 type uint32; 2873 description "SRLG value"; 2874 } 2875 } 2876 description "An SRLG value to be included or excluded"; 2877 } 2878 description 2879 "Augmentation to generic explicit route for SRLG 2880 exclusion"; 2881 } 2882 } 2883 } 2884 } 2885 } 2887 grouping path-route-include-objects { 2888 description 2889 "List of route object(s) to be included when performing 2890 the path computation."; 2892 list route-object-include-object { 2893 key index; 2894 ordered-by user; 2895 description 2896 "List of explicit route objects to be included 2897 in path computation"; 2898 leaf index { 2899 type uint32; 2900 description 2901 "Route object entry index. The index is used to 2902 identify an entry in the list. The order of entries 2903 is defined by the user without relying on key values"; 2904 } 2905 uses explicit-route-hop; 2906 } 2907 } 2909 grouping path-route-exclude-objects { 2910 description 2911 "List of route object(s) to be excluded when performing 2912 the path computation."; 2913 list route-object-exclude-object { 2914 key index; 2915 ordered-by user; 2916 description 2917 "List of explicit route objects to be excluded 2918 in path computation"; 2919 leaf index { 2920 type uint32; 2921 description 2922 "Route object entry index. The index is used to 2923 identify an entry in the list. The order of entries 2924 is defined by the user without relying on key values"; 2925 } 2926 uses explicit-route-hop { 2927 augment "type" { 2928 case srlg { 2929 container srlg { 2930 description "SRLG container"; 2931 leaf srlg { 2932 type uint32; 2933 description "SRLG value"; 2934 } 2935 } 2936 description "An SRLG value to be included or excluded"; 2937 } 2938 description 2939 "Augmentation to generic explicit route for SRLG exclusion"; 2941 } 2942 } 2943 } 2944 } 2946 grouping generic-path-metric-bounds { 2947 description "TE path metric bounds grouping"; 2948 container path-metric-bounds { 2949 description "TE path metric bounds container"; 2950 list path-metric-bound { 2951 key metric-type; 2952 description "List of TE path metric bounds"; 2953 leaf metric-type { 2954 type identityref { 2955 base path-metric-type; 2956 } 2957 description 2958 "Identifies an entry in the list of metric-types 2959 bound for the TE path."; 2960 } 2961 leaf upper-bound { 2962 type uint64; 2963 default 0; 2964 description 2965 "Upper bound on end-to-end TE path metric. A zero indicate 2966 an unbounded upper limit for the specific metric-type"; 2967 } 2968 } 2969 } 2970 } 2972 grouping generic-path-optimization { 2973 description "TE generic path optimization grouping"; 2975 container optimizations { 2976 description 2977 "The objective function container that includes 2978 attributes to impose when computing a TE path"; 2980 choice algorithm { 2981 description "Optimizations algorithm."; 2982 case metric { 2983 if-feature path-optimization-metric; 2984 /* Optimize by metric */ 2985 list optimization-metric { 2986 key "metric-type"; 2987 description "TE path metric type"; 2988 uses optimization-metric-entry; 2990 } 2991 /* Tiebreakers */ 2992 container tiebreakers { 2993 description 2994 "Container for the list of tiebreaker(s)"; 2995 list tiebreaker { 2996 key "tiebreaker-type"; 2997 description 2998 "The list of tiebreaker criterion to apply 2999 on an equally favored set of paths to pick best"; 3000 leaf tiebreaker-type { 3001 type identityref { 3002 base path-metric-type; 3003 } 3004 description 3005 "Identifies an entry in the list of tiebreakers."; 3006 } 3007 } 3008 } 3009 } 3010 case objective-function { 3011 if-feature path-optimization-objective-function; 3012 /* Objective functions */ 3013 container objective-function { 3014 description 3015 "The objective function container that includes 3016 attributes to impose when computing a TE path"; 3017 leaf objective-function-type { 3018 type identityref { 3019 base objective-function-type; 3020 } 3021 default te-types:of-minimize-cost-path; 3022 description "Objective function entry"; 3023 } 3024 } 3025 } 3026 } 3027 } 3028 } 3030 grouping generic-path-affinities { 3031 description 3032 "Path affinities grouping"; 3033 container path-affinities-values { 3034 description 3035 "Path affinities values representation"; 3036 list path-affinities-value { 3037 key "usage"; 3038 description 3039 "List of named affinity constraints"; 3040 leaf usage { 3041 type identityref { 3042 base resource-affinities-type; 3043 } 3044 description 3045 "Identifies an entry in the list of value affinities 3046 constraints"; 3047 } 3048 leaf value { 3049 type admin-groups; 3050 default ''; 3051 description "The affinity value. The default is empty."; 3052 } 3053 } 3054 } 3055 container path-affinity-names { 3056 description 3057 "Path affinities named representation style"; 3058 list path-affinity-name { 3059 key "usage"; 3060 description "List of named affinity constraints"; 3061 leaf usage { 3062 type identityref { 3063 base resource-affinities-type; 3064 } 3065 description 3066 "Identifies an entry in the list of named affinities 3067 constraints"; 3068 } 3069 list affinity-name { 3070 key "name"; 3071 leaf name { 3072 type string; 3073 description "Identify a named affinity entry."; 3074 } 3075 description "List of named affinities"; 3076 } 3077 } 3078 } 3079 } 3081 grouping generic-path-srlgs { 3082 description 3083 "Path SRLG grouping"; 3084 container path-srlgs-lists { 3085 description 3086 "Path SRLG properties container"; 3087 list path-srlgs-list { 3088 key "usage"; 3089 description 3090 "List entries of value SRLGs to be included or excluded"; 3091 leaf usage { 3092 type identityref { 3093 base route-usage-type; 3094 } 3095 description 3096 "Identifies an entry of list of SRLGs to either include 3097 or exclude"; 3098 } 3099 leaf-list values { 3100 type srlg; 3101 description "List of SRLG values"; 3102 } 3103 } 3104 } 3105 container path-srlgs-names { 3106 description "Container for named SRLG list"; 3107 list path-srlgs-name { 3108 key "usage"; 3109 description 3110 "List entries of named SRLGs to be included or excluded"; 3111 leaf usage { 3112 type identityref { 3113 base route-usage-type; 3114 } 3115 description 3116 "Identifies an entry of list of named SRLGs to either 3117 include or exclude"; 3118 } 3119 leaf-list names { 3120 type string; 3121 description "List of named SRLGs"; 3122 } 3123 } 3124 } 3125 } 3127 grouping generic-path-disjointness { 3128 description "Path disjointness grouping"; 3129 leaf disjointness { 3130 type te-path-disjointness; 3131 description 3132 "The type of resource disjointness. 3133 When configured for a primary path, the disjointness level 3134 applies to all secondary LSPs. When configured for a secondary 3135 path, disjointness level overrides the one configured for the 3136 primary path"; 3137 } 3138 } 3140 grouping common-path-constraints-attributes { 3141 description 3142 "Common path constraints configuration grouping"; 3143 uses common-constraints; 3144 uses generic-path-metric-bounds; 3145 uses generic-path-affinities; 3146 uses generic-path-srlgs; 3147 } 3149 grouping generic-path-constraints { 3150 description 3151 "Global named path constraints configuration 3152 grouping"; 3153 container path-constraints { 3154 description "TE named path constraints container"; 3155 uses common-path-constraints-attributes; 3156 uses generic-path-disjointness; 3157 } 3158 } 3160 grouping generic-path-properties { 3161 description "TE generic path properties grouping"; 3162 container path-properties { 3163 config false; 3164 description "The TE path properties"; 3165 list path-metric { 3166 key metric-type; 3167 description "TE path metric type"; 3168 leaf metric-type { 3169 type identityref { 3170 base path-metric-type; 3171 } 3172 description "TE path metric type"; 3173 } 3174 leaf accumulative-value { 3175 type uint64; 3176 description "TE path metric accumulative value"; 3177 } 3178 } 3179 uses generic-path-affinities; 3180 uses generic-path-srlgs; 3181 container path-route-objects { 3182 description 3183 "Container for the list of route objects either returned by 3184 the computation engine or actually used by an LSP"; 3185 list path-route-object { 3186 key index; 3187 ordered-by user; 3188 description 3189 "List of route objects either returned by the computation 3190 engine or actually used by an LSP"; 3191 leaf index { 3192 type uint32; 3193 description 3194 "Route object entry index. The index is used to 3195 identify an entry in the list. The order of entries 3196 is defined by the user without relying on key values"; 3197 } 3198 uses explicit-route-hop; 3199 } 3200 } 3201 } 3202 } 3203 } 3204 3206 Figure 1: TE basic types YANG module 3208 5. Packet TE Types YANG Module 3210 The ietf-te-packet-types module imports from the following modules: 3212 o ietf-te-types defined in this document. 3214 file "ietf-te-packet-types@2019-10-01.yang" 3215 module ietf-te-packet-types { 3216 yang-version 1.1; 3217 namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types"; 3219 /* Replace with IANA when assigned */ 3220 prefix "te-packet-types"; 3222 /* Import TE generic types */ 3223 import ietf-te-types { 3224 prefix te-types; 3225 reference 3226 "RFC XXXX: A YANG Data Model for Common Traffic Engineering 3227 Types"; 3228 } 3229 organization 3230 "IETF TEAS Working Group"; 3232 contact 3233 "WG Web: 3234 WG List: 3236 Editor: Tarek Saad 3237 3239 Editor: Rakesh Gandhi 3240 3242 Editor: Vishnu Pavan Beeram 3243 3245 Editor: Himanshu Shah 3246 3248 Editor: Xufeng Liu 3249 3251 Editor: Igor Bryskin 3252 3254 Editor: Young Lee 3255 "; 3257 description 3258 "This module contains a collection of generally useful MPLS TE 3259 specific YANG data type definitions. The model fully conforms 3260 to the Network Management Datastore Architecture (NMDA). 3262 Copyright (c) 2018 IETF Trust and the persons 3263 identified as authors of the code. All rights reserved. 3265 Redistribution and use in source and binary forms, with or 3266 without modification, is permitted pursuant to, and subject 3267 to the license terms contained in, the Simplified BSD License 3268 set forth in Section 4.c of the IETF Trust's Legal Provisions 3269 Relating to IETF Documents 3270 (https://trustee.ietf.org/license-info). 3271 This version of this YANG module is part of RFC XXXX; see 3272 the RFC itself for full legal notices."; 3274 // RFC Ed.: replace XXXX with actual RFC number and remove this 3275 // note. 3277 // RFC Ed.: update the date below with the date of RFC publication 3278 // and remove this note. 3280 revision "2019-10-01" { 3281 description "Latest revision of TE MPLS types"; 3282 reference 3283 "RFC XXXX: A YANG Data Model for Common Traffic Engineering 3284 Types"; 3285 } 3287 /** 3288 * Typedefs 3289 */ 3290 typedef te-bandwidth-requested-type { 3291 type enumeration { 3292 enum specified { 3293 description 3294 "Bandwidth is explicitly specified"; 3295 } 3296 enum auto { 3297 description 3298 "Bandwidth is automatically computed"; 3299 } 3300 } 3301 description 3302 "enumerated type for specifying whether bandwidth is 3303 explicitly specified or automatically computed"; 3304 } 3306 typedef te-class-type { 3307 type uint8; 3308 description 3309 "Diffserv-TE class-type that defines a set of Traffic 3310 Trunks crossing a link that is governed by a specific 3311 set of bandwidth constraints. CT is used for the 3312 purposes of link bandwidth allocation, constraint- 3313 based routing and admission control."; 3314 reference "RFC4124: Protocols for Diffserv-aware TE"; 3315 } 3317 typedef bc-type { 3318 type uint8 { 3319 range '0..7'; 3320 } 3321 description 3322 "Diffserv-TE bandwidth constraint as defined in RFC4124"; 3323 reference "RFC4124: Protocols for Diffserv-aware TE"; 3324 } 3325 typedef bandwidth-kbps { 3326 type uint64; 3327 units "Kbps"; 3328 description 3329 "Bandwidth values expressed in kilobits per second"; 3330 } 3332 typedef bandwidth-mbps { 3333 type uint64; 3334 units "Mbps"; 3335 description 3336 "Bandwidth values expressed in megabits per second"; 3337 } 3339 typedef bandwidth-gbps { 3340 type uint64; 3341 units "Gbps"; 3342 description 3343 "Bandwidth values expressed in gigabits per second"; 3344 } 3346 identity backup-protection-type { 3347 description 3348 "Base identity for backup protection type"; 3349 } 3351 identity backup-protection-link { 3352 base backup-protection-type; 3353 description 3354 "backup provides link protection only"; 3355 } 3357 identity backup-protection-node-link { 3358 base backup-protection-type; 3359 description 3360 "backup offers node (preferred) or link protection"; 3361 } 3363 identity bc-model-type { 3364 description 3365 "Base identity for Diffserv-TE bandwidth constraint 3366 model type"; 3367 reference "RFC4124: Protocols for Diffserv-aware TE"; 3368 } 3370 identity bc-model-rdm { 3371 base bc-model-type; 3372 description 3373 "Russian Doll bandwidth constraint model type."; 3374 reference "RFC4127: Russian Dolls Model for DS-TE"; 3375 } 3377 identity bc-model-mam { 3378 base bc-model-type; 3379 description 3380 "Maximum Allocation bandwidth constraint 3381 model type."; 3382 reference "RFC4125: Maximum Allocation Model for DS-TE"; 3383 } 3385 identity bc-model-mar { 3386 base bc-model-type; 3387 description 3388 "Maximum Allocation with Reservation 3389 bandwidth constraint model type."; 3390 reference "RFC4126: MAR Bandwidth Constraints Model for DS-TE"; 3391 } 3393 grouping performance-metrics-attributes-packet { 3394 description 3395 "A container containing performance metric attributes."; 3396 uses te-types:performance-metrics-attributes { 3397 augment performance-metrics-one-way { 3398 leaf one-way-min-delay { 3399 type uint32 { 3400 range '0..16777215'; 3401 } 3402 description 3403 "One-way minimum delay or latency in micro seconds."; 3404 } 3405 leaf one-way-min-delay-normality { 3406 type te-types:performance-metrics-normality; 3407 default "normal"; 3408 description "One-way minimum delay or latency normality."; 3409 } 3410 leaf one-way-max-delay { 3411 type uint32 { 3412 range '0..16777215'; 3413 } 3414 description 3415 "One-way maximum delay or latency in micro seconds."; 3416 } 3417 leaf one-way-max-delay-normality { 3418 type te-types:performance-metrics-normality; 3419 default "normal"; 3420 description "One-way maximum delay or latency normality."; 3422 } 3423 leaf one-way-delay-variation { 3424 type uint32 { 3425 range '0..16777215'; 3426 } 3427 description "One-way delay variation in micro seconds."; 3428 } 3429 leaf one-way-delay-variation-normality { 3430 type te-types:performance-metrics-normality; 3431 default "normal"; 3432 description "One-way delay variation normality."; 3433 } 3434 leaf one-way-packet-loss { 3435 type decimal64 { 3436 fraction-digits 6; 3437 range '0 .. 50.331642'; 3438 } 3439 description 3440 "One-way packet loss as a percentage of the total traffic 3441 sent over a configurable interval. The finest precision is 3442 0.000003%. where the maximum 50.331642%."; 3443 reference "RFC 7810, section-4.4"; 3444 } 3445 leaf one-way-packet-loss-normality { 3446 type te-types:performance-metrics-normality; 3447 default "normal"; 3448 description "Packet loss normality."; 3449 } 3450 description 3451 "PM one-way packet specific augmentation to generic PM 3452 grouping"; 3453 } 3454 augment performance-metrics-two-way { 3455 leaf two-way-min-delay { 3456 type uint32 { 3457 range '0..16777215'; 3458 } 3459 default 0; 3460 description 3461 "Two-way minimum delay or latency in micro seconds."; 3462 } 3463 leaf two-way-min-delay-normality { 3464 type te-types:performance-metrics-normality; 3465 default "normal"; 3466 description "Two-way minimum delay or latency normality."; 3467 } 3468 leaf two-way-max-delay { 3469 type uint32 { 3470 range '0..16777215'; 3471 } 3472 default 0; 3473 description 3474 "Two-way maximum delay or latency in micro seconds."; 3475 } 3476 leaf two-way-max-delay-normality { 3477 type te-types:performance-metrics-normality; 3478 default "normal"; 3479 description "Two-way maximum delay or latency normality."; 3480 } 3481 leaf two-way-delay-variation { 3482 type uint32 { 3483 range '0..16777215'; 3484 } 3485 default 0; 3486 description "Two-way delay variation in micro seconds."; 3487 } 3488 leaf two-way-delay-variation-normality { 3489 type te-types:performance-metrics-normality; 3490 default "normal"; 3491 description "Two-way delay variation normality."; 3492 } 3493 leaf two-way-packet-loss { 3494 type decimal64 { 3495 fraction-digits 6; 3496 range '0 .. 50.331642'; 3497 } 3498 default 0; 3499 description 3500 "Two-way packet loss as a percentage of the total traffic 3501 sent over a configurable interval. The finest precision is 3502 0.000003%."; 3503 } 3504 leaf two-way-packet-loss-normality { 3505 type te-types:performance-metrics-normality; 3506 default "normal"; 3507 description "Two-way packet loss normality."; 3508 } 3509 description 3510 "PM two-way packet specific augmentation to generic PM 3511 grouping"; 3512 } 3513 } 3514 } 3516 grouping one-way-performance-metrics-packet { 3517 description 3518 "One-way packet performance metrics throttle grouping."; 3519 leaf one-way-min-delay { 3520 type uint32 { 3521 range '0..16777215'; 3522 } 3523 default 0; 3524 description "One-way minimum delay or latency in micro seconds."; 3525 } 3526 leaf one-way-max-delay { 3527 type uint32 { 3528 range '0..16777215'; 3529 } 3530 default 0; 3531 description "One-way maximum delay or latency in micro seconds."; 3532 } 3533 leaf one-way-delay-variation { 3534 type uint32 { 3535 range '0..16777215'; 3536 } 3537 default 0; 3538 description "One-way delay variation in micro seconds."; 3539 } 3540 leaf one-way-packet-loss { 3541 type decimal64 { 3542 fraction-digits 6; 3543 range '0 .. 50.331642'; 3544 } 3545 default 0; 3546 description 3547 "One-way packet loss as a percentage of the total traffic sent 3548 over a configurable interval. The finest precision is 3549 0.000003%."; 3550 } 3551 } 3553 grouping two-way-performance-metrics-packet { 3554 description 3555 "Two-way packet performance metrics throttle grouping."; 3556 leaf two-way-min-delay { 3557 type uint32 { 3558 range '0..16777215'; 3559 } 3560 default 0; 3561 description "Two-way minimum delay or latency in micro seconds."; 3562 } 3563 leaf two-way-max-delay { 3564 type uint32 { 3565 range '0..16777215'; 3567 } 3568 default 0; 3569 description "Two-way maximum delay or latency in micro seconds."; 3570 } 3571 leaf two-way-delay-variation { 3572 type uint32 { 3573 range '0..16777215'; 3574 } 3575 default 0; 3576 description "Two-way delay variation in micro seconds."; 3577 } 3578 leaf two-way-packet-loss { 3579 type decimal64 { 3580 fraction-digits 6; 3581 range '0 .. 50.331642'; 3582 } 3583 default 0; 3584 description 3585 "Two-way packet loss as a percentage of the total traffic sent 3586 over a configurable interval. The finest precision is 3587 0.000003%."; 3588 } 3589 } 3591 grouping performance-metrics-throttle-container-packet { 3592 description 3593 "Packet performance metrics threshold grouping"; 3594 uses te-types:performance-metrics-throttle-container { 3595 augment "throttle/threshold-out" { 3596 uses one-way-performance-metrics-packet; 3597 uses two-way-performance-metrics-packet; 3598 description 3599 "PM threshold-out packet augmentation to 3600 generic grouping"; 3601 } 3602 augment "throttle/threshold-in" { 3603 uses one-way-performance-metrics-packet; 3604 uses two-way-performance-metrics-packet; 3605 description 3606 "PM threshold-in packet augmentation to 3607 generic grouping"; 3608 } 3609 augment "throttle/threshold-accelerated-advertisement" { 3610 uses one-way-performance-metrics-packet; 3611 uses two-way-performance-metrics-packet; 3612 description 3613 "PM accelerated advertisement packet augmentation to 3614 generic grouping"; 3616 } 3617 } 3618 } 3619 } 3620 3622 Figure 2: TE packet types YANG module 3624 6. IANA Considerations 3626 This document registers the following URIs in the IETF XML registry 3627 [RFC3688]. Following the format in [RFC3688], the following 3628 registration is requested to be made. 3630 URI: urn:ietf:params:xml:ns:yang:ietf-te-types XML: N/A, the 3631 requested URI is an XML namespace. 3633 URI: urn:ietf:params:xml:ns:yang:ietf-te-packet-types XML: N/A, the 3634 requested URI is an XML namespace. 3636 This document registers two YANG modules in the YANG Module Names 3637 registry [RFC6020]. 3639 name: ietf-te-types namespace: urn:ietf:params:xml:ns:yang:ietf-te- 3640 types prefix: ietf-te-types reference: RFCXXXX 3642 name: ietf-te-packet-types namespace: 3643 urn:ietf:params:xml:ns:yang:ietf-te-packet-types prefix: ietf-te- 3644 packet-types reference: RFCXXXX 3646 7. Security Considerations 3648 The YANG module specified in this document defines a schema for data 3649 that is designed to be accessed via network management protocols such 3650 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 3651 is the secure transport layer, and the mandatory-to-implement secure 3652 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 3653 is HTTPS, and the mandatory-to-implement secure transport is TLS 3654 [RFC8446]. 3656 The Network Configuration Access Control Model (NACM) [RFC8341] 3657 provides the means to restrict access for particular NETCONF or 3658 RESTCONF users to a preconfigured subset of all available NETCONF or 3659 RESTCONF protocol operations and content. 3661 The YANG module in this document defines common TE type definitions 3662 (i.e., typedef, identity and grouping statements) in YANG data 3663 modeling language to be imported and used by other TE modules. When 3664 imported and used, the resultant schema will have data nodes that can 3665 be writable, or readable. The access to such data nodes may be 3666 considered sensitive or vulnerable in some network environments. 3667 Write operations (e.g., edit-config) to these data nodes without 3668 proper protection can have a negative effect on network operations. 3670 The security considerations spelled out in the YANG 1.1 specification 3671 [RFC7950] apply for this document as well. 3673 8. Acknowledgement 3675 The authors would like to thank the members of the multi-vendor YANG 3676 design team who are involved in the definition of these data types. 3678 The authors would also like to thank Tom Petch, Jan Lindblad, Sergio 3679 Belotti, Italo Busi, Carlo Perocchio, Francesco Lazzeri, and Aihua 3680 Guo for their review comments and for providing valuable feedback on 3681 this document. 3683 9. Contributors 3685 Himanshu Shah 3686 Ciena 3688 Email: hshah@ciena.com 3690 Young Lee 3691 Huawei Technologies 3693 Email: leeyoung@huawei.com 3695 10. References 3697 10.1. Normative References 3699 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3700 Requirement Levels", BCP 14, RFC 2119, 3701 DOI 10.17487/RFC2119, March 1997, 3702 . 3704 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 3705 DOI 10.17487/RFC3688, January 2004, 3706 . 3708 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 3709 the Network Configuration Protocol (NETCONF)", RFC 6020, 3710 DOI 10.17487/RFC6020, October 2010, 3711 . 3713 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 3714 and A. Bierman, Ed., "Network Configuration Protocol 3715 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 3716 . 3718 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 3719 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 3720 . 3722 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 3723 RFC 6991, DOI 10.17487/RFC6991, July 2013, 3724 . 3726 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 3727 RFC 7950, DOI 10.17487/RFC7950, August 2016, 3728 . 3730 [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", 3731 RFC 7951, DOI 10.17487/RFC7951, August 2016, 3732 . 3734 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 3735 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 3736 . 3738 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 3739 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 3740 May 2017, . 3742 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 3743 "Common YANG Data Types for the Routing Area", RFC 8294, 3744 DOI 10.17487/RFC8294, December 2017, 3745 . 3747 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 3748 Access Control Model", STD 91, RFC 8341, 3749 DOI 10.17487/RFC8341, March 2018, 3750 . 3752 [RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., 3753 Ananthakrishnan, H., and X. Liu, "A YANG Data Model for 3754 Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 3755 2018, . 3757 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 3758 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 3759 . 3761 10.2. Informative References 3763 [G709] "G.709: Interfaces for the optical transport network", 3764 June 2016, . 3766 [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. 3767 McManus, "Requirements for Traffic Engineering Over MPLS", 3768 RFC 2702, DOI 10.17487/RFC2702, September 1999, 3769 . 3771 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 3772 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 3773 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 3774 . 3776 [RFC3272] Awduche, D., Chiu, A., Elwalid, A., Widjaja, I., and X. 3777 Xiao, "Overview and Principles of Internet Traffic 3778 Engineering", RFC 3272, DOI 10.17487/RFC3272, May 2002, 3779 . 3781 [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label 3782 Switching (GMPLS) Signaling Functional Description", 3783 RFC 3471, DOI 10.17487/RFC3471, January 2003, 3784 . 3786 [RFC3477] Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links 3787 in Resource ReSerVation Protocol - Traffic Engineering 3788 (RSVP-TE)", RFC 3477, DOI 10.17487/RFC3477, January 2003, 3789 . 3791 [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering 3792 (TE) Extensions to OSPF Version 2", RFC 3630, 3793 DOI 10.17487/RFC3630, September 2003, 3794 . 3796 [RFC3785] Le Faucheur, F., Uppili, R., Vedrenne, A., Merckx, P., and 3797 T. Telkamp, "Use of Interior Gateway Protocol (IGP) Metric 3798 as a second MPLS Traffic Engineering (TE) Metric", BCP 87, 3799 RFC 3785, DOI 10.17487/RFC3785, May 2004, 3800 . 3802 [RFC4090] Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast 3803 Reroute Extensions to RSVP-TE for LSP Tunnels", RFC 4090, 3804 DOI 10.17487/RFC4090, May 2005, 3805 . 3807 [RFC4124] Le Faucheur, F., Ed., "Protocol Extensions for Support of 3808 Diffserv-aware MPLS Traffic Engineering", RFC 4124, 3809 DOI 10.17487/RFC4124, June 2005, 3810 . 3812 [RFC4125] Le Faucheur, F. and W. Lai, "Maximum Allocation Bandwidth 3813 Constraints Model for Diffserv-aware MPLS Traffic 3814 Engineering", RFC 4125, DOI 10.17487/RFC4125, June 2005, 3815 . 3817 [RFC4126] Ash, J., "Max Allocation with Reservation Bandwidth 3818 Constraints Model for Diffserv-aware MPLS Traffic 3819 Engineering & Performance Comparisons", RFC 4126, 3820 DOI 10.17487/RFC4126, June 2005, 3821 . 3823 [RFC4127] Le Faucheur, F., Ed., "Russian Dolls Bandwidth Constraints 3824 Model for Diffserv-aware MPLS Traffic Engineering", 3825 RFC 4127, DOI 10.17487/RFC4127, June 2005, 3826 . 3828 [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions 3829 in Support of Generalized Multi-Protocol Label Switching 3830 (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, 3831 . 3833 [RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in 3834 Support of Generalized Multi-Protocol Label Switching 3835 (GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005, 3836 . 3838 [RFC4328] Papadimitriou, D., Ed., "Generalized Multi-Protocol Label 3839 Switching (GMPLS) Signaling Extensions for G.709 Optical 3840 Transport Networks Control", RFC 4328, 3841 DOI 10.17487/RFC4328, January 2006, 3842 . 3844 [RFC4427] Mannie, E., Ed. and D. Papadimitriou, Ed., "Recovery 3845 (Protection and Restoration) Terminology for Generalized 3846 Multi-Protocol Label Switching (GMPLS)", RFC 4427, 3847 DOI 10.17487/RFC4427, March 2006, 3848 . 3850 [RFC4561] Vasseur, J., Ed., Ali, Z., and S. Sivabalan, "Definition 3851 of a Record Route Object (RRO) Node-Id Sub-Object", 3852 RFC 4561, DOI 10.17487/RFC4561, June 2006, 3853 . 3855 [RFC4657] Ash, J., Ed. and J. Le Roux, Ed., "Path Computation 3856 Element (PCE) Communication Protocol Generic 3857 Requirements", RFC 4657, DOI 10.17487/RFC4657, September 3858 2006, . 3860 [RFC4736] Vasseur, JP., Ed., Ikejiri, Y., and R. Zhang, 3861 "Reoptimization of Multiprotocol Label Switching (MPLS) 3862 Traffic Engineering (TE) Loosely Routed Label Switched 3863 Path (LSP)", RFC 4736, DOI 10.17487/RFC4736, November 3864 2006, . 3866 [RFC4872] Lang, J., Ed., Rekhter, Y., Ed., and D. Papadimitriou, 3867 Ed., "RSVP-TE Extensions in Support of End-to-End 3868 Generalized Multi-Protocol Label Switching (GMPLS) 3869 Recovery", RFC 4872, DOI 10.17487/RFC4872, May 2007, 3870 . 3872 [RFC4873] Berger, L., Bryskin, I., Papadimitriou, D., and A. Farrel, 3873 "GMPLS Segment Recovery", RFC 4873, DOI 10.17487/RFC4873, 3874 May 2007, . 3876 [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. 3877 Yasukawa, Ed., "Extensions to Resource Reservation 3878 Protocol - Traffic Engineering (RSVP-TE) for Point-to- 3879 Multipoint TE Label Switched Paths (LSPs)", RFC 4875, 3880 DOI 10.17487/RFC4875, May 2007, 3881 . 3883 [RFC4920] Farrel, A., Ed., Satyanarayana, A., Iwata, A., Fujita, N., 3884 and G. Ash, "Crankback Signaling Extensions for MPLS and 3885 GMPLS RSVP-TE", RFC 4920, DOI 10.17487/RFC4920, July 2007, 3886 . 3888 [RFC5003] Metz, C., Martini, L., Balus, F., and J. Sugimoto, 3889 "Attachment Individual Identifier (AII) Types for 3890 Aggregation", RFC 5003, DOI 10.17487/RFC5003, September 3891 2007, . 3893 [RFC5150] Ayyangar, A., Kompella, K., Vasseur, JP., and A. Farrel, 3894 "Label Switched Path Stitching with Generalized 3895 Multiprotocol Label Switching Traffic Engineering (GMPLS 3896 TE)", RFC 5150, DOI 10.17487/RFC5150, February 2008, 3897 . 3899 [RFC5151] Farrel, A., Ed., Ayyangar, A., and JP. Vasseur, "Inter- 3900 Domain MPLS and GMPLS Traffic Engineering -- Resource 3901 Reservation Protocol-Traffic Engineering (RSVP-TE) 3902 Extensions", RFC 5151, DOI 10.17487/RFC5151, February 3903 2008, . 3905 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 3906 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 3907 2008, . 3909 [RFC5307] Kompella, K., Ed. and Y. Rekhter, Ed., "IS-IS Extensions 3910 in Support of Generalized Multi-Protocol Label Switching 3911 (GMPLS)", RFC 5307, DOI 10.17487/RFC5307, October 2008, 3912 . 3914 [RFC5420] Farrel, A., Ed., Papadimitriou, D., Vasseur, JP., and A. 3915 Ayyangarps, "Encoding of Attributes for MPLS LSP 3916 Establishment Using Resource Reservation Protocol Traffic 3917 Engineering (RSVP-TE)", RFC 5420, DOI 10.17487/RFC5420, 3918 February 2009, . 3920 [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of 3921 Objective Functions in the Path Computation Element 3922 Communication Protocol (PCEP)", RFC 5541, 3923 DOI 10.17487/RFC5541, June 2009, 3924 . 3926 [RFC5712] Meyer, M., Ed. and JP. Vasseur, Ed., "MPLS Traffic 3927 Engineering Soft Preemption", RFC 5712, 3928 DOI 10.17487/RFC5712, January 2010, 3929 . 3931 [RFC5817] Ali, Z., Vasseur, JP., Zamfir, A., and J. Newton, 3932 "Graceful Shutdown in MPLS and Generalized MPLS Traffic 3933 Engineering Networks", RFC 5817, DOI 10.17487/RFC5817, 3934 April 2010, . 3936 [RFC6001] Papadimitriou, D., Vigoureux, M., Shiomoto, K., Brungard, 3937 D., and JL. Le Roux, "Generalized MPLS (GMPLS) Protocol 3938 Extensions for Multi-Layer and Multi-Region Networks (MLN/ 3939 MRN)", RFC 6001, DOI 10.17487/RFC6001, October 2010, 3940 . 3942 [RFC6004] Berger, L. and D. Fedyk, "Generalized MPLS (GMPLS) Support 3943 for Metro Ethernet Forum and G.8011 Ethernet Service 3944 Switching", RFC 6004, DOI 10.17487/RFC6004, October 2010, 3945 . 3947 [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic 3948 Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, 3949 February 2011, . 3951 [RFC6205] Otani, T., Ed. and D. Li, Ed., "Generalized Labels for 3952 Lambda-Switch-Capable (LSC) Label Switching Routers", 3953 RFC 6205, DOI 10.17487/RFC6205, March 2011, 3954 . 3956 [RFC6370] Bocci, M., Swallow, G., and E. Gray, "MPLS Transport 3957 Profile (MPLS-TP) Identifiers", RFC 6370, 3958 DOI 10.17487/RFC6370, September 2011, 3959 . 3961 [RFC6378] Weingarten, Y., Ed., Bryant, S., Osborne, E., Sprecher, 3962 N., and A. Fulignoli, Ed., "MPLS Transport Profile (MPLS- 3963 TP) Linear Protection", RFC 6378, DOI 10.17487/RFC6378, 3964 October 2011, . 3966 [RFC6511] Ali, Z., Swallow, G., and R. Aggarwal, "Non-Penultimate 3967 Hop Popping Behavior and Out-of-Band Mapping for RSVP-TE 3968 Label Switched Paths", RFC 6511, DOI 10.17487/RFC6511, 3969 February 2012, . 3971 [RFC6780] Berger, L., Le Faucheur, F., and A. Narayanan, "RSVP 3972 ASSOCIATION Object Extensions", RFC 6780, 3973 DOI 10.17487/RFC6780, October 2012, 3974 . 3976 [RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and 3977 L. Yong, "The Use of Entropy Labels in MPLS Forwarding", 3978 RFC 6790, DOI 10.17487/RFC6790, November 2012, 3979 . 3981 [RFC6827] Malis, A., Ed., Lindem, A., Ed., and D. Papadimitriou, 3982 Ed., "Automatically Switched Optical Network (ASON) 3983 Routing for OSPFv2 Protocols", RFC 6827, 3984 DOI 10.17487/RFC6827, January 2013, 3985 . 3987 [RFC7139] Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D., 3988 and K. Pithewan, "GMPLS Signaling Extensions for Control 3989 of Evolving G.709 Optical Transport Networks", RFC 7139, 3990 DOI 10.17487/RFC7139, March 2014, 3991 . 3993 [RFC7260] Takacs, A., Fedyk, D., and J. He, "GMPLS RSVP-TE 3994 Extensions for Operations, Administration, and Maintenance 3995 (OAM) Configuration", RFC 7260, DOI 10.17487/RFC7260, June 3996 2014, . 3998 [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS 3999 Traffic Engineering (MPLS-TE)", RFC 7308, 4000 DOI 10.17487/RFC7308, July 2014, 4001 . 4003 [RFC7471] Giacalone, S., Ward, D., Drake, J., Atlas, A., and S. 4004 Previdi, "OSPF Traffic Engineering (TE) Metric 4005 Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015, 4006 . 4008 [RFC7551] Zhang, F., Ed., Jing, R., and R. Gandhi, Ed., "RSVP-TE 4009 Extensions for Associated Bidirectional Label Switched 4010 Paths (LSPs)", RFC 7551, DOI 10.17487/RFC7551, May 2015, 4011 . 4013 [RFC7570] Margaria, C., Ed., Martinelli, G., Balls, S., and B. 4014 Wright, "Label Switched Path (LSP) Attribute in the 4015 Explicit Route Object (ERO)", RFC 7570, 4016 DOI 10.17487/RFC7570, July 2015, 4017 . 4019 [RFC7571] Dong, J., Chen, M., Li, Z., and D. Ceccarelli, "GMPLS 4020 RSVP-TE Extensions for Lock Instruct and Loopback", 4021 RFC 7571, DOI 10.17487/RFC7571, July 2015, 4022 . 4024 [RFC7579] Bernstein, G., Ed., Lee, Y., Ed., Li, D., Imajuku, W., and 4025 J. Han, "General Network Element Constraint Encoding for 4026 GMPLS-Controlled Networks", RFC 7579, 4027 DOI 10.17487/RFC7579, June 2015, 4028 . 4030 [RFC7823] Atlas, A., Drake, J., Giacalone, S., and S. Previdi, 4031 "Performance-Based Path Selection for Explicitly Routed 4032 Label Switched Paths (LSPs) Using TE Metric Extensions", 4033 RFC 7823, DOI 10.17487/RFC7823, May 2016, 4034 . 4036 [RFC8001] Zhang, F., Ed., Gonzalez de Dios, O., Ed., Margaria, C., 4037 Hartley, M., and Z. Ali, "RSVP-TE Extensions for 4038 Collecting Shared Risk Link Group (SRLG) Information", 4039 RFC 8001, DOI 10.17487/RFC8001, January 2017, 4040 . 4042 [RFC8149] Saad, T., Ed., Gandhi, R., Ed., Ali, Z., Venator, R., and 4043 Y. Kamite, "RSVP Extensions for Reoptimization of Loosely 4044 Routed Point-to-Multipoint Traffic Engineering Label 4045 Switched Paths (LSPs)", RFC 8149, DOI 10.17487/RFC8149, 4046 April 2017, . 4048 [RFC8169] Mirsky, G., Ruffini, S., Gray, E., Drake, J., Bryant, S., 4049 and A. Vainshtein, "Residence Time Measurement in MPLS 4050 Networks", RFC 8169, DOI 10.17487/RFC8169, May 2017, 4051 . 4053 [RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward, 4054 D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) 4055 Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March 4056 2019, . 4058 Authors' Addresses 4060 Tarek Saad 4061 Juniper Networks 4063 Email: tsaad@juniper.net 4065 Rakesh Gandhi 4066 Cisco Systems Inc 4068 Email: rgandhi@cisco.com 4070 Xufeng Liu 4071 Volta Networks 4073 Email: xufeng.liu.ietf@gmail.com 4075 Vishnu Pavan Beeram 4076 Juniper Networks 4078 Email: vbeeram@juniper.net 4080 Igor Bryskin 4081 Huawei Technologies 4083 Email: Igor.Bryskin@huawei.com