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