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