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