idnits 2.17.1 draft-ietf-teas-yang-te-types-02.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 : ---------------------------------------------------------------------------- ** There are 2 instances of too long lines in the document, the longest one being 3 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (December 21, 2018) is 1946 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-19) exists of draft-ietf-teas-yang-rsvp-09 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-17 == Outdated reference: A later version (-22) exists of draft-ietf-teas-yang-te-topo-18 ** Obsolete normative reference: RFC 7810 (Obsoleted by RFC 8570) Summary: 2 errors (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TEAS Working Group T. Saad 3 Internet-Draft R. Gandhi 4 Intended status: Standards Track Cisco Systems Inc 5 Expires: June 24, 2019 X. Liu 6 Volta Networks 7 V. Beeram 8 Juniper Networks 9 I. Bryskin 10 Huawei Technologies 11 December 21, 2018 13 Traffic Engineering Common YANG Types 14 draft-ietf-teas-yang-te-types-02 16 Abstract 18 This document defines a collection of common data types and groupings 19 in YANG data modeling language. These derived common types and 20 groupings are intended to be imported by modules that model Traffic 21 Engineering (TE) configuration and state capabilities. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at https://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on June 24, 2019. 40 Copyright Notice 42 Copyright (c) 2018 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (https://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 59 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 60 2. Acronyms and Abbreviations . . . . . . . . . . . . . . . . . 3 61 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 62 3.1. TE Types Module . . . . . . . . . . . . . . . . . . . . . 4 63 3.2. MPLS TE Types Module . . . . . . . . . . . . . . . . . . 7 64 4. IETF TE Types YANG Module . . . . . . . . . . . . . . . . . . 8 65 5. IETF MPLS TE Types YANG Module . . . . . . . . . . . . . . . 64 66 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 69 67 7. Security Considerations . . . . . . . . . . . . . . . . . . . 69 68 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 69 69 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 70 70 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 70 71 10.1. Normative References . . . . . . . . . . . . . . . . . . 70 72 10.2. Informative References . . . . . . . . . . . . . . . . . 74 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 74 75 1. Introduction 77 YANG [RFC6020] and [RFC7950] is a data modeling language used to 78 model configuration data, state data, Remote Procedure Calls, and 79 notifications for network management protocols such as NETCONF 80 [RFC6241]. The YANG language supports a small set of built-in data 81 types and provides mechanisms to derive other types from the built-in 82 types. 84 This document introduces a collection of common data types derived 85 from the built-in YANG data types. The derived types and groupings 86 are designed to be the common types applicable for modeling Traffic 87 Engineering (TE) features, e.g. in models defined in 88 [I-D.ietf-teas-yang-te], [I-D.ietf-teas-yang-te-topo] and 89 [I-D.ietf-teas-yang-rsvp]). 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-mpls-types | ietf-te-mpls-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 3. Overview 142 This document defines two YANG modules for common TE types: ietf-te- 143 types for TE generic types and ietf-te-mpls-types for MPLS technology 144 specific types. Other technology specific TE types are outside the 145 scope of this document. 147 3.1. TE Types Module 149 The ietf-te-types module contains common TE types that are 150 independent and agnostic of any specific technology or control plane 151 instance. 153 The ietf-te-types module imports the followinig modules: 155 o ietf-yang-types and ietf-inet-types defined in [RFC6991] 157 o ietf-routing-types defined in [RFC8294] 159 The ietf-te-types module contains the following YANG reusable types 160 and groupings: 162 te-bandwidth: 164 A YANG grouping that defines the generic TE bandwidth. The 165 modeling structure allows augmentation for each technology. For 166 un-specified technologies, the string encoded te-bandwidth type is 167 used. 169 te-label: 171 A YANG grouping that defines the generic TE label. The modeling 172 structure allows augmentation for each technology. For un- 173 specified technologies, rt-types:generalized-label is used. 175 te-ds-class: 177 A type representing the Differentiated-Services (DS) Class-Type of 178 traffic as defined in [RFC4124]. 180 te-label-direction: 182 An enumerated type for specifying the forward or reverse direction 183 of a label. 185 te-hop-type: 187 An enumerated type for specifying hop as loose or strict. 189 te-global-id: 191 A type representing the identifier that uniquely identify an 192 operator, which can be either a provider or a client. The 193 definition of this type is taken from [RFC6370] and [RFC5003]. 194 This attribute type is used solely to provide a globally unique 195 context for TE topologies. 197 te-node-id: 199 A type representing the identifier for a node in a topology. The 200 identifier is represented as 32-bit unsigned integer in the 201 dotted-quad notation. This attribute is mapped to Router ID in 202 [RFC3630], [RFC5329], [RFC5305], and [RFC6119]. 204 te-topology-id: 206 A type representing the identifier for a topology. It is optional 207 to have one or more prefixes at the beginning, separated by 208 colons. The prefixes can be the network-types, defined in ietf- 209 network, to help user to understand the topology better before 210 further inquiry. 212 te-tp-id: 214 A type representing the identifier of a TE interface link 215 termination endpoint (TP) on a specific TE node where the TE link 216 connects. This attribute is mapped to local or remote link 217 identifier in [RFC3630] and [RFC5305]. 219 te-path-disjointness: 221 A type representing the different resource disjointness options 222 for a TE tunnel path as defined in [RFC4872]. 224 admin-groups: 226 A union type for TE link's classic or extended administrative 227 groups as defined in [RFC3630] and [RFC5305]. 229 srlg: 231 A type representing the Shared Risk Link Group (SRLG) as defined 232 in [RFC4203] and [RFC5307]. 234 te-metric: 236 A type representing the TE link metric as defined in [RFC3785]. 238 te-recovery-status: 240 An enumerated type for the different status of a recovery action 241 as defined in [RFC4427] and [RFC6378]. 243 restoration-scheme-type: 245 A base YANG identity for supported LSP restoration schemes as 246 defined in [RFC4872]. 248 protection-external-commands: 250 A base YANG identity for supported protection external commands 251 for trouble shooting purposes as defined in [RFC4427]. 253 association-type: 255 A base YANG identity for supported Label Switched Path (LSP) 256 association types as defined in [RFC6780], [RFC4872], [RFC4873]. 258 objective-function-type: 260 A base YANG identity for supported path computation objective 261 functions as defined in [RFC5541]. 263 te-tunnel-type: 265 A base YANG identity for supported TE tunnel types as defined in 266 [RFC3209] and [RFC4875]. 268 lsp-encoding-types: 270 base YANG identity for supported LSP encoding types as defined in 271 [RFC3471]. 273 lsp-protection-type: 275 A base YANG identity for supported LSP protection types as defined 276 in [RFC4872] and [RFC4873]. 278 switching-capabilities: 280 A base YANG identity for supported interface switching 281 capabilities as defined in [RFC3471]. 283 resource-affinities-type: 285 A base YANG identity for supported attribute filters associated 286 with a tunnel that must be satisfied for a link to be acceptable 287 as defined in [RFC2702] and [RFC3209]. 289 path-metric-type: 291 A base YANG identity for supported path metric types as defined in 292 [RFC3785] and [RFC7471]. 294 performance-metric-container: 296 A YANG grouping that defines supported performance metrics as 297 defined in [RFC7471] and [RFC7810]. 299 explicit-route-hop: 301 A YANG grouping that defines supported explicit routes as defined 302 in [RFC3209] and [RFC3477]. 304 te-link-access-type: 306 An enumerated type for the different TE link access types as 307 defined in [RFC3630]. 309 3.2. MPLS TE Types Module 311 The ietf-te-mpls-types module covers the common types and groupings 312 specific to MPLS technology. 314 The ietf-te-mpls-types module contains the following YANG reusable 315 types and groupings: 317 backup-protection-type: 319 A base YANG identity for supported protection types that a backup 320 or bypass tunnel can provide as defined in [RFC4090]. 322 te-class-type: 324 A type that represents the Diffserv-TE class-type as defined in 325 [RFC4124]. 327 bc-type: 329 A type that represents the Diffserv-TE Bandwidth Constraint (BC) 330 as defined in [RFC4124]. 332 bc-model-type: 334 A base YANG identity for supported Diffserv-TE bandwidth 335 constraint models as defined in [RFC4125], [RFC4126] and 336 [RFC4127]. 338 te-bandwidth-requested-type: 340 An enumerated type for the different options to request bandwidth 341 for a specific tunnel. 343 performance-metric-container-packet: 345 A YANG grouping for the augmentation of packet specific metrics to 346 the generic performance metrics grouping parameters. 348 4. IETF TE Types YANG Module 350 file "ietf-te-types@2018-12-21.yang" 351 module ietf-te-types { 352 yang-version 1.1; 353 namespace "urn:ietf:params:xml:ns:yang:ietf-te-types"; 355 /* Replace with IANA when assigned */ 356 prefix "te-types"; 358 import ietf-inet-types { 359 prefix inet; 360 reference "RFC6991: Common YANG Data Types"; 361 } 363 import ietf-yang-types { 364 prefix "yang"; 365 reference "RFC6991: Common YANG Data Types"; 366 } 368 import ietf-routing-types { 369 prefix "rt-types"; 370 reference "RFC6991: Common YANG Data Types"; 371 } 373 organization 374 "IETF Traffic Engineering Architecture and Signaling (TEAS) 375 Working Group"; 377 contact 378 "WG Web: 379 WG List: 381 WG Chair: Lou Berger 382 384 WG Chair: Vishnu Pavan Beeram 385 387 Editor: Tarek Saad 388 390 Editor: Rakesh Gandhi 391 393 Editor: Vishnu Pavan Beeram 394 396 Editor: Himanshu Shah 397 399 Editor: Xufeng Liu 400 402 Editor: Igor Bryskin 403 405 Editor: Young Lee 406 "; 408 description 409 "This module contains a collection of generally useful TE 410 specific YANG data type definitions. The model fully conforms 411 to the Network Management Datastore Architecture (NMDA). 413 Copyright (c) 2018 IETF Trust and the persons 414 identified as authors of the code. All rights reserved. 416 Redistribution and use in source and binary forms, with or 417 without modification, is permitted pursuant to, and subject 418 to the license terms contained in, the Simplified BSD License 419 set forth in Section 4.c of the IETF Trust's Legal Provisions 420 Relating to IETF Documents 421 (https://trustee.ietf.org/license-info). 422 This version of this YANG module is part of RFC XXXX; see 423 the RFC itself for full legal notices."; 425 // RFC Ed.: replace XXXX with actual RFC number and remove this 426 // note. 428 // RFC Ed.: update the date below with the date of RFC publication 429 // and remove this note. 431 revision "2018-12-21" { 432 description "Latest revision of TE types"; 433 reference 434 "RFC XXXX: A YANG Data Model for Common Traffic Engineering 435 Types"; 436 } 438 /** 439 * Typedefs 440 */ 441 typedef path-attribute-flags { 442 type union { 443 type identityref { 444 base session-attributes-flags; 445 } 446 type identityref { 447 base lsp-attributes-flags; 448 } 449 } 450 description "Path attributes flags type"; 451 } 453 typedef te-bandwidth { 454 type string { 455 pattern 456 '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 457 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 458 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' 459 + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 460 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 461 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; 462 } 463 description 464 "This is the generic bandwidth type that is a string containing 465 a list of numbers separated by commas, with each of these 466 number can be non-negative decimal, hex integer, or hex float: 467 (dec | hex | float)[*(','(dec | hex | float))] 468 For packet switching type, a float number is used, such as 469 0x1p10. 470 For OTN switching type, a list of integers can be used, such 471 as '0,2,3,1', indicating 2 odu0's and 1 odu3. 472 For DWDM, a list of pairs of slot number and width can be 473 used, such as '0, 2, 3, 3', indicating a frequency slot 0 with 474 slot width 2 and a frequency slot 3 with slot width 3. 475 Canonically, the string is represented as all lowercase and in 476 hex where the prefix '0x' precedes the hex number"; 477 } // te-bandwidth 478 typedef te-ds-class { 479 type uint8 { 480 range "0..7"; 481 } 482 description 483 "The Differentiated Class-Type of traffic."; 484 reference "RFC4124: section-4.3.1"; 485 } 487 typedef te-link-direction { 488 type enumeration { 489 enum incoming { 490 description 491 "explicit route represents an incoming link on a node"; 492 } 493 enum outgoing { 494 description 495 "explicit route represents an outgoing link on a node"; 496 } 497 } 498 description 499 "enumerated type for specifying direction of link on a node"; 500 } 502 typedef te-label-direction { 503 type enumeration { 504 enum forward { 505 description 506 "Label allocated for the forward LSP direction"; 507 } 508 enum reverse { 509 description 510 "Label allocated for the reverse LSP direction"; 511 } 512 } 513 description 514 "enumerated type for specifying the forward or reverse 515 label"; 516 } 518 typedef te-hop-type { 519 type enumeration { 520 enum loose { 521 description 522 "loose hop in an explicit path"; 523 } 524 enum strict { 525 description 526 "strict hop in an explicit path"; 527 } 528 } 529 description 530 "enumerated type for specifying loose or strict 531 paths"; 532 reference "RFC3209: section-4.3.2"; 533 } 535 typedef performance-metric-normality { 536 type enumeration { 537 enum "unknown" { 538 value 0; 539 description 540 "Unknown."; 541 } 542 enum "normal" { 543 value 1; 544 description 545 "Normal."; 546 } 547 enum "abnormal" { 548 value 2; 549 description 550 "Abnormal. The anomalous bit is set."; 551 } 552 } 553 description 554 "Indicates whether a performance metric is normal, abnormal, or 555 unknown."; 556 reference 557 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 558 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 559 RFC7823: Performance-Based Path Selection for Explicitly 560 Routed Label Switched Paths (LSPs) Using TE Metric 561 Extensions"; 562 } 564 typedef te-admin-status { 565 type enumeration { 566 enum up { 567 description 568 "Enabled."; 569 } 570 enum down { 571 description 572 "Disabled."; 573 } 574 enum testing { 575 description 576 "In some test mode."; 577 } 578 enum preparing-maintenance { 579 description 580 "Resource is disabled in the control plane to prepare for 581 graceful shutdown for maintenance purposes."; 582 reference 583 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 584 Traffic Engineering Networks"; 585 } 586 enum maintenance { 587 description 588 "Resource is disabled in the data plane for maintenance 589 purposes."; 590 } 591 } 592 description 593 "Defines a type representing the administrative status of 594 a TE resource."; 595 } 597 typedef te-global-id { 598 type uint32; 599 description 600 "An identifier to uniquely identify an operator, which can be 601 either a provider or a client. 602 The definition of this type is taken from RFC6370 and RFC5003. 603 This attribute type is used solely to provide a globally 604 unique context for TE topologies."; 605 } 607 typedef te-link-access-type { 608 type enumeration { 609 enum point-to-point { 610 description 611 "The link is point-to-point."; 612 } 613 enum multi-access { 614 description 615 "The link is multi-access, including broadcast and NBMA."; 616 } 617 } 618 description 619 "Defines a type representing the access type of a TE link."; 620 reference 621 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 622 Version 2."; 623 } 625 typedef te-node-id { 626 type yang:dotted-quad; 627 description 628 "An identifier for a node in a topology. 629 The identifier is represented as 32-bit unsigned integer in 630 the dotted-quad notation. 631 This attribute is mapped to Router ID in 632 RFC3630, RFC5329, RFC5305, and RFC6119."; 633 } 635 typedef te-oper-status { 636 type enumeration { 637 enum up { 638 description 639 "Operational up."; 640 } 641 enum down { 642 description 643 "Operational down."; 644 } 645 enum testing { 646 description 647 "In some test mode."; 648 } 649 enum unknown { 650 description 651 "Status cannot be determined for some reason."; 652 } 653 enum preparing-maintenance { 654 description 655 "Resource is disabled in the control plane to prepare for 656 graceful shutdown for maintenance purposes."; 657 reference 658 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 659 Traffic Engineering Networks"; 660 } 661 enum maintenance { 662 description 663 "Resource is disabled in the data plane for maintenance 664 purposes."; 665 } 666 } 667 description 668 "Defines a type representing the operational status of 669 a TE resource."; 671 } 673 typedef te-path-disjointness { 674 type bits { 675 bit node { 676 position 0; 677 description "Node disjoint."; 678 } 679 bit link { 680 position 1; 681 description "Link disjoint."; 682 } 683 bit srlg { 684 position 2; 685 description "SRLG (Shared Risk Link Group) disjoint."; 686 } 687 } 688 description 689 "Type of the resource disjointness for a TE tunnel path."; 690 reference 691 "RFC4872: RSVP-TE Extensions in Support of End-to-End 692 Generalized Multi-Protocol Label Switching (GMPLS) 693 Recovery"; 694 } // te-path-disjointness 696 typedef te-recovery-status { 697 type enumeration { 698 enum normal { 699 description 700 "Both the recovery and working spans are fully 701 allocated and active, data traffic is being 702 transported over (or selected from) the working 703 span, and no trigger events are reported."; 704 } 705 enum recovery-started { 706 description 707 "The recovery action has been started, but not completed."; 708 } 709 enum recovery-succeeded { 710 description 711 "The recovery action has succeeded. The working span has 712 reported a failure/degrade condition and the user traffic 713 is being transported (or selected) on the recovery span."; 714 } 715 enum recovery-failed { 716 description 717 "The recovery action has failed."; 718 } 719 enum reversion-started { 720 description 721 "The reversion has started."; 722 } 723 enum reversion-failed { 724 description 725 "The reversion has failed."; 726 } 727 enum recovery-unavailable { 728 description 729 "The recovery is unavailable -- either as a result of an 730 operator Lockout command or a failure condition detected 731 on the recovery span."; 732 } 733 enum recovery-admin { 734 description 735 "The operator has issued a command switching the user 736 traffic to the recovery span."; 737 } 738 enum wait-to-restore { 739 description 740 "The recovery domain is recovering from a failure/degrade 741 condition on the working span that is being controlled by 742 the Wait-to-Restore (WTR) timer."; 743 } 744 } 745 description 746 "Defines the status of a recovery action."; 747 reference 748 "RFC4427: Recovery (Protection and Restoration) Terminology 749 for Generalized Multi-Protocol Label Switching (GMPLS). 750 RFC6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; 751 } 753 typedef te-template-name { 754 type string { 755 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 756 } 757 description 758 "A type for the name of a TE node template or TE link 759 template."; 760 } 762 typedef te-topology-event-type { 763 type enumeration { 764 enum "add" { 765 value 0; 766 description 767 "A TE node or te-link has been added."; 768 } 769 enum "remove" { 770 value 1; 771 description 772 "A TE node or te-link has been removed."; 773 } 774 enum "update" { 775 value 2; 776 description 777 "A TE node or te-link has been updated."; 778 } 779 } 780 description "TE Event type for notifications"; 781 } // te-topology-event-type 783 typedef te-topology-id { 784 type union { 785 type string { 786 length 0; // empty string 787 } 788 type string { 789 pattern 790 '([a-zA-Z0-9\-_.]+:)*' 791 + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 792 } 793 } 794 description 795 "An identifier for a topology. 796 It is optional to have one or more prefixes at the beginning, 797 separated by colons. The prefixes can be the network-types, 798 defined in ietf-network.yang, to help user to understand the 799 topology better before further inquiry."; 800 } 802 typedef te-tp-id { 803 type union { 804 type uint32; // Unnumbered 805 type inet:ip-address; // IPv4 or IPv6 address 806 } 807 description 808 "An identifier for a TE link endpoint on a node. 809 This attribute is mapped to local or remote link identifier in 810 RFC3630 and RFC5305."; 811 } 813 typedef admin-group { 814 type binary { 815 length 4; 816 } 817 description 818 "Administrative group/Resource class/Color."; 819 reference "RFC3630 and RFC5305"; 820 } 822 typedef extended-admin-group { 823 type binary; 824 description 825 "Extended administrative group/Resource class/Color."; 826 reference "RFC7308"; 827 } 829 typedef admin-groups { 830 type union { 831 type admin-group; 832 type extended-admin-group; 833 } 834 description "TE administrative group derived type"; 835 } 837 typedef srlg { 838 type uint32; 839 description "SRLG type"; 840 reference "RFC4203 and RFC5307"; 841 } 843 typedef te-metric { 844 type uint32; 845 description "TE link metric"; 846 reference "RFC3785"; 847 } 849 /* TE features */ 850 feature p2mp-te { 851 description 852 "Indicates support for P2MP-TE"; 853 reference "RFC4875"; 854 } 856 feature frr-te { 857 description 858 "Indicates support for TE FastReroute (FRR)"; 859 reference "RFC4090"; 860 } 862 feature extended-admin-groups { 863 description 864 "Indicates support for TE link extended admin 865 groups."; 866 reference "RFC7308"; 867 } 869 feature named-path-affinities { 870 description 871 "Indicates support for named path affinities"; 872 } 874 feature named-extended-admin-groups { 875 description 876 "Indicates support for named extended admin groups"; 877 } 879 feature named-srlg-groups { 880 description 881 "Indicates support for named SRLG groups"; 882 } 884 feature named-path-constraints { 885 description 886 "Indicates support for named path constraints"; 887 } 889 feature path-optimization-metric { 890 description 891 "Indicates support for path optimization metric"; 892 } 894 feature path-optimization-objective-function { 895 description 896 "Indicates support for path optimization objective function"; 897 } 899 /* 900 * Identities 901 */ 902 identity session-attributes-flags { 903 description 904 "Base identity for the RSVP-TE session attributes flags"; 905 } 906 identity local-protection-desired { 907 base session-attributes-flags; 908 description "Fastreroute local protection is desired."; 909 reference "RFC3209"; 910 } 911 identity se-style-desired { 912 description 913 "Shared explicit style to allow the LSP to be 914 established sharing resources with the old LSP."; 915 reference "RFC3209"; 916 } 917 identity local-recording-desired { 918 description "Local recording desired"; 919 reference "RFC3209"; 920 } 921 identity bandwidth-protection-desired { 922 base session-attributes-flags; 923 description 924 "Request FRR bandwidth protection on LSRs if 925 present."; 926 reference "RFC4090"; 927 } 928 identity node-protection-desired { 929 base session-attributes-flags; 930 description 931 "Request FRR node protection on LSRs if 932 present."; 933 reference "RFC4090"; 934 } 935 identity path-reevaluation-request { 936 base session-attributes-flags; 937 description 938 "This flag indicates that a path re-evaluation (of the 939 current path in use) is requested. Note that this does 940 not trigger any LSP Reroute but instead just signals a 941 request to evaluate whether a preferable path exists."; 942 reference "RFC4736"; 943 } 944 identity soft-preemption-desired { 945 base session-attributes-flags; 946 description 947 "Soft-preemption of LSP resources is desired"; 948 reference "RFC5712"; 949 } 951 identity lsp-attributes-flags { 952 description "Base identity for per hop attribute flags"; 953 } 954 identity end-to-end-rerouting-desired { 955 base lsp-attributes-flags; 956 description 957 "Indicates end-to-end re-routing behavior for an 958 LSP under establishment. This MAY also be used for 959 specifying the behavior of end-to-end LSP recovery for 960 established LSPs."; 961 reference "RFC4920, RFC5420, RFC7570"; 962 } 963 identity boundary-rerouting-desired { 964 base lsp-attributes-flags; 965 description 966 "Indicates boundary re-routing behavior for an LSP under 967 establishment. This MAY also be used for specifying the 968 segment-based LSP recovery through nested crankback for 969 established LSPs. The boundary ABR/ASBR can either decide 970 to forward the PathErr message upstream to an upstream boundary 971 ABR/ASBR or to the ingress LSR. 972 Alternatively, it can try to select another egress boundary 973 LSR."; 974 reference "RFC4920, RFC5420, RFC7570"; 975 } 976 identity segment-based-rerouting-desired { 977 base lsp-attributes-flags; 978 description 979 "Indicates segment-based re-routing behavior for an LSP under 980 establishment. This MAY also be used to specify the segment- 981 based LSP recovery for established LSPs."; 982 reference "RFC4920, RFC5420, RFC7570"; 983 } 984 identity lsp-integrity-required { 985 base lsp-attributes-flags; 986 description "Indicates LSP integrity is required"; 987 reference "RFC4875, RFC7570"; 989 } 990 identity contiguous-lsp-desired { 991 base lsp-attributes-flags; 992 description "Indicates contiguous LSP is desired"; 993 reference "RFC5151, RFC7570"; 994 } 995 identity lsp-stitching-desired { 996 base lsp-attributes-flags; 997 description "Indicates LSP stitching is desired"; 998 reference "RFC5150, RFC7570"; 999 } 1000 identity pre-planned-lsp-flag { 1001 base lsp-attributes-flags; 1002 description 1003 "Indicates the LSP MUST be provisioned in the 1004 control plane only."; 1005 reference "RFC6001, RFC7570"; 1006 } 1007 identity non-php-behavior-flag { 1008 base lsp-attributes-flags; 1009 description 1010 "Indicates non-php behavior for the LSP is desired"; 1011 reference "RFC6511, RFC7570"; 1012 } 1013 identity oob-mapping-flag { 1014 base lsp-attributes-flags; 1015 description 1016 "Indicates signaling of the egress binding information 1017 is out-of-band , (e.g., via Border Gateway Protocol (BGP))"; 1018 reference "RFC6511, RFC7570"; 1019 } 1020 identity entropy-label-capability { 1021 base lsp-attributes-flags; 1022 description "Indicates entropy label capability"; 1023 reference "RFC6790, RFC7570"; 1024 } 1025 identity oam-mep-entity-desired { 1026 base lsp-attributes-flags; 1027 description "OAM MEP entities desired"; 1028 reference "RFC7260"; 1029 } 1030 identity oam-mip-entity-desired { 1031 base lsp-attributes-flags; 1032 description "OAM MIP entities desired"; 1033 reference "RFC7260"; 1034 } 1035 identity srlg-collection-desired { 1036 base lsp-attributes-flags; 1037 description "SRLG collection desired"; 1038 reference "RFC8001, RFC7570"; 1039 } 1040 identity loopback-desired { 1041 base lsp-attributes-flags; 1042 description 1043 "This flag indicates a particular node on the LSP is 1044 required to enter loopback mode. This can also be 1045 used for specifying the loopback state of the node."; 1046 reference "RFC7571"; 1047 } 1048 identity p2mp-te-tree-eval-request { 1049 base lsp-attributes-flags; 1050 description "P2MP-TE tree re-evaluation request"; 1051 reference "RFC8149"; 1052 } 1053 identity rtm-set-desired { 1054 base lsp-attributes-flags; 1055 description 1056 "Residence Time Measurement (RTM) attribute flag"; 1057 reference "RFC8169"; 1058 } 1060 identity link-protection-type { 1061 description "Base identity for link protection type."; 1062 } 1063 identity link-protection-unprotected { 1064 base link-protection-type; 1065 description "Unprotected link type"; 1066 reference "RFC4872"; 1067 } 1068 identity link-protection-extra-traffic { 1069 base link-protection-type; 1070 description "Extra-traffic protected link type"; 1071 reference "RFC4427."; 1072 } 1073 identity link-protection-shared { 1074 base link-protection-type; 1075 description "Shared protected link type"; 1076 reference "RFC4872"; 1077 } 1078 identity link-protection-1-for-1 { 1079 base link-protection-type; 1080 description "One for one protected link type"; 1081 reference "RFC4872"; 1082 } 1083 identity link-protection-1-plus-1 { 1084 base link-protection-type; 1085 description "One plus one protected link type"; 1086 reference "RFC4872"; 1087 } 1088 identity link-protection-enhanced { 1089 base link-protection-type; 1090 description "Enhanced protection protected link type"; 1091 reference "RFC4872"; 1092 } 1094 identity association-type { 1095 description "Base identity for tunnel association"; 1096 reference "RFC6780, RFC4872, RFC4873"; 1097 } 1098 identity association-type-recovery { 1099 base association-type; 1100 description 1101 "Association Type Recovery used to association LSPs of 1102 same tunnel for recovery"; 1103 reference "RFC4872"; 1104 } 1105 identity association-type-resource-sharing { 1106 base association-type; 1107 description 1108 "Association Type Resource Sharing used to enable resource 1109 sharing during make-before-break."; 1110 reference "RFC4873"; 1111 } 1112 identity association-type-double-sided-bidir { 1113 base association-type; 1114 description 1115 "Association Type Double Sided bidirectional used to associate 1116 two LSPs of two tunnels that are independently configured on 1117 either endpoint"; 1118 reference "RFC7551"; 1119 } 1120 identity association-type-single-sided-bidir { 1121 base association-type; 1122 description 1123 "Association Type Single Sided bidirectional used to associate 1124 two LSPs of two tunnels, where a tunnel is configured on one 1125 side/endpoint, and the other tunnel is dynamically created on 1126 the other endpoint"; 1127 reference "RFC7551"; 1128 } 1130 identity objective-function-type { 1131 description "Base objective function type"; 1132 reference "RFC4657"; 1133 } 1134 identity of-minimize-cost-path { 1135 base objective-function-type; 1136 description 1137 "Minimize cost of path objective function"; 1138 reference "RFC5541"; 1139 } 1140 identity of-minimize-load-path { 1141 base objective-function-type; 1142 description 1143 "Minimize the load on path(s) objective 1144 function"; 1145 } 1146 identity of-maximize-residual-bandwidth { 1147 base objective-function-type; 1148 description 1149 "Maximize the residual bandwidth objective 1150 function"; 1151 } 1152 identity of-minimize-agg-bandwidth-consumption { 1153 base objective-function-type; 1154 description 1155 "minimize the aggregate bandwidth consumption 1156 objective function"; 1157 } 1158 identity of-minimize-load-most-loaded-link { 1159 base objective-function-type; 1160 description 1161 "Minimize the load on the most loaded link 1162 objective function"; 1163 } 1164 identity of-minimize-cost-path-set { 1165 base objective-function-type; 1166 description 1167 "Minimize the cost on a path set objective 1168 function"; 1169 } 1171 identity path-computation-method { 1172 description 1173 "base identity for supported path computation 1174 mechanisms"; 1175 } 1176 identity path-locally-computed { 1177 base path-computation-method; 1178 description 1179 "indicates a constrained-path LSP in which the 1180 path is computed by the local LER"; 1181 } 1182 identity path-externally-queried { 1183 base path-computation-method; 1184 description 1185 "Constrained-path LSP in which the path is 1186 obtained by querying an external source, such as a PCE server. 1187 In the case that an LSP is defined to be externally queried, it 1188 may also have associated explicit definitions (provided 1189 to the external source to aid computation); and the path that is 1190 returned by the external source is not required to provide a 1191 wholly resolved path back to the originating system - that is to 1192 say, some local computation may also be required"; 1193 } 1194 identity path-explicitly-defined { 1195 base path-computation-method; 1196 description 1197 "constrained-path LSP in which the path is 1198 explicitly specified as a collection of strict or/and loose 1199 hops"; 1200 } 1202 identity lsp-metric-type { 1203 description 1204 "Base identity for types of LSP metric specification"; 1205 } 1206 identity lsp-metric-relative { 1207 base lsp-metric-type; 1208 description 1209 "The metric specified for the LSPs to which this identity refers 1210 is specified as a relative value to the IGP metric cost to the 1211 LSP's tail-end."; 1212 } 1213 identity lsp-metric-absolute { 1214 base lsp-metric-type; 1215 description 1216 "The metric specified for the LSPs to which this identity refers 1217 is specified as an absolute value"; 1218 } 1219 identity lsp-metric-inherited { 1220 base lsp-metric-type; 1221 description 1222 "The metric for the LSPs to which this identity refers is 1223 not specified explicitly - but rather inherited from the IGP 1224 cost directly"; 1225 } 1227 identity te-tunnel-type { 1228 description 1229 "Base identity from which specific tunnel types are 1230 derived."; 1231 } 1232 identity te-tunnel-p2p { 1233 base te-tunnel-type; 1234 description 1235 "TE point-to-point tunnel type."; 1236 } 1237 identity te-tunnel-p2mp { 1238 base te-tunnel-type; 1239 description 1240 "TE point-to-multipoint tunnel type."; 1241 reference "RFC4875"; 1242 } 1244 identity tunnel-action-type { 1245 description 1246 "Base identity from which specific tunnel action types 1247 are derived."; 1248 } 1249 identity tunnel-action-resetup { 1250 base tunnel-action-type; 1251 description 1252 "TE tunnel action resetup. Tears the 1253 tunnel's current LSP (if any) and 1254 attempts to re-establish a new LSP"; 1255 } 1256 identity tunnel-action-reoptimize { 1257 base tunnel-action-type; 1258 description 1259 "TE tunnel action reoptimize. 1260 Reoptimizes placement of the tunnel LSP(s)"; 1261 } 1262 identity tunnel-action-switchpath { 1263 base tunnel-action-type; 1264 description 1265 "TE tunnel action switchpath 1266 Switches the tunnel's LSP to use the specified path"; 1267 } 1269 identity te-action-result { 1270 description 1271 "Base identity from which specific TE action results 1272 are derived."; 1273 } 1274 identity te-action-success { 1275 base te-action-result; 1276 description "TE action successful."; 1277 } 1278 identity te-action-fail { 1279 base te-action-result; 1280 description "TE action failed."; 1281 } 1282 identity tunnel-action-inprogress { 1283 base te-action-result; 1284 description "TE action inprogress."; 1285 } 1287 identity tunnel-admin-state-type { 1288 description 1289 "Base identity for TE tunnel admin states"; 1290 } 1291 identity tunnel-admin-state-up { 1292 base tunnel-admin-state-type; 1293 description "Tunnel administratively state up"; 1295 } 1296 identity tunnel-admin-state-down { 1297 base tunnel-admin-state-type; 1298 description "Tunnel administratively state down"; 1299 } 1301 identity tunnel-state-type { 1302 description 1303 "Base identity for TE tunnel states"; 1304 } 1305 identity tunnel-state-up { 1306 base tunnel-state-type; 1307 description "Tunnel state up"; 1308 } 1309 identity tunnel-state-down { 1310 base tunnel-state-type; 1311 description "Tunnel state down"; 1312 } 1314 identity lsp-state-type { 1315 description 1316 "Base identity for TE LSP states"; 1317 } 1318 identity lsp-path-computing { 1319 base lsp-state-type; 1320 description 1321 "State path compute in progress"; 1322 } 1323 identity lsp-path-computation-ok { 1324 base lsp-state-type; 1325 description 1326 "State path compute successful"; 1327 } 1328 identity lsp-path-computation-failed { 1329 base lsp-state-type; 1330 description 1331 "State path compute failed"; 1332 } 1333 identity lsp-state-setting-up { 1334 base lsp-state-type; 1335 description 1336 "State setting up"; 1337 } 1338 identity lsp-state-setup-ok { 1339 base lsp-state-type; 1340 description 1341 "State setup successful"; 1342 } 1343 identity lsp-state-setup-failed { 1344 base lsp-state-type; 1345 description 1346 "State setup failed"; 1347 } 1348 identity lsp-state-up { 1349 base lsp-state-type; 1350 description "State up"; 1351 } 1352 identity lsp-state-tearing-down { 1353 base lsp-state-type; 1354 description 1355 "State tearing down"; 1356 } 1357 identity lsp-state-down { 1358 base lsp-state-type; 1359 description "State down"; 1360 } 1362 identity path-invalidation-action-type { 1363 description 1364 "Base identity for TE path invalidation action types"; 1365 } 1366 identity path-invalidation-action-drop-type { 1367 base path-invalidation-action-type; 1368 description 1369 "TE path invalidation action drop"; 1370 } 1371 identity path-invalidation-action-drop-tear { 1372 base path-invalidation-action-type; 1373 description 1374 "TE path invalidation action tear"; 1375 } 1377 identity lsp-restoration-type { 1378 description 1379 "Base identity from which LSP restoration types are 1380 derived."; 1381 } 1382 identity lsp-restoration-restore-any { 1383 base lsp-restoration-type; 1384 description 1385 "Restores when any of the LSPs is affected by a failure"; 1386 } 1387 identity lsp-restoration-restore-all { 1388 base lsp-restoration-type; 1389 description 1390 "Restores when all the tunnel LSPs are affected by failure"; 1392 } 1394 identity restoration-scheme-type { 1395 description 1396 "Base identity for LSP restoration schemes"; 1397 reference "RFC4872"; 1398 } 1399 identity restoration-scheme-preconfigured { 1400 base restoration-scheme-type; 1401 description 1402 "Restoration LSP is preconfigured prior to the failure"; 1403 } 1404 identity restoration-scheme-precomputed { 1405 base restoration-scheme-type; 1406 description 1407 "Restoration LSP is precomputed prior to the failure"; 1408 } 1409 identity restoration-scheme-presignaled { 1410 base restoration-scheme-type; 1411 description 1412 "Restoration LSP is presignaled prior to the failure"; 1413 } 1415 identity lsp-protection-type { 1416 description 1417 "Base identity from which LSP protection types are 1418 derived."; 1419 } 1420 identity lsp-protection-unprotected { 1421 base lsp-protection-type; 1422 description 1423 "LSP protection 'Unprotected'"; 1424 reference "RFC4872"; 1425 } 1426 identity lsp-protection-reroute-extra { 1427 base lsp-protection-type; 1428 description 1429 "LSP protection '(Full) Rerouting'"; 1430 reference "RFC4872"; 1431 } 1432 identity lsp-protection-reroute { 1433 base lsp-protection-type; 1434 description 1435 "LSP protection 'Rerouting without Extra-Traffic'"; 1436 reference "RFC4872"; 1437 } 1438 identity lsp-protection-1-for-n { 1439 base lsp-protection-type; 1440 description 1441 "LSP protection '1:N Protection with Extra-Traffic'"; 1442 reference "RFC4872"; 1443 } 1444 identity lsp-protection-unidir-1-for-1 { 1445 base lsp-protection-type; 1446 description 1447 "LSP protection '1:1 Unidirectional Protection'"; 1448 reference "RFC4872"; 1449 } 1450 identity lsp-protection-bidir-1-for-1 { 1451 base lsp-protection-type; 1452 description 1453 "LSP protection '1:1 Bidirectional Protection'"; 1454 reference "RFC4872"; 1455 } 1456 identity lsp-protection-unidir-1-plus-1 { 1457 base lsp-protection-type; 1458 description 1459 "LSP protection '1+1 Unidirectional Protection'"; 1460 reference "RFC4872"; 1461 } 1462 identity lsp-protection-bidir-1-plus-1 { 1463 base lsp-protection-type; 1464 description 1465 "LSP protection '1+1 Bidirectional Protection'"; 1466 reference "RFC4872"; 1467 } 1468 identity lsp-protection-extra-traffic { 1469 base lsp-protection-type; 1470 description 1471 "LSP protection 'Extra-Traffic'"; 1472 reference 1473 "ITU-T G.808, RFC 4427."; 1474 } 1476 identity lsp-protection-state { 1477 description 1478 "Base identity of protection states for reporting 1479 purposes."; 1480 } 1481 identity normal { 1482 base lsp-protection-state; 1483 description "Normal state."; 1484 } 1485 identity signal-fail-of-protection { 1486 base lsp-protection-state; 1487 description 1488 "There is a SF condition on the protection transport 1489 entity which has higher priority than the FS command."; 1490 reference 1491 "ITU-T G.873.1, G.8031, G.8131"; 1492 } 1493 identity lockout-of-protection { 1494 base lsp-protection-state; 1495 description 1496 "A Loss of Protection (LoP) command is active."; 1497 reference 1498 "ITU-T G.808, RFC 4427"; 1499 } 1500 identity forced-switch { 1501 base lsp-protection-state; 1502 description 1503 "A forced switch (FS) command is active."; 1504 reference 1505 "ITU-T G.808, RFC 4427"; 1506 } 1507 identity signal-fail { 1508 base lsp-protection-state; 1509 description 1510 "There is a SF condition on either the working 1511 or the protection path."; 1512 reference 1513 "ITU-T G.808, RFC 4427"; 1514 } 1515 identity signal-degrade { 1516 base lsp-protection-state; 1517 description 1518 "There is an SD condition on either the working or the 1519 protection path."; 1520 reference 1521 "ITU-T G.808, RFC 4427"; 1522 } 1523 identity manual-switch { 1524 base lsp-protection-state; 1525 description 1526 "A manual switch (MS) command is active."; 1527 reference 1528 "ITU-T G.808, RFC 4427"; 1529 } 1530 identity wait-to-restore { 1531 base lsp-protection-state; 1532 description 1533 "A wait time to restore (WTR) is running."; 1534 reference 1535 "ITU-T G.808, RFC 4427"; 1537 } 1538 identity do-not-revert { 1539 base lsp-protection-state; 1540 description 1541 "A DNR condition is active because of a non-revertive 1542 behavior."; 1543 reference 1544 "ITU-T G.808, RFC 4427"; 1545 } 1546 identity failure-of-protocol { 1547 base lsp-protection-state; 1548 description 1549 "The protection is not working because of a failure of 1550 protocol condition."; 1551 reference 1552 "ITU-T G.873.1, G.8031, G.8131"; 1553 } 1555 identity protection-external-commands { 1556 description 1557 "Protection external commands for trouble shooting 1558 purposes."; 1559 } 1560 identity action-freeze { 1561 base protection-external-commands; 1562 description 1563 "A temporary configuration action initiated by an operator 1564 command to prevent any switch action to be taken and as such 1565 freezes the current state."; 1566 reference 1567 "ITU-T G.808, RFC 4427"; 1568 } 1569 identity clear-freeze { 1570 base protection-external-commands; 1571 description 1572 "An action that clears the active freeze state."; 1573 reference 1574 "ITU-T G.808, RFC 4427"; 1575 } 1576 identity action-lockout-of-normal { 1577 base protection-external-commands; 1578 description 1579 "A temporary configuration action initiated by an operator 1580 command to ensure that the normal traffic is not allowed 1581 to use the protection transport entity."; 1582 reference 1583 "ITU-T G.808, RFC 4427"; 1584 } 1585 identity clear-lockout-of-normal { 1586 base protection-external-commands; 1587 description 1588 "An action that clears the active lockout of normal state."; 1589 reference 1590 "ITU-T G.808, RFC 4427"; 1591 } 1592 identity action-lockout-of-protection { 1593 base protection-external-commands; 1594 description 1595 "A temporary configuration action initiated by an operator 1596 command to ensure that the protection transport entity is 1597 temporarily not available to transport a traffic signal 1598 (either normal or extra traffic)."; 1599 reference 1600 "ITU-T G.808, RFC 4427"; 1601 } 1602 identity action-forced-switch { 1603 base protection-external-commands; 1604 description 1605 "A switch action initiated by an operator command to switch 1606 the extra traffic signal, the normal traffic signal, or the 1607 null signal to the protection transport entity, unless an 1608 equal or higher priority switch command is in effect."; 1609 reference 1610 "ITU-T G.808, RFC 4427"; 1611 } 1612 identity action-manual-switch { 1613 base protection-external-commands; 1614 description 1615 "A switch action initiated by an operator command to switch 1616 the extra traffic signal, the normal traffic signal, or 1617 the null signal to the protection transport entity, unless 1618 a fault condition exists on other transport entities or an 1619 equal or higher priority switch command is in effect."; 1620 reference 1621 "ITU-T G.808, RFC 4427"; 1622 } 1623 identity action-exercise { 1624 base protection-external-commands; 1625 description 1626 "An action to start testing if the APS communication is 1627 operating correctly. It is lower priority than any other 1628 state or command."; 1629 reference 1630 "ITU-T G.808, RFC 4427"; 1631 } 1632 identity clear { 1633 base protection-external-commands; 1634 description 1635 "An action that clears the active near-end lockout of 1636 protection, forced switch, manual switch, WTR state, 1637 or exercise command."; 1638 reference 1639 "ITU-T G.808, RFC 4427"; 1640 } 1642 identity switching-capabilities { 1643 description 1644 "Base identity for interface switching capabilities"; 1645 reference "RFC3471"; 1646 } 1647 identity switching-psc1 { 1648 base switching-capabilities; 1649 description 1650 "Packet-Switch Capable-1 (PSC-1)"; 1651 reference "RFC3471"; 1652 } 1653 identity switching-evpl { 1654 base switching-capabilities; 1655 description 1656 "Ethernet Virtual Private Line (EVPL)"; 1657 } 1658 identity switching-l2sc { 1659 base switching-capabilities; 1660 description 1661 "Layer-2 Switch Capable (L2SC)"; 1662 reference "RFC3471"; 1663 } 1664 identity switching-tdm { 1665 base switching-capabilities; 1666 description 1667 "Time-Division-Multiplex Capable (TDM)"; 1668 reference "RFC3471"; 1669 } 1670 identity switching-otn { 1671 base switching-capabilities; 1672 description 1673 "OTN-TDM capable"; 1674 } 1675 identity switching-dcsc { 1676 base switching-capabilities; 1677 description 1678 "Data Channel Switching Capable (DCSC)"; 1679 } 1680 identity switching-lsc { 1681 base switching-capabilities; 1682 description 1683 "Lambda-Switch Capable (LSC)"; 1684 reference "RFC3471"; 1685 } 1686 identity switching-fsc { 1687 base switching-capabilities; 1688 description 1689 "Fiber-Switch Capable (FSC)"; 1690 reference "RFC3471"; 1691 } 1693 identity lsp-encoding-types { 1694 description 1695 "Base identity for encoding types"; 1696 reference "RFC3471"; 1697 } 1698 identity lsp-encoding-packet { 1699 base lsp-encoding-types; 1700 description 1701 "Packet LSP encoding"; 1702 reference "RFC3471"; 1703 } 1704 identity lsp-encoding-ethernet { 1705 base lsp-encoding-types; 1706 description 1707 "Ethernet LSP encoding"; 1708 reference "RFC3471"; 1709 } 1710 identity lsp-encoding-pdh { 1711 base lsp-encoding-types; 1712 description 1713 "ANSI/ETSI LSP encoding"; 1714 reference "RFC3471"; 1715 } 1716 identity lsp-encoding-sdh { 1717 base lsp-encoding-types; 1718 description 1719 "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding"; 1720 reference "RFC3471"; 1721 } 1722 identity lsp-encoding-digital-wrapper { 1723 base lsp-encoding-types; 1724 description 1725 "Digital Wrapper LSP encoding"; 1726 reference "RFC3471"; 1727 } 1728 identity lsp-encoding-lambda { 1729 base lsp-encoding-types; 1730 description 1731 "Lambda (photonic) LSP encoding"; 1732 reference "RFC3471"; 1733 } 1734 identity lsp-encoding-fiber { 1735 base lsp-encoding-types; 1736 description 1737 "Fiber LSP encoding"; 1738 reference "RFC3471"; 1739 } 1740 identity lsp-encoding-fiber-channel { 1741 base lsp-encoding-types; 1742 description 1743 "Fiber Channel LSP encoding"; 1744 reference "RFC3471"; 1745 } 1746 identity lsp-encoding-oduk { 1747 base lsp-encoding-types; 1748 description 1749 "G.709 ODUk (Digital Path) LSP encoding"; 1750 reference "RFC4328"; 1751 } 1752 identity lsp-encoding-optical-channel { 1753 base lsp-encoding-types; 1754 description 1755 "G.709 Optical Channel LSP encoding"; 1756 reference "RFC4328"; 1757 } 1758 identity lsp-encoding-line { 1759 base lsp-encoding-types; 1760 description 1761 "Line (e.g., 8B/10B) LSP encoding"; 1762 reference "RFC6004"; 1763 } 1764 identity path-signaling-type { 1765 description 1766 "base identity from which specific LSPs path 1767 setup types are derived"; 1768 } 1769 identity path-setup-static { 1770 base path-signaling-type; 1771 description 1772 "Static LSP provisioning path setup"; 1773 } 1774 identity path-setup-rsvp { 1775 base path-signaling-type; 1776 description 1777 "RSVP-TE signaling path setup"; 1778 reference "RFC3209"; 1779 } 1780 identity path-setup-sr { 1781 base path-signaling-type; 1782 description 1783 "Segment-routing path setup"; 1784 } 1786 identity path-scope-type { 1787 description 1788 "base identity from which specific path 1789 scope types are derived"; 1790 } 1791 identity path-scope-segment { 1792 base path-scope-type; 1793 description 1794 "Path scope segment"; 1795 } 1796 identity path-scope-end-to-end { 1797 base path-scope-type; 1798 description 1799 "Path scope end to end"; 1800 } 1802 identity route-usage-type { 1803 description 1804 "Base identity for route usage"; 1805 } 1806 identity route-include-object { 1807 base route-usage-type; 1808 description 1809 "Include route object"; 1810 } 1811 identity route-exclude-object { 1812 base route-usage-type; 1813 description 1814 "Exclude route object"; 1815 } 1816 identity route-exclude-srlg { 1817 base route-usage-type; 1818 description "Exclude SRLG"; 1819 } 1821 identity path-metric-type { 1822 description 1823 "Base identity for path metric type"; 1824 } 1825 identity path-metric-te { 1826 base path-metric-type; 1827 description 1828 "TE path metric"; 1829 reference "RFC3785"; 1830 } 1831 identity path-metric-igp { 1832 base path-metric-type; 1833 description 1834 "IGP path metric"; 1835 reference "RFC3785"; 1836 } 1837 identity path-metric-hop { 1838 base path-metric-type; 1839 description 1840 "Hop path metric"; 1841 } 1842 identity path-metric-delay-average { 1843 base path-metric-type; 1844 description 1845 "Unidirectional average link delay"; 1846 reference "RFC7471"; 1847 } 1848 identity path-metric-delay-minimum { 1849 base path-metric-type; 1850 description 1851 "Unidirectional minimum link delay"; 1852 reference "RFC7471"; 1853 } 1855 identity path-metric-residual-bandwidth { 1856 base path-metric-type; 1857 description 1858 "Unidirectional Residual Bandwidth, which is defined to be 1859 Maximum Bandwidth [RFC3630] minus the bandwidth currently 1860 allocated to LSPs."; 1861 reference "RFC7471"; 1862 } 1863 identity path-metric-optimize-includes { 1864 base path-metric-type; 1865 description 1866 "A metric that optimizes the number of included resources 1867 specified in a set"; 1868 } 1869 identity path-metric-optimize-excludes { 1870 base path-metric-type; 1871 description 1872 "A metric that optimizes the number of excluded resources 1873 specified in a set"; 1874 } 1876 identity path-tiebreaker-type { 1877 description 1878 "Base identity for path tie-breaker type"; 1879 } 1880 identity path-tiebreaker-minfill { 1881 base path-tiebreaker-type; 1882 description 1883 "Min-Fill LSP path placement"; 1884 } 1885 identity path-tiebreaker-maxfill { 1886 base path-tiebreaker-type; 1887 description 1888 "Max-Fill LSP path placement"; 1889 } 1890 identity path-tiebreaker-random { 1891 base path-tiebreaker-type; 1892 description 1893 "Random LSP path placement"; 1894 } 1896 identity resource-affinities-type { 1897 description 1898 "Base identity for resource affinities"; 1899 reference "RFC2702"; 1900 } 1901 identity resource-aff-include-all { 1902 base resource-affinities-type; 1903 description 1904 "The set of attribute filters associated with a 1905 tunnel all of which must be present for a link 1906 to be acceptable"; 1907 reference "RFC2702 and RFC3209"; 1908 } 1909 identity resource-aff-include-any { 1910 base resource-affinities-type; 1911 description 1912 "The set of attribute filters associated with a 1913 tunnel any of which must be present for a link 1914 to be acceptable"; 1915 reference "RFC2702 and RFC3209"; 1916 } 1917 identity resource-aff-exclude-any { 1918 base resource-affinities-type; 1919 description 1920 "The set of attribute filters associated with a 1921 tunnel any of which renders a link unacceptable"; 1922 reference "RFC2702 and RFC3209"; 1923 } 1925 identity te-optimization-criterion { 1926 description 1927 "Base identity for TE optimization criterion."; 1928 reference 1929 "RFC3272: Overview and Principles of Internet Traffic 1930 Engineering."; 1931 } 1932 identity not-optimized { 1933 base te-optimization-criterion; 1934 description "Optimization is not applied."; 1935 } 1936 identity cost { 1937 base te-optimization-criterion; 1938 description "Optimized on cost."; 1939 } 1940 identity delay { 1941 base te-optimization-criterion; 1942 description "Optimized on delay."; 1943 } 1945 identity path-computation-srlg-type { 1946 description 1947 "Base identity for SRLG path computation"; 1948 } 1949 identity srlg-ignore { 1950 base path-computation-srlg-type; 1951 description 1952 "Ignores SRLGs in path computation"; 1953 } 1954 identity srlg-strict { 1955 base path-computation-srlg-type; 1956 description 1957 "Include strict SRLG check in path computation"; 1958 } 1959 identity srlg-preferred { 1960 base path-computation-srlg-type; 1961 description 1962 "Include preferred SRLG check in path computation"; 1963 } 1964 identity srlg-weighted { 1965 base path-computation-srlg-type; 1966 description 1967 "Include weighted SRLG check in path computation"; 1969 } 1971 identity otn-rate-type { 1972 description 1973 "Base type to identify OTN bit rates of various information 1974 structures."; 1975 reference "RFC7139"; 1976 } 1977 identity odu0 { 1978 base otn-rate-type; 1979 description 1980 "ODU0 bit rate."; 1981 } 1982 identity odu1 { 1983 base otn-rate-type; 1984 description 1985 "ODU1 bit rate."; 1986 } 1987 identity odu2 { 1988 base otn-rate-type; 1989 description 1990 "ODU2 bit rate."; 1991 } 1992 identity odu3 { 1993 base otn-rate-type; 1994 description 1995 "ODU3 bit rate."; 1996 } 1997 identity odu4 { 1998 base otn-rate-type; 1999 description 2000 "ODU4 bit rate."; 2001 } 2002 identity odu2e { 2003 base otn-rate-type; 2004 description 2005 "ODU2e bit rate."; 2006 } 2007 identity oduc { 2008 base otn-rate-type; 2009 description 2010 "ODUCn bit rate."; 2011 } 2012 identity oduflex { 2013 base otn-rate-type; 2014 description 2015 "ODUflex bit rate."; 2016 } 2017 identity wdm-spectrum-type { 2018 description 2019 "Base type to identify WDM spectrum type."; 2020 } 2021 identity cwdm { 2022 base wdm-spectrum-type; 2023 description "CWDM."; 2024 reference "RFC6205"; 2025 } 2026 identity dwdm { 2027 base wdm-spectrum-type; 2028 description "DWDM."; 2029 reference "RFC6205"; 2030 } 2031 identity flexible-grid { 2032 base wdm-spectrum-type; 2033 description "Flexible grid."; 2034 reference "RFC6205"; 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 } 2066 } 2068 /** 2069 * TE label groupings 2070 **/ 2071 grouping te-label { 2072 description 2073 "This grouping defines the generic TE label. 2074 The modeling structure can be augmented for each technology. 2075 For un-specified technologies, rt-types:generalized-label 2076 is used."; 2077 container te-label { 2078 description 2079 "Container that specifies TE label. The choices can 2080 be augmented for specific dataplane technologies."; 2081 choice technology { 2082 default generic; 2083 description 2084 "Data plane technology type."; 2085 case generic { 2086 leaf generic { 2087 type rt-types:generalized-label; 2088 description 2089 "TE label specified in a generic format."; 2090 } 2091 } 2092 } 2093 leaf direction { 2094 type te-label-direction; 2095 default forward; 2096 description "Label direction"; 2097 } 2098 } 2099 } 2101 grouping te-topology-identifier { 2102 description 2103 "Augmentation for TE topology."; 2104 container te-topology-identifier { 2105 description "TE topology identifier container"; 2106 leaf provider-id { 2107 type te-global-id; 2108 default 0; 2109 description 2110 "An identifier to uniquely identify a provider. If omitted, 2111 it assumes the default topology provider ID=0"; 2112 } 2113 leaf client-id { 2114 type te-global-id; 2115 default 0; 2116 description 2117 "An identifier to uniquely identify a client. If omitted, 2118 it assumes the default topology client ID=0"; 2119 } 2120 leaf topology-id { 2121 type te-topology-id; 2122 default ''; 2123 description 2124 "When the datastore contains several topologies, the topology-id 2125 distinguishes between them. If omitted, the default empty string 2126 topology-id is assumed"; 2127 } 2128 } 2129 } 2131 /** 2132 * TE performance metric groupings 2133 **/ 2134 grouping performance-metric-one-way-delay-loss { 2135 description 2136 "Performance metric information in real time that can 2137 be applicable to links or connections. PM defined 2138 in this grouping is applicable to generic TE performance 2139 metrics as well as packet TE performance metrics."; 2140 reference 2141 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2142 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 2143 RFC7823: Performance-Based Path Selection for Explicitly 2144 Routed Label Switched Paths (LSPs) Using TE Metric 2145 Extensions"; 2146 leaf one-way-delay { 2147 type uint32 { 2148 range 0..16777215; 2149 } 2150 description "Delay or latency in micro seconds."; 2151 } 2152 leaf one-way-min-delay { 2153 type uint32 { 2154 range 0..16777215; 2155 } 2156 description "Minimum delay or latency in micro seconds."; 2157 } 2158 leaf one-way-max-delay { 2159 type uint32 { 2160 range 0..16777215; 2161 } 2162 description "Maximum delay or latency in micro seconds."; 2163 } 2164 leaf one-way-delay-variation { 2165 type uint32 { 2166 range 0..16777215; 2167 } 2168 description "Delay variation in micro seconds."; 2169 } 2170 } 2172 grouping performance-metric-two-way-delay-loss { 2173 description 2174 "Performance metric information in real time that can 2175 be applicable to links or connections. PM defined 2176 in this grouping is applicable to generic TE performance 2177 metrics as well as packet TE performance metrics."; 2178 reference 2179 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2180 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 2181 RFC7823: Performance-Based Path Selection for Explicitly 2182 Routed Label Switched Paths (LSPs) Using TE Metric 2183 Extensions"; 2184 leaf two-way-delay { 2185 type uint32 { 2186 range 0..16777215; 2187 } 2188 description "Delay or latency in micro seconds."; 2189 } 2190 leaf two-way-min-delay { 2191 type uint32 { 2192 range 0..16777215; 2193 } 2194 description "Minimum delay or latency in micro seconds."; 2195 } 2196 leaf two-way-max-delay { 2197 type uint32 { 2198 range 0..16777215; 2199 } 2200 description "Maximum delay or latency in micro seconds."; 2201 } 2202 leaf two-way-delay-variation { 2203 type uint32 { 2204 range 0..16777215; 2205 } 2206 description "Delay variation in micro seconds."; 2207 } 2208 } 2209 grouping performance-metric-one-way-bandwidth { 2210 description 2211 "Performance metric information in real time that can 2212 be applicable to links. PM defined 2213 in this grouping is applicable to generic TE performance 2214 metrics as well as packet TE performance metrics."; 2215 reference 2216 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2217 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 2218 RFC7823: Performance-Based Path Selection for Explicitly 2219 Routed Label Switched Paths (LSPs) Using TE Metric 2220 Extensions"; 2222 leaf one-way-residual-bandwidth { 2223 type rt-types:bandwidth-ieee-float32; 2224 description 2225 "Residual bandwidth that subtracts tunnel 2226 reservations from Maximum Bandwidth (or link capacity) 2227 [RFC3630] and provides an aggregated remainder across QoS 2228 classes."; 2229 } 2230 leaf one-way-available-bandwidth { 2231 type rt-types:bandwidth-ieee-float32; 2232 description 2233 "Available bandwidth that is defined to be residual 2234 bandwidth minus the measured bandwidth used for the 2235 actual forwarding of non-RSVP-TE LSP packets. For a 2236 bundled link, available bandwidth is defined to be the 2237 sum of the component link available bandwidths."; 2238 } 2239 leaf one-way-utilized-bandwidth { 2240 type rt-types:bandwidth-ieee-float32; 2241 description 2242 "Bandwidth utilization that represents the actual 2243 utilization of the link (i.e. as measured in the router). 2244 For a bundled link, bandwidth utilization is defined to 2245 be the sum of the component link bandwidth 2246 utilizations."; 2247 } 2248 } 2250 grouping performance-metric-container { 2251 description 2252 "A container containing performance metric attributes."; 2253 container performance-metric-one-way { 2254 description 2255 "One-way link performance information in real time."; 2256 reference 2257 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2258 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 2259 RFC7823: Performance-Based Path Selection for Explicitly 2260 Routed Label Switched Paths (LSPs) Using TE Metric 2261 Extensions"; 2262 uses performance-metric-one-way-delay-loss; 2263 uses performance-metric-one-way-bandwidth; 2264 } 2265 container performance-metric-two-way { 2266 description 2267 "Two-way link performance information in real time."; 2268 reference 2269 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 2270 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 2271 RFC7823: Performance-Based Path Selection for Explicitly 2272 Routed Label Switched Paths (LSPs) Using TE Metric 2273 Extensions"; 2274 uses performance-metric-two-way-delay-loss; 2275 } 2276 } 2278 /** 2279 * TE tunnel generic groupings 2280 **/ 2281 grouping explicit-route-hop { 2282 description 2283 "The explicit route entry grouping"; 2284 choice type { 2285 description 2286 "The explicit route entry type"; 2287 case numbered-node-hop { 2288 container numbered-node-hop { 2289 leaf node-id { 2290 type te-node-id; 2291 mandatory true; 2292 description 2293 "The identifier of a node in the TE topology."; 2294 } 2295 leaf hop-type { 2296 type te-hop-type; 2297 default strict; 2298 description "strict or loose hop"; 2299 } 2300 description "Numbered node route hop"; 2301 reference 2302 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2303 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2304 } 2306 } 2307 case numbered-link-hop { 2308 container numbered-link-hop { 2309 leaf link-tp-id { 2310 type te-tp-id; 2311 mandatory true; 2312 description 2313 "TE link termination point identifier."; 2314 } 2315 leaf hop-type { 2316 type te-hop-type; 2317 default strict; 2318 description "strict or loose hop"; 2319 } 2320 leaf direction { 2321 type te-link-direction; 2322 default outgoing; 2323 description "Link route object direction"; 2324 } 2325 description 2326 "Numbered link explicit route hop"; 2327 reference 2328 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2329 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2330 } 2331 } 2332 case unnumbered-link-hop { 2333 container unnumbered-link-hop { 2334 leaf link-tp-id { 2335 type te-tp-id; 2336 mandatory true; 2337 description 2338 "TE link termination point identifier. The combination 2339 of TE link ID and the TE node ID is used to identify an 2340 unnumbered TE link."; 2341 } 2342 leaf node-id { 2343 type te-node-id; 2344 mandatory true; 2345 description 2346 "The identifier of a node in the TE topology."; 2347 } 2348 leaf hop-type { 2349 type te-hop-type; 2350 default strict; 2351 description "strict or loose hop"; 2352 } 2353 leaf direction { 2354 type te-link-direction; 2355 default outgoing; 2356 description "Link route object direction"; 2357 } 2358 description 2359 "Unnumbered link explicit route hop"; 2360 reference 2361 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 2362 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 2363 } 2364 } 2365 case as-number { 2366 container as-number-hop { 2367 leaf as-number { 2368 type binary { 2369 length 2; 2370 } 2371 mandatory true; 2372 description "The AS number"; 2373 } 2374 leaf hop-type { 2375 type te-hop-type; 2376 default strict; 2377 description "strict or loose hop"; 2378 } 2379 description 2380 "Autonomous System explicit route hop"; 2381 } 2382 } 2383 case label { 2384 container label-hop { 2385 description "Label hop type"; 2386 uses te-label; 2387 } 2388 description 2389 "The label explicit route hop type"; 2390 } 2391 } 2392 } 2394 grouping record-route_state { 2395 description 2396 "The record route grouping"; 2397 leaf index { 2398 type uint32; 2399 description 2400 "Record route hop index. The index is used to 2401 identify an entry in the list. A lower index 2402 indicates the path traverses it earlier"; 2403 } 2404 choice type { 2405 description 2406 "The record route entry type"; 2407 case numbered-node-hop { 2408 container numbered-node-hop { 2409 description "Numbered node route hop container"; 2410 leaf node-id { 2411 type te-node-id; 2412 mandatory true; 2413 description 2414 "The identifier of a node in the TE topology."; 2415 } 2416 leaf-list flags { 2417 type path-attribute-flags; 2418 description "Record route per hop flags"; 2419 reference "RFC3209 and others"; 2420 } 2421 } 2422 description "Numbered node route hop"; 2423 } 2424 case numbered-link-hop { 2425 container numbered-link-hop { 2426 description "Numbered link route hop container"; 2427 leaf link-tp-id { 2428 type te-tp-id; 2429 mandatory true; 2430 description 2431 "Numbered TE link termination point identifier."; 2432 } 2433 leaf-list flags { 2434 type path-attribute-flags; 2435 description "Record route per hop flags"; 2436 reference "RFC3209 and others"; 2437 } 2438 } 2439 description "Numbered link route hop"; 2440 } 2441 case unnumbered-link-hop { 2442 container unnumbered-link-hop { 2443 leaf link-tp-id { 2444 type te-tp-id; 2445 mandatory true; 2446 description 2447 "TE link termination point identifier. The combination 2448 of TE link ID and the TE node ID is used to identify an 2449 unnumbered TE link."; 2451 } 2452 leaf node-id { 2453 type te-node-id; 2454 description 2455 "The identifier of a node in the TE topology."; 2456 } 2457 leaf-list flags { 2458 type path-attribute-flags; 2459 description "Record route per hop flags"; 2460 reference "RFC3209 and others"; 2461 } 2462 description 2463 "Unnumbered link record route hop"; 2464 reference 2465 "RFC3477: Signalling Unnumbered Links in 2466 RSVP-TE"; 2467 } 2468 description "Unnumbered link route hop"; 2469 } 2470 case label { 2471 container label-hop { 2472 description "Label route hop type"; 2473 uses te-label; 2474 leaf-list flags { 2475 type path-attribute-flags; 2476 description "Record route per hop flags"; 2477 reference "RFC3209 and others"; 2478 } 2479 } 2480 description 2481 "The Label record route entry types"; 2482 } 2483 } 2484 } 2486 grouping label-restriction-info { 2487 description "Label set item info"; 2488 leaf restriction { 2489 type enumeration { 2490 enum inclusive { 2491 description "The label or label range is inclusive."; 2492 } 2493 enum exclusive { 2494 description "The label or label range is exclusive."; 2495 } 2496 } 2497 default inclusive; 2498 description 2499 "Whether the list item is inclusive or exclusive."; 2500 } 2501 leaf index { 2502 type uint32; 2503 description 2504 "Then index of the label restriction list entry."; 2505 } 2506 container label-start { 2507 must "not(../label-end/te-label/direction) or " 2508 + "not(te-label/direction) " 2509 + "or ../label-end/te-label/direction = te-label/direction" { 2510 error-message 2511 "label-start and label-end must have the same direction."; 2512 } 2513 description 2514 "This is the starting label if a label range is specified. 2515 This is the label value if a single label is specified, 2516 in which case, attribute 'label-end' is not set."; 2517 uses te-label; 2518 } 2519 container label-end { 2520 description 2521 "The ending label if a label range is specified; 2522 This attribute is not set, If a single label is 2523 specified."; 2524 uses te-label; 2525 } 2526 container label-step { 2527 description 2528 "The step increment between labels in the label range. 2529 The label start/end values will have to be consistent 2530 with the sign of label step. For example, 2531 label-start < label-end enforces label-step > 0 2532 label-start > label-end enforces label-step < 0"; 2533 choice technology { 2534 default generic; 2535 description 2536 "Data plane technology type."; 2537 case generic { 2538 leaf generic { 2539 type int32; 2540 default 1; 2541 description "Label range step"; 2542 } 2543 } 2544 } 2545 } 2546 leaf range-bitmap { 2547 type binary; 2548 description 2549 "When there are gaps between label-start and label-end, 2550 this attribute is used to specify the positions 2551 of the used labels. This is represented in big-endian and 2552 in base64 representation as RFC7951, section 6.6 states"; 2553 } 2554 } 2556 grouping label-set-info { 2557 description 2558 "Grouping for List of label restrictions specifying what labels 2559 may or may not be used on a link connectivity."; 2560 container label-restrictions { 2561 description 2562 "The label restrictions container"; 2563 list label-restriction { 2564 key "index"; 2565 description 2566 "The absence of label-set implies that all labels are 2567 acceptable; otherwise only restricted labels are 2568 available."; 2569 reference 2570 "RFC7579: General Network Element Constraint Encoding 2571 for GMPLS-Controlled Networks"; 2572 uses label-restriction-info; 2573 } 2574 } 2575 } 2577 grouping optimizations_config { 2578 description "Optimization metrics configuration grouping"; 2579 leaf metric-type { 2580 type identityref { 2581 base path-metric-type; 2582 } 2583 description 2584 "Identifies an entry in the list of metric-types to 2585 optimize the TE path for."; 2586 } 2587 leaf weight { 2588 type uint8; 2589 default 1; 2590 description "TE path metric normalization weight"; 2591 } 2592 container explicit-route-exclude-objects { 2593 when "../metric-type = " + 2594 "'path-metric-optimize-excludes'"; 2596 description 2597 "Container for the exclude route object list"; 2598 uses path-route-exclude-objects; 2599 } 2600 container explicit-route-include-objects { 2601 when "../metric-type = " + 2602 "'path-metric-optimize-includes'"; 2603 description 2604 "Container for the include route object list"; 2605 uses path-route-include-objects; 2606 } 2607 } 2609 grouping common-constraints_config { 2610 description 2611 "Common constraints grouping that can be set on 2612 a constraint set or directly on the tunnel"; 2614 uses te-bandwidth { 2615 description 2616 "A requested bandwidth to use for path computation"; 2617 } 2619 leaf link-protection { 2620 type identityref { 2621 base link-protection-type; 2622 } 2623 default link-protection-unprotected; 2624 description 2625 "Link Protection Type desired for this link."; 2626 reference 2627 "RFC4202: Routing Extensions in Support of 2628 Generalized Multi-Protocol Label Switching (GMPLS)."; 2629 } 2631 leaf setup-priority { 2632 type uint8 { 2633 range "0..7"; 2634 } 2635 default 7; 2636 description 2637 "TE LSP requested setup priority"; 2638 reference "RFC3209"; 2639 } 2640 leaf hold-priority { 2641 type uint8 { 2642 range "0..7"; 2643 } 2644 default 7; 2645 description 2646 "TE LSP requested hold priority"; 2647 reference "RFC3209"; 2648 } 2649 leaf signaling-type { 2650 type identityref { 2651 base path-signaling-type; 2652 } 2653 default path-setup-rsvp; 2654 description "TE tunnel path signaling type"; 2655 } 2656 } 2658 grouping tunnel-constraints_config { 2659 description 2660 "Tunnel constraints grouping that can be set on 2661 a constraint set or directly on the tunnel"; 2662 uses te-topology-identifier; 2663 uses common-constraints_config; 2664 } 2666 grouping path-metrics-bounds_config { 2667 description "TE path metric bounds grouping"; 2668 } 2670 grouping path-objective-function_config { 2671 description "Optimization metrics configuration grouping"; 2672 leaf objective-function-type { 2673 type identityref { 2674 base objective-function-type; 2675 } 2676 description "Objective function entry"; 2677 } 2678 } 2680 grouping path-constraints-route-objects { 2681 description 2682 "List of route entries to be included or excluded when performing 2683 path computation."; 2684 container explicit-route-objects-always { 2685 description 2686 "Container for the exclude route object list"; 2687 list route-object-exclude-always { 2688 key index; 2689 description 2690 "List of route objects to always exclude 2691 from path computation"; 2693 leaf index { 2694 type uint32; 2695 description 2696 "Explicit route object index. The index is used to 2697 identify an entry in the list. A lower index indicates 2698 the path traverses it earlier"; 2699 } 2700 uses explicit-route-hop; 2701 } 2702 list route-object-include-exclude { 2703 key index; 2704 description 2705 "List of route objects to include or exclude in path 2706 computation"; 2707 leaf explicit-route-usage { 2708 type identityref { 2709 base route-usage-type; 2710 } 2711 description "Include or exclude usage"; 2712 } 2713 leaf index { 2714 type uint32; 2715 description 2716 "Route object entry index. A lower index indicates 2717 path traverses the hop earlier than the higher index 2718 hop(s)"; 2719 } 2720 uses explicit-route-hop { 2721 augment "type" { 2722 case srlg { 2723 container srlg { 2724 description "SRLG container"; 2725 leaf srlg { 2726 type uint32; 2727 description "SRLG value"; 2728 } 2729 } 2730 description "An SRLG value to be included or excluded"; 2731 } 2732 description 2733 "Augmentation to generic explicit route for SRLG 2734 exclusion"; 2735 } 2736 } 2737 } 2738 } 2739 } 2740 grouping path-route-include-objects { 2741 description 2742 "List of route object(s) to be included when performing 2743 the path computation."; 2744 list route-object-include-object { 2745 key index; 2746 description 2747 "List of explicit route objects to be included 2748 in path computation"; 2749 leaf index { 2750 type uint32; 2751 description 2752 "Route object entry index. A lower index indicates 2753 path traverses the hop earlier than the higher index 2754 hop(s)"; 2755 } 2756 uses explicit-route-hop; 2757 } 2758 } 2760 grouping path-route-exclude-objects { 2761 description 2762 "List of route object(s) to be excluded when performing 2763 the path computation."; 2764 list route-object-exclude-object { 2765 key index; 2766 description 2767 "List of explicit route objects to be excluded 2768 in path computation"; 2769 leaf index { 2770 type uint32; 2771 description 2772 "Route object entry index. The index in this case 2773 identifies the entry and holds no other meaning"; 2774 } 2775 uses explicit-route-hop { 2776 augment "type" { 2777 case srlg { 2778 container srlg { 2779 description "SRLG container"; 2780 leaf srlg { 2781 type uint32; 2782 description "SRLG value"; 2783 } 2784 } 2785 description "An SRLG value to be included or excluded"; 2786 } 2787 description 2788 "Augmentation to generic explicit route for SRLG exclusion"; 2789 } 2790 } 2791 } 2792 } 2794 grouping generic-path-metric-bounds { 2795 description "TE path metric bounds grouping"; 2796 container path-metric-bounds { 2797 description "TE path metric bounds container"; 2798 list path-metric-bound { 2799 key metric-type; 2800 description "List of TE path metric bounds"; 2801 leaf metric-type { 2802 type identityref { 2803 base path-metric-type; 2804 } 2805 description 2806 "Identifies an entry in the list of metric-types 2807 bound for the TE path."; 2808 } 2809 leaf upper-bound { 2810 type uint64; 2811 default 0; 2812 description 2813 "Upper bound on end-to-end TE path metric. A zero indicate 2814 an unbounded upper limit for the specific metric-type"; 2815 } 2816 } 2817 } 2818 } 2820 grouping generic-path-optimization { 2821 description "TE generic path optimization grouping"; 2823 container optimizations { 2824 description 2825 "The objective function container that includes 2826 attributes to impose when computing a TE path"; 2828 choice algorithm { 2829 description "Optimizations algorithm."; 2830 case metric { 2831 if-feature path-optimization-metric; 2832 /* Optimize by metric */ 2833 list optimization-metric { 2834 key "metric-type"; 2835 description "TE path metric type"; 2836 uses optimizations_config; 2837 } 2838 /* Tiebreakers */ 2839 container tiebreakers { 2840 description 2841 "The list of tiebreaker criterion to apply 2842 on an equally favored set of paths to pick best"; 2843 list tiebreaker { 2844 key "tiebreaker-type"; 2845 description 2846 "The list of tiebreaker criterion to apply 2847 on an equally favored set of paths to pick best"; 2848 leaf tiebreaker-type { 2849 type identityref { 2850 base path-metric-type; 2851 } 2852 description 2853 "Identifies an entry in the list of tiebreakers."; 2854 } 2855 } 2856 } 2857 } 2858 case objective-function { 2859 if-feature path-optimization-objective-function; 2860 /* Objective functions */ 2861 container objective-function { 2862 description 2863 "The objective function container that includes 2864 attributes to impose when computing a TE path"; 2865 uses path-objective-function_config; 2866 } 2867 } 2868 } 2869 } 2870 } 2872 grouping generic-path-affinities { 2873 description 2874 "Path affinities grouping"; 2875 container path-affinities-values { 2876 description 2877 "Path affinities values representation"; 2878 list path-affinities-value { 2879 key "usage"; 2880 description 2881 "List of named affinity constraints"; 2882 leaf usage { 2883 type identityref { 2884 base resource-affinities-type; 2885 } 2886 description 2887 "Identifies an entry in the list of value affinities 2888 constraints"; 2889 } 2890 leaf value { 2891 type admin-groups; 2892 default ''; 2893 description "The affinity value. The default is empty."; 2894 } 2895 } 2896 } 2897 container path-affinity-names { 2898 description 2899 "Path affinities named representation style"; 2900 list path-affinity-name { 2901 key "usage"; 2902 description "List of named affinity constraints"; 2903 leaf usage { 2904 type identityref { 2905 base resource-affinities-type; 2906 } 2907 description 2908 "Identifies an entry in the list of named affinities 2909 constraints"; 2910 } 2911 list affinity-name { 2912 key "name"; 2913 leaf name { 2914 type string; 2915 description "Identify a named affinity entry."; 2916 } 2917 description "List of named affinities"; 2918 } 2919 } 2920 } 2921 } 2923 grouping generic-path-srlgs { 2924 description 2925 "Path SRLG grouping"; 2926 container path-srlgs-lists { 2927 description 2928 "Path SRLG properties container"; 2929 list path-srlgs-list { 2930 key "usage"; 2931 description 2932 "List entries of value SRLGs to be included or excluded"; 2933 leaf usage { 2934 type identityref { 2935 base route-usage-type; 2936 } 2937 description 2938 "Identifies an entry of list of SRLGs to either include 2939 or exclude"; 2940 } 2941 leaf-list values { 2942 type srlg; 2943 description "List of SRLG values"; 2944 } 2945 } 2946 } 2947 container path-srlgs-names { 2948 description "Container for named SRLG list"; 2949 list path-srlgs-name { 2950 key "usage"; 2951 description 2952 "List entries of named SRLGs to be included or excluded"; 2953 leaf usage { 2954 type identityref { 2955 base route-usage-type; 2956 } 2957 description 2958 "Identifies an entry of list of named SRLGs to either 2959 include or exclude"; 2960 } 2961 leaf-list names { 2962 type string; 2963 description "List named SRLGs"; 2964 } 2965 } 2966 } 2967 } 2969 grouping generic-path-disjointness { 2970 description "Path disjointness grouping"; 2971 leaf disjointness { 2972 type te-path-disjointness; 2973 description 2974 "The type of resource disjointness. 2975 Under primary path, disjointness level applies to 2976 all secondary LSPs. Under secondary, disjointness 2977 level overrides the one under primary"; 2978 } 2979 } 2980 grouping common-path-constraints-attributes { 2981 description 2982 "Common path constraints configuration grouping"; 2983 uses common-constraints_config; 2984 uses generic-path-metric-bounds; 2985 uses generic-path-affinities; 2986 uses generic-path-srlgs; 2987 } 2989 grouping generic-path-constraints { 2990 description 2991 "Global named path constraints configuration 2992 grouping"; 2993 container path-constraints { 2994 description "TE named path constraints container"; 2995 uses common-path-constraints-attributes; 2996 uses generic-path-disjointness; 2997 } 2998 } 3000 grouping generic-path-properties { 3001 description "TE generic path properties grouping"; 3002 container path-properties { 3003 config false; 3004 description "The TE path properties"; 3005 list path-metric { 3006 key metric-type; 3007 description "TE path metric type"; 3008 leaf metric-type { 3009 type identityref { 3010 base path-metric-type; 3011 } 3012 description "TE path metric type"; 3013 } 3014 leaf accumulative-value { 3015 type uint64; 3016 description "TE path metric accumulative value"; 3017 } 3018 } 3019 uses generic-path-affinities; 3020 uses generic-path-srlgs; 3021 container path-route-objects { 3022 description 3023 "Container for the list of route objects either returned by 3024 the computation engine or actually used by an LSP"; 3025 list path-route-object { 3026 key index; 3027 description 3028 "List of route objects either returned by the computation 3029 engine or actually used by an LSP"; 3030 leaf index { 3031 type uint32; 3032 description 3033 "Route object entry index. A lower index indicates 3034 path traverses the hop earlier than the higher index 3035 hop(s)"; 3036 } 3037 uses explicit-route-hop; 3038 } 3039 } 3040 } 3041 } 3042 } 3043 3045 Figure 1: TE basic types YANG module 3047 5. IETF MPLS TE Types YANG Module 3049 file "ietf-te-mpls-types@2018-12-21.yang" 3050 module ietf-te-mpls-types { 3051 yang-version 1.1; 3052 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls-types"; 3054 /* Replace with IANA when assigned */ 3055 prefix "te-mpls-types"; 3057 /* Import TE generic types */ 3058 import ietf-te-types { 3059 prefix te-types; 3060 reference 3061 "RFC XXXX: A YANG Data Model for Common Traffic Engineering 3062 Types"; 3063 } 3065 organization 3066 "IETF TEAS Working Group"; 3068 contact 3069 "WG Web: 3070 WG List: 3072 WG Chair: Lou Berger 3073 3075 WG Chair: Vishnu Pavan Beeram 3076 3078 Editor: Tarek Saad 3079 3081 Editor: Rakesh Gandhi 3082 3084 Editor: Vishnu Pavan Beeram 3085 3087 Editor: Himanshu Shah 3088 3090 Editor: Xufeng Liu 3091 3093 Editor: Igor Bryskin 3094 3096 Editor: Young Lee 3097 "; 3099 description 3100 "This module contains a collection of generally useful MPLS TE 3101 specific YANG data type definitions. The model fully conforms 3102 to the Network Management Datastore Architecture (NMDA). 3104 Copyright (c) 2018 IETF Trust and the persons 3105 identified as authors of the code. All rights reserved. 3107 Redistribution and use in source and binary forms, with or 3108 without modification, is permitted pursuant to, and subject 3109 to the license terms contained in, the Simplified BSD License 3110 set forth in Section 4.c of the IETF Trust's Legal Provisions 3111 Relating to IETF Documents 3112 (https://trustee.ietf.org/license-info). 3113 This version of this YANG module is part of RFC XXXX; see 3114 the RFC itself for full legal notices."; 3116 // RFC Ed.: replace XXXX with actual RFC number and remove this 3117 // note. 3119 // RFC Ed.: update the date below with the date of RFC publication 3120 // and remove this note. 3122 revision "2018-12-21" { 3123 description "Latest revision of TE MPLS types"; 3124 reference 3125 "RFC XXXX: A YANG Data Model for Common Traffic Engineering 3126 Types"; 3127 } 3129 /** 3130 * Typedefs 3131 */ 3132 typedef te-bandwidth-requested-type { 3133 type enumeration { 3134 enum specified { 3135 description 3136 "Bandwidth is explicitly specified"; 3137 } 3138 enum auto { 3139 description 3140 "Bandwidth is automatically computed"; 3141 } 3142 } 3143 description 3144 "enumerated type for specifying whether bandwidth is 3145 explicitly specified or automatically computed"; 3146 } 3148 typedef te-class-type { 3149 type uint8; 3150 description 3151 "Diffserv-TE class-type that defines a set of Traffic 3152 Trunks crossing a link that is governed by a specific 3153 set of bandwidth constraints. CT is used for the 3154 purposes of link bandwidth allocation, constraint- 3155 based routing and admission control."; 3156 reference "RFC4124: Protocols for Diffserv-aware TE"; 3157 } 3159 typedef bc-type { 3160 type uint8 { 3161 range "0..7"; 3162 } 3163 description 3164 "Diffserv-TE bandwidth constraint as defined in RFC4124"; 3165 reference "RFC4124: Protocols for Diffserv-aware TE"; 3166 } 3168 typedef bandwidth-kbps { 3169 type uint64; 3170 units "Kbps"; 3171 description 3172 "Bandwidth values expressed in kilobits per second"; 3173 } 3175 typedef bandwidth-mbps { 3176 type uint64; 3177 units "Mbps"; 3178 description 3179 "Bandwidth values expressed in megabits per second"; 3180 } 3182 typedef bandwidth-gbps { 3183 type uint64; 3184 units "Gbps"; 3185 description 3186 "Bandwidth values expressed in gigabits per second"; 3187 } 3189 identity backup-protection-type { 3190 description 3191 "Base identity for backup protection type"; 3192 } 3194 identity backup-protection-link { 3195 base backup-protection-type; 3196 description 3197 "backup provides link protection only"; 3198 } 3200 identity backup-protection-node-link { 3201 base backup-protection-type; 3202 description 3203 "backup offers node (preferred) or link protection"; 3204 } 3206 identity bc-model-type { 3207 description 3208 "Base identity for Diffserv-TE bandwidth constraint 3209 model type"; 3210 reference "RFC4124: Protocols for Diffserv-aware TE"; 3211 } 3213 identity bc-model-rdm { 3214 base bc-model-type; 3215 description 3216 "Russian Doll bandwidth constraint model type."; 3217 reference "RFC4127: Russian Dolls Model for DS-TE"; 3218 } 3219 identity bc-model-mam { 3220 base bc-model-type; 3221 description 3222 "Maximum Allocation bandwidth constraint 3223 model type."; 3224 reference "RFC4125: Maximum Allocation Model for DS-TE"; 3225 } 3227 identity bc-model-mar { 3228 base bc-model-type; 3229 description 3230 "Maximum Allocation with Reservation 3231 bandwidth constraint model type."; 3232 reference "RFC4126: MAR Bandwidth Constraints Model for DS-TE"; 3233 } 3235 grouping performance-metric-container-packet { 3236 description 3237 "A container containing performance metric attributes."; 3238 uses te-types:performance-metric-container { 3239 augment performance-metric-one-way { 3240 leaf one-way-packet-loss { 3241 type decimal64 { 3242 fraction-digits 6; 3243 range "0 .. 50.331642"; 3244 } 3245 description 3246 "Packet loss as a percentage of the total traffic sent 3247 over a configurable interval. The finest precision is 3248 0.000003%."; 3249 } 3250 description 3251 "PM one-way packet specific augmentation to generic PM 3252 grouping"; 3253 } 3254 augment performance-metric-two-way { 3255 leaf two-way-packet-loss { 3256 type decimal64 { 3257 fraction-digits 6; 3258 range "0 .. 50.331642"; 3259 } 3260 description 3261 "Packet loss as a percentage of the total traffic sent 3262 over a configurable interval. The finest precision is 3263 0.000003%."; 3264 } 3265 description 3266 "PM two-way packet specific augmentation to generic PM 3267 grouping"; 3268 } 3269 } 3270 } 3271 } 3272 3274 Figure 2: TE MPLS types YANG module 3276 6. IANA Considerations 3278 This document registers the following URIs in the IETF XML registry 3279 [RFC3688]. Following the format in [RFC3688], the following 3280 registration is requested to be made. 3282 URI: urn:ietf:params:xml:ns:yang:ietf-te-types XML: N/A, the 3283 requested URI is an XML namespace. 3285 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls-types XML: N/A, the 3286 requested URI is an XML namespace. 3288 This document registers a YANG module in the YANG Module Names 3289 registry [RFC6020]. 3291 name: ietf-te-types namespace: urn:ietf:params:xml:ns:yang:ietf-te- 3292 types prefix: ietf-te-types reference: RFC3209 3294 name: ietf-te-mpls-types namespace: urn:ietf:params:xml:ns:yang:ietf- 3295 te-mpls-types prefix: ietf-te-mpls-types reference: RFC3209 3297 7. Security Considerations 3299 This document defines common TE type definitions (i.e., typedef, 3300 identity and grouping statements) using the YANG data modeling 3301 language. The definitions themselves have no security or privacy 3302 impact on the Internet, but the usage of these definitions in 3303 concrete YANG modules might have. The security considerations 3304 spelled out in the YANG 1.1 specification [RFC7950] apply for this 3305 document as well. 3307 8. Acknowledgement 3309 The authors would like to thank the members of the multi-vendor YANG 3310 design team who are involved in the definition of these data types. 3312 The authors would also like to thank Loa Andersson, Lou Berger, 3313 Sergio Belotti, Italo Busi, Carlo Perocchio, Francesco Lazzeri, Aihua 3314 Guo, Dhruv Dhody, Anurag Sharma, and Xian Zhang for their comments 3315 and providing valuable feedback on this document. 3317 9. Contributors 3319 Himanshu Shah 3320 Ciena 3322 Email: hshah@ciena.com 3324 Young Lee 3325 Huawei Technologies 3327 Email: leeyoung@huawei.com 3329 10. References 3331 10.1. Normative References 3333 [I-D.ietf-teas-yang-rsvp] 3334 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 3335 and H. Shah, "A YANG Data Model for Resource Reservation 3336 Protocol (RSVP)", draft-ietf-teas-yang-rsvp-09 (work in 3337 progress), May 2018. 3339 [I-D.ietf-teas-yang-te] 3340 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 3341 I. Bryskin, "A YANG Data Model for Traffic Engineering 3342 Tunnels and Interfaces", draft-ietf-teas-yang-te-17 (work 3343 in progress), October 2018. 3345 [I-D.ietf-teas-yang-te-topo] 3346 Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and 3347 O. Dios, "YANG Data Model for Traffic Engineering (TE) 3348 Topologies", draft-ietf-teas-yang-te-topo-18 (work in 3349 progress), June 2018. 3351 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3352 Requirement Levels", BCP 14, RFC 2119, 3353 DOI 10.17487/RFC2119, March 1997, 3354 . 3356 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 3357 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 3358 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 3359 . 3361 [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label 3362 Switching (GMPLS) Signaling Functional Description", 3363 RFC 3471, DOI 10.17487/RFC3471, January 2003, 3364 . 3366 [RFC3477] Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links 3367 in Resource ReSerVation Protocol - Traffic Engineering 3368 (RSVP-TE)", RFC 3477, DOI 10.17487/RFC3477, January 2003, 3369 . 3371 [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering 3372 (TE) Extensions to OSPF Version 2", RFC 3630, 3373 DOI 10.17487/RFC3630, September 2003, 3374 . 3376 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 3377 DOI 10.17487/RFC3688, January 2004, 3378 . 3380 [RFC3785] Le Faucheur, F., Uppili, R., Vedrenne, A., Merckx, P., and 3381 T. Telkamp, "Use of Interior Gateway Protocol (IGP) Metric 3382 as a second MPLS Traffic Engineering (TE) Metric", BCP 87, 3383 RFC 3785, DOI 10.17487/RFC3785, May 2004, 3384 . 3386 [RFC4090] Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast 3387 Reroute Extensions to RSVP-TE for LSP Tunnels", RFC 4090, 3388 DOI 10.17487/RFC4090, May 2005, 3389 . 3391 [RFC4124] Le Faucheur, F., Ed., "Protocol Extensions for Support of 3392 Diffserv-aware MPLS Traffic Engineering", RFC 4124, 3393 DOI 10.17487/RFC4124, June 2005, 3394 . 3396 [RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in 3397 Support of Generalized Multi-Protocol Label Switching 3398 (GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005, 3399 . 3401 [RFC4872] Lang, J., Ed., Rekhter, Y., Ed., and D. Papadimitriou, 3402 Ed., "RSVP-TE Extensions in Support of End-to-End 3403 Generalized Multi-Protocol Label Switching (GMPLS) 3404 Recovery", RFC 4872, DOI 10.17487/RFC4872, May 2007, 3405 . 3407 [RFC4873] Berger, L., Bryskin, I., Papadimitriou, D., and A. Farrel, 3408 "GMPLS Segment Recovery", RFC 4873, DOI 10.17487/RFC4873, 3409 May 2007, . 3411 [RFC4875] Aggarwal, R., Ed., Papadimitriou, D., Ed., and S. 3412 Yasukawa, Ed., "Extensions to Resource Reservation 3413 Protocol - Traffic Engineering (RSVP-TE) for Point-to- 3414 Multipoint TE Label Switched Paths (LSPs)", RFC 4875, 3415 DOI 10.17487/RFC4875, May 2007, 3416 . 3418 [RFC5003] Metz, C., Martini, L., Balus, F., and J. Sugimoto, 3419 "Attachment Individual Identifier (AII) Types for 3420 Aggregation", RFC 5003, DOI 10.17487/RFC5003, September 3421 2007, . 3423 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic 3424 Engineering", RFC 5305, DOI 10.17487/RFC5305, October 3425 2008, . 3427 [RFC5307] Kompella, K., Ed. and Y. Rekhter, Ed., "IS-IS Extensions 3428 in Support of Generalized Multi-Protocol Label Switching 3429 (GMPLS)", RFC 5307, DOI 10.17487/RFC5307, October 2008, 3430 . 3432 [RFC5329] Ishiguro, K., Manral, V., Davey, A., and A. Lindem, Ed., 3433 "Traffic Engineering Extensions to OSPF Version 3", 3434 RFC 5329, DOI 10.17487/RFC5329, September 2008, 3435 . 3437 [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of 3438 Objective Functions in the Path Computation Element 3439 Communication Protocol (PCEP)", RFC 5541, 3440 DOI 10.17487/RFC5541, June 2009, 3441 . 3443 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 3444 the Network Configuration Protocol (NETCONF)", RFC 6020, 3445 DOI 10.17487/RFC6020, October 2010, 3446 . 3448 [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic 3449 Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119, 3450 February 2011, . 3452 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 3453 and A. Bierman, Ed., "Network Configuration Protocol 3454 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 3455 . 3457 [RFC6370] Bocci, M., Swallow, G., and E. Gray, "MPLS Transport 3458 Profile (MPLS-TP) Identifiers", RFC 6370, 3459 DOI 10.17487/RFC6370, September 2011, 3460 . 3462 [RFC6378] Weingarten, Y., Ed., Bryant, S., Osborne, E., Sprecher, 3463 N., and A. Fulignoli, Ed., "MPLS Transport Profile (MPLS- 3464 TP) Linear Protection", RFC 6378, DOI 10.17487/RFC6378, 3465 October 2011, . 3467 [RFC6780] Berger, L., Le Faucheur, F., and A. Narayanan, "RSVP 3468 ASSOCIATION Object Extensions", RFC 6780, 3469 DOI 10.17487/RFC6780, October 2012, 3470 . 3472 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 3473 RFC 6991, DOI 10.17487/RFC6991, July 2013, 3474 . 3476 [RFC7471] Giacalone, S., Ward, D., Drake, J., Atlas, A., and S. 3477 Previdi, "OSPF Traffic Engineering (TE) Metric 3478 Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015, 3479 . 3481 [RFC7810] Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and 3482 Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions", 3483 RFC 7810, DOI 10.17487/RFC7810, May 2016, 3484 . 3486 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 3487 RFC 7950, DOI 10.17487/RFC7950, August 2016, 3488 . 3490 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 3491 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 3492 May 2017, . 3494 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 3495 "Common YANG Data Types for the Routing Area", RFC 8294, 3496 DOI 10.17487/RFC8294, December 2017, 3497 . 3499 10.2. Informative References 3501 [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. 3502 McManus, "Requirements for Traffic Engineering Over MPLS", 3503 RFC 2702, DOI 10.17487/RFC2702, September 1999, 3504 . 3506 [RFC4125] Le Faucheur, F. and W. Lai, "Maximum Allocation Bandwidth 3507 Constraints Model for Diffserv-aware MPLS Traffic 3508 Engineering", RFC 4125, DOI 10.17487/RFC4125, June 2005, 3509 . 3511 [RFC4126] Ash, J., "Max Allocation with Reservation Bandwidth 3512 Constraints Model for Diffserv-aware MPLS Traffic 3513 Engineering & Performance Comparisons", RFC 4126, 3514 DOI 10.17487/RFC4126, June 2005, 3515 . 3517 [RFC4127] Le Faucheur, F., Ed., "Russian Dolls Bandwidth Constraints 3518 Model for Diffserv-aware MPLS Traffic Engineering", 3519 RFC 4127, DOI 10.17487/RFC4127, June 2005, 3520 . 3522 [RFC4427] Mannie, E., Ed. and D. Papadimitriou, Ed., "Recovery 3523 (Protection and Restoration) Terminology for Generalized 3524 Multi-Protocol Label Switching (GMPLS)", RFC 4427, 3525 DOI 10.17487/RFC4427, March 2006, 3526 . 3528 Authors' Addresses 3530 Tarek Saad 3531 Cisco Systems Inc 3533 Email: tsaad@cisco.com 3535 Rakesh Gandhi 3536 Cisco Systems Inc 3538 Email: rgandhi@cisco.com 3540 Xufeng Liu 3541 Volta Networks 3543 Email: xufeng.liu.ietf@gmail.com 3544 Vishnu Pavan Beeram 3545 Juniper Networks 3547 Email: vbeeram@juniper.net 3549 Igor Bryskin 3550 Huawei Technologies 3552 Email: Igor.Bryskin@huawei.com