idnits 2.17.1 draft-busi-teas-te-types-update-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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (4 April 2022) is 745 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 (-16) exists of draft-ietf-teas-yang-l3-te-topo-12 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-29 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TEAS Working Group I. Busi 3 Internet-Draft Huawei 4 Updates: 8776 (if approved) A. Guo 5 Intended status: Standards Track Futurewei Technologies 6 Expires: 6 October 2022 X. Liu 7 IBM Corporation 8 T. Saad 9 Juniper Networks 10 R. Gandhi 11 Cisco Systems, Inc. 12 V. P. Beeram 13 Juniper Networks 14 I. Bryskin 15 Individual 16 4 April 2022 18 Updated Common YANG Data Types for Traffic Engineering 19 draft-busi-teas-te-types-update-02 21 Abstract 23 This document defines few additional common data types and groupings 24 in YANG data modeling language to be imported by modules that model 25 Traffic Engineering (TE) configuration and state capabilities. 27 This document updates RFC 8776 with a new revision of the module 28 ietf-te-types. 30 Status of This Memo 32 This Internet-Draft is submitted in full conformance with the 33 provisions of BCP 78 and BCP 79. 35 Internet-Drafts are working documents of the Internet Engineering 36 Task Force (IETF). Note that other groups may also distribute 37 working documents as Internet-Drafts. The list of current Internet- 38 Drafts is at https://datatracker.ietf.org/drafts/current/. 40 Internet-Drafts are draft documents valid for a maximum of six months 41 and may be updated, replaced, or obsoleted by other documents at any 42 time. It is inappropriate to use Internet-Drafts as reference 43 material or to cite them other than as "work in progress." 45 This Internet-Draft will expire on 6 October 2022. 47 Copyright Notice 49 Copyright (c) 2022 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 This document is subject to BCP 78 and the IETF Trust's Legal 53 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 54 license-info) in effect on the date of publication of this document. 55 Please review these documents carefully, as they describe your rights 56 and restrictions with respect to this document. Code Components 57 extracted from this document must include Revised BSD License text as 58 described in Section 4.e of the Trust Legal Provisions and are 59 provided without warranty as described in the Revised BSD License. 61 Table of Contents 63 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 64 1.1. Requirements Notation . . . . . . . . . . . . . . . . . . 3 65 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 66 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 67 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 68 3. TE Types YANG Module Revision . . . . . . . . . . . . . . . . 3 69 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 75 70 5. Security Considerations . . . . . . . . . . . . . . . . . . . 76 71 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 76 72 6.1. Normative References . . . . . . . . . . . . . . . . . . 76 73 6.2. Informative References . . . . . . . . . . . . . . . . . 76 74 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 77 75 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 77 77 1. Introduction 79 After the pubblication of [RFC8776], the need to add a new typedef 80 and a new grouping to ietf-te-types YANG module has arisen. 82 These definitions have been developed in [I-D.ietf-teas-yang-te] and 83 [I-D.ietf-teas-yang-l3-te-topo] and are quite mature: 84 [I-D.ietf-teas-yang-te] in particular is ready from WG Last Call. 86 However, these defintions have broader applicability than the I-D 87 where they have originated, so it makes sense to move them within the 88 ietf-te-types YANG module. 90 1.1. Requirements Notation 92 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 93 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 94 "OPTIONAL" in this document are to be interpreted as described in BCP 95 14 [RFC2119] [RFC8174] when, and only when, they appear in all 96 capitals, as shown here. 98 1.2. Terminology 100 The terminology for describing YANG data models is found in 101 [RFC7950]. 103 1.3. Prefixes in Data Node Names 105 In this document, names of data nodes and other data model objects, 106 added to the ietf-te-types YANG module do not need to be prefixed. 108 The revision of the ietf-te-types YANG module uses the prefixes 109 defined in section 1.2 of [RFC8776]. 111 2. Overview 113 The module ietf-te-types has been updated to add the following YANG 114 identies, types and groupings which can be reused by TE YANG models: 116 bandwidth-scientific-notation This types represents the bandwidth in 117 bit-per-second, using the scientific notation (e.g., 10e3). 119 encoding-and-switching-type This is a common grouping to define the 120 LSP encoding and switching types. 122 3. TE Types YANG Module Revision 124 This section provides the updated revision of the "ietf-te-types" 125 YANG module. 127 NOTE: Only the typedef bandwidth-scientific-notation and the grouping 128 encoding-and-switching-type have been added in this module revision. 129 Please focus your review on this part. 131 RFC Editor: remove the note above and this note 132 file "ietf-te-types@2022-03-25.yang" 133 module ietf-te-types { 134 yang-version 1.1; 135 namespace "urn:ietf:params:xml:ns:yang:ietf-te-types"; 136 prefix te-types; 138 import ietf-inet-types { 139 prefix inet; 140 reference 141 "RFC 6991: Common YANG Data Types"; 142 } 143 import ietf-yang-types { 144 prefix yang; 145 reference 146 "RFC 6991: Common YANG Data Types"; 147 } 148 import ietf-routing-types { 149 prefix rt-types; 150 reference 151 "RFC 8294: Common YANG Data Types for the Routing Area"; 152 } 154 organization 155 "IETF Traffic Engineering Architecture and Signaling (TEAS) 156 Working Group"; 157 contact 158 "WG Web: 159 WG List: 161 Editor: Tarek Saad 162 164 Editor: Rakesh Gandhi 165 167 Editor: Vishnu Pavan Beeram 168 170 Editor: Xufeng Liu 171 173 Editor: Igor Bryskin 174 "; 175 description 176 "This YANG module contains a collection of generally useful 177 YANG data type definitions specific to TE. The model fully 178 conforms to the Network Management Datastore Architecture 179 (NMDA). 181 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL 182 NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 183 'MAY', and 'OPTIONAL' in this document are to be interpreted as 184 described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, 185 they appear in all capitals, as shown here. 187 Copyright (c) 2022 IETF Trust and the persons identified as 188 authors of the code. All rights reserved. 190 Redistribution and use in source and binary forms, with or 191 without modification, is permitted pursuant to, and subject to 192 the license terms contained in, the Simplified BSD License set 193 forth in Section 4.c of the IETF Trust's Legal Provisions 194 Relating to IETF Documents 195 (https://trustee.ietf.org/license-info). 197 This version of this YANG module is part of RFC XXXX; see the 198 RFC itself for full legal notices."; 200 revision 2022-03-25 { 201 description 202 "Added: 203 - typedef bandwidth-scientific-notation; 204 - grouping encoding-and-switching-type."; 205 reference 206 "RFC XXXX: Updated Common YANG Data Types for Traffic 207 Engineering"; 208 } 209 // RFC Editor: replace XXXX with actual RFC number, update date 210 // information and remove this note 211 revision 2020-06-10 { 212 description 213 "Latest revision of TE types."; 214 reference 215 "RFC 8776: Common YANG Data Types for Traffic Engineering"; 216 } 218 /** 219 * Typedefs 220 */ 222 typedef admin-group { 223 type yang:hex-string { 224 /* 01:02:03:04 */ 225 length "1..11"; 226 } 227 description 228 "Administrative group / resource class / color representation 229 in 'hex-string' type. 230 The most significant byte in the hex-string is the farthest 231 to the left in the byte sequence. Leading zero bytes in the 232 configured value may be omitted for brevity."; 233 reference 234 "RFC 3630: Traffic Engineering (TE) Extensions to OSPF 235 Version 2 236 RFC 5305: IS-IS Extensions for Traffic Engineering 237 RFC 7308: Extended Administrative Groups in MPLS Traffic 238 Engineering (MPLS-TE)"; 239 } 241 typedef admin-groups { 242 type union { 243 type admin-group; 244 type extended-admin-group; 245 } 246 description 247 "Derived types for TE administrative groups."; 248 } 250 typedef extended-admin-group { 251 type yang:hex-string; 252 description 253 "Extended administrative group / resource class / color 254 representation in 'hex-string' type. 255 The most significant byte in the hex-string is the farthest 256 to the left in the byte sequence. Leading zero bytes in the 257 configured value may be omitted for brevity."; 258 reference 259 "RFC 7308: Extended Administrative Groups in MPLS Traffic 260 Engineering (MPLS-TE)"; 261 } 263 typedef path-attribute-flags { 264 type union { 265 type identityref { 266 base session-attributes-flags; 267 } 268 type identityref { 269 base lsp-attributes-flags; 270 } 271 } 272 description 273 "Path attributes flags type."; 274 } 276 typedef performance-metrics-normality { 277 type enumeration { 278 enum unknown { 279 value 0; 280 description 281 "Unknown."; 282 } 283 enum normal { 284 value 1; 285 description 286 "Normal. Indicates that the anomalous bit is not set."; 287 } 288 enum abnormal { 289 value 2; 290 description 291 "Abnormal. Indicates that the anomalous bit is set."; 292 } 293 } 294 description 295 "Indicates whether a performance metric is normal (anomalous 296 bit not set), abnormal (anomalous bit set), or unknown."; 297 reference 298 "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions 299 RFC 7823: Performance-Based Path Selection for Explicitly 300 Routed Label Switched Paths (LSPs) Using TE Metric 301 Extensions 302 RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; 303 } 305 typedef srlg { 306 type uint32; 307 description 308 "SRLG type."; 309 reference 310 "RFC 4203: OSPF Extensions in Support of Generalized 311 Multi-Protocol Label Switching (GMPLS) 312 RFC 5307: IS-IS Extensions in Support of Generalized 313 Multi-Protocol Label Switching (GMPLS)"; 314 } 316 typedef te-common-status { 317 type enumeration { 318 enum up { 319 description 320 "Enabled."; 321 } 322 enum down { 323 description 324 "Disabled."; 326 } 327 enum testing { 328 description 329 "In some test mode."; 330 } 331 enum preparing-maintenance { 332 description 333 "The resource is disabled in the control plane to prepare 334 for a graceful shutdown for maintenance purposes."; 335 reference 336 "RFC 5817: Graceful Shutdown in MPLS and Generalized MPLS 337 Traffic Engineering Networks"; 338 } 339 enum maintenance { 340 description 341 "The resource is disabled in the data plane for maintenance 342 purposes."; 343 } 344 enum unknown { 345 description 346 "Status is unknown."; 347 } 348 } 349 description 350 "Defines a type representing the common states of a TE 351 resource."; 352 } 354 typedef te-bandwidth { 355 type string { 356 pattern '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 357 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' 358 + '[pP](\+)?(12[0-7]|' 359 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' 360 + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 361 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?' 362 + '[pP](\+)?(12[0-7]|' 363 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; 364 } 365 description 366 "This is the generic bandwidth type. It is a string containing 367 a list of numbers separated by commas, where each of these 368 numbers can be non-negative decimal, hex integer, or 369 hex float: 371 (dec | hex | float)[*(','(dec | hex | float))] 373 For the packet-switching type, the string encoding follows 374 the type 'bandwidth-ieee-float32' as defined in RFC 8294 375 (e.g., 0x1p10), where the units are in bytes per second. 377 For the Optical Transport Network (OTN) switching type, 378 a list of integers can be used, such as '0,2,3,1', indicating 379 two ODU0s and one ODU3. ('ODU' stands for 'Optical Data 380 Unit'.) For Dense Wavelength Division Multiplexing (DWDM), 381 a list of pairs of slot numbers and widths can be used, 382 such as '0,2,3,3', indicating a frequency slot 0 with 383 slot width 2 and a frequency slot 3 with slot width 3. 384 Canonically, the string is represented as all lowercase and in 385 hex, where the prefix '0x' precedes the hex number."; 386 reference 387 "RFC 8294: Common YANG Data Types for the Routing Area 388 ITU-T Recommendation G.709: Interfaces for the 389 optical transport network"; 390 } 392 typedef te-ds-class { 393 type uint8 { 394 range "0..7"; 395 } 396 description 397 "The Differentiated Services Class-Type of traffic."; 398 reference 399 "RFC 4124: Protocol Extensions for Support of Diffserv-aware 400 MPLS Traffic Engineering, Section 4.3.1"; 401 } 403 typedef te-global-id { 404 type uint32; 405 description 406 "An identifier to uniquely identify an operator, which can be 407 either a provider or a client. 408 The definition of this type is taken from RFCs 6370 and 5003. 409 This attribute type is used solely to provide a globally 410 unique context for TE topologies."; 411 reference 412 "RFC 5003: Attachment Individual Identifier (AII) Types for 413 Aggregation 414 RFC 6370: MPLS Transport Profile (MPLS-TP) Identifiers"; 415 } 417 typedef te-hop-type { 418 type enumeration { 419 enum loose { 420 description 421 "A loose hop in an explicit path."; 423 } 424 enum strict { 425 description 426 "A strict hop in an explicit path."; 427 } 428 } 429 description 430 "Enumerated type for specifying loose or strict paths."; 431 reference 432 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, 433 Section 4.3.3"; 434 } 436 typedef te-link-access-type { 437 type enumeration { 438 enum point-to-point { 439 description 440 "The link is point-to-point."; 441 } 442 enum multi-access { 443 description 444 "The link is multi-access, including broadcast and NBMA."; 445 } 446 } 447 description 448 "Defines a type representing the access type of a TE link."; 449 reference 450 "RFC 3630: Traffic Engineering (TE) Extensions to OSPF 451 Version 2"; 452 } 454 typedef te-label-direction { 455 type enumeration { 456 enum forward { 457 description 458 "Label allocated for the forward LSP direction."; 459 } 460 enum reverse { 461 description 462 "Label allocated for the reverse LSP direction."; 463 } 464 } 465 description 466 "Enumerated type for specifying the forward or reverse 467 label."; 468 } 470 typedef te-link-direction { 471 type enumeration { 472 enum incoming { 473 description 474 "The explicit route represents an incoming link on 475 a node."; 476 } 477 enum outgoing { 478 description 479 "The explicit route represents an outgoing link on 480 a node."; 481 } 482 } 483 description 484 "Enumerated type for specifying the direction of a link on 485 a node."; 486 } 488 typedef te-metric { 489 type uint32; 490 description 491 "TE metric."; 492 reference 493 "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a 494 second MPLS Traffic Engineering (TE) Metric"; 495 } 497 typedef te-node-id { 498 type yang:dotted-quad; 499 description 500 "A type representing the identifier for a node in a TE 501 topology. 502 The identifier is represented as 4 octets in dotted-quad 503 notation. 504 This attribute MAY be mapped to the Router Address TLV 505 described in Section 2.4.1 of RFC 3630, the TE Router ID 506 described in Section 3 of RFC 6827, the Traffic Engineering 507 Router ID TLV described in Section 4.3 of RFC 5305, or the 508 TE Router ID TLV described in Section 3.2.1 of RFC 6119. 509 The reachability of such a TE node MAY be achieved by a 510 mechanism such as that described in Section 6.2 of RFC 6827."; 511 reference 512 "RFC 3630: Traffic Engineering (TE) Extensions to OSPF 513 Version 2, Section 2.4.1 514 RFC 5305: IS-IS Extensions for Traffic Engineering, 515 Section 4.3 516 RFC 6119: IPv6 Traffic Engineering in IS-IS, Section 3.2.1 517 RFC 6827: Automatically Switched Optical Network (ASON) 518 Routing for OSPFv2 Protocols, Section 3"; 520 } 522 typedef te-oper-status { 523 type te-common-status; 524 description 525 "Defines a type representing the operational status of 526 a TE resource."; 527 } 529 typedef te-admin-status { 530 type te-common-status; 531 description 532 "Defines a type representing the administrative status of 533 a TE resource."; 534 } 536 typedef te-path-disjointness { 537 type bits { 538 bit node { 539 position 0; 540 description 541 "Node disjoint."; 542 } 543 bit link { 544 position 1; 545 description 546 "Link disjoint."; 547 } 548 bit srlg { 549 position 2; 550 description 551 "SRLG (Shared Risk Link Group) disjoint."; 552 } 553 } 554 description 555 "Type of the resource disjointness for a TE tunnel path."; 556 reference 557 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 558 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 559 } 561 typedef te-recovery-status { 562 type enumeration { 563 enum normal { 564 description 565 "Both the recovery span and the working span are fully 566 allocated and active, data traffic is being 567 transported over (or selected from) the working 568 span, and no trigger events are reported."; 569 } 570 enum recovery-started { 571 description 572 "The recovery action has been started but not completed."; 573 } 574 enum recovery-succeeded { 575 description 576 "The recovery action has succeeded. The working span has 577 reported a failure/degrade condition, and the user traffic 578 is being transported (or selected) on the recovery span."; 579 } 580 enum recovery-failed { 581 description 582 "The recovery action has failed."; 583 } 584 enum reversion-started { 585 description 586 "The reversion has started."; 587 } 588 enum reversion-succeeded { 589 description 590 "The reversion action has succeeded."; 591 } 592 enum reversion-failed { 593 description 594 "The reversion has failed."; 595 } 596 enum recovery-unavailable { 597 description 598 "The recovery is unavailable, as a result of either an 599 operator's lockout command or a failure condition 600 detected on the recovery span."; 601 } 602 enum recovery-admin { 603 description 604 "The operator has issued a command to switch the user 605 traffic to the recovery span."; 606 } 607 enum wait-to-restore { 608 description 609 "The recovery domain is recovering from a failure/degrade 610 condition on the working span that is being controlled by 611 the Wait-to-Restore (WTR) timer."; 612 } 613 } 614 description 615 "Defines the status of a recovery action."; 617 reference 618 "RFC 4427: Recovery (Protection and Restoration) Terminology 619 for Generalized Multi-Protocol Label Switching (GMPLS) 620 RFC 6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; 621 } 623 typedef te-template-name { 624 type string { 625 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 626 } 627 description 628 "A type for the name of a TE node template or TE link 629 template."; 630 } 632 typedef te-topology-event-type { 633 type enumeration { 634 enum add { 635 value 0; 636 description 637 "A TE node or TE link has been added."; 638 } 639 enum remove { 640 value 1; 641 description 642 "A TE node or TE link has been removed."; 643 } 644 enum update { 645 value 2; 646 description 647 "A TE node or TE link has been updated."; 648 } 649 } 650 description 651 "TE event type for notifications."; 652 } 654 typedef te-topology-id { 655 type union { 656 type string { 657 length "0"; 658 // empty string 659 } 660 type string { 661 pattern '([a-zA-Z0-9\-_.]+:)*' 662 + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 663 } 664 } 665 description 666 "An identifier for a topology. 667 It is optional to have one or more prefixes at the beginning, 668 separated by colons. The prefixes can be 'network-types' as 669 defined in the 'ietf-network' module in RFC 8345, to help the 670 user better understand the topology before further inquiry 671 is made."; 672 reference 673 "RFC 8345: A YANG Data Model for Network Topologies"; 674 } 676 typedef te-tp-id { 677 type union { 678 type uint32; 679 // Unnumbered 680 type inet:ip-address; 681 // IPv4 or IPv6 address 682 } 683 description 684 "An identifier for a TE link endpoint on a node. 685 This attribute is mapped to a local or remote link identifier 686 as defined in RFCs 3630 and 5305."; 687 reference 688 "RFC 3630: Traffic Engineering (TE) Extensions to OSPF 689 Version 2 690 RFC 5305: IS-IS Extensions for Traffic Engineering"; 691 } 693 // NOTE: The typedef bandwidth-scientific-notation below has been 694 // added in this module revision 695 // RFC Editor: remove the note above and this note 697 typedef bandwidth-scientific-notation { 698 type string { 699 pattern 700 '0(\.0?)?([eE](\+)?0?)?|' 701 + '[1-9](\.[0-9]{0,6})?[eE](\+)?(9[0-6]|[1-8][0-9]|0?[0-9])?'; 702 } 703 units "bps"; 704 description 705 "Bandwidth values, expressed using the scientific notation 706 in bits per second. 707 The encoding format is the external decimal-significant 708 character sequences specified in IEEE 754 and ISO/IEC C99 709 for 32-bit decimal floating-point numbers: 710 (-1)**(S) * 10**(Exponent) * (Significant), 711 where Significant uses 7 digits. 712 An implementation for this representation may use decimal32 713 or binary32. The range of the Exponent is from -95 to +96 714 for decimal32, and from -38 to +38 for binary32. 715 As a bandwidth value, the format is restricted to be 716 normalized, non-negative, and non-fraction: 717 n.dddddde{+}dd, N.DDDDDDE{+}DD, 0e0 or 0E0, 718 where 'd' and 'D' are decimal digits; 'n' and 'N' are 719 non-zeror decimal digits; 'e' and 'E' indicate a power of ten. 720 Some examples are 0e0, 1e10, and 9.953e9."; 721 reference 722 "IEEE Std 754-2008: IEEE Standard for Floating-Point 723 Arithmetic. 724 ISO/IEC C99: Information technology - Programming 725 Languages - C."; 726 } 728 /* TE features */ 730 feature p2mp-te { 731 description 732 "Indicates support for Point-to-Multipoint TE (P2MP-TE)."; 733 reference 734 "RFC 4875: Extensions to Resource Reservation Protocol - 735 Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE 736 Label Switched Paths (LSPs)"; 737 } 739 feature frr-te { 740 description 741 "Indicates support for TE Fast Reroute (FRR)."; 742 reference 743 "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; 744 } 746 feature extended-admin-groups { 747 description 748 "Indicates support for TE link extended administrative 749 groups."; 750 reference 751 "RFC 7308: Extended Administrative Groups in MPLS Traffic 752 Engineering (MPLS-TE)"; 753 } 755 feature named-path-affinities { 756 description 757 "Indicates support for named path affinities."; 758 } 760 feature named-extended-admin-groups { 761 description 762 "Indicates support for named extended administrative groups."; 763 } 765 feature named-srlg-groups { 766 description 767 "Indicates support for named SRLG groups."; 768 } 770 feature named-path-constraints { 771 description 772 "Indicates support for named path constraints."; 773 } 775 feature path-optimization-metric { 776 description 777 "Indicates support for path optimization metrics."; 778 } 780 feature path-optimization-objective-function { 781 description 782 "Indicates support for path optimization objective functions."; 783 } 785 /* 786 * Identities 787 */ 789 identity session-attributes-flags { 790 description 791 "Base identity for the RSVP-TE session attributes flags."; 792 } 794 identity local-protection-desired { 795 base session-attributes-flags; 796 description 797 "Local protection is desired."; 798 reference 799 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, 800 Section 4.7.1"; 801 } 803 identity se-style-desired { 804 base session-attributes-flags; 805 description 806 "Shared explicit style, to allow the LSP to be established 807 and share resources with the old LSP."; 808 reference 809 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; 810 } 812 identity local-recording-desired { 813 base session-attributes-flags; 814 description 815 "Label recording is desired."; 816 reference 817 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, 818 Section 4.7.1"; 819 } 821 identity bandwidth-protection-desired { 822 base session-attributes-flags; 823 description 824 "Requests FRR bandwidth protection on LSRs, if present."; 825 reference 826 "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; 827 } 829 identity node-protection-desired { 830 base session-attributes-flags; 831 description 832 "Requests FRR node protection on LSRs, if present."; 833 reference 834 "RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP Tunnels"; 835 } 837 identity path-reevaluation-request { 838 base session-attributes-flags; 839 description 840 "This flag indicates that a path re-evaluation (of the 841 current path in use) is requested. Note that this does 842 not trigger any LSP reroutes but instead just signals a 843 request to evaluate whether a preferable path exists."; 844 reference 845 "RFC 4736: Reoptimization of Multiprotocol Label Switching 846 (MPLS) Traffic Engineering (TE) Loosely Routed Label Switched 847 Path (LSP)"; 848 } 850 identity soft-preemption-desired { 851 base session-attributes-flags; 852 description 853 "Soft preemption of LSP resources is desired."; 854 reference 855 "RFC 5712: MPLS Traffic Engineering Soft Preemption"; 856 } 857 identity lsp-attributes-flags { 858 description 859 "Base identity for LSP attributes flags."; 860 } 862 identity end-to-end-rerouting-desired { 863 base lsp-attributes-flags; 864 description 865 "Indicates end-to-end rerouting behavior for an LSP 866 undergoing establishment. This MAY also be used to 867 specify the behavior of end-to-end LSP recovery for 868 established LSPs."; 869 reference 870 "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS 871 RSVP-TE 872 RFC 5420: Encoding of Attributes for MPLS LSP Establishment 873 Using Resource Reservation Protocol Traffic Engineering 874 (RSVP-TE) 875 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 876 Route Object (ERO)"; 877 } 879 identity boundary-rerouting-desired { 880 base lsp-attributes-flags; 881 description 882 "Indicates boundary rerouting behavior for an LSP undergoing 883 establishment. This MAY also be used to specify 884 segment-based LSP recovery through nested crankback for 885 established LSPs. The boundary Area Border Router (ABR) / 886 Autonomous System Border Router (ASBR) can decide to forward 887 the PathErr message upstream to either an upstream boundary 888 ABR/ASBR or the ingress LSR. Alternatively, it can try to 889 select another egress boundary LSR."; 890 reference 891 "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS 892 RSVP-TE 893 RFC 5420: Encoding of Attributes for MPLS LSP Establishment 894 Using Resource Reservation Protocol Traffic Engineering 895 (RSVP-TE) 896 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 897 Route Object (ERO)"; 898 } 900 identity segment-based-rerouting-desired { 901 base lsp-attributes-flags; 902 description 903 "Indicates segment-based rerouting behavior for an LSP 904 undergoing establishment. This MAY also be used to specify 905 segment-based LSP recovery for established LSPs."; 906 reference 907 "RFC 4920: Crankback Signaling Extensions for MPLS and GMPLS 908 RSVP-TE 909 RFC 5420: Encoding of Attributes for MPLS LSP Establishment 910 Using Resource Reservation Protocol Traffic Engineering 911 (RSVP-TE) 912 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 913 Route Object (ERO)"; 914 } 916 identity lsp-integrity-required { 917 base lsp-attributes-flags; 918 description 919 "Indicates that LSP integrity is required."; 920 reference 921 "RFC 4875: Extensions to Resource Reservation Protocol - 922 Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE 923 Label Switched Paths (LSPs) 924 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 925 Route Object (ERO)"; 926 } 928 identity contiguous-lsp-desired { 929 base lsp-attributes-flags; 930 description 931 "Indicates that a contiguous LSP is desired."; 932 reference 933 "RFC 5151: Inter-Domain MPLS and GMPLS Traffic Engineering -- 934 Resource Reservation Protocol-Traffic Engineering (RSVP-TE) 935 Extensions 936 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 937 Route Object (ERO)"; 938 } 940 identity lsp-stitching-desired { 941 base lsp-attributes-flags; 942 description 943 "Indicates that LSP stitching is desired."; 944 reference 945 "RFC 5150: Label Switched Path Stitching with Generalized 946 Multiprotocol Label Switching Traffic Engineering (GMPLS TE) 947 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 948 Route Object (ERO)"; 949 } 951 identity pre-planned-lsp-flag { 952 base lsp-attributes-flags; 953 description 954 "Indicates that the LSP MUST be provisioned in the 955 control plane only."; 956 reference 957 "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions for 958 Multi-Layer and Multi-Region Networks (MLN/MRN) 959 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 960 Route Object (ERO)"; 961 } 963 identity non-php-behavior-flag { 964 base lsp-attributes-flags; 965 description 966 "Indicates that non-PHP (non-Penultimate Hop Popping) behavior 967 for the LSP is desired."; 968 reference 969 "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band 970 Mapping for RSVP-TE Label Switched Paths 971 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 972 Route Object (ERO)"; 973 } 975 identity oob-mapping-flag { 976 base lsp-attributes-flags; 977 description 978 "Indicates that signaling of the egress binding information is 979 out of band (e.g., via the Border Gateway Protocol (BGP))."; 980 reference 981 "RFC 6511: Non-Penultimate Hop Popping Behavior and Out-of-Band 982 Mapping for RSVP-TE Label Switched Paths 983 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 984 Route Object (ERO)"; 985 } 987 identity entropy-label-capability { 988 base lsp-attributes-flags; 989 description 990 "Indicates entropy label capability."; 991 reference 992 "RFC 6790: The Use of Entropy Labels in MPLS Forwarding 993 RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 994 Route Object (ERO)"; 995 } 997 identity oam-mep-entity-desired { 998 base lsp-attributes-flags; 999 description 1000 "OAM Maintenance Entity Group End Point (MEP) entities 1001 desired."; 1002 reference 1003 "RFC 7260: GMPLS RSVP-TE Extensions for Operations, 1004 Administration, and Maintenance (OAM) Configuration"; 1005 } 1007 identity oam-mip-entity-desired { 1008 base lsp-attributes-flags; 1009 description 1010 "OAM Maintenance Entity Group Intermediate Points (MIP) 1011 entities desired."; 1012 reference 1013 "RFC 7260: GMPLS RSVP-TE Extensions for Operations, 1014 Administration, and Maintenance (OAM) Configuration"; 1015 } 1017 identity srlg-collection-desired { 1018 base lsp-attributes-flags; 1019 description 1020 "SRLG collection desired."; 1021 reference 1022 "RFC 7570: Label Switched Path (LSP) Attribute in the Explicit 1023 Route Object (ERO) 1024 RFC 8001: RSVP-TE Extensions for Collecting Shared Risk 1025 Link Group (SRLG) Information"; 1026 } 1028 identity loopback-desired { 1029 base lsp-attributes-flags; 1030 description 1031 "This flag indicates that a particular node on the LSP is 1032 required to enter loopback mode. This can also be 1033 used to specify the loopback state of the node."; 1034 reference 1035 "RFC 7571: GMPLS RSVP-TE Extensions for Lock Instruct and 1036 Loopback"; 1037 } 1039 identity p2mp-te-tree-eval-request { 1040 base lsp-attributes-flags; 1041 description 1042 "P2MP-TE tree re-evaluation request."; 1043 reference 1044 "RFC 8149: RSVP Extensions for Reoptimization of Loosely Routed 1045 Point-to-Multipoint Traffic Engineering Label Switched Paths 1046 (LSPs)"; 1047 } 1048 identity rtm-set-desired { 1049 base lsp-attributes-flags; 1050 description 1051 "Residence Time Measurement (RTM) attribute flag requested."; 1052 reference 1053 "RFC 8169: Residence Time Measurement in MPLS Networks"; 1054 } 1056 identity link-protection-type { 1057 description 1058 "Base identity for the link protection type."; 1059 } 1061 identity link-protection-unprotected { 1062 base link-protection-type; 1063 description 1064 "Unprotected link type."; 1065 reference 1066 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1067 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1068 } 1070 identity link-protection-extra-traffic { 1071 base link-protection-type; 1072 description 1073 "Extra-Traffic protected link type."; 1074 reference 1075 "RFC 4427: Recovery (Protection and Restoration) Terminology 1076 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1077 } 1079 identity link-protection-shared { 1080 base link-protection-type; 1081 description 1082 "Shared protected link type."; 1083 reference 1084 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1085 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1086 } 1088 identity link-protection-1-for-1 { 1089 base link-protection-type; 1090 description 1091 "One-for-one (1:1) protected link type."; 1092 reference 1093 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1094 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1095 } 1096 identity link-protection-1-plus-1 { 1097 base link-protection-type; 1098 description 1099 "One-plus-one (1+1) protected link type."; 1100 reference 1101 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1102 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1103 } 1105 identity link-protection-enhanced { 1106 base link-protection-type; 1107 description 1108 "A compound link protection type derived from the underlay 1109 TE tunnel protection configuration supporting the TE link."; 1110 } 1112 identity association-type { 1113 description 1114 "Base identity for the tunnel association."; 1115 } 1117 identity association-type-recovery { 1118 base association-type; 1119 description 1120 "Association type for recovery, used to associate LSPs of the 1121 same tunnel for recovery."; 1122 reference 1123 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1124 Generalized Multi-Protocol Label Switching (GMPLS) Recovery 1125 RFC 6780: RSVP ASSOCIATION Object Extensions"; 1126 } 1128 identity association-type-resource-sharing { 1129 base association-type; 1130 description 1131 "Association type for resource sharing, used to enable 1132 resource sharing during make-before-break."; 1133 reference 1134 "RFC 4873: GMPLS Segment Recovery 1135 RFC 6780: RSVP ASSOCIATION Object Extensions"; 1136 } 1138 identity association-type-double-sided-bidir { 1139 base association-type; 1140 description 1141 "Association type for double-sided bidirectional LSPs, 1142 used to associate two LSPs of two tunnels that are 1143 independently configured on either endpoint."; 1145 reference 1146 "RFC 7551: RSVP-TE Extensions for Associated Bidirectional 1147 Label Switched Paths (LSPs)"; 1148 } 1150 identity association-type-single-sided-bidir { 1151 base association-type; 1152 description 1153 "Association type for single-sided bidirectional LSPs, 1154 used to associate two LSPs of two tunnels, where one 1155 tunnel is configured on one side/endpoint and the other 1156 tunnel is dynamically created on the other endpoint."; 1157 reference 1158 "RFC 6780: RSVP ASSOCIATION Object Extensions 1159 RFC 7551: RSVP-TE Extensions for Associated Bidirectional 1160 Label Switched Paths (LSPs)"; 1161 } 1163 identity objective-function-type { 1164 description 1165 "Base objective function type."; 1166 } 1168 identity of-minimize-cost-path { 1169 base objective-function-type; 1170 description 1171 "Objective function for minimizing path cost."; 1172 reference 1173 "RFC 5541: Encoding of Objective Functions in the Path 1174 Computation Element Communication Protocol (PCEP)"; 1175 } 1177 identity of-minimize-load-path { 1178 base objective-function-type; 1179 description 1180 "Objective function for minimizing the load on one or more 1181 paths."; 1182 reference 1183 "RFC 5541: Encoding of Objective Functions in the Path 1184 Computation Element Communication Protocol (PCEP)"; 1185 } 1187 identity of-maximize-residual-bandwidth { 1188 base objective-function-type; 1189 description 1190 "Objective function for maximizing residual bandwidth."; 1191 reference 1192 "RFC 5541: Encoding of Objective Functions in the Path 1193 Computation Element Communication Protocol (PCEP)"; 1194 } 1196 identity of-minimize-agg-bandwidth-consumption { 1197 base objective-function-type; 1198 description 1199 "Objective function for minimizing aggregate bandwidth 1200 consumption."; 1201 reference 1202 "RFC 5541: Encoding of Objective Functions in the Path 1203 Computation Element Communication Protocol (PCEP)"; 1204 } 1206 identity of-minimize-load-most-loaded-link { 1207 base objective-function-type; 1208 description 1209 "Objective function for minimizing the load on the link that 1210 is carrying the highest load."; 1211 reference 1212 "RFC 5541: Encoding of Objective Functions in the Path 1213 Computation Element Communication Protocol (PCEP)"; 1214 } 1216 identity of-minimize-cost-path-set { 1217 base objective-function-type; 1218 description 1219 "Objective function for minimizing the cost on a path set."; 1220 reference 1221 "RFC 5541: Encoding of Objective Functions in the Path 1222 Computation Element Communication Protocol (PCEP)"; 1223 } 1225 identity path-computation-method { 1226 description 1227 "Base identity for supported path computation mechanisms."; 1228 } 1230 identity path-locally-computed { 1231 base path-computation-method; 1232 description 1233 "Indicates a constrained-path LSP in which the 1234 path is computed by the local LER."; 1235 reference 1236 "RFC 3272: Overview and Principles of Internet Traffic 1237 Engineering, Section 5.4"; 1238 } 1240 identity path-externally-queried { 1241 base path-computation-method; 1242 description 1243 "Constrained-path LSP in which the path is obtained by 1244 querying an external source, such as a PCE server. 1245 In the case that an LSP is defined to be externally queried, 1246 it may also have associated explicit definitions (provided 1247 to the external source to aid computation). The path that is 1248 returned by the external source may require further local 1249 computation on the device."; 1250 reference 1251 "RFC 3272: Overview and Principles of Internet Traffic 1252 Engineering 1253 RFC 4657: Path Computation Element (PCE) Communication 1254 Protocol Generic Requirements"; 1255 } 1257 identity path-explicitly-defined { 1258 base path-computation-method; 1259 description 1260 "Constrained-path LSP in which the path is 1261 explicitly specified as a collection of strict and/or loose 1262 hops."; 1263 reference 1264 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels 1265 RFC 3272: Overview and Principles of Internet Traffic 1266 Engineering"; 1267 } 1269 identity lsp-metric-type { 1270 description 1271 "Base identity for the LSP metric specification types."; 1272 } 1274 identity lsp-metric-relative { 1275 base lsp-metric-type; 1276 description 1277 "The metric specified for the LSPs to which this identity 1278 refers is specified as a value relative to the IGP metric 1279 cost to the LSP's tail end."; 1280 reference 1281 "RFC 4657: Path Computation Element (PCE) Communication 1282 Protocol Generic Requirements"; 1283 } 1285 identity lsp-metric-absolute { 1286 base lsp-metric-type; 1287 description 1288 "The metric specified for the LSPs to which this identity 1289 refers is specified as an absolute value."; 1290 reference 1291 "RFC 4657: Path Computation Element (PCE) Communication 1292 Protocol Generic Requirements"; 1293 } 1295 identity lsp-metric-inherited { 1296 base lsp-metric-type; 1297 description 1298 "The metric for the LSPs to which this identity refers is 1299 not specified explicitly; rather, it is directly inherited 1300 from the IGP cost."; 1301 reference 1302 "RFC 4657: Path Computation Element (PCE) Communication 1303 Protocol Generic Requirements"; 1304 } 1306 identity te-tunnel-type { 1307 description 1308 "Base identity from which specific tunnel types are derived."; 1309 } 1311 identity te-tunnel-p2p { 1312 base te-tunnel-type; 1313 description 1314 "TE Point-to-Point (P2P) tunnel type."; 1315 reference 1316 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; 1317 } 1319 identity te-tunnel-p2mp { 1320 base te-tunnel-type; 1321 description 1322 "TE P2MP tunnel type."; 1323 reference 1324 "RFC 4875: Extensions to Resource Reservation Protocol - 1325 Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE 1326 Label Switched Paths (LSPs)"; 1327 } 1329 identity tunnel-action-type { 1330 description 1331 "Base identity from which specific tunnel action types 1332 are derived."; 1333 } 1335 identity tunnel-action-resetup { 1336 base tunnel-action-type; 1337 description 1338 "TE tunnel action that tears down the tunnel's current LSP 1339 (if any) and attempts to re-establish a new LSP."; 1340 } 1342 identity tunnel-action-reoptimize { 1343 base tunnel-action-type; 1344 description 1345 "TE tunnel action that reoptimizes the placement of the 1346 tunnel LSP(s)."; 1347 } 1349 identity tunnel-action-switchpath { 1350 base tunnel-action-type; 1351 description 1352 "TE tunnel action that switches the tunnel's LSP to use the 1353 specified path."; 1354 } 1356 identity te-action-result { 1357 description 1358 "Base identity from which specific TE action results 1359 are derived."; 1360 } 1362 identity te-action-success { 1363 base te-action-result; 1364 description 1365 "TE action was successful."; 1366 } 1368 identity te-action-fail { 1369 base te-action-result; 1370 description 1371 "TE action failed."; 1372 } 1374 identity tunnel-action-inprogress { 1375 base te-action-result; 1376 description 1377 "TE action is in progress."; 1378 } 1380 identity tunnel-admin-state-type { 1381 description 1382 "Base identity for TE tunnel administrative states."; 1383 } 1384 identity tunnel-admin-state-up { 1385 base tunnel-admin-state-type; 1386 description 1387 "Tunnel's administrative state is up."; 1388 } 1390 identity tunnel-admin-state-down { 1391 base tunnel-admin-state-type; 1392 description 1393 "Tunnel's administrative state is down."; 1394 } 1396 identity tunnel-state-type { 1397 description 1398 "Base identity for TE tunnel states."; 1399 } 1401 identity tunnel-state-up { 1402 base tunnel-state-type; 1403 description 1404 "Tunnel's state is up."; 1405 } 1407 identity tunnel-state-down { 1408 base tunnel-state-type; 1409 description 1410 "Tunnel's state is down."; 1411 } 1413 identity lsp-state-type { 1414 description 1415 "Base identity for TE LSP states."; 1416 } 1418 identity lsp-path-computing { 1419 base lsp-state-type; 1420 description 1421 "State path computation is in progress."; 1422 } 1424 identity lsp-path-computation-ok { 1425 base lsp-state-type; 1426 description 1427 "State path computation was successful."; 1428 } 1430 identity lsp-path-computation-failed { 1431 base lsp-state-type; 1432 description 1433 "State path computation failed."; 1434 } 1436 identity lsp-state-setting-up { 1437 base lsp-state-type; 1438 description 1439 "State is being set up."; 1440 } 1442 identity lsp-state-setup-ok { 1443 base lsp-state-type; 1444 description 1445 "State setup was successful."; 1446 } 1448 identity lsp-state-setup-failed { 1449 base lsp-state-type; 1450 description 1451 "State setup failed."; 1452 } 1454 identity lsp-state-up { 1455 base lsp-state-type; 1456 description 1457 "State is up."; 1458 } 1460 identity lsp-state-tearing-down { 1461 base lsp-state-type; 1462 description 1463 "State is being torn down."; 1464 } 1466 identity lsp-state-down { 1467 base lsp-state-type; 1468 description 1469 "State is down."; 1470 } 1472 identity path-invalidation-action-type { 1473 description 1474 "Base identity for TE path invalidation action types."; 1475 } 1477 identity path-invalidation-action-drop { 1478 base path-invalidation-action-type; 1479 description 1480 "Upon invalidation of the TE tunnel path, the tunnel remains 1481 valid, but any packet mapped over the tunnel is dropped."; 1482 reference 1483 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, 1484 Section 2.5"; 1485 } 1487 identity path-invalidation-action-teardown { 1488 base path-invalidation-action-type; 1489 description 1490 "TE path invalidation action teardown."; 1491 reference 1492 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, 1493 Section 2.5"; 1494 } 1496 identity lsp-restoration-type { 1497 description 1498 "Base identity from which LSP restoration types are derived."; 1499 } 1501 identity lsp-restoration-restore-any { 1502 base lsp-restoration-type; 1503 description 1504 "Any LSP affected by a failure is restored."; 1505 } 1507 identity lsp-restoration-restore-all { 1508 base lsp-restoration-type; 1509 description 1510 "Affected LSPs are restored after all LSPs of the tunnel are 1511 broken."; 1512 } 1514 identity restoration-scheme-type { 1515 description 1516 "Base identity for LSP restoration schemes."; 1517 } 1519 identity restoration-scheme-preconfigured { 1520 base restoration-scheme-type; 1521 description 1522 "Restoration LSP is preconfigured prior to the failure."; 1523 reference 1524 "RFC 4427: Recovery (Protection and Restoration) Terminology 1525 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1526 } 1527 identity restoration-scheme-precomputed { 1528 base restoration-scheme-type; 1529 description 1530 "Restoration LSP is precomputed prior to the failure."; 1531 reference 1532 "RFC 4427: Recovery (Protection and Restoration) Terminology 1533 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1534 } 1536 identity restoration-scheme-presignaled { 1537 base restoration-scheme-type; 1538 description 1539 "Restoration LSP is presignaled prior to the failure."; 1540 reference 1541 "RFC 4427: Recovery (Protection and Restoration) Terminology 1542 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1543 } 1545 identity lsp-protection-type { 1546 description 1547 "Base identity from which LSP protection types are derived."; 1548 reference 1549 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1550 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1551 } 1553 identity lsp-protection-unprotected { 1554 base lsp-protection-type; 1555 description 1556 "'Unprotected' LSP protection type."; 1557 reference 1558 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1559 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1560 } 1562 identity lsp-protection-reroute-extra { 1563 base lsp-protection-type; 1564 description 1565 "'(Full) Rerouting' LSP protection type."; 1566 reference 1567 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1568 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1569 } 1571 identity lsp-protection-reroute { 1572 base lsp-protection-type; 1573 description 1574 "'Rerouting without Extra-Traffic' LSP protection type."; 1576 reference 1577 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1578 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1579 } 1581 identity lsp-protection-1-for-n { 1582 base lsp-protection-type; 1583 description 1584 "'1:N Protection with Extra-Traffic' LSP protection type."; 1585 reference 1586 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1587 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1588 } 1590 identity lsp-protection-1-for-1 { 1591 base lsp-protection-type; 1592 description 1593 "LSP protection '1:1 Protection Type'."; 1594 reference 1595 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1596 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1597 } 1599 identity lsp-protection-unidir-1-plus-1 { 1600 base lsp-protection-type; 1601 description 1602 "'1+1 Unidirectional Protection' LSP protection type."; 1603 reference 1604 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1605 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1606 } 1608 identity lsp-protection-bidir-1-plus-1 { 1609 base lsp-protection-type; 1610 description 1611 "'1+1 Bidirectional Protection' LSP protection type."; 1612 reference 1613 "RFC 4872: RSVP-TE Extensions in Support of End-to-End 1614 Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; 1615 } 1617 identity lsp-protection-extra-traffic { 1618 base lsp-protection-type; 1619 description 1620 "Extra-Traffic LSP protection type."; 1621 reference 1622 "RFC 4427: Recovery (Protection and Restoration) Terminology 1623 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1625 } 1627 identity lsp-protection-state { 1628 description 1629 "Base identity of protection states for reporting purposes."; 1630 } 1632 identity normal { 1633 base lsp-protection-state; 1634 description 1635 "Normal state."; 1636 } 1638 identity signal-fail-of-protection { 1639 base lsp-protection-state; 1640 description 1641 "The protection transport entity has a signal fail condition 1642 that is of higher priority than the forced switchover 1643 command."; 1644 reference 1645 "RFC 4427: Recovery (Protection and Restoration) Terminology 1646 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1647 } 1649 identity lockout-of-protection { 1650 base lsp-protection-state; 1651 description 1652 "A Loss of Protection (LoP) command is active."; 1653 reference 1654 "RFC 4427: Recovery (Protection and Restoration) Terminology 1655 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1656 } 1658 identity forced-switch { 1659 base lsp-protection-state; 1660 description 1661 "A forced switchover command is active."; 1662 reference 1663 "RFC 4427: Recovery (Protection and Restoration) Terminology 1664 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1665 } 1667 identity signal-fail { 1668 base lsp-protection-state; 1669 description 1670 "There is a signal fail condition on either the working path 1671 or the protection path."; 1672 reference 1673 "RFC 4427: Recovery (Protection and Restoration) Terminology 1674 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1675 } 1677 identity signal-degrade { 1678 base lsp-protection-state; 1679 description 1680 "There is a signal degrade condition on either the working 1681 path or the protection path."; 1682 reference 1683 "RFC 4427: Recovery (Protection and Restoration) Terminology 1684 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1685 } 1687 identity manual-switch { 1688 base lsp-protection-state; 1689 description 1690 "A manual switchover command is active."; 1691 reference 1692 "RFC 4427: Recovery (Protection and Restoration) Terminology 1693 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1694 } 1696 identity wait-to-restore { 1697 base lsp-protection-state; 1698 description 1699 "A WTR timer is running."; 1700 reference 1701 "RFC 4427: Recovery (Protection and Restoration) Terminology 1702 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1703 } 1705 identity do-not-revert { 1706 base lsp-protection-state; 1707 description 1708 "A Do Not Revert (DNR) condition is active because of 1709 non-revertive behavior."; 1710 reference 1711 "RFC 4427: Recovery (Protection and Restoration) Terminology 1712 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1713 } 1715 identity failure-of-protocol { 1716 base lsp-protection-state; 1717 description 1718 "LSP protection is not working because of a protocol failure 1719 condition."; 1720 reference 1721 "RFC 4427: Recovery (Protection and Restoration) Terminology 1722 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1723 } 1725 identity protection-external-commands { 1726 description 1727 "Base identity from which protection-related external commands 1728 used for troubleshooting purposes are derived."; 1729 } 1731 identity action-freeze { 1732 base protection-external-commands; 1733 description 1734 "A temporary configuration action initiated by an operator 1735 command that prevents any switchover action from being taken 1736 and, as such, freezes the current state."; 1737 reference 1738 "RFC 4427: Recovery (Protection and Restoration) Terminology 1739 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1740 } 1742 identity clear-freeze { 1743 base protection-external-commands; 1744 description 1745 "An action that clears the active freeze state."; 1746 reference 1747 "RFC 4427: Recovery (Protection and Restoration) Terminology 1748 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1749 } 1751 identity action-lockout-of-normal { 1752 base protection-external-commands; 1753 description 1754 "A temporary configuration action initiated by an operator 1755 command to ensure that the normal traffic is not allowed 1756 to use the protection transport entity."; 1757 reference 1758 "RFC 4427: Recovery (Protection and Restoration) Terminology 1759 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1760 } 1762 identity clear-lockout-of-normal { 1763 base protection-external-commands; 1764 description 1765 "An action that clears the active lockout of the 1766 normal state."; 1767 reference 1768 "RFC 4427: Recovery (Protection and Restoration) Terminology 1769 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1770 } 1772 identity action-lockout-of-protection { 1773 base protection-external-commands; 1774 description 1775 "A temporary configuration action initiated by an operator 1776 command to ensure that the protection transport entity is 1777 temporarily not available to transport a traffic signal 1778 (either normal or Extra-Traffic)."; 1779 reference 1780 "RFC 4427: Recovery (Protection and Restoration) Terminology 1781 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1782 } 1784 identity action-forced-switch { 1785 base protection-external-commands; 1786 description 1787 "A switchover action initiated by an operator command to switch 1788 the Extra-Traffic signal, the normal traffic signal, or the 1789 null signal to the protection transport entity, unless a 1790 switchover command of equal or higher priority is in effect."; 1791 reference 1792 "RFC 4427: Recovery (Protection and Restoration) Terminology 1793 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1794 } 1796 identity action-manual-switch { 1797 base protection-external-commands; 1798 description 1799 "A switchover action initiated by an operator command to switch 1800 the Extra-Traffic signal, the normal traffic signal, or 1801 the null signal to the protection transport entity, unless 1802 a fault condition exists on other transport entities or a 1803 switchover command of equal or higher priority is in effect."; 1804 reference 1805 "RFC 4427: Recovery (Protection and Restoration) Terminology 1806 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1807 } 1809 identity action-exercise { 1810 base protection-external-commands; 1811 description 1812 "An action that starts testing whether or not APS communication 1813 is operating correctly. It is of lower priority than any 1814 other state or command."; 1815 reference 1816 "RFC 4427: Recovery (Protection and Restoration) Terminology 1817 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1818 } 1820 identity clear { 1821 base protection-external-commands; 1822 description 1823 "An action that clears the active near-end lockout of a 1824 protection, forced switchover, manual switchover, WTR state, 1825 or exercise command."; 1826 reference 1827 "RFC 4427: Recovery (Protection and Restoration) Terminology 1828 for Generalized Multi-Protocol Label Switching (GMPLS)"; 1829 } 1831 identity switching-capabilities { 1832 description 1833 "Base identity for interface switching capabilities."; 1834 reference 1835 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1836 Signaling Functional Description"; 1837 } 1839 identity switching-psc1 { 1840 base switching-capabilities; 1841 description 1842 "Packet-Switch Capable-1 (PSC-1)."; 1843 reference 1844 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1845 Signaling Functional Description"; 1846 } 1848 identity switching-evpl { 1849 base switching-capabilities; 1850 description 1851 "Ethernet Virtual Private Line (EVPL)."; 1852 reference 1853 "RFC 6004: Generalized MPLS (GMPLS) Support for Metro Ethernet 1854 Forum and G.8011 Ethernet Service Switching"; 1855 } 1857 identity switching-l2sc { 1858 base switching-capabilities; 1859 description 1860 "Layer-2 Switch Capable (L2SC)."; 1861 reference 1862 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1863 Signaling Functional Description"; 1864 } 1865 identity switching-tdm { 1866 base switching-capabilities; 1867 description 1868 "Time-Division-Multiplex Capable (TDM)."; 1869 reference 1870 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1871 Signaling Functional Description"; 1872 } 1874 identity switching-otn { 1875 base switching-capabilities; 1876 description 1877 "OTN-TDM capable."; 1878 reference 1879 "RFC 7138: Traffic Engineering Extensions to OSPF for GMPLS 1880 Control of Evolving G.709 Optical Transport Networks"; 1881 } 1883 identity switching-dcsc { 1884 base switching-capabilities; 1885 description 1886 "Data Channel Switching Capable (DCSC)."; 1887 reference 1888 "RFC 6002: Generalized MPLS (GMPLS) Data Channel 1889 Switching Capable (DCSC) and Channel Set Label Extensions"; 1890 } 1892 identity switching-lsc { 1893 base switching-capabilities; 1894 description 1895 "Lambda-Switch Capable (LSC)."; 1896 reference 1897 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1898 Signaling Functional Description"; 1899 } 1901 identity switching-fsc { 1902 base switching-capabilities; 1903 description 1904 "Fiber-Switch Capable (FSC)."; 1905 reference 1906 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1907 Signaling Functional Description"; 1908 } 1910 identity lsp-encoding-types { 1911 description 1912 "Base identity for encoding types."; 1914 reference 1915 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1916 Signaling Functional Description"; 1917 } 1919 identity lsp-encoding-packet { 1920 base lsp-encoding-types; 1921 description 1922 "Packet LSP encoding."; 1923 reference 1924 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1925 Signaling Functional Description"; 1926 } 1928 identity lsp-encoding-ethernet { 1929 base lsp-encoding-types; 1930 description 1931 "Ethernet LSP encoding."; 1932 reference 1933 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1934 Signaling Functional Description"; 1935 } 1937 identity lsp-encoding-pdh { 1938 base lsp-encoding-types; 1939 description 1940 "ANSI/ETSI PDH LSP encoding."; 1941 reference 1942 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1943 Signaling Functional Description"; 1944 } 1946 identity lsp-encoding-sdh { 1947 base lsp-encoding-types; 1948 description 1949 "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding."; 1950 reference 1951 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1952 Signaling Functional Description"; 1953 } 1955 identity lsp-encoding-digital-wrapper { 1956 base lsp-encoding-types; 1957 description 1958 "Digital Wrapper LSP encoding."; 1959 reference 1960 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1961 Signaling Functional Description"; 1963 } 1965 identity lsp-encoding-lambda { 1966 base lsp-encoding-types; 1967 description 1968 "Lambda (photonic) LSP encoding."; 1969 reference 1970 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1971 Signaling Functional Description"; 1972 } 1974 identity lsp-encoding-fiber { 1975 base lsp-encoding-types; 1976 description 1977 "Fiber LSP encoding."; 1978 reference 1979 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1980 Signaling Functional Description"; 1981 } 1983 identity lsp-encoding-fiber-channel { 1984 base lsp-encoding-types; 1985 description 1986 "FiberChannel LSP encoding."; 1987 reference 1988 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 1989 Signaling Functional Description"; 1990 } 1992 identity lsp-encoding-oduk { 1993 base lsp-encoding-types; 1994 description 1995 "G.709 ODUk (Digital Path) LSP encoding."; 1996 reference 1997 "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) 1998 Signaling Extensions for G.709 Optical Transport Networks 1999 Control"; 2000 } 2002 identity lsp-encoding-optical-channel { 2003 base lsp-encoding-types; 2004 description 2005 "G.709 Optical Channel LSP encoding."; 2006 reference 2007 "RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) 2008 Signaling Extensions for G.709 Optical Transport Networks 2009 Control"; 2010 } 2011 identity lsp-encoding-line { 2012 base lsp-encoding-types; 2013 description 2014 "Line (e.g., 8B/10B) LSP encoding."; 2015 reference 2016 "RFC 6004: Generalized MPLS (GMPLS) Support for Metro 2017 Ethernet Forum and G.8011 Ethernet Service Switching"; 2018 } 2020 identity path-signaling-type { 2021 description 2022 "Base identity from which specific LSP path setup types 2023 are derived."; 2024 } 2026 identity path-setup-static { 2027 base path-signaling-type; 2028 description 2029 "Static LSP provisioning path setup."; 2030 } 2032 identity path-setup-rsvp { 2033 base path-signaling-type; 2034 description 2035 "RSVP-TE signaling path setup."; 2036 reference 2037 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; 2038 } 2040 identity path-setup-sr { 2041 base path-signaling-type; 2042 description 2043 "Segment-routing path setup."; 2044 } 2046 identity path-scope-type { 2047 description 2048 "Base identity from which specific path scope types are 2049 derived."; 2050 } 2052 identity path-scope-segment { 2053 base path-scope-type; 2054 description 2055 "Path scope segment."; 2056 reference 2057 "RFC 4873: GMPLS Segment Recovery"; 2058 } 2059 identity path-scope-end-to-end { 2060 base path-scope-type; 2061 description 2062 "Path scope end to end."; 2063 reference 2064 "RFC 4873: GMPLS Segment Recovery"; 2065 } 2067 identity route-usage-type { 2068 description 2069 "Base identity for route usage."; 2070 } 2072 identity route-include-object { 2073 base route-usage-type; 2074 description 2075 "'Include route' object."; 2076 } 2078 identity route-exclude-object { 2079 base route-usage-type; 2080 description 2081 "'Exclude route' object."; 2082 reference 2083 "RFC 4874: Exclude Routes - Extension to Resource ReserVation 2084 Protocol-Traffic Engineering (RSVP-TE)"; 2085 } 2087 identity route-exclude-srlg { 2088 base route-usage-type; 2089 description 2090 "Excludes SRLGs."; 2091 reference 2092 "RFC 4874: Exclude Routes - Extension to Resource ReserVation 2093 Protocol-Traffic Engineering (RSVP-TE)"; 2094 } 2096 identity path-metric-type { 2097 description 2098 "Base identity for the path metric type."; 2099 } 2101 identity path-metric-te { 2102 base path-metric-type; 2103 description 2104 "TE path metric."; 2105 reference 2106 "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a 2107 second MPLS Traffic Engineering (TE) Metric"; 2108 } 2110 identity path-metric-igp { 2111 base path-metric-type; 2112 description 2113 "IGP path metric."; 2114 reference 2115 "RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a 2116 second MPLS Traffic Engineering (TE) Metric"; 2117 } 2119 identity path-metric-hop { 2120 base path-metric-type; 2121 description 2122 "Hop path metric."; 2123 } 2125 identity path-metric-delay-average { 2126 base path-metric-type; 2127 description 2128 "Average unidirectional link delay."; 2129 reference 2130 "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; 2131 } 2133 identity path-metric-delay-minimum { 2134 base path-metric-type; 2135 description 2136 "Minimum unidirectional link delay."; 2137 reference 2138 "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; 2139 } 2141 identity path-metric-residual-bandwidth { 2142 base path-metric-type; 2143 description 2144 "Unidirectional Residual Bandwidth, which is defined to be 2145 Maximum Bandwidth (RFC 3630) minus the bandwidth currently 2146 allocated to LSPs."; 2147 reference 2148 "RFC 3630: Traffic Engineering (TE) Extensions to OSPF 2149 Version 2 2150 RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions"; 2151 } 2153 identity path-metric-optimize-includes { 2154 base path-metric-type; 2155 description 2156 "A metric that optimizes the number of included resources 2157 specified in a set."; 2158 } 2160 identity path-metric-optimize-excludes { 2161 base path-metric-type; 2162 description 2163 "A metric that optimizes to a maximum the number of excluded 2164 resources specified in a set."; 2165 } 2167 identity path-tiebreaker-type { 2168 description 2169 "Base identity for the path tiebreaker type."; 2170 } 2172 identity path-tiebreaker-minfill { 2173 base path-tiebreaker-type; 2174 description 2175 "Min-Fill LSP path placement."; 2176 } 2178 identity path-tiebreaker-maxfill { 2179 base path-tiebreaker-type; 2180 description 2181 "Max-Fill LSP path placement."; 2182 } 2184 identity path-tiebreaker-random { 2185 base path-tiebreaker-type; 2186 description 2187 "Random LSP path placement."; 2188 } 2190 identity resource-affinities-type { 2191 description 2192 "Base identity for resource class affinities."; 2193 reference 2194 "RFC 2702: Requirements for Traffic Engineering Over MPLS"; 2195 } 2197 identity resource-aff-include-all { 2198 base resource-affinities-type; 2199 description 2200 "The set of attribute filters associated with a 2201 tunnel, all of which must be present for a link 2202 to be acceptable."; 2204 reference 2205 "RFC 2702: Requirements for Traffic Engineering Over MPLS 2206 RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; 2207 } 2209 identity resource-aff-include-any { 2210 base resource-affinities-type; 2211 description 2212 "The set of attribute filters associated with a 2213 tunnel, any of which must be present for a link 2214 to be acceptable."; 2215 reference 2216 "RFC 2702: Requirements for Traffic Engineering Over MPLS 2217 RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; 2218 } 2220 identity resource-aff-exclude-any { 2221 base resource-affinities-type; 2222 description 2223 "The set of attribute filters associated with a 2224 tunnel, any of which renders a link unacceptable."; 2225 reference 2226 "RFC 2702: Requirements for Traffic Engineering Over MPLS 2227 RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; 2228 } 2230 identity te-optimization-criterion { 2231 description 2232 "Base identity for the TE optimization criteria."; 2233 reference 2234 "RFC 3272: Overview and Principles of Internet Traffic 2235 Engineering"; 2236 } 2238 identity not-optimized { 2239 base te-optimization-criterion; 2240 description 2241 "Optimization is not applied."; 2242 } 2244 identity cost { 2245 base te-optimization-criterion; 2246 description 2247 "Optimized on cost."; 2248 reference 2249 "RFC 5541: Encoding of Objective Functions in the Path 2250 Computation Element Communication Protocol (PCEP)"; 2251 } 2252 identity delay { 2253 base te-optimization-criterion; 2254 description 2255 "Optimized on delay."; 2256 reference 2257 "RFC 5541: Encoding of Objective Functions in the Path 2258 Computation Element Communication Protocol (PCEP)"; 2259 } 2261 identity path-computation-srlg-type { 2262 description 2263 "Base identity for SRLG path computation."; 2264 } 2266 identity srlg-ignore { 2267 base path-computation-srlg-type; 2268 description 2269 "Ignores SRLGs in the path computation."; 2270 } 2272 identity srlg-strict { 2273 base path-computation-srlg-type; 2274 description 2275 "Includes a strict SRLG check in the path computation."; 2276 } 2278 identity srlg-preferred { 2279 base path-computation-srlg-type; 2280 description 2281 "Includes a preferred SRLG check in the path computation."; 2282 } 2284 identity srlg-weighted { 2285 base path-computation-srlg-type; 2286 description 2287 "Includes a weighted SRLG check in the path computation."; 2288 } 2290 /** 2291 * TE bandwidth groupings 2292 **/ 2294 grouping te-bandwidth { 2295 description 2296 "This grouping defines the generic TE bandwidth. 2297 For some known data-plane technologies, specific modeling 2298 structures are specified. The string-encoded 'te-bandwidth' 2299 type is used for unspecified technologies. 2301 The modeling structure can be augmented later for other 2302 technologies."; 2303 container te-bandwidth { 2304 description 2305 "Container that specifies TE bandwidth. The choices 2306 can be augmented for specific data-plane technologies."; 2307 choice technology { 2308 default "generic"; 2309 description 2310 "Data-plane technology type."; 2311 case generic { 2312 leaf generic { 2313 type te-bandwidth; 2314 description 2315 "Bandwidth specified in a generic format."; 2316 } 2317 } 2318 } 2319 } 2320 } 2322 /** 2323 * TE label groupings 2324 **/ 2326 grouping te-label { 2327 description 2328 "This grouping defines the generic TE label. 2329 The modeling structure can be augmented for each technology. 2330 For unspecified technologies, 'rt-types:generalized-label' 2331 is used."; 2332 container te-label { 2333 description 2334 "Container that specifies the TE label. The choices can 2335 be augmented for specific data-plane technologies."; 2336 choice technology { 2337 default "generic"; 2338 description 2339 "Data-plane technology type."; 2340 case generic { 2341 leaf generic { 2342 type rt-types:generalized-label; 2343 description 2344 "TE label specified in a generic format."; 2345 } 2346 } 2347 } 2348 leaf direction { 2349 type te-label-direction; 2350 default "forward"; 2351 description 2352 "Label direction."; 2353 } 2354 } 2355 } 2357 grouping te-topology-identifier { 2358 description 2359 "Augmentation for a TE topology."; 2360 container te-topology-identifier { 2361 description 2362 "TE topology identifier container."; 2363 leaf provider-id { 2364 type te-global-id; 2365 default "0"; 2366 description 2367 "An identifier to uniquely identify a provider. 2368 If omitted, it assumes that the topology provider ID 2369 value = 0 (the default)."; 2370 } 2371 leaf client-id { 2372 type te-global-id; 2373 default "0"; 2374 description 2375 "An identifier to uniquely identify a client. 2376 If omitted, it assumes that the topology client ID 2377 value = 0 (the default)."; 2378 } 2379 leaf topology-id { 2380 type te-topology-id; 2381 default ""; 2382 description 2383 "When the datastore contains several topologies, 2384 'topology-id' distinguishes between them. If omitted, 2385 the default (empty) string for this leaf is assumed."; 2386 } 2387 } 2388 } 2390 /** 2391 * TE performance metrics groupings 2392 **/ 2394 grouping performance-metrics-one-way-delay-loss { 2395 description 2396 "Performance Metrics (PM) information in real time that can 2397 be applicable to links or connections. PM defined in this 2398 grouping are applicable to generic TE PM as well as packet TE 2399 PM."; 2400 reference 2401 "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions 2402 RFC 7823: Performance-Based Path Selection for Explicitly 2403 Routed Label Switched Paths (LSPs) Using TE Metric 2404 Extensions 2405 RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; 2406 leaf one-way-delay { 2407 type uint32 { 2408 range "0..16777215"; 2409 } 2410 description 2411 "One-way delay or latency in microseconds."; 2412 } 2413 leaf one-way-delay-normality { 2414 type te-types:performance-metrics-normality; 2415 description 2416 "One-way delay normality."; 2417 } 2418 } 2420 grouping performance-metrics-two-way-delay-loss { 2421 description 2422 "PM information in real time that can be applicable to links or 2423 connections. PM defined in this grouping are applicable to 2424 generic TE PM as well as packet TE PM."; 2425 reference 2426 "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions 2427 RFC 7823: Performance-Based Path Selection for Explicitly 2428 Routed Label Switched Paths (LSPs) Using TE Metric 2429 Extensions 2430 RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; 2431 leaf two-way-delay { 2432 type uint32 { 2433 range "0..16777215"; 2434 } 2435 description 2436 "Two-way delay or latency in microseconds."; 2437 } 2438 leaf two-way-delay-normality { 2439 type te-types:performance-metrics-normality; 2440 description 2441 "Two-way delay normality."; 2442 } 2443 } 2444 grouping performance-metrics-one-way-bandwidth { 2445 description 2446 "PM information in real time that can be applicable to links. 2447 PM defined in this grouping are applicable to generic TE PM 2448 as well as packet TE PM."; 2449 reference 2450 "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions 2451 RFC 7823: Performance-Based Path Selection for Explicitly 2452 Routed Label Switched Paths (LSPs) Using TE Metric 2453 Extensions 2454 RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; 2455 leaf one-way-residual-bandwidth { 2456 type rt-types:bandwidth-ieee-float32; 2457 units "bytes per second"; 2458 default "0x0p0"; 2459 description 2460 "Residual bandwidth that subtracts tunnel reservations from 2461 Maximum Bandwidth (or link capacity) (RFC 3630) and 2462 provides an aggregated remainder across QoS classes."; 2463 reference 2464 "RFC 3630: Traffic Engineering (TE) Extensions to OSPF 2465 Version 2"; 2466 } 2467 leaf one-way-residual-bandwidth-normality { 2468 type te-types:performance-metrics-normality; 2469 default "normal"; 2470 description 2471 "Residual bandwidth normality."; 2472 } 2473 leaf one-way-available-bandwidth { 2474 type rt-types:bandwidth-ieee-float32; 2475 units "bytes per second"; 2476 default "0x0p0"; 2477 description 2478 "Available bandwidth that is defined to be residual 2479 bandwidth minus the measured bandwidth used for the 2480 actual forwarding of non-RSVP-TE LSP packets. For a 2481 bundled link, available bandwidth is defined to be the 2482 sum of the component link available bandwidths."; 2483 } 2484 leaf one-way-available-bandwidth-normality { 2485 type te-types:performance-metrics-normality; 2486 default "normal"; 2487 description 2488 "Available bandwidth normality."; 2489 } 2490 leaf one-way-utilized-bandwidth { 2491 type rt-types:bandwidth-ieee-float32; 2492 units "bytes per second"; 2493 default "0x0p0"; 2494 description 2495 "Bandwidth utilization that represents the actual 2496 utilization of the link (i.e., as measured in the router). 2497 For a bundled link, bandwidth utilization is defined to 2498 be the sum of the component link bandwidth utilizations."; 2499 } 2500 leaf one-way-utilized-bandwidth-normality { 2501 type te-types:performance-metrics-normality; 2502 default "normal"; 2503 description 2504 "Bandwidth utilization normality."; 2505 } 2506 } 2508 grouping one-way-performance-metrics { 2509 description 2510 "One-way PM throttle grouping."; 2511 leaf one-way-delay { 2512 type uint32 { 2513 range "0..16777215"; 2514 } 2515 default "0"; 2516 description 2517 "One-way delay or latency in microseconds."; 2518 } 2519 leaf one-way-residual-bandwidth { 2520 type rt-types:bandwidth-ieee-float32; 2521 units "bytes per second"; 2522 default "0x0p0"; 2523 description 2524 "Residual bandwidth that subtracts tunnel reservations from 2525 Maximum Bandwidth (or link capacity) (RFC 3630) and 2526 provides an aggregated remainder across QoS classes."; 2527 reference 2528 "RFC 3630: Traffic Engineering (TE) Extensions to OSPF 2529 Version 2"; 2530 } 2531 leaf one-way-available-bandwidth { 2532 type rt-types:bandwidth-ieee-float32; 2533 units "bytes per second"; 2534 default "0x0p0"; 2535 description 2536 "Available bandwidth that is defined to be residual 2537 bandwidth minus the measured bandwidth used for the 2538 actual forwarding of non-RSVP-TE LSP packets. For a 2539 bundled link, available bandwidth is defined to be the 2540 sum of the component link available bandwidths."; 2541 } 2542 leaf one-way-utilized-bandwidth { 2543 type rt-types:bandwidth-ieee-float32; 2544 units "bytes per second"; 2545 default "0x0p0"; 2546 description 2547 "Bandwidth utilization that represents the actual 2548 utilization of the link (i.e., as measured in the router). 2549 For a bundled link, bandwidth utilization is defined to 2550 be the sum of the component link bandwidth utilizations."; 2551 } 2552 } 2554 grouping two-way-performance-metrics { 2555 description 2556 "Two-way PM throttle grouping."; 2557 leaf two-way-delay { 2558 type uint32 { 2559 range "0..16777215"; 2560 } 2561 default "0"; 2562 description 2563 "Two-way delay or latency in microseconds."; 2564 } 2565 } 2567 grouping performance-metrics-thresholds { 2568 description 2569 "Grouping for configurable thresholds for measured 2570 attributes."; 2571 uses one-way-performance-metrics; 2572 uses two-way-performance-metrics; 2573 } 2575 grouping performance-metrics-attributes { 2576 description 2577 "Contains PM attributes."; 2578 container performance-metrics-one-way { 2579 description 2580 "One-way link performance information in real time."; 2581 reference 2582 "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions 2583 RFC 7823: Performance-Based Path Selection for Explicitly 2584 Routed Label Switched Paths (LSPs) Using TE Metric 2585 Extensions 2586 RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; 2587 uses performance-metrics-one-way-delay-loss; 2588 uses performance-metrics-one-way-bandwidth; 2589 } 2590 container performance-metrics-two-way { 2591 description 2592 "Two-way link performance information in real time."; 2593 reference 2594 "RFC 6374: Packet Loss and Delay Measurement for MPLS 2595 Networks"; 2596 uses performance-metrics-two-way-delay-loss; 2597 } 2598 } 2600 grouping performance-metrics-throttle-container { 2601 description 2602 "Controls PM throttling."; 2603 container throttle { 2604 must 'suppression-interval >= measure-interval' { 2605 error-message "'suppression-interval' cannot be less than " 2606 + "'measure-interval'."; 2607 description 2608 "Constraint on 'suppression-interval' and 2609 'measure-interval'."; 2610 } 2611 description 2612 "Link performance information in real time."; 2613 reference 2614 "RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions 2615 RFC 7823: Performance-Based Path Selection for Explicitly 2616 Routed Label Switched Paths (LSPs) Using TE Metric 2617 Extensions 2618 RFC 8570: IS-IS Traffic Engineering (TE) Metric Extensions"; 2619 leaf one-way-delay-offset { 2620 type uint32 { 2621 range "0..16777215"; 2622 } 2623 default "0"; 2624 description 2625 "Offset value to be added to the measured delay value."; 2626 } 2627 leaf measure-interval { 2628 type uint32; 2629 default "30"; 2630 description 2631 "Interval, in seconds, to measure the extended metric 2632 values."; 2633 } 2634 leaf advertisement-interval { 2635 type uint32; 2636 default "0"; 2637 description 2638 "Interval, in seconds, to advertise the extended metric 2639 values."; 2640 } 2641 leaf suppression-interval { 2642 type uint32 { 2643 range "1..max"; 2644 } 2645 default "120"; 2646 description 2647 "Interval, in seconds, to suppress advertisement of the 2648 extended metric values."; 2649 reference 2650 "RFC 8570: IS-IS Traffic Engineering (TE) Metric 2651 Extensions, Section 6"; 2652 } 2653 container threshold-out { 2654 uses performance-metrics-thresholds; 2655 description 2656 "If the measured parameter falls outside an upper bound 2657 for all but the minimum-delay metric (or a lower bound 2658 for the minimum-delay metric only) and the advertised 2659 value is not already outside that bound, an 'anomalous' 2660 announcement (anomalous bit set) will be triggered."; 2661 } 2662 container threshold-in { 2663 uses performance-metrics-thresholds; 2664 description 2665 "If the measured parameter falls inside an upper bound 2666 for all but the minimum-delay metric (or a lower bound 2667 for the minimum-delay metric only) and the advertised 2668 value is not already inside that bound, a 'normal' 2669 announcement (anomalous bit cleared) will be triggered."; 2670 } 2671 container threshold-accelerated-advertisement { 2672 description 2673 "When the difference between the last advertised value and 2674 the current measured value exceeds this threshold, an 2675 'anomalous' announcement (anomalous bit set) will be 2676 triggered."; 2677 uses performance-metrics-thresholds; 2678 } 2679 } 2680 } 2682 /** 2683 * TE tunnel generic groupings 2684 **/ 2686 grouping explicit-route-hop { 2687 description 2688 "The explicit route entry grouping."; 2689 choice type { 2690 description 2691 "The explicit route entry type."; 2692 case numbered-node-hop { 2693 container numbered-node-hop { 2694 leaf node-id { 2695 type te-node-id; 2696 mandatory true; 2697 description 2698 "The identifier of a node in the TE topology."; 2699 } 2700 leaf hop-type { 2701 type te-hop-type; 2702 default "strict"; 2703 description 2704 "Strict or loose hop."; 2705 } 2706 description 2707 "Numbered node route hop."; 2708 reference 2709 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, 2710 Section 4.3, EXPLICIT_ROUTE in RSVP-TE 2711 RFC 3477: Signalling Unnumbered Links in Resource 2712 ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; 2713 } 2714 } 2715 case numbered-link-hop { 2716 container numbered-link-hop { 2717 leaf link-tp-id { 2718 type te-tp-id; 2719 mandatory true; 2720 description 2721 "TE Link Termination Point (LTP) identifier."; 2722 } 2723 leaf hop-type { 2724 type te-hop-type; 2725 default "strict"; 2726 description 2727 "Strict or loose hop."; 2728 } 2729 leaf direction { 2730 type te-link-direction; 2731 default "outgoing"; 2732 description 2733 "Link route object direction."; 2734 } 2735 description 2736 "Numbered link explicit route hop."; 2737 reference 2738 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, 2739 Section 4.3, EXPLICIT_ROUTE in RSVP-TE 2740 RFC 3477: Signalling Unnumbered Links in Resource 2741 ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; 2742 } 2743 } 2744 case unnumbered-link-hop { 2745 container unnumbered-link-hop { 2746 leaf link-tp-id { 2747 type te-tp-id; 2748 mandatory true; 2749 description 2750 "TE LTP identifier. The combination of the TE link ID 2751 and the TE node ID is used to identify an unnumbered 2752 TE link."; 2753 } 2754 leaf node-id { 2755 type te-node-id; 2756 mandatory true; 2757 description 2758 "The identifier of a node in the TE topology."; 2759 } 2760 leaf hop-type { 2761 type te-hop-type; 2762 default "strict"; 2763 description 2764 "Strict or loose hop."; 2765 } 2766 leaf direction { 2767 type te-link-direction; 2768 default "outgoing"; 2769 description 2770 "Link route object direction."; 2771 } 2772 description 2773 "Unnumbered link explicit route hop."; 2774 reference 2775 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels, 2776 Section 4.3, EXPLICIT_ROUTE in RSVP-TE 2777 RFC 3477: Signalling Unnumbered Links in Resource 2778 ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; 2779 } 2781 } 2782 case as-number { 2783 container as-number-hop { 2784 leaf as-number { 2785 type inet:as-number; 2786 mandatory true; 2787 description 2788 "The Autonomous System (AS) number."; 2789 } 2790 leaf hop-type { 2791 type te-hop-type; 2792 default "strict"; 2793 description 2794 "Strict or loose hop."; 2795 } 2796 description 2797 "AS explicit route hop."; 2798 } 2799 } 2800 case label { 2801 container label-hop { 2802 description 2803 "Label hop type."; 2804 uses te-label; 2805 } 2806 description 2807 "The label explicit route hop type."; 2808 } 2809 } 2810 } 2812 grouping record-route-state { 2813 description 2814 "The Record Route grouping."; 2815 leaf index { 2816 type uint32; 2817 description 2818 "Record Route hop index. The index is used to 2819 identify an entry in the list. The order of entries 2820 is defined by the user without relying on key values."; 2821 } 2822 choice type { 2823 description 2824 "The Record Route entry type."; 2825 case numbered-node-hop { 2826 container numbered-node-hop { 2827 description 2828 "Numbered node route hop container."; 2830 leaf node-id { 2831 type te-node-id; 2832 mandatory true; 2833 description 2834 "The identifier of a node in the TE topology."; 2835 } 2836 leaf-list flags { 2837 type path-attribute-flags; 2838 description 2839 "Path attributes flags."; 2840 reference 2841 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels 2842 RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP 2843 Tunnels 2844 RFC 4561: Definition of a Record Route Object (RRO) 2845 Node-Id Sub-Object"; 2846 } 2847 } 2848 description 2849 "Numbered node route hop."; 2850 } 2851 case numbered-link-hop { 2852 container numbered-link-hop { 2853 description 2854 "Numbered link route hop container."; 2855 leaf link-tp-id { 2856 type te-tp-id; 2857 mandatory true; 2858 description 2859 "Numbered TE LTP identifier."; 2860 } 2861 leaf-list flags { 2862 type path-attribute-flags; 2863 description 2864 "Path attributes flags."; 2865 reference 2866 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels 2867 RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP 2868 Tunnels 2869 RFC 4561: Definition of a Record Route Object (RRO) 2870 Node-Id Sub-Object"; 2871 } 2872 } 2873 description 2874 "Numbered link route hop."; 2875 } 2876 case unnumbered-link-hop { 2877 container unnumbered-link-hop { 2878 leaf link-tp-id { 2879 type te-tp-id; 2880 mandatory true; 2881 description 2882 "TE LTP identifier. The combination of the TE link ID 2883 and the TE node ID is used to identify an unnumbered 2884 TE link."; 2885 } 2886 leaf node-id { 2887 type te-node-id; 2888 description 2889 "The identifier of a node in the TE topology."; 2890 } 2891 leaf-list flags { 2892 type path-attribute-flags; 2893 description 2894 "Path attributes flags."; 2895 reference 2896 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels 2897 RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP 2898 Tunnels 2899 RFC 4561: Definition of a Record Route Object (RRO) 2900 Node-Id Sub-Object"; 2901 } 2902 description 2903 "Unnumbered link Record Route hop."; 2904 reference 2905 "RFC 3477: Signalling Unnumbered Links in Resource 2906 ReSerVation Protocol - Traffic Engineering (RSVP-TE)"; 2907 } 2908 description 2909 "Unnumbered link route hop."; 2910 } 2911 case label { 2912 container label-hop { 2913 description 2914 "Label route hop type."; 2915 uses te-label; 2916 leaf-list flags { 2917 type path-attribute-flags; 2918 description 2919 "Path attributes flags."; 2920 reference 2921 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels 2922 RFC 4090: Fast Reroute Extensions to RSVP-TE for LSP 2923 Tunnels 2924 RFC 4561: Definition of a Record Route Object (RRO) 2925 Node-Id Sub-Object"; 2927 } 2928 } 2929 description 2930 "The label Record Route entry types."; 2931 } 2932 } 2933 } 2935 grouping label-restriction-info { 2936 description 2937 "Label set item information."; 2938 leaf restriction { 2939 type enumeration { 2940 enum inclusive { 2941 description 2942 "The label or label range is inclusive."; 2943 } 2944 enum exclusive { 2945 description 2946 "The label or label range is exclusive."; 2947 } 2948 } 2949 default "inclusive"; 2950 description 2951 "Indicates whether the list item is inclusive or exclusive."; 2952 } 2953 leaf index { 2954 type uint32; 2955 description 2956 "The index of the label restriction list entry."; 2957 } 2958 container label-start { 2959 must "(not(../label-end/te-label/direction) and" 2960 + " not(te-label/direction))" 2961 + " or " 2962 + "(../label-end/te-label/direction = te-label/direction)" 2963 + " or " 2964 + "(not(te-label/direction) and" 2965 + " (../label-end/te-label/direction = 'forward'))" 2966 + " or " 2967 + "(not(../label-end/te-label/direction) and" 2968 + " (te-label/direction = 'forward'))" { 2969 error-message "'label-start' and 'label-end' must have the " 2970 + "same direction."; 2971 } 2972 description 2973 "This is the starting label if a label range is specified. 2974 This is the label value if a single label is specified, 2975 in which case the 'label-end' attribute is not set."; 2976 uses te-label; 2977 } 2978 container label-end { 2979 must "(not(../label-start/te-label/direction) and" 2980 + " not(te-label/direction))" 2981 + " or " 2982 + "(../label-start/te-label/direction = te-label/direction)" 2983 + " or " 2984 + "(not(te-label/direction) and" 2985 + " (../label-start/te-label/direction = 'forward'))" 2986 + " or " 2987 + "(not(../label-start/te-label/direction) and" 2988 + " (te-label/direction = 'forward'))" { 2989 error-message "'label-start' and 'label-end' must have the " 2990 + "same direction."; 2991 } 2992 description 2993 "This is the ending label if a label range is specified. 2994 This attribute is not set if a single label is specified."; 2995 uses te-label; 2996 } 2997 container label-step { 2998 description 2999 "The step increment between labels in the label range. 3000 The label start/end values will have to be consistent 3001 with the sign of label step. For example, 3002 'label-start' < 'label-end' enforces 'label-step' > 0 3003 'label-start' > 'label-end' enforces 'label-step' < 0."; 3004 choice technology { 3005 default "generic"; 3006 description 3007 "Data-plane technology type."; 3008 case generic { 3009 leaf generic { 3010 type int32; 3011 default "1"; 3012 description 3013 "Label range step."; 3014 } 3015 } 3016 } 3017 } 3018 leaf range-bitmap { 3019 type yang:hex-string; 3020 description 3021 "When there are gaps between 'label-start' and 'label-end', 3022 this attribute is used to specify the positions 3023 of the used labels. This is represented in big endian as 3024 'hex-string'. 3025 The most significant byte in the hex-string is the farthest 3026 to the left in the byte sequence. Leading zero bytes in the 3027 configured value may be omitted for brevity. 3028 Each bit position in the 'range-bitmap' 'hex-string' maps 3029 to a label in the range derived from 'label-start'. 3031 For example, assuming that 'label-start' = 16000 and 3032 'range-bitmap' = 0x01000001, then: 3034 - bit position (0) is set, and the corresponding mapped 3035 label from the range is 16000 + (0 * 'label-step') or 3036 16000 for default 'label-step' = 1. 3037 - bit position (24) is set, and the corresponding mapped 3038 label from the range is 16000 + (24 * 'label-step') or 3039 16024 for default 'label-step' = 1."; 3040 } 3041 } 3043 grouping label-set-info { 3044 description 3045 "Grouping for the list of label restrictions specifying what 3046 labels may or may not be used."; 3047 container label-restrictions { 3048 description 3049 "The label restrictions container."; 3050 list label-restriction { 3051 key "index"; 3052 description 3053 "The absence of the label restrictions container implies 3054 that all labels are acceptable; otherwise, only restricted 3055 labels are available."; 3056 reference 3057 "RFC 7579: General Network Element Constraint Encoding 3058 for GMPLS-Controlled Networks"; 3059 uses label-restriction-info; 3060 } 3061 } 3062 } 3064 grouping optimization-metric-entry { 3065 description 3066 "Optimization metrics configuration grouping."; 3067 leaf metric-type { 3068 type identityref { 3069 base path-metric-type; 3070 } 3071 description 3072 "Identifies the 'metric-type' that the path computation 3073 process uses for optimization."; 3074 } 3075 leaf weight { 3076 type uint8; 3077 default "1"; 3078 description 3079 "TE path metric normalization weight."; 3080 } 3081 container explicit-route-exclude-objects { 3082 when "../metric-type = " 3083 + "'te-types:path-metric-optimize-excludes'"; 3084 description 3085 "Container for the 'exclude route' object list."; 3086 uses path-route-exclude-objects; 3087 } 3088 container explicit-route-include-objects { 3089 when "../metric-type = " 3090 + "'te-types:path-metric-optimize-includes'"; 3091 description 3092 "Container for the 'include route' object list."; 3093 uses path-route-include-objects; 3094 } 3095 } 3097 grouping common-constraints { 3098 description 3099 "Common constraints grouping that can be set on 3100 a constraint set or directly on the tunnel."; 3101 uses te-bandwidth { 3102 description 3103 "A requested bandwidth to use for path computation."; 3104 } 3105 leaf link-protection { 3106 type identityref { 3107 base link-protection-type; 3108 } 3109 default "te-types:link-protection-unprotected"; 3110 description 3111 "Link protection type required for the links included 3112 in the computed path."; 3113 reference 3114 "RFC 4202: Routing Extensions in Support of 3115 Generalized Multi-Protocol Label Switching (GMPLS)"; 3116 } 3117 leaf setup-priority { 3118 type uint8 { 3119 range "0..7"; 3120 } 3121 default "7"; 3122 description 3123 "TE LSP requested setup priority."; 3124 reference 3125 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; 3126 } 3127 leaf hold-priority { 3128 type uint8 { 3129 range "0..7"; 3130 } 3131 default "7"; 3132 description 3133 "TE LSP requested hold priority."; 3134 reference 3135 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; 3136 } 3137 leaf signaling-type { 3138 type identityref { 3139 base path-signaling-type; 3140 } 3141 default "te-types:path-setup-rsvp"; 3142 description 3143 "TE tunnel path signaling type."; 3144 } 3145 } 3147 grouping tunnel-constraints { 3148 description 3149 "Tunnel constraints grouping that can be set on 3150 a constraint set or directly on the tunnel."; 3151 uses te-topology-identifier; 3152 uses common-constraints; 3153 } 3155 grouping path-constraints-route-objects { 3156 description 3157 "List of route entries to be included or excluded when 3158 performing the path computation."; 3159 container explicit-route-objects-always { 3160 description 3161 "Container for the 'exclude route' object list."; 3162 list route-object-exclude-always { 3163 key "index"; 3164 ordered-by user; 3165 description 3166 "List of route objects to always exclude from the path 3167 computation."; 3168 leaf index { 3169 type uint32; 3170 description 3171 "Explicit Route Object index. The index is used to 3172 identify an entry in the list. The order of entries 3173 is defined by the user without relying on key values."; 3174 } 3175 uses explicit-route-hop; 3176 } 3177 list route-object-include-exclude { 3178 key "index"; 3179 ordered-by user; 3180 description 3181 "List of route objects to include or exclude in the path 3182 computation."; 3183 leaf explicit-route-usage { 3184 type identityref { 3185 base route-usage-type; 3186 } 3187 default "te-types:route-include-object"; 3188 description 3189 "Indicates whether to include or exclude the 3190 route object. The default is to include it."; 3191 } 3192 leaf index { 3193 type uint32; 3194 description 3195 "Route object include-exclude index. The index is used 3196 to identify an entry in the list. The order of entries 3197 is defined by the user without relying on key values."; 3198 } 3199 uses explicit-route-hop { 3200 augment "type" { 3201 case srlg { 3202 container srlg { 3203 description 3204 "SRLG container."; 3205 leaf srlg { 3206 type uint32; 3207 description 3208 "SRLG value."; 3209 } 3210 } 3211 description 3212 "An SRLG value to be included or excluded."; 3213 } 3214 description 3215 "Augmentation for a generic explicit route for SRLG 3216 exclusion."; 3217 } 3218 } 3219 } 3220 } 3221 } 3223 grouping path-route-include-objects { 3224 description 3225 "List of route objects to be included when performing 3226 the path computation."; 3227 list route-object-include-object { 3228 key "index"; 3229 ordered-by user; 3230 description 3231 "List of Explicit Route Objects to be included in the 3232 path computation."; 3233 leaf index { 3234 type uint32; 3235 description 3236 "Route object entry index. The index is used to 3237 identify an entry in the list. The order of entries 3238 is defined by the user without relying on key values."; 3239 } 3240 uses explicit-route-hop; 3241 } 3242 } 3244 grouping path-route-exclude-objects { 3245 description 3246 "List of route objects to be excluded when performing 3247 the path computation."; 3248 list route-object-exclude-object { 3249 key "index"; 3250 ordered-by user; 3251 description 3252 "List of Explicit Route Objects to be excluded in the 3253 path computation."; 3254 leaf index { 3255 type uint32; 3256 description 3257 "Route object entry index. The index is used to 3258 identify an entry in the list. The order of entries 3259 is defined by the user without relying on key values."; 3260 } 3261 uses explicit-route-hop { 3262 augment "type" { 3263 case srlg { 3264 container srlg { 3265 description 3266 "SRLG container."; 3267 leaf srlg { 3268 type uint32; 3269 description 3270 "SRLG value."; 3271 } 3272 } 3273 description 3274 "An SRLG value to be included or excluded."; 3275 } 3276 description 3277 "Augmentation for a generic explicit route for SRLG 3278 exclusion."; 3279 } 3280 } 3281 } 3282 } 3284 grouping generic-path-metric-bounds { 3285 description 3286 "TE path metric bounds grouping."; 3287 container path-metric-bounds { 3288 description 3289 "TE path metric bounds container."; 3290 list path-metric-bound { 3291 key "metric-type"; 3292 description 3293 "List of TE path metric bounds."; 3294 leaf metric-type { 3295 type identityref { 3296 base path-metric-type; 3297 } 3298 description 3299 "Identifies an entry in the list of 'metric-type' items 3300 bound for the TE path."; 3301 } 3302 leaf upper-bound { 3303 type uint64; 3304 default "0"; 3305 description 3306 "Upper bound on the end-to-end TE path metric. A zero 3307 indicates an unbounded upper limit for the specific 3308 'metric-type'."; 3309 } 3310 } 3312 } 3313 } 3315 grouping generic-path-optimization { 3316 description 3317 "TE generic path optimization grouping."; 3318 container optimizations { 3319 description 3320 "The objective function container that includes 3321 attributes to impose when computing a TE path."; 3322 choice algorithm { 3323 description 3324 "Optimizations algorithm."; 3325 case metric { 3326 if-feature "path-optimization-metric"; 3327 /* Optimize by metric */ 3328 list optimization-metric { 3329 key "metric-type"; 3330 description 3331 "TE path metric type."; 3332 uses optimization-metric-entry; 3333 } 3334 /* Tiebreakers */ 3335 container tiebreakers { 3336 description 3337 "Container for the list of tiebreakers."; 3338 list tiebreaker { 3339 key "tiebreaker-type"; 3340 description 3341 "The list of tiebreaker criteria to apply on an 3342 equally favored set of paths, in order to pick 3343 the best."; 3344 leaf tiebreaker-type { 3345 type identityref { 3346 base path-metric-type; 3347 } 3348 description 3349 "Identifies an entry in the list of tiebreakers."; 3350 } 3351 } 3352 } 3353 } 3354 case objective-function { 3355 if-feature "path-optimization-objective-function"; 3356 /* Objective functions */ 3357 container objective-function { 3358 description 3359 "The objective function container that includes 3360 attributes to impose when computing a TE path."; 3361 leaf objective-function-type { 3362 type identityref { 3363 base objective-function-type; 3364 } 3365 default "te-types:of-minimize-cost-path"; 3366 description 3367 "Objective function entry."; 3368 } 3369 } 3370 } 3371 } 3372 } 3373 } 3375 grouping generic-path-affinities { 3376 description 3377 "Path affinities grouping."; 3378 container path-affinities-values { 3379 description 3380 "Path affinities represented as values."; 3381 list path-affinities-value { 3382 key "usage"; 3383 description 3384 "List of named affinity constraints."; 3385 leaf usage { 3386 type identityref { 3387 base resource-affinities-type; 3388 } 3389 description 3390 "Identifies an entry in the list of value affinity 3391 constraints."; 3392 } 3393 leaf value { 3394 type admin-groups; 3395 default ""; 3396 description 3397 "The affinity value. The default is empty."; 3398 } 3399 } 3400 } 3401 container path-affinity-names { 3402 description 3403 "Path affinities represented as names."; 3404 list path-affinity-name { 3405 key "usage"; 3406 description 3407 "List of named affinity constraints."; 3409 leaf usage { 3410 type identityref { 3411 base resource-affinities-type; 3412 } 3413 description 3414 "Identifies an entry in the list of named affinity 3415 constraints."; 3416 } 3417 list affinity-name { 3418 key "name"; 3419 leaf name { 3420 type string; 3421 description 3422 "Identifies a named affinity entry."; 3423 } 3424 description 3425 "List of named affinities."; 3426 } 3427 } 3428 } 3429 } 3431 grouping generic-path-srlgs { 3432 description 3433 "Path SRLG grouping."; 3434 container path-srlgs-lists { 3435 description 3436 "Path SRLG properties container."; 3437 list path-srlgs-list { 3438 key "usage"; 3439 description 3440 "List of SRLG values to be included or excluded."; 3441 leaf usage { 3442 type identityref { 3443 base route-usage-type; 3444 } 3445 description 3446 "Identifies an entry in a list of SRLGs to either 3447 include or exclude."; 3448 } 3449 leaf-list values { 3450 type srlg; 3451 description 3452 "List of SRLG values."; 3453 } 3454 } 3455 } 3456 container path-srlgs-names { 3457 description 3458 "Container for the list of named SRLGs."; 3459 list path-srlgs-name { 3460 key "usage"; 3461 description 3462 "List of named SRLGs to be included or excluded."; 3463 leaf usage { 3464 type identityref { 3465 base route-usage-type; 3466 } 3467 description 3468 "Identifies an entry in a list of named SRLGs to either 3469 include or exclude."; 3470 } 3471 leaf-list names { 3472 type string; 3473 description 3474 "List of named SRLGs."; 3475 } 3476 } 3477 } 3478 } 3480 grouping generic-path-disjointness { 3481 description 3482 "Path disjointness grouping."; 3483 leaf disjointness { 3484 type te-path-disjointness; 3485 description 3486 "The type of resource disjointness. 3487 When configured for a primary path, the disjointness level 3488 applies to all secondary LSPs. When configured for a 3489 secondary path, the disjointness level overrides the level 3490 configured for the primary path."; 3491 } 3492 } 3494 grouping common-path-constraints-attributes { 3495 description 3496 "Common path constraints configuration grouping."; 3497 uses common-constraints; 3498 uses generic-path-metric-bounds; 3499 uses generic-path-affinities; 3500 uses generic-path-srlgs; 3501 } 3503 grouping generic-path-constraints { 3504 description 3505 "Global named path constraints configuration grouping."; 3506 container path-constraints { 3507 description 3508 "TE named path constraints container."; 3509 uses common-path-constraints-attributes; 3510 uses generic-path-disjointness; 3511 } 3512 } 3514 grouping generic-path-properties { 3515 description 3516 "TE generic path properties grouping."; 3517 container path-properties { 3518 config false; 3519 description 3520 "The TE path properties."; 3521 list path-metric { 3522 key "metric-type"; 3523 description 3524 "TE path metric type."; 3525 leaf metric-type { 3526 type identityref { 3527 base path-metric-type; 3528 } 3529 description 3530 "TE path metric type."; 3531 } 3532 leaf accumulative-value { 3533 type uint64; 3534 description 3535 "TE path metric accumulative value."; 3536 } 3537 } 3538 uses generic-path-affinities; 3539 uses generic-path-srlgs; 3540 container path-route-objects { 3541 description 3542 "Container for the list of route objects either returned by 3543 the computation engine or actually used by an LSP."; 3544 list path-route-object { 3545 key "index"; 3546 ordered-by user; 3547 description 3548 "List of route objects either returned by the computation 3549 engine or actually used by an LSP."; 3550 leaf index { 3551 type uint32; 3552 description 3553 "Route object entry index. The index is used to 3554 identify an entry in the list. The order of entries 3555 is defined by the user without relying on key 3556 values."; 3557 } 3558 uses explicit-route-hop; 3559 } 3560 } 3561 } 3562 } 3564 // NOTE: The grouping encoding-and-switching-type below has been 3565 // added in this module revision 3566 // RFC Editor: remove the note above and this note 3568 grouping encoding-and-switching-type { 3569 description 3570 "Common grouping to define the LSP encoding and 3571 switching types"; 3572 leaf encoding { 3573 type identityref { 3574 base te-types:lsp-encoding-types; 3575 } 3576 description 3577 "LSP encoding type."; 3578 reference 3579 "RFC3945"; 3580 } 3581 leaf switching-type { 3582 type identityref { 3583 base te-types:switching-capabilities; 3584 } 3585 description 3586 "LSP switching type."; 3587 reference 3588 "RFC3945"; 3589 } 3590 } 3591 } 3592 3594 Figure 1: TE Types YANG module 3596 4. IANA Considerations 3598 This document updates the ietf-te-types YANG module registered by 3599 [RFC8776]. 3601 Therefore this document does not require any IANA actions. 3603 5. Security Considerations 3605 The security considerations defined in section 7 of [RFC8776] applies 3606 to the revision of the ietf-te-types YANG module. 3608 This document just adds new typedefs and groupings to the YANG 3609 modules defined in [RFC8776] and therefore it does not introduce 3610 additional considerations. 3612 6. References 3614 6.1. Normative References 3616 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3617 Requirement Levels", BCP 14, RFC 2119, 3618 DOI 10.17487/RFC2119, March 1997, 3619 . 3621 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 3622 RFC 7950, DOI 10.17487/RFC7950, August 2016, 3623 . 3625 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 3626 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 3627 May 2017, . 3629 [RFC8776] Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 3630 "Common YANG Data Types for Traffic Engineering", 3631 RFC 8776, DOI 10.17487/RFC8776, June 2020, 3632 . 3634 6.2. Informative References 3636 [I-D.ietf-teas-yang-l3-te-topo] 3637 Liu, X., Bryskin, I., Beeram, V. P., Saad, T., Shah, H., 3638 and O. G. D. Dios, "YANG Data Model for Layer 3 TE 3639 Topologies", Work in Progress, Internet-Draft, draft-ietf- 3640 teas-yang-l3-te-topo-12, 24 October 2021, 3641 . 3644 [I-D.ietf-teas-yang-te] 3645 Saad, T., Gandhi, R., Liu, X., Beeram, V. P., Bryskin, I., 3646 and O. G. D. Dios, "A YANG Data Model for Traffic 3647 Engineering Tunnels, Label Switched Paths and Interfaces", 3648 Work in Progress, Internet-Draft, draft-ietf-teas-yang-te- 3649 29, 7 February 2022, . 3652 Acknowledgements 3654 The authors would like to thank Robert Wilton, Lou Berger, Mahesh 3655 Jethanandani and Jeff Haas for their valuable input to the discussion 3656 about the process to follow to provide tiny updates to a YANG module 3657 already published as an RFC. 3659 This document was prepared using kramdown. 3661 Authors' Addresses 3663 Italo Busi 3664 Huawei 3665 Email: italo.busi@huawei.com 3667 Aihua Guo 3668 Futurewei Technologies 3669 Email: aihuaguo.ietf@gmail.com 3671 Xufeng Liu 3672 IBM Corporation 3673 Email: xufeng.liu.ietf@gmail.com 3675 Tarek Saad 3676 Juniper Networks 3677 Email: tsaad@juniper.net 3679 Rakesh Gandhi 3680 Cisco Systems, Inc. 3681 Email: rgandhi@cisco.com 3683 Vishnu Pavan Beeram 3684 Juniper Networks 3685 Email: vbeeram@juniper.net 3686 Igor Bryskin 3687 Individual 3688 Email: i_bryskin@yahoo.com