idnits 2.17.1 draft-ietf-teas-yang-te-types-09.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 (May 02, 2019) is 1821 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: November 3, 2019 Cisco Systems Inc 6 X. Liu 7 Volta Networks 8 V. Beeram 9 Juniper Networks 10 I. Bryskin 11 Huawei Technologies 12 May 02, 2019 14 Traffic Engineering Common YANG Types 15 draft-ietf-teas-yang-te-types-09 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 November 3, 2019. 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 . . . . . . . . . . . . . . . . . 69 67 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 78 68 7. Security Considerations . . . . . . . . . . . . . . . . . . . 78 69 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 79 70 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 79 71 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 79 72 10.1. Normative References . . . . . . . . . . . . . . . . . . 79 73 10.2. Informative References . . . . . . . . . . . . . . . . . 81 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 87 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-04-09.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-04-09" { 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 identity otn-rate-type { 2054 description 2055 "Base type to identify OTN bit rates of various information 2056 structures."; 2057 } 2058 identity odu0 { 2059 base otn-rate-type; 2060 description 2061 "ODU0 bit rate."; 2062 reference "RFC7139"; 2063 } 2064 identity odu1 { 2065 base otn-rate-type; 2066 description 2067 "ODU1 bit rate."; 2068 reference "RFC7139"; 2069 } 2070 identity odu2 { 2071 base otn-rate-type; 2072 description 2073 "ODU2 bit rate."; 2074 reference "RFC7139"; 2075 } 2076 identity odu3 { 2077 base otn-rate-type; 2078 description 2079 "ODU3 bit rate."; 2080 reference "RFC7139"; 2081 } 2082 identity odu4 { 2083 base otn-rate-type; 2084 description 2085 "ODU4 bit rate."; 2086 reference "RFC7139"; 2087 } 2088 identity odu2e { 2089 base otn-rate-type; 2090 description 2091 "ODU2e bit rate."; 2092 reference "RFC7139"; 2093 } 2094 identity oducn { 2095 base otn-rate-type; 2096 description 2097 "ODUCn bit rate."; 2098 reference "RFC7139"; 2099 } 2100 identity oduflex { 2101 base otn-rate-type; 2102 description 2103 "ODUflex bit rate."; 2104 reference "RFC7139"; 2105 } 2107 identity wdm-spectrum-type { 2108 description 2109 "Base type to identify WDM spectrum type."; 2110 } 2111 identity cwdm { 2112 base wdm-spectrum-type; 2113 description "CWDM."; 2114 reference "RFC6205"; 2115 } 2116 identity dwdm { 2117 base wdm-spectrum-type; 2118 description "DWDM."; 2119 reference "RFC6205"; 2120 } 2121 identity flexible-grid { 2122 base wdm-spectrum-type; 2123 description "Flexible grid."; 2124 reference "RFC6205"; 2125 } 2127 /** 2128 * TE bandwidth groupings 2129 **/ 2130 grouping te-bandwidth { 2131 description 2132 "This grouping defines the generic TE bandwidth. 2133 For some known data plane technologies, specific modeling 2134 structures are specified. The string encoded te-bandwidth 2135 type is used for un-specified technologies. 2136 The modeling structure can be augmented later for other 2137 technologies."; 2138 container te-bandwidth { 2139 description 2140 "Container that specifies TE bandwidth. The choices 2141 can be augmented for specific dataplane technologies."; 2142 choice technology { 2143 default generic; 2144 description 2145 "Data plane technology type."; 2146 case generic { 2147 leaf generic { 2148 type te-bandwidth; 2149 description 2150 "Bandwidth specified in a generic format."; 2151 } 2152 } 2153 } 2154 } 2155 } 2157 /** 2158 * TE label groupings 2159 **/ 2160 grouping te-label { 2161 description 2162 "This grouping defines the generic TE label. 2163 The modeling structure can be augmented for each technology. 2164 For un-specified technologies, rt-types:generalized-label 2165 is used."; 2167 container te-label { 2168 description 2169 "Container that specifies TE label. The choices can 2170 be augmented for specific dataplane technologies."; 2171 choice technology { 2172 default generic; 2173 description 2174 "Data plane technology type."; 2175 case generic { 2176 leaf generic { 2177 type rt-types:generalized-label; 2178 description 2179 "TE label specified in a generic format."; 2180 } 2181 } 2182 } 2183 leaf direction { 2184 type te-label-direction; 2185 default 'forward'; 2186 description "Label direction"; 2187 } 2188 } 2189 } 2191 grouping te-topology-identifier { 2192 description 2193 "Augmentation for TE topology."; 2194 container te-topology-identifier { 2195 description "TE topology identifier container"; 2196 leaf provider-id { 2197 type te-global-id; 2198 default 0; 2199 description 2200 "An identifier to uniquely identify a provider. If omitted, 2201 it assumes the default topology provider ID=0"; 2202 } 2203 leaf client-id { 2204 type te-global-id; 2205 default 0; 2206 description 2207 "An identifier to uniquely identify a client. If omitted, 2208 it assumes the default topology client ID=0"; 2209 } 2210 leaf topology-id { 2211 type te-topology-id; 2212 default ''; 2213 description 2214 "When the datastore contains several topologies, the 2215 topology-id distinguishes between them. If omitted, the 2216 default empty string topology-id is assumed"; 2217 } 2218 } 2219 } 2221 /** 2222 * TE performance metric groupings 2223 **/ 2224 grouping performance-metrics-one-way-delay-loss { 2225 description 2226 "Performance Metric (PM) information in real time that can 2227 be applicable to links or connections. PM defined 2228 in this grouping is applicable to generic TE performance 2229 metrics as well as packet TE performance metrics."; 2230 reference 2231 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2232 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2233 RFC7823: Performance-Based Path Selection for Explicitly 2234 Routed Label Switched Paths (LSPs) Using TE Metric 2235 Extensions"; 2236 leaf one-way-delay { 2237 type uint32 { 2238 range 0..16777215; 2239 } 2240 description "One-way delay or latency in micro seconds."; 2241 } 2242 leaf one-way-delay-normality { 2243 type te-types:performance-metrics-normality; 2244 description "One-way delay normality."; 2245 } 2246 } 2248 grouping performance-metrics-two-way-delay-loss { 2249 description 2250 "Performance metric information in real time that can 2251 be applicable to links or connections. PM defined 2252 in this grouping is applicable to generic TE performance 2253 metrics as well as packet TE performance metrics."; 2254 reference 2255 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2256 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2257 RFC7823: Performance-Based Path Selection for Explicitly 2258 Routed Label Switched Paths (LSPs) Using TE Metric 2259 Extensions"; 2260 leaf two-way-delay { 2261 type uint32 { 2262 range 0..16777215; 2264 } 2265 description "Two-way delay or latency in micro seconds."; 2266 } 2267 leaf two-way-delay-normality { 2268 type te-types:performance-metrics-normality; 2269 description "Two-way delay normality."; 2270 } 2271 } 2273 grouping performance-metrics-one-way-bandwidth { 2274 description 2275 "Performance metric information in real time that can 2276 be applicable to links. PM defined 2277 in this grouping is applicable to generic TE performance 2278 metrics as well as packet TE performance metrics."; 2279 reference 2280 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2281 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2282 RFC7823: Performance-Based Path Selection for Explicitly 2283 Routed Label Switched Paths (LSPs) Using TE Metric 2284 Extensions"; 2286 leaf one-way-residual-bandwidth { 2287 type rt-types:bandwidth-ieee-float32; 2288 default '0x0p0'; 2289 description 2290 "Residual bandwidth that subtracts tunnel 2291 reservations from Maximum Bandwidth (or link capacity) 2292 [RFC3630] and provides an aggregated remainder across QoS 2293 classes."; 2294 } 2295 leaf one-way-residual-bandwidth-normality { 2296 type te-types:performance-metrics-normality; 2297 default 'normal'; 2298 description "Residual bandwidth normality."; 2299 } 2300 leaf one-way-available-bandwidth { 2301 type rt-types:bandwidth-ieee-float32; 2302 default '0x0p0'; 2303 description 2304 "Available bandwidth that is defined to be residual 2305 bandwidth minus the measured bandwidth used for the 2306 actual forwarding of non-RSVP-TE LSP packets. For a 2307 bundled link, available bandwidth is defined to be the 2308 sum of the component link available bandwidths."; 2309 } 2310 leaf one-way-available-bandwidth-normality { 2311 type te-types:performance-metrics-normality; 2312 default 'normal'; 2313 description "Available bandwidth normality."; 2314 } 2315 leaf one-way-utilized-bandwidth { 2316 type rt-types:bandwidth-ieee-float32; 2317 default '0x0p0'; 2318 description 2319 "Bandwidth utilization that represents the actual 2320 utilization of the link (i.e. as measured in the router). 2321 For a bundled link, bandwidth utilization is defined to 2322 be the sum of the component link bandwidth 2323 utilizations."; 2324 } 2325 leaf one-way-utilized-bandwidth-normality { 2326 type te-types:performance-metrics-normality; 2327 default 'normal'; 2328 description "Bandwidth utilization normality."; 2329 } 2330 } 2332 grouping one-way-performance-metrics { 2333 description 2334 "One-way performance metrics throttle grouping."; 2335 leaf one-way-delay { 2336 type uint32 { 2337 range 0..16777215; 2338 } 2339 default 0; 2340 description "One-way delay or latency in micro seconds."; 2341 } 2342 leaf one-way-residual-bandwidth { 2343 type rt-types:bandwidth-ieee-float32; 2344 default '0x0p0'; 2345 description 2346 "Residual bandwidth that subtracts tunnel 2347 reservations from Maximum Bandwidth (or link capacity) 2348 [RFC3630] and provides an aggregated remainder across QoS 2349 classes."; 2350 } 2351 leaf one-way-available-bandwidth { 2352 type rt-types:bandwidth-ieee-float32; 2353 default '0x0p0'; 2354 description 2355 "Available bandwidth that is defined to be residual 2356 bandwidth minus the measured bandwidth used for the 2357 actual forwarding of non-RSVP-TE LSP packets. For a 2358 bundled link, available bandwidth is defined to be the 2359 sum of the component link available bandwidths."; 2361 } 2362 leaf one-way-utilized-bandwidth { 2363 type rt-types:bandwidth-ieee-float32; 2364 default '0x0p0'; 2365 description 2366 "Bandwidth utilization that represents the actual 2367 utilization of the link (i.e. as measured in the router). 2368 For a bundled link, bandwidth utilization is defined to 2369 be the sum of the component link bandwidth 2370 utilizations."; 2371 } 2372 } 2374 grouping two-way-performance-metrics { 2375 description 2376 "Two-way performance metrics throttle grouping."; 2377 leaf two-way-delay { 2378 type uint32 { 2379 range 0..16777215; 2380 } 2381 default 0; 2382 description "Two-way delay or latency in micro seconds."; 2383 } 2384 } 2386 grouping performance-metrics-thresholds { 2387 description 2388 "Grouping for configurable thresholds for measured attributes"; 2389 uses one-way-performance-metrics; 2390 uses two-way-performance-metrics; 2391 } 2393 grouping performance-metrics-attributes { 2394 description 2395 "A container containing performance metric attributes."; 2396 container performance-metrics-one-way { 2397 description 2398 "One-way link performance information in real time."; 2399 reference 2400 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2401 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2402 RFC7823: Performance-Based Path Selection for Explicitly 2403 Routed Label Switched Paths (LSPs) Using TE Metric 2404 Extensions"; 2405 uses performance-metrics-one-way-delay-loss; 2406 uses performance-metrics-one-way-bandwidth; 2407 } 2408 container performance-metrics-two-way { 2409 description 2410 "Two-way link performance information in real time."; 2411 reference 2412 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2413 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2414 RFC7823: Performance-Based Path Selection for Explicitly 2415 Routed Label Switched Paths (LSPs) Using TE Metric 2416 Extensions"; 2417 uses performance-metrics-two-way-delay-loss; 2418 } 2419 } 2421 grouping performance-metrics-throttle-container { 2422 description 2423 "A container controlling performance metric throttle."; 2424 container throttle { 2425 must "suppression-interval >= measure-interval" { 2426 error-message 2427 "suppression-interval cannot be less then 2428 measure-interval."; 2429 description 2430 "Constraint on suppression-interval and 2431 measure-interval."; 2432 } 2433 description 2434 "Link performance information in real time."; 2435 reference 2436 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2437 RFC8570: IS-IS Traffic Engineering (TE) Metric Extensions. 2438 RFC7823: Performance-Based Path Selection for Explicitly 2439 Routed Label Switched Paths (LSPs) Using TE Metric 2440 Extensions"; 2441 leaf one-way-delay-offset { 2442 type uint32 { 2443 range 0..16777215; 2444 } 2445 default 0; 2446 description 2447 "Offset value to be added to the measured delay value."; 2448 } 2449 leaf measure-interval { 2450 type uint32; 2451 default 30; 2452 description 2453 "Interval in seconds to measure the extended metric 2454 values."; 2455 } 2456 leaf advertisement-interval { 2457 type uint32; 2458 default 0; 2459 description 2460 "Interval in seconds to advertise the extended metric 2461 values."; 2462 } 2463 leaf suppression-interval { 2464 type uint32 { 2465 range "1 .. max"; 2466 } 2467 default 120; 2468 description 2469 "Interval in seconds to suppress advertising the extended 2470 metric values."; 2471 } 2472 container threshold-out { 2473 uses performance-metrics-thresholds; 2474 description 2475 "If the measured parameter falls outside an upper bound 2476 for all but the min delay metric (or lower bound for 2477 min-delay metric only) and the advertised value is not 2478 already outside that bound, anomalous announcement will be 2479 triggered."; 2480 } 2481 container threshold-in { 2482 uses performance-metrics-thresholds; 2483 description 2484 "If the measured parameter falls inside an upper bound 2485 for all but the min delay metric (or lower bound for 2486 min-delay metric only) and the advertised value is not 2487 already inside that bound, normal (anomalous-flag cleared) 2488 announcement will be triggered."; 2489 } 2490 container threshold-accelerated-advertisement { 2491 description 2492 "When the difference between the last advertised value and 2493 current measured value exceed this threshold, anomalous 2494 announcement will be triggered."; 2495 uses performance-metrics-thresholds; 2496 } 2497 } 2498 } // performance-metrics-throttle-container 2500 /** 2501 * TE tunnel generic groupings 2502 **/ 2503 grouping explicit-route-hop { 2504 description 2505 "The explicit route entry grouping"; 2506 choice type { 2507 description 2508 "The explicit route entry type"; 2509 case numbered-node-hop { 2510 container numbered-node-hop { 2511 leaf node-id { 2512 type te-node-id; 2513 mandatory true; 2514 description 2515 "The identifier of a node in the TE topology."; 2516 } 2517 leaf hop-type { 2518 type te-hop-type; 2519 default 'strict'; 2520 description "strict or loose hop"; 2521 } 2522 description "Numbered node route hop"; 2523 reference 2524 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2525 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2526 } 2527 } 2528 case numbered-link-hop { 2529 container numbered-link-hop { 2530 leaf link-tp-id { 2531 type te-tp-id; 2532 mandatory true; 2533 description 2534 "TE link termination point identifier."; 2535 } 2536 leaf hop-type { 2537 type te-hop-type; 2538 default 'strict'; 2539 description "strict or loose hop"; 2540 } 2541 leaf direction { 2542 type te-link-direction; 2543 default 'outgoing'; 2544 description "Link route object direction"; 2545 } 2546 description 2547 "Numbered link explicit route hop"; 2548 reference 2549 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2550 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2551 } 2553 } 2554 case unnumbered-link-hop { 2555 container unnumbered-link-hop { 2556 leaf link-tp-id { 2557 type te-tp-id; 2558 mandatory true; 2559 description 2560 "TE link termination point identifier. The combination 2561 of TE link ID and the TE node ID is used to identify an 2562 unnumbered TE link."; 2563 } 2564 leaf node-id { 2565 type te-node-id; 2566 mandatory true; 2567 description 2568 "The identifier of a node in the TE topology."; 2569 } 2570 leaf hop-type { 2571 type te-hop-type; 2572 default 'strict'; 2573 description "strict or loose hop"; 2574 } 2575 leaf direction { 2576 type te-link-direction; 2577 default 'outgoing'; 2578 description "Link route object direction"; 2579 } 2580 description 2581 "Unnumbered link explicit route hop"; 2582 reference 2583 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2584 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2585 } 2586 } 2587 case as-number { 2588 container as-number-hop { 2589 leaf as-number { 2590 type inet:as-number; 2591 mandatory true; 2592 description "The AS number"; 2593 } 2594 leaf hop-type { 2595 type te-hop-type; 2596 default 'strict'; 2597 description "strict or loose hop"; 2598 } 2599 description 2600 "Autonomous System explicit route hop"; 2602 } 2603 } 2604 case label { 2605 container label-hop { 2606 description "Label hop type"; 2607 uses te-label; 2608 } 2609 description 2610 "The label explicit route hop type"; 2611 } 2612 } 2613 } 2615 grouping record-route-state { 2616 description 2617 "The record route grouping"; 2618 leaf index { 2619 type uint32; 2620 description 2621 "Record route hop index. The index is used to 2622 identify an entry in the list. The order of entries 2623 is defined by the user without relying on key values"; 2624 } 2625 choice type { 2626 description 2627 "The record route entry type"; 2628 case numbered-node-hop { 2629 container numbered-node-hop { 2630 description "Numbered node route hop container"; 2631 leaf node-id { 2632 type te-node-id; 2633 mandatory true; 2634 description 2635 "The identifier of a node in the TE topology."; 2636 } 2637 leaf-list flags { 2638 type path-attribute-flags; 2639 description "Record route per hop flags"; 2640 reference "RFC3209, RFC4090, RFC4561"; 2641 } 2642 } 2643 description "Numbered node route hop"; 2644 } 2645 case numbered-link-hop { 2646 container numbered-link-hop { 2647 description "Numbered link route hop container"; 2648 leaf link-tp-id { 2649 type te-tp-id; 2650 mandatory true; 2651 description 2652 "Numbered TE link termination point identifier."; 2653 } 2654 leaf-list flags { 2655 type path-attribute-flags; 2656 description "Record route per hop flags"; 2657 reference "RFC3209, RFC4090, RFC4561"; 2658 } 2659 } 2660 description "Numbered link route hop"; 2661 } 2662 case unnumbered-link-hop { 2663 container unnumbered-link-hop { 2664 leaf link-tp-id { 2665 type te-tp-id; 2666 mandatory true; 2667 description 2668 "TE link termination point identifier. The combination 2669 of TE link ID and the TE node ID is used to identify an 2670 unnumbered TE link."; 2671 } 2672 leaf node-id { 2673 type te-node-id; 2674 description 2675 "The identifier of a node in the TE topology."; 2676 } 2677 leaf-list flags { 2678 type path-attribute-flags; 2679 description "Record route per hop flags"; 2680 reference "RFC3209, RFC4090, RFC4561"; 2681 } 2682 description 2683 "Unnumbered link record route hop"; 2684 reference 2685 "RFC3477: Signalling Unnumbered Links in 2686 RSVP-TE"; 2687 } 2688 description "Unnumbered link route hop"; 2689 } 2690 case label { 2691 container label-hop { 2692 description "Label route hop type"; 2693 uses te-label; 2694 leaf-list flags { 2695 type path-attribute-flags; 2696 description "Record route per hop flags"; 2697 reference "RFC3209, RFC4090, RFC4561"; 2699 } 2700 } 2701 description 2702 "The Label record route entry types"; 2703 } 2704 } 2705 } 2707 grouping label-restriction-info { 2708 description "Label set item info"; 2709 leaf restriction { 2710 type enumeration { 2711 enum inclusive { 2712 description "The label or label range is inclusive."; 2713 } 2714 enum exclusive { 2715 description "The label or label range is exclusive."; 2716 } 2717 } 2718 default 'inclusive'; 2719 description 2720 "Whether the list item is inclusive or exclusive."; 2721 } 2722 leaf index { 2723 type uint32; 2724 description 2725 "The index of the label restriction list entry."; 2726 } 2727 container label-start { 2728 must "(not(../label-end/te-label/direction) and" + 2729 " not(te-label/direction))" 2730 + " or " 2731 + "(../label-end/te-label/direction = te-label/direction)" 2732 + " or " 2733 + "(not(te-label/direction) and" + 2734 " (../label-end/te-label/direction = 'forward'))" 2735 + " or " 2736 + "(not(../label-end/te-label/direction) and" + 2737 " (te-label/direction = 'forward'))" { 2738 error-message 2739 "label-start and label-end must have the same direction."; 2740 } 2741 description 2742 "This is the starting label if a label range is specified. 2743 This is the label value if a single label is specified, 2744 in which case, attribute 'label-end' is not set."; 2745 uses te-label; 2746 } 2747 container label-end { 2748 must "(not(../label-start/te-label/direction) and" + 2749 " not(te-label/direction))" 2750 + " or " 2751 + "(../label-start/te-label/direction = te-label/direction)" 2752 + " or " 2753 + "(not(te-label/direction) and" + 2754 " (../label-start/te-label/direction = 'forward'))" 2755 + " or " 2756 + "(not(../label-start/te-label/direction) and" + 2757 " (te-label/direction = 'forward'))" { 2758 error-message 2759 "label-start and label-end must have the same direction."; 2760 } 2761 description 2762 "The ending label if a label range is specified; 2763 This attribute is not set, If a single label is 2764 specified."; 2765 uses te-label; 2766 } 2767 container label-step { 2768 description 2769 "The step increment between labels in the label range. 2770 The label start/end values will have to be consistent 2771 with the sign of label step. For example, 2772 label-start < label-end enforces label-step > 0 2773 label-start > label-end enforces label-step < 0"; 2774 choice technology { 2775 default generic; 2776 description 2777 "Data plane technology type."; 2778 case generic { 2779 leaf generic { 2780 type int32; 2781 default 1; 2782 description "Label range step"; 2783 } 2784 } 2785 } 2786 } 2787 leaf range-bitmap { 2788 type yang:hex-string; 2789 description 2790 "When there are gaps between label-start and label-end, 2791 this attribute is used to specify the positions 2792 of the used labels. This is represented in big-endian as 2793 hex-string. 2795 Each bit-position in the range-bitmap hex-string maps to a 2796 label in the range derived from the label-start. 2798 For example, assuming label-start=16000 and 2799 range-bitmap=0x01000001, then: 2800 - bit-position(0) is set, and the corresponding mapped label 2801 from the range is: 16000 + (0 * label-step) or 2802 16000 for default label-step=1. 2803 - bit-position(24) is set, and the corresponding mapped label 2804 from the range is: 16000 + (24 * label-step) or 2805 16024 for defautl label-step=1"; 2806 } 2807 } 2809 grouping label-set-info { 2810 description 2811 "Grouping for List of label restrictions specifying what labels 2812 may or may not be used on a link connectivity."; 2813 container label-restrictions { 2814 description 2815 "The label restrictions container"; 2816 list label-restriction { 2817 key "index"; 2818 description 2819 "The absence of label-set implies that all labels are 2820 acceptable; otherwise only restricted labels are 2821 available."; 2822 reference 2823 "RFC7579: General Network Element Constraint Encoding 2824 for GMPLS-Controlled Networks"; 2825 uses label-restriction-info; 2826 } 2827 } 2828 } 2830 grouping optimization-metric-entry { 2831 description "Optimization metrics configuration grouping"; 2832 leaf metric-type { 2833 type identityref { 2834 base path-metric-type; 2835 } 2836 description 2837 "Identifies an entry in the list of metric-types to 2838 optimize the TE path for."; 2839 } 2840 leaf weight { 2841 type uint8; 2842 default 1; 2843 description "TE path metric normalization weight"; 2844 } 2845 container explicit-route-exclude-objects { 2846 when "../metric-type = " + 2847 "'te-types:path-metric-optimize-excludes'"; 2848 description 2849 "Container for the exclude route object list"; 2850 uses path-route-exclude-objects; 2851 } 2852 container explicit-route-include-objects { 2853 when "../metric-type = " + 2854 "'te-types:path-metric-optimize-includes'"; 2855 description 2856 "Container for the include route object list"; 2857 uses path-route-include-objects; 2858 } 2859 } 2861 grouping common-constraints { 2862 description 2863 "Common constraints grouping that can be set on 2864 a constraint set or directly on the tunnel"; 2866 uses te-bandwidth { 2867 description 2868 "A requested bandwidth to use for path computation"; 2869 } 2871 leaf link-protection { 2872 type identityref { 2873 base link-protection-type; 2874 } 2875 default te-types:link-protection-unprotected; 2876 description 2877 "Link protection type required for the links included 2878 in the computed path"; 2879 reference 2880 "RFC4202: Routing Extensions in Support of 2881 Generalized Multi-Protocol Label Switching (GMPLS)."; 2882 } 2884 leaf setup-priority { 2885 type uint8 { 2886 range "0..7"; 2887 } 2888 default 7; 2889 description 2890 "TE LSP requested setup priority"; 2892 reference "RFC3209"; 2893 } 2894 leaf hold-priority { 2895 type uint8 { 2896 range "0..7"; 2897 } 2898 default 7; 2899 description 2900 "TE LSP requested hold priority"; 2901 reference "RFC3209"; 2902 } 2903 leaf signaling-type { 2904 type identityref { 2905 base path-signaling-type; 2906 } 2907 default te-types:path-setup-rsvp; 2908 description "TE tunnel path signaling type"; 2909 } 2910 } 2912 grouping tunnel-constraints { 2913 description 2914 "Tunnel constraints grouping that can be set on 2915 a constraint set or directly on the tunnel"; 2916 uses te-topology-identifier; 2917 uses common-constraints; 2918 } 2920 grouping path-constraints-route-objects { 2921 description 2922 "List of route entries to be included or excluded when performing 2923 path computation."; 2924 container explicit-route-objects-always { 2925 description 2926 "Container for the exclude route object list"; 2927 list route-object-exclude-always { 2928 key index; 2929 ordered-by user; 2930 description 2931 "List of route objects to always exclude 2932 from path computation"; 2933 leaf index { 2934 type uint32; 2935 description 2936 "Explicit route object index. The index is used to 2937 identify an entry in the list. The order of entries 2938 is defined by the user without relying on key values"; 2939 } 2940 uses explicit-route-hop; 2941 } 2942 list route-object-include-exclude { 2943 key index; 2944 ordered-by user; 2945 description 2946 "List of route objects to include or exclude in path 2947 computation"; 2948 leaf explicit-route-usage { 2949 type identityref { 2950 base route-usage-type; 2951 } 2952 default te-types:route-include-object; 2953 description 2954 "Include or exclude usage. Default is to include"; 2955 } 2956 leaf index { 2957 type uint32; 2958 description 2959 "Route object include-exclude index. The index is used to 2960 identify an entry in the list. The order of entries 2961 is defined by the user without relying on key values"; 2962 } 2963 uses explicit-route-hop { 2964 augment "type" { 2965 case srlg { 2966 container srlg { 2967 description "SRLG container"; 2968 leaf srlg { 2969 type uint32; 2970 description "SRLG value"; 2971 } 2972 } 2973 description "An SRLG value to be included or excluded"; 2974 } 2975 description 2976 "Augmentation to generic explicit route for SRLG 2977 exclusion"; 2978 } 2979 } 2980 } 2981 } 2982 } 2984 grouping path-route-include-objects { 2985 description 2986 "List of route object(s) to be included when performing 2987 the path computation."; 2989 list route-object-include-object { 2990 key index; 2991 ordered-by user; 2992 description 2993 "List of explicit route objects to be included 2994 in path computation"; 2995 leaf index { 2996 type uint32; 2997 description 2998 "Route object entry index. The index is used to 2999 identify an entry in the list. The order of entries 3000 is defined by the user without relying on key values"; 3001 } 3002 uses explicit-route-hop; 3003 } 3004 } 3006 grouping path-route-exclude-objects { 3007 description 3008 "List of route object(s) to be excluded when performing 3009 the path computation."; 3010 list route-object-exclude-object { 3011 key index; 3012 ordered-by user; 3013 description 3014 "List of explicit route objects to be excluded 3015 in path computation"; 3016 leaf index { 3017 type uint32; 3018 description 3019 "Route object entry index. The index is used to 3020 identify an entry in the list. The order of entries 3021 is defined by the user without relying on key values"; 3022 } 3023 uses explicit-route-hop { 3024 augment "type" { 3025 case srlg { 3026 container srlg { 3027 description "SRLG container"; 3028 leaf srlg { 3029 type uint32; 3030 description "SRLG value"; 3031 } 3032 } 3033 description "An SRLG value to be included or excluded"; 3034 } 3035 description 3036 "Augmentation to generic explicit route for SRLG exclusion"; 3038 } 3039 } 3040 } 3041 } 3043 grouping generic-path-metric-bounds { 3044 description "TE path metric bounds grouping"; 3045 container path-metric-bounds { 3046 description "TE path metric bounds container"; 3047 list path-metric-bound { 3048 key metric-type; 3049 description "List of TE path metric bounds"; 3050 leaf metric-type { 3051 type identityref { 3052 base path-metric-type; 3053 } 3054 description 3055 "Identifies an entry in the list of metric-types 3056 bound for the TE path."; 3057 } 3058 leaf upper-bound { 3059 type uint64; 3060 default 0; 3061 description 3062 "Upper bound on end-to-end TE path metric. A zero indicate 3063 an unbounded upper limit for the specific metric-type"; 3064 } 3065 } 3066 } 3067 } 3069 grouping generic-path-optimization { 3070 description "TE generic path optimization grouping"; 3072 container optimizations { 3073 description 3074 "The objective function container that includes 3075 attributes to impose when computing a TE path"; 3077 choice algorithm { 3078 description "Optimizations algorithm."; 3079 case metric { 3080 if-feature path-optimization-metric; 3081 /* Optimize by metric */ 3082 list optimization-metric { 3083 key "metric-type"; 3084 description "TE path metric type"; 3085 uses optimization-metric-entry; 3087 } 3088 /* Tiebreakers */ 3089 container tiebreakers { 3090 description 3091 "Container for the list of tiebreaker(s)"; 3092 list tiebreaker { 3093 key "tiebreaker-type"; 3094 description 3095 "The list of tiebreaker criterion to apply 3096 on an equally favored set of paths to pick best"; 3097 leaf tiebreaker-type { 3098 type identityref { 3099 base path-metric-type; 3100 } 3101 description 3102 "Identifies an entry in the list of tiebreakers."; 3103 } 3104 } 3105 } 3106 } 3107 case objective-function { 3108 if-feature path-optimization-objective-function; 3109 /* Objective functions */ 3110 container objective-function { 3111 description 3112 "The objective function container that includes 3113 attributes to impose when computing a TE path"; 3114 leaf objective-function-type { 3115 type identityref { 3116 base objective-function-type; 3117 } 3118 default te-types:of-minimize-cost-path; 3119 description "Objective function entry"; 3120 } 3121 } 3122 } 3123 } 3124 } 3125 } 3127 grouping generic-path-affinities { 3128 description 3129 "Path affinities grouping"; 3130 container path-affinities-values { 3131 description 3132 "Path affinities values representation"; 3133 list path-affinities-value { 3134 key "usage"; 3135 description 3136 "List of named affinity constraints"; 3137 leaf usage { 3138 type identityref { 3139 base resource-affinities-type; 3140 } 3141 description 3142 "Identifies an entry in the list of value affinities 3143 constraints"; 3144 } 3145 leaf value { 3146 type admin-groups; 3147 default ''; 3148 description "The affinity value. The default is empty."; 3149 } 3150 } 3151 } 3152 container path-affinity-names { 3153 description 3154 "Path affinities named representation style"; 3155 list path-affinity-name { 3156 key "usage"; 3157 description "List of named affinity constraints"; 3158 leaf usage { 3159 type identityref { 3160 base resource-affinities-type; 3161 } 3162 description 3163 "Identifies an entry in the list of named affinities 3164 constraints"; 3165 } 3166 list affinity-name { 3167 key "name"; 3168 leaf name { 3169 type string; 3170 description "Identify a named affinity entry."; 3171 } 3172 description "List of named affinities"; 3173 } 3174 } 3175 } 3176 } 3178 grouping generic-path-srlgs { 3179 description 3180 "Path SRLG grouping"; 3181 container path-srlgs-lists { 3182 description 3183 "Path SRLG properties container"; 3184 list path-srlgs-list { 3185 key "usage"; 3186 description 3187 "List entries of value SRLGs to be included or excluded"; 3188 leaf usage { 3189 type identityref { 3190 base route-usage-type; 3191 } 3192 description 3193 "Identifies an entry of list of SRLGs to either include 3194 or exclude"; 3195 } 3196 leaf-list values { 3197 type srlg; 3198 description "List of SRLG values"; 3199 } 3200 } 3201 } 3202 container path-srlgs-names { 3203 description "Container for named SRLG list"; 3204 list path-srlgs-name { 3205 key "usage"; 3206 description 3207 "List entries of named SRLGs to be included or excluded"; 3208 leaf usage { 3209 type identityref { 3210 base route-usage-type; 3211 } 3212 description 3213 "Identifies an entry of list of named SRLGs to either 3214 include or exclude"; 3215 } 3216 leaf-list names { 3217 type string; 3218 description "List named SRLGs"; 3219 } 3220 } 3221 } 3222 } 3224 grouping generic-path-disjointness { 3225 description "Path disjointness grouping"; 3226 leaf disjointness { 3227 type te-path-disjointness; 3228 description 3229 "The type of resource disjointness. 3230 Under primary path, disjointness level applies to 3231 all secondary LSPs. Under secondary, disjointness 3232 level overrides the one under primary"; 3233 } 3234 } 3236 grouping common-path-constraints-attributes { 3237 description 3238 "Common path constraints configuration grouping"; 3239 uses common-constraints; 3240 uses generic-path-metric-bounds; 3241 uses generic-path-affinities; 3242 uses generic-path-srlgs; 3243 } 3245 grouping generic-path-constraints { 3246 description 3247 "Global named path constraints configuration 3248 grouping"; 3249 container path-constraints { 3250 description "TE named path constraints container"; 3251 uses common-path-constraints-attributes; 3252 uses generic-path-disjointness; 3253 } 3254 } 3256 grouping generic-path-properties { 3257 description "TE generic path properties grouping"; 3258 container path-properties { 3259 config false; 3260 description "The TE path properties"; 3261 list path-metric { 3262 key metric-type; 3263 description "TE path metric type"; 3264 leaf metric-type { 3265 type identityref { 3266 base path-metric-type; 3267 } 3268 description "TE path metric type"; 3269 } 3270 leaf accumulative-value { 3271 type uint64; 3272 description "TE path metric accumulative value"; 3273 } 3274 } 3275 uses generic-path-affinities; 3276 uses generic-path-srlgs; 3277 container path-route-objects { 3278 description 3279 "Container for the list of route objects either returned by 3280 the computation engine or actually used by an LSP"; 3281 list path-route-object { 3282 key index; 3283 ordered-by user; 3284 description 3285 "List of route objects either returned by the computation 3286 engine or actually used by an LSP"; 3287 leaf index { 3288 type uint32; 3289 description 3290 "Route object entry index. The index is used to 3291 identify an entry in the list. The order of entries 3292 is defined by the user without relying on key values"; 3293 } 3294 uses explicit-route-hop; 3295 } 3296 } 3297 } 3298 } 3299 } 3300 3302 Figure 1: TE basic types YANG module 3304 5. Packet TE Types YANG Module 3306 The ietf-te-packet-types module imports from the following modules: 3308 o ietf-te-types defined in this document. 3310 file "ietf-te-packet-types@2019-04-09.yang" 3311 module ietf-te-packet-types { 3312 yang-version 1.1; 3313 namespace "urn:ietf:params:xml:ns:yang:ietf-te-packet-types"; 3315 /* Replace with IANA when assigned */ 3316 prefix "te-packet-types"; 3318 /* Import TE generic types */ 3319 import ietf-te-types { 3320 prefix te-types; 3321 reference 3322 "RFC XXXX: A YANG Data Model for Common Traffic Engineering 3323 Types"; 3324 } 3326 organization 3327 "IETF TEAS Working Group"; 3329 contact 3330 "WG Web: 3331 WG List: 3333 WG Chair: Lou Berger 3334 3336 WG Chair: Vishnu Pavan Beeram 3337 3339 Editor: Tarek Saad 3340 3342 Editor: Rakesh Gandhi 3343 3345 Editor: Vishnu Pavan Beeram 3346 3348 Editor: Himanshu Shah 3349 3351 Editor: Xufeng Liu 3352 3354 Editor: Igor Bryskin 3355 3357 Editor: Young Lee 3358 "; 3360 description 3361 "This module contains a collection of generally useful MPLS TE 3362 specific YANG data type definitions. The model fully conforms 3363 to the Network Management Datastore Architecture (NMDA). 3365 Copyright (c) 2018 IETF Trust and the persons 3366 identified as authors of the code. All rights reserved. 3368 Redistribution and use in source and binary forms, with or 3369 without modification, is permitted pursuant to, and subject 3370 to the license terms contained in, the Simplified BSD License 3371 set forth in Section 4.c of the IETF Trust's Legal Provisions 3372 Relating to IETF Documents 3373 (https://trustee.ietf.org/license-info). 3374 This version of this YANG module is part of RFC XXXX; see 3375 the RFC itself for full legal notices."; 3377 // RFC Ed.: replace XXXX with actual RFC number and remove this 3378 // note. 3380 // RFC Ed.: update the date below with the date of RFC publication 3381 // and remove this note. 3383 revision "2019-04-09" { 3384 description "Latest revision of TE MPLS types"; 3385 reference 3386 "RFC XXXX: A YANG Data Model for Common Traffic Engineering 3387 Types"; 3388 } 3390 /** 3391 * Typedefs 3392 */ 3393 typedef te-bandwidth-requested-type { 3394 type enumeration { 3395 enum specified { 3396 description 3397 "Bandwidth is explicitly specified"; 3398 } 3399 enum auto { 3400 description 3401 "Bandwidth is automatically computed"; 3402 } 3403 } 3404 description 3405 "enumerated type for specifying whether bandwidth is 3406 explicitly specified or automatically computed"; 3407 } 3409 typedef te-class-type { 3410 type uint8; 3411 description 3412 "Diffserv-TE class-type that defines a set of Traffic 3413 Trunks crossing a link that is governed by a specific 3414 set of bandwidth constraints. CT is used for the 3415 purposes of link bandwidth allocation, constraint- 3416 based routing and admission control."; 3417 reference "RFC4124: Protocols for Diffserv-aware TE"; 3418 } 3420 typedef bc-type { 3421 type uint8 { 3422 range "0..7"; 3424 } 3425 description 3426 "Diffserv-TE bandwidth constraint as defined in RFC4124"; 3427 reference "RFC4124: Protocols for Diffserv-aware TE"; 3428 } 3430 typedef bandwidth-kbps { 3431 type uint64; 3432 units "Kbps"; 3433 description 3434 "Bandwidth values expressed in kilobits per second"; 3435 } 3437 typedef bandwidth-mbps { 3438 type uint64; 3439 units "Mbps"; 3440 description 3441 "Bandwidth values expressed in megabits per second"; 3442 } 3444 typedef bandwidth-gbps { 3445 type uint64; 3446 units "Gbps"; 3447 description 3448 "Bandwidth values expressed in gigabits per second"; 3449 } 3451 identity backup-protection-type { 3452 description 3453 "Base identity for backup protection type"; 3454 } 3456 identity backup-protection-link { 3457 base backup-protection-type; 3458 description 3459 "backup provides link protection only"; 3460 } 3462 identity backup-protection-node-link { 3463 base backup-protection-type; 3464 description 3465 "backup offers node (preferred) or link protection"; 3466 } 3468 identity bc-model-type { 3469 description 3470 "Base identity for Diffserv-TE bandwidth constraint 3471 model type"; 3473 reference "RFC4124: Protocols for Diffserv-aware TE"; 3474 } 3476 identity bc-model-rdm { 3477 base bc-model-type; 3478 description 3479 "Russian Doll bandwidth constraint model type."; 3480 reference "RFC4127: Russian Dolls Model for DS-TE"; 3481 } 3483 identity bc-model-mam { 3484 base bc-model-type; 3485 description 3486 "Maximum Allocation bandwidth constraint 3487 model type."; 3488 reference "RFC4125: Maximum Allocation Model for DS-TE"; 3489 } 3491 identity bc-model-mar { 3492 base bc-model-type; 3493 description 3494 "Maximum Allocation with Reservation 3495 bandwidth constraint model type."; 3496 reference "RFC4126: MAR Bandwidth Constraints Model for DS-TE"; 3497 } 3499 grouping performance-metrics-attributes-packet { 3500 description 3501 "A container containing performance metric attributes."; 3502 uses te-types:performance-metrics-attributes { 3503 augment performance-metrics-one-way { 3504 leaf one-way-min-delay { 3505 type uint32 { 3506 range 0..16777215; 3507 } 3508 description 3509 "One-way minimum delay or latency in micro seconds."; 3510 } 3511 leaf one-way-min-delay-normality { 3512 type te-types:performance-metrics-normality; 3513 default "normal"; 3514 description "One-way minimum delay or latency normality."; 3515 } 3516 leaf one-way-max-delay { 3517 type uint32 { 3518 range 0..16777215; 3519 } 3520 description 3521 "One-way maximum delay or latency in micro seconds."; 3522 } 3523 leaf one-way-max-delay-normality { 3524 type te-types:performance-metrics-normality; 3525 default "normal"; 3526 description "One-way maximum delay or latency normality."; 3527 } 3528 leaf one-way-delay-variation { 3529 type uint32 { 3530 range 0..16777215; 3531 } 3532 description "One-way delay variation in micro seconds."; 3533 } 3534 leaf one-way-delay-variation-normality { 3535 type te-types:performance-metrics-normality; 3536 default "normal"; 3537 description "One-way delay variation normality."; 3538 } 3539 leaf one-way-packet-loss { 3540 type decimal64 { 3541 fraction-digits 6; 3542 range "0 .. 50.331642"; 3543 } 3544 description 3545 "One-way packet loss as a percentage of the total traffic 3546 sent over a configurable interval. The finest precision is 3547 0.000003%."; 3548 } 3549 leaf one-way-packet-loss-normality { 3550 type te-types:performance-metrics-normality; 3551 default "normal"; 3552 description "Packet loss normality."; 3553 } 3554 description 3555 "PM one-way packet specific augmentation to generic PM 3556 grouping"; 3557 } 3558 augment performance-metrics-two-way { 3559 leaf two-way-min-delay { 3560 type uint32 { 3561 range 0..16777215; 3562 } 3563 default 0; 3564 description 3565 "Two-way minimum delay or latency in micro seconds."; 3566 } 3567 leaf two-way-min-delay-normality { 3568 type te-types:performance-metrics-normality; 3569 default "normal"; 3570 description "Two-way minimum delay or latency normality."; 3571 } 3572 leaf two-way-max-delay { 3573 type uint32 { 3574 range 0..16777215; 3575 } 3576 default 0; 3577 description 3578 "Two-way maximum delay or latency in micro seconds."; 3579 } 3580 leaf two-way-max-delay-normality { 3581 type te-types:performance-metrics-normality; 3582 default "normal"; 3583 description "Two-way maximum delay or latency normality."; 3584 } 3585 leaf two-way-delay-variation { 3586 type uint32 { 3587 range 0..16777215; 3588 } 3589 default 0; 3590 description "Two-way delay variation in micro seconds."; 3591 } 3592 leaf two-way-delay-variation-normality { 3593 type te-types:performance-metrics-normality; 3594 default "normal"; 3595 description "Two-way delay variation normality."; 3596 } 3597 leaf two-way-packet-loss { 3598 type decimal64 { 3599 fraction-digits 6; 3600 range "0 .. 50.331642"; 3601 } 3602 default 0; 3603 description 3604 "Two-way packet loss as a percentage of the total traffic 3605 sent over a configurable interval. The finest precision is 3606 0.000003%."; 3607 } 3608 leaf two-way-packet-loss-normality { 3609 type te-types:performance-metrics-normality; 3610 default "normal"; 3611 description "Two-way packet loss normality."; 3612 } 3613 description 3614 "PM two-way packet specific augmentation to generic PM 3615 grouping"; 3616 } 3618 } 3619 } 3621 grouping one-way-performance-metrics-packet { 3622 description 3623 "One-way packet performance metrics throttle grouping."; 3624 leaf one-way-min-delay { 3625 type uint32 { 3626 range 0..16777215; 3627 } 3628 default 0; 3629 description "One-way minimum delay or latency in micro seconds."; 3630 } 3631 leaf one-way-max-delay { 3632 type uint32 { 3633 range 0..16777215; 3634 } 3635 default 0; 3636 description "One-way maximum delay or latency in micro seconds."; 3637 } 3638 leaf one-way-delay-variation { 3639 type uint32 { 3640 range 0..16777215; 3641 } 3642 default 0; 3643 description "One-way delay variation in micro seconds."; 3644 } 3645 leaf one-way-packet-loss { 3646 type decimal64 { 3647 fraction-digits 6; 3648 range "0 .. 50.331642"; 3649 } 3650 default 0; 3651 description 3652 "One-way packet loss as a percentage of the total traffic sent 3653 over a configurable interval. The finest precision is 3654 0.000003%."; 3655 } 3656 } 3658 grouping two-way-performance-metrics-packet { 3659 description 3660 "Two-way packet performance metrics throttle grouping."; 3661 leaf two-way-min-delay { 3662 type uint32 { 3663 range 0..16777215; 3664 } 3665 default 0; 3666 description "Two-way minimum delay or latency in micro seconds."; 3667 } 3668 leaf two-way-max-delay { 3669 type uint32 { 3670 range 0..16777215; 3671 } 3672 default 0; 3673 description "Two-way maximum delay or latency in micro seconds."; 3674 } 3675 leaf two-way-delay-variation { 3676 type uint32 { 3677 range 0..16777215; 3678 } 3679 default 0; 3680 description "Two-way delay variation in micro seconds."; 3681 } 3682 leaf two-way-packet-loss { 3683 type decimal64 { 3684 fraction-digits 6; 3685 range "0 .. 50.331642"; 3686 } 3687 default 0; 3688 description 3689 "Two-way packet loss as a percentage of the total traffic sent 3690 over a configurable interval. The finest precision is 3691 0.000003%."; 3692 } 3693 } 3695 grouping performance-metrics-throttle-container-packet { 3696 description 3697 "Packet performance metrics threshold grouping"; 3698 uses te-types:performance-metrics-throttle-container { 3699 augment "throttle/threshold-out" { 3700 uses one-way-performance-metrics-packet; 3701 uses two-way-performance-metrics-packet; 3702 description 3703 "PM threshold-out packet augmentation to 3704 generic grouping"; 3705 } 3706 augment "throttle/threshold-in" { 3707 uses one-way-performance-metrics-packet; 3708 uses two-way-performance-metrics-packet; 3709 description 3710 "PM threshold-in packet augmentation to 3711 generic grouping"; 3712 } 3713 augment "throttle/threshold-accelerated-advertisement" { 3714 uses one-way-performance-metrics-packet; 3715 uses two-way-performance-metrics-packet; 3716 description 3717 "PM accelerated advertisement packet augmentation to 3718 generic grouping"; 3719 } 3720 } 3721 } 3722 } 3723 3725 Figure 2: TE packet types YANG module 3727 6. IANA Considerations 3729 This document registers the following URIs in the IETF XML registry 3730 [RFC3688]. Following the format in [RFC3688], the following 3731 registration is requested to be made. 3733 URI: urn:ietf:params:xml:ns:yang:ietf-te-types XML: N/A, the 3734 requested URI is an XML namespace. 3736 URI: urn:ietf:params:xml:ns:yang:ietf-te-packet-types XML: N/A, the 3737 requested URI is an XML namespace. 3739 This document registers two YANG modules in the YANG Module Names 3740 registry [RFC6020]. 3742 name: ietf-te-types namespace: urn:ietf:params:xml:ns:yang:ietf-te- 3743 types prefix: ietf-te-types reference: RFCXXXX 3745 name: ietf-te-packet-types namespace: 3746 urn:ietf:params:xml:ns:yang:ietf-te-packet-types prefix: ietf-te- 3747 packet-types reference: RFCXXXX 3749 7. Security Considerations 3751 The YANG module specified in this document defines a schema for data 3752 that is designed to be accessed via network management protocols such 3753 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 3754 is the secure transport layer, and the mandatory-to-implement secure 3755 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 3756 is HTTPS, and the mandatory-to-implement secure transport is TLS 3757 [RFC8446]. 3759 The Network Configuration Access Control Model (NACM) [RFC8341] 3760 provides the means to restrict access for particular NETCONF or 3761 RESTCONF users to a preconfigured subset of all available NETCONF or 3762 RESTCONF protocol operations and content. 3764 The YANG module in this document defines common TE type definitions 3765 (i.e., typedef, identity and grouping statements) in YANG data 3766 modeling language to be imported and used by other TE modules. When 3767 imported and used, the resultant schema will have data nodes that can 3768 be writable, or readable. The access to such data nodes may be 3769 considered sensitive or vulnerable in some network environments. 3770 Write operations (e.g., edit-config) to these data nodes without 3771 proper protection can have a negative effect on network operations. 3773 The security considerations spelled out in the YANG 1.1 specification 3774 [RFC7950] apply for this document as well. 3776 8. Acknowledgement 3778 The authors would like to thank the members of the multi-vendor YANG 3779 design team who are involved in the definition of these data types. 3781 The authors would also like to thank Tom Petch, Jan Lindblad, Sergio 3782 Belotti, Italo Busi, Carlo Perocchio, Francesco Lazzeri, and Aihua 3783 Guo for their review comments and for providing valuable feedback on 3784 this document. 3786 9. Contributors 3788 Himanshu Shah 3789 Ciena 3791 Email: hshah@ciena.com 3793 Young Lee 3794 Huawei Technologies 3796 Email: leeyoung@huawei.com 3798 10. References 3800 10.1. Normative References 3802 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3803 Requirement Levels", BCP 14, RFC 2119, 3804 DOI 10.17487/RFC2119, March 1997, 3805 . 3807 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 3808 DOI 10.17487/RFC3688, January 2004, 3809 . 3811 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 3812 the Network Configuration Protocol (NETCONF)", RFC 6020, 3813 DOI 10.17487/RFC6020, October 2010, 3814 . 3816 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 3817 and A. Bierman, Ed., "Network Configuration Protocol 3818 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 3819 . 3821 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 3822 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 3823 . 3825 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 3826 RFC 6991, DOI 10.17487/RFC6991, July 2013, 3827 . 3829 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 3830 RFC 7950, DOI 10.17487/RFC7950, August 2016, 3831 . 3833 [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", 3834 RFC 7951, DOI 10.17487/RFC7951, August 2016, 3835 . 3837 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 3838 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 3839 . 3841 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 3842 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 3843 May 2017, . 3845 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 3846 "Common YANG Data Types for the Routing Area", RFC 8294, 3847 DOI 10.17487/RFC8294, December 2017, 3848 . 3850 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 3851 Access Control Model", STD 91, RFC 8341, 3852 DOI 10.17487/RFC8341, March 2018, 3853 . 3855 [RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., 3856 Ananthakrishnan, H., and X. Liu, "A YANG Data Model for 3857 Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 3858 2018, . 3860 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 3861 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 3862 . 3864 10.2. Informative References 3866 [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. 3867 McManus, "Requirements for Traffic Engineering Over MPLS", 3868 RFC 2702, DOI 10.17487/RFC2702, September 1999, 3869 . 3871 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 3872 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 3873 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 3874 . 3876 [RFC3272] Awduche, D., Chiu, A., Elwalid, A., Widjaja, I., and X. 3877 Xiao, "Overview and Principles of Internet Traffic 3878 Engineering", RFC 3272, DOI 10.17487/RFC3272, May 2002, 3879 . 3881 [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label 3882 Switching (GMPLS) Signaling Functional Description", 3883 RFC 3471, DOI 10.17487/RFC3471, January 2003, 3884 . 3886 [RFC3477] Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links 3887 in Resource ReSerVation Protocol - Traffic Engineering 3888 (RSVP-TE)", RFC 3477, DOI 10.17487/RFC3477, January 2003, 3889 . 3891 [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering 3892 (TE) Extensions to OSPF Version 2", RFC 3630, 3893 DOI 10.17487/RFC3630, September 2003, 3894 . 3896 [RFC3785] Le Faucheur, F., Uppili, R., Vedrenne, A., Merckx, P., and 3897 T. Telkamp, "Use of Interior Gateway Protocol (IGP) Metric 3898 as a second MPLS Traffic Engineering (TE) Metric", BCP 87, 3899 RFC 3785, DOI 10.17487/RFC3785, May 2004, 3900 . 3902 [RFC4090] Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast 3903 Reroute Extensions to RSVP-TE for LSP Tunnels", RFC 4090, 3904 DOI 10.17487/RFC4090, May 2005, 3905 . 3907 [RFC4124] Le Faucheur, F., Ed., "Protocol Extensions for Support of 3908 Diffserv-aware MPLS Traffic Engineering", RFC 4124, 3909 DOI 10.17487/RFC4124, June 2005, 3910 . 3912 [RFC4125] Le Faucheur, F. and W. Lai, "Maximum Allocation Bandwidth 3913 Constraints Model for Diffserv-aware MPLS Traffic 3914 Engineering", RFC 4125, DOI 10.17487/RFC4125, June 2005, 3915 . 3917 [RFC4126] Ash, J., "Max Allocation with Reservation Bandwidth 3918 Constraints Model for Diffserv-aware MPLS Traffic 3919 Engineering & Performance Comparisons", RFC 4126, 3920 DOI 10.17487/RFC4126, June 2005, 3921 . 3923 [RFC4127] Le Faucheur, F., Ed., "Russian Dolls Bandwidth Constraints 3924 Model for Diffserv-aware MPLS Traffic Engineering", 3925 RFC 4127, DOI 10.17487/RFC4127, June 2005, 3926 . 3928 [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions 3929 in Support of Generalized Multi-Protocol Label Switching 3930 (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, 3931 . 3933 [RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in 3934 Support of Generalized Multi-Protocol Label Switching 3935 (GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005, 3936 . 3938 [RFC4328] Papadimitriou, D., Ed., "Generalized Multi-Protocol Label 3939 Switching (GMPLS) Signaling Extensions for G.709 Optical 3940 Transport Networks Control", RFC 4328, 3941 DOI 10.17487/RFC4328, January 2006, 3942 . 3944 [RFC4427] Mannie, E., Ed. and D. Papadimitriou, Ed., "Recovery 3945 (Protection and Restoration) Terminology for Generalized 3946 Multi-Protocol Label Switching (GMPLS)", RFC 4427, 3947 DOI 10.17487/RFC4427, March 2006, 3948 . 3950 [RFC4561] Vasseur, J., Ed., Ali, Z., and S. Sivabalan, "Definition 3951 of a Record Route Object (RRO) Node-Id Sub-Object", 3952 RFC 4561, DOI 10.17487/RFC4561, June 2006, 3953 . 3955 [RFC4657] Ash, J., Ed. and J. Le Roux, Ed., "Path Computation 3956 Element (PCE) Communication Protocol Generic 3957 Requirements", RFC 4657, DOI 10.17487/RFC4657, September 3958 2006, . 3960 [RFC4736] Vasseur, JP., Ed., Ikejiri, Y., and R. Zhang, 3961 "Reoptimization of Multiprotocol Label Switching (MPLS) 3962 Traffic Engineering (TE) Loosely Routed Label Switched 3963 Path (LSP)", RFC 4736, DOI 10.17487/RFC4736, November 3964 2006, . 3966 [RFC4872] Lang, J., Ed., Rekhter, Y., Ed., and D. Papadimitriou, 3967 Ed., "RSVP-TE Extensions in Support of End-to-End 3968 Generalized Multi-Protocol Label Switching (GMPLS) 3969 Recovery", RFC 4872, DOI 10.17487/RFC4872, May 2007, 3970 . 3972 [RFC4873] Berger, L., Bryskin, I., Papadimitriou, D., and A. Farrel, 3973 "GMPLS Segment Recovery", RFC 4873, DOI 10.17487/RFC4873, 3974 May 2007, . 3976 [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. 3977 Yasukawa, Ed., "Extensions to Resource Reservation 3978 Protocol - Traffic Engineering (RSVP-TE) for Point-to- 3979 Multipoint TE Label Switched Paths (LSPs)", RFC 4875, 3980 DOI 10.17487/RFC4875, May 2007, 3981 . 3983 [RFC4920] Farrel, A., Ed., Satyanarayana, A., Iwata, A., Fujita, N., 3984 and G. Ash, "Crankback Signaling Extensions for MPLS and 3985 GMPLS RSVP-TE", RFC 4920, DOI 10.17487/RFC4920, July 2007, 3986 . 3988 [RFC5003] Metz, C., Martini, L., Balus, F., and J. Sugimoto, 3989 "Attachment Individual Identifier (AII) Types for 3990 Aggregation", RFC 5003, DOI 10.17487/RFC5003, September 3991 2007, . 3993 [RFC5150] Ayyangar, A., Kompella, K., Vasseur, JP., and A. Farrel, 3994 "Label Switched Path Stitching with Generalized 3995 Multiprotocol Label Switching Traffic Engineering (GMPLS 3996 TE)", RFC 5150, DOI 10.17487/RFC5150, February 2008, 3997 . 3999 [RFC5151] Farrel, A., Ed., Ayyangar, A., and JP. Vasseur, "Inter- 4000 Domain MPLS and GMPLS Traffic Engineering -- Resource 4001 Reservation Protocol-Traffic Engineering (RSVP-TE) 4002 Extensions", RFC 5151, DOI 10.17487/RFC5151, February 4003 2008, . 4005 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 4006 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 4007 2008, . 4009 [RFC5307] Kompella, K., Ed. and Y. Rekhter, Ed., "IS-IS Extensions 4010 in Support of Generalized Multi-Protocol Label Switching 4011 (GMPLS)", RFC 5307, DOI 10.17487/RFC5307, October 2008, 4012 . 4014 [RFC5420] Farrel, A., Ed., Papadimitriou, D., Vasseur, JP., and A. 4015 Ayyangarps, "Encoding of Attributes for MPLS LSP 4016 Establishment Using Resource Reservation Protocol Traffic 4017 Engineering (RSVP-TE)", RFC 5420, DOI 10.17487/RFC5420, 4018 February 2009, . 4020 [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of 4021 Objective Functions in the Path Computation Element 4022 Communication Protocol (PCEP)", RFC 5541, 4023 DOI 10.17487/RFC5541, June 2009, 4024 . 4026 [RFC5712] Meyer, M., Ed. and JP. Vasseur, Ed., "MPLS Traffic 4027 Engineering Soft Preemption", RFC 5712, 4028 DOI 10.17487/RFC5712, January 2010, 4029 . 4031 [RFC5817] Ali, Z., Vasseur, JP., Zamfir, A., and J. Newton, 4032 "Graceful Shutdown in MPLS and Generalized MPLS Traffic 4033 Engineering Networks", RFC 5817, DOI 10.17487/RFC5817, 4034 April 2010, . 4036 [RFC6001] Papadimitriou, D., Vigoureux, M., Shiomoto, K., Brungard, 4037 D., and JL. Le Roux, "Generalized MPLS (GMPLS) Protocol 4038 Extensions for Multi-Layer and Multi-Region Networks (MLN/ 4039 MRN)", RFC 6001, DOI 10.17487/RFC6001, October 2010, 4040 . 4042 [RFC6004] Berger, L. and D. Fedyk, "Generalized MPLS (GMPLS) Support 4043 for Metro Ethernet Forum and G.8011 Ethernet Service 4044 Switching", RFC 6004, DOI 10.17487/RFC6004, October 2010, 4045 . 4047 [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic 4048 Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, 4049 February 2011, . 4051 [RFC6205] Otani, T., Ed. and D. Li, Ed., "Generalized Labels for 4052 Lambda-Switch-Capable (LSC) Label Switching Routers", 4053 RFC 6205, DOI 10.17487/RFC6205, March 2011, 4054 . 4056 [RFC6370] Bocci, M., Swallow, G., and E. Gray, "MPLS Transport 4057 Profile (MPLS-TP) Identifiers", RFC 6370, 4058 DOI 10.17487/RFC6370, September 2011, 4059 . 4061 [RFC6378] Weingarten, Y., Ed., Bryant, S., Osborne, E., Sprecher, 4062 N., and A. Fulignoli, Ed., "MPLS Transport Profile (MPLS- 4063 TP) Linear Protection", RFC 6378, DOI 10.17487/RFC6378, 4064 October 2011, . 4066 [RFC6511] Ali, Z., Swallow, G., and R. Aggarwal, "Non-Penultimate 4067 Hop Popping Behavior and Out-of-Band Mapping for RSVP-TE 4068 Label Switched Paths", RFC 6511, DOI 10.17487/RFC6511, 4069 February 2012, . 4071 [RFC6780] Berger, L., Le Faucheur, F., and A. Narayanan, "RSVP 4072 ASSOCIATION Object Extensions", RFC 6780, 4073 DOI 10.17487/RFC6780, October 2012, 4074 . 4076 [RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and 4077 L. Yong, "The Use of Entropy Labels in MPLS Forwarding", 4078 RFC 6790, DOI 10.17487/RFC6790, November 2012, 4079 . 4081 [RFC6827] Malis, A., Ed., Lindem, A., Ed., and D. Papadimitriou, 4082 Ed., "Automatically Switched Optical Network (ASON) 4083 Routing for OSPFv2 Protocols", RFC 6827, 4084 DOI 10.17487/RFC6827, January 2013, 4085 . 4087 [RFC7139] Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D., 4088 and K. Pithewan, "GMPLS Signaling Extensions for Control 4089 of Evolving G.709 Optical Transport Networks", RFC 7139, 4090 DOI 10.17487/RFC7139, March 2014, 4091 . 4093 [RFC7260] Takacs, A., Fedyk, D., and J. He, "GMPLS RSVP-TE 4094 Extensions for Operations, Administration, and Maintenance 4095 (OAM) Configuration", RFC 7260, DOI 10.17487/RFC7260, June 4096 2014, . 4098 [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS 4099 Traffic Engineering (MPLS-TE)", RFC 7308, 4100 DOI 10.17487/RFC7308, July 2014, 4101 . 4103 [RFC7471] Giacalone, S., Ward, D., Drake, J., Atlas, A., and S. 4104 Previdi, "OSPF Traffic Engineering (TE) Metric 4105 Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015, 4106 . 4108 [RFC7551] Zhang, F., Ed., Jing, R., and R. Gandhi, Ed., "RSVP-TE 4109 Extensions for Associated Bidirectional Label Switched 4110 Paths (LSPs)", RFC 7551, DOI 10.17487/RFC7551, May 2015, 4111 . 4113 [RFC7570] Margaria, C., Ed., Martinelli, G., Balls, S., and B. 4114 Wright, "Label Switched Path (LSP) Attribute in the 4115 Explicit Route Object (ERO)", RFC 7570, 4116 DOI 10.17487/RFC7570, July 2015, 4117 . 4119 [RFC7571] Dong, J., Chen, M., Li, Z., and D. Ceccarelli, "GMPLS 4120 RSVP-TE Extensions for Lock Instruct and Loopback", 4121 RFC 7571, DOI 10.17487/RFC7571, July 2015, 4122 . 4124 [RFC7579] Bernstein, G., Ed., Lee, Y., Ed., Li, D., Imajuku, W., and 4125 J. Han, "General Network Element Constraint Encoding for 4126 GMPLS-Controlled Networks", RFC 7579, 4127 DOI 10.17487/RFC7579, June 2015, 4128 . 4130 [RFC7823] Atlas, A., Drake, J., Giacalone, S., and S. Previdi, 4131 "Performance-Based Path Selection for Explicitly Routed 4132 Label Switched Paths (LSPs) Using TE Metric Extensions", 4133 RFC 7823, DOI 10.17487/RFC7823, May 2016, 4134 . 4136 [RFC8001] Zhang, F., Ed., Gonzalez de Dios, O., Ed., Margaria, C., 4137 Hartley, M., and Z. Ali, "RSVP-TE Extensions for 4138 Collecting Shared Risk Link Group (SRLG) Information", 4139 RFC 8001, DOI 10.17487/RFC8001, January 2017, 4140 . 4142 [RFC8149] Saad, T., Ed., Gandhi, R., Ed., Ali, Z., Venator, R., and 4143 Y. Kamite, "RSVP Extensions for Reoptimization of Loosely 4144 Routed Point-to-Multipoint Traffic Engineering Label 4145 Switched Paths (LSPs)", RFC 8149, DOI 10.17487/RFC8149, 4146 April 2017, . 4148 [RFC8169] Mirsky, G., Ruffini, S., Gray, E., Drake, J., Bryant, S., 4149 and A. Vainshtein, "Residence Time Measurement in MPLS 4150 Networks", RFC 8169, DOI 10.17487/RFC8169, May 2017, 4151 . 4153 [RFC8570] Ginsberg, L., Ed., Previdi, S., Ed., Giacalone, S., Ward, 4154 D., Drake, J., and Q. Wu, "IS-IS Traffic Engineering (TE) 4155 Metric Extensions", RFC 8570, DOI 10.17487/RFC8570, March 4156 2019, . 4158 Authors' Addresses 4160 Tarek Saad 4161 Juniper Networks 4163 Email: tsaad@juniper.net 4165 Rakesh Gandhi 4166 Cisco Systems Inc 4168 Email: rgandhi@cisco.com 4170 Xufeng Liu 4171 Volta Networks 4173 Email: xufeng.liu.ietf@gmail.com 4175 Vishnu Pavan Beeram 4176 Juniper Networks 4178 Email: vbeeram@juniper.net 4180 Igor Bryskin 4181 Huawei Technologies 4183 Email: Igor.Bryskin@huawei.com