idnits 2.17.1 draft-ietf-teas-yang-te-types-00.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 doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (September 12, 2018) is 2053 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-16 Summary: 0 errors (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TEAS Working Group T. Saad, Ed. 3 Internet-Draft R. Gandhi 4 Intended status: Standards Track Cisco Systems Inc 5 Expires: March 16, 2019 X. Liu 6 Volta Networks 7 V. Beeram 8 Juniper Networks 9 H. Shah 10 Ciena 11 I. Bryskin 12 Y. Lee 13 Huawei Technologies 14 September 12, 2018 16 Traffic Engineering Common YANG Types 17 draft-ietf-teas-yang-te-types-00 19 Abstract 21 This document defines a collection of common data types and groupings 22 in YANG data modeling language. These derived common types and 23 groupings are intended to be imported by modules that model Traffic 24 Engineering (TE) configuration and state capabilities. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on March 16, 2019. 43 Copyright Notice 45 Copyright (c) 2018 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (https://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 62 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 63 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 64 3. IETF TE Types YANG Module . . . . . . . . . . . . . . . . . . 3 65 4. IETF MPLS TE Types YANG Module . . . . . . . . . . . . . . . 53 66 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 57 67 6. Security Considerations . . . . . . . . . . . . . . . . . . . 57 68 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 57 69 8. Normative References . . . . . . . . . . . . . . . . . . . . 57 70 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 59 72 1. Introduction 74 YANG [RFC6020] [RFC7950] is a data modeling language used to model 75 configuration data, state data, Remote Procedure Calls, and 76 notifications for network management protocols. The YANG language 77 supports a small set of built-in data types and provides mechanisms 78 to derive other types from the built-in types. 80 This document introduces a collection of common data types derived 81 from the built-in YANG data types. The derived types are designed to 82 be the common types applicable for modeling for TE features (e.g. in 83 models defined in [I-D.ietf-teas-yang-te] and 84 [I-D.ietf-teas-yang-rsvp]). 86 1.1. Terminology 88 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 89 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 90 document are to be interpreted as described in BCP 14, RFC 2119 91 [RFC2119]. 93 1.2. Prefixes in Data Node Names 95 In this document, names of data nodes and other data model objects 96 are prefixed using the standard prefix associated with the 97 corresponding YANG imported modules, as shown in Table 1. 99 +---------------+--------------------+---------------+ 100 | Prefix | YANG module | Reference | 101 +---------------+--------------------+---------------+ 102 | yang | ietf-yang-types | [RFC6991] | 103 | inet | ietf-inet-types | [RFC6991] | 104 | te-types | ietf-te-types | this document | 105 | te-mpls-types | ietf-te-mpls-types | this document | 106 +---------------+--------------------+---------------+ 108 Table 1: Prefixes and corresponding YANG modules 110 2. Overview 112 The TE generic types module covers the building blocks that are 113 independent and agnostic of any specific technology or control plane 114 instance. The MPLS TE types modules covers the common types reusable 115 groupings specific to MPLS technology. Other technology specific TE 116 types are outside the scope of this document. 118 This document defines two YANG modules for common TE types: ietf-te- 119 types and ietf-te-mpls-types. The TE module imports (ietf-yang- 120 types, ietf-inet-types and ietf-routing-types; see Section 3) are 121 from [RFC6991] and [RFC8294]. 123 3. IETF TE Types YANG Module 125 file "ietf-te-types@2018-09-13.yang" 126 module ietf-te-types { 128 namespace "urn:ietf:params:xml:ns:yang:ietf-te-types"; 130 /* Replace with IANA when assigned */ 131 prefix "te-types"; 133 import ietf-inet-types { 134 prefix inet; 135 } 137 import ietf-yang-types { 138 prefix "yang"; 139 } 140 import ietf-routing-types { 141 prefix "rt-types"; 142 } 144 organization 145 "IETF Traffic Engineering Architecture and Signaling (TEAS) 146 Working Group"; 148 contact 149 "WG Web: 150 WG List: 152 WG Chair: Lou Berger 153 155 WG Chair: Vishnu Pavan Beeram 156 158 Editor: Tarek Saad 159 161 Editor: Rakesh Gandhi 162 164 Editor: Vishnu Pavan Beeram 165 167 Editor: Himanshu Shah 168 170 Editor: Xufeng Liu 171 173 Editor: Igor Bryskin 174 176 Editor: Young Lee 177 "; 179 description 180 "This module contains a collection of generally 181 useful TE specific YANG data type definitions."; 183 revision "2018-09-13" { 184 description "Latest revision of TE types"; 185 reference "RFC3209"; 186 } 187 /** 188 * Typedefs 189 */ 190 typedef te-bandwidth { 191 type string { 192 pattern 193 '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 194 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 195 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' 196 + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 197 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 198 + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; 199 } 200 description 201 "This is the generic bandwidth type that is a string containing 202 a list of numbers separated by commas, with each of these 203 number can be non-negative decimal, hex integer, or hex float: 204 (dec | hex | float)[*(','(dec | hex | float))] 205 For packet switching type, a float number is used, such as 206 0x1p10. 207 For OTN switching type, a list of integers can be used, such 208 as '0,2,3,1', indicating 2 odu0's and 1 odu3. 209 For DWDM, a list of pairs of slot number and width can be 210 used, such as '0, 2, 3, 3', indicating a frequency slot 0 with 211 slot width 2 and a frequency slot 3 with slot width 3."; 212 } // te-bandwidth 214 typedef te-ds-class { 215 type uint8 { 216 range "0..7"; 217 } 218 description 219 "The Differentiated Class-Type of traffic."; 220 reference "RFC4124: section-4.3.1"; 221 } 223 typedef te-link-direction { 224 type enumeration { 225 enum INCOMING { 226 description 227 "explicit route represents an incoming link on a node"; 228 } 229 enum OUTGOING { 230 description 231 "explicit route represents an outgoing link on a node"; 232 } 233 } 234 description 235 "enumerated type for specifying direction of link on a node"; 236 } 238 typedef te-label-direction { 239 type enumeration { 240 enum FORWARD { 241 description 242 "Label allocated for the forward LSP direction"; 243 } 244 enum REVERSE { 245 description 246 "Label allocated for the reverse LSP direction"; 247 } 248 } 249 description 250 "enumerated type for specifying the forward or reverse 251 label"; 252 } 254 typedef te-hop-type { 255 type enumeration { 256 enum LOOSE { 257 description 258 "loose hop in an explicit path"; 259 } 260 enum STRICT { 261 description 262 "strict hop in an explicit path"; 263 } 264 } 265 description 266 "enumerated type for specifying loose or strict 267 paths"; 268 reference "RFC3209: section-4.3.2"; 269 } 271 typedef optimization-goal { 272 type enumeration { 273 enum minimize { 274 description "Pick lowest path metric goal"; 275 } 276 enum maximize { 277 description "Pick highest path metric goal"; 278 } 279 enum randomize { 280 description 281 "Pick a path at random from list of 282 equally favorable ones"; 284 } 285 } 286 description "TE optimization goal"; 287 } 289 typedef percentage { 290 type uint8 { 291 range "0..100"; 292 } 293 description 294 "Integer indicating a percentage value"; 295 } 297 typedef performance-metric-normality { 298 type enumeration { 299 enum "unknown" { 300 value 0; 301 description 302 "Unknown."; 303 } 304 enum "normal" { 305 value 1; 306 description 307 "Normal."; 308 } 309 enum "abnormal" { 310 value 2; 311 description 312 "Abnormal. The anomalous bit is set."; 313 } 314 } 315 description 316 "Indicates whether a performance metric is normal, abnormal, or 317 unknown."; 318 reference 319 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 320 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 321 RFC7823: Performance-Based Path Selection for Explicitly 322 Routed Label Switched Paths (LSPs) Using TE Metric 323 Extensions"; 324 } 326 typedef te-admin-status { 327 type enumeration { 328 enum up { 329 description 330 "Enabled."; 331 } 332 enum down { 333 description 334 "Disabled."; 335 } 336 enum testing { 337 description 338 "In some test mode."; 339 } 340 enum preparing-maintenance { 341 description 342 "Resource is disabled in the control plane to prepare for 343 graceful shutdown for maintenance purposes."; 344 reference 345 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 346 Traffic Engineering Networks"; 347 } 348 enum maintenance { 349 description 350 "Resource is disabled in the data plane for maintenance 351 purposes."; 352 } 353 } 354 description 355 "Defines a type representing the administrative status of 356 a TE resource."; 357 } 359 typedef te-global-id { 360 type uint32; 361 description 362 "An identifier to uniquely identify an operator, which can be 363 either a provider or a client. 364 The definition of this type is taken from RFC6370 and RFC5003. 365 This attribute type is used solely to provide a globally 366 unique context for TE topologies."; 367 } 369 typedef te-link-access-type { 370 type enumeration { 371 enum point-to-point { 372 description 373 "The link is point-to-point."; 374 } 375 enum multi-access { 376 description 377 "The link is multi-access, including broadcast and NBMA."; 378 } 379 } 380 description 381 "Defines a type representing the access type of a TE link."; 382 reference 383 "RFC3630: Traffic Engineering (TE) Extensions to OSPF 384 Version 2."; 385 } 387 typedef te-node-id { 388 type yang:dotted-quad; 389 description 390 "An identifier for a node in a topology. 391 The identifier is represented as 32-bit unsigned integer in 392 the dotted-quad notation. 393 This attribute is mapped to Router ID in 394 RFC3630, RFC5329, RFC5305, and RFC6119."; 395 } 397 typedef te-oper-status { 398 type enumeration { 399 enum up { 400 description 401 "Operational up."; 402 } 403 enum down { 404 description 405 "Operational down."; 406 } 407 enum testing { 408 description 409 "In some test mode."; 410 } 411 enum unknown { 412 description 413 "Status cannot be determined for some reason."; 414 } 415 enum preparing-maintenance { 416 description 417 "Resource is disabled in the control plane to prepare for 418 graceful shutdown for maintenance purposes."; 419 reference 420 "RFC5817: Graceful Shutdown in MPLS and Generalized MPLS 421 Traffic Engineering Networks"; 422 } 423 enum maintenance { 424 description 425 "Resource is disabled in the data plane for maintenance 426 purposes."; 427 } 429 } 430 description 431 "Defines a type representing the operational status of 432 a TE resource."; 433 } 435 typedef te-path-disjointness { 436 type bits { 437 bit node { 438 position 0; 439 description "Node disjoint."; 440 } 441 bit link { 442 position 1; 443 description "Link disjoint."; 444 } 445 bit srlg { 446 position 2; 447 description "SRLG (Shared Risk Link Group) disjoint."; 448 } 449 } 450 description 451 "Type of the resource disjointness for a TE tunnel path."; 452 reference 453 "RFC4872: RSVP-TE Extensions in Support of End-to-End 454 Generalized Multi-Protocol Label Switching (GMPLS) 455 Recovery"; 456 } // te-path-disjointness 458 typedef te-recovery-status { 459 type enumeration { 460 enum normal { 461 description 462 "Both the recovery and working spans are fully 463 allocated and active, data traffic is being 464 transported over (or selected from) the working 465 span, and no trigger events are reported."; 466 } 467 enum recovery-started { 468 description 469 "The recovery action has been started, but not completed."; 470 } 471 enum recovery-succeeded { 472 description 473 "The recovery action has succeeded. The working span has 474 reported a failure/degrade condition and the user traffic 475 is being transported (or selected) on the recovery span."; 476 } 477 enum recovery-failed { 478 description 479 "The recovery action has failed."; 480 } 481 enum reversion-started { 482 description 483 "The reversion has started."; 484 } 485 enum reversion-failed { 486 description 487 "The reversion has failed."; 488 } 489 enum recovery-unavailable { 490 description 491 "The recovery is unavailable -- either as a result of an 492 operator Lockout command or a failure condition detected 493 on the recovery span."; 494 } 495 enum recovery-admin { 496 description 497 "The operator has issued a command switching the user 498 traffic to the recovery span."; 499 } 500 enum wait-to-restore { 501 description 502 "The recovery domain is recovering from a failure/degrade 503 condition on the working span that is being controlled by 504 the Wait-to-Restore (WTR) timer."; 505 } 506 } 507 description 508 "Defines the status of a recovery action."; 509 reference 510 "RFC4427: Recovery (Protection and Restoration) Terminology 511 for Generalized Multi-Protocol Label Switching (GMPLS). 512 RFC6378: MPLS Transport Profile (MPLS-TP) Linear Protection"; 513 } 515 typedef te-template-name { 516 type string { 517 pattern '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 518 } 519 description 520 "A type for the name of a TE node template or TE link 521 template."; 522 } 524 typedef te-topology-event-type { 525 type enumeration { 526 enum "add" { 527 value 0; 528 description 529 "A TE node or te-link has been added."; 530 } 531 enum "remove" { 532 value 1; 533 description 534 "A TE node or te-link has been removed."; 535 } 536 enum "update" { 537 value 2; 538 description 539 "A TE node or te-link has been updated."; 540 } 541 } 542 description "TE Event type for notifications"; 543 } // te-topology-event-type 545 typedef te-topology-id { 546 type string { 547 pattern 548 '([a-zA-Z0-9\-_.]+:)*' 549 + '/?([a-zA-Z0-9\-_.]+)(/[a-zA-Z0-9\-_.]+)*'; 550 } 551 description 552 "An identifier for a topology. 553 It is optional to have one or more prefixes at the beginning, 554 separated by colons. The prefixes can be the network-types, 555 defined in ietf-network.yang, to help user to understand the 556 topology better before further inquiry."; 557 } 559 typedef te-tp-id { 560 type union { 561 type uint32; // Unnumbered 562 type inet:ip-address; // IPv4 or IPv6 address 563 } 564 description 565 "An identifier for a TE link endpoint on a node. 566 This attribute is mapped to local or remote link identifier in 567 RFC3630 and RFC5305."; 568 } 570 typedef admin-group { 571 type binary { 572 length 4; 574 } 575 description 576 "Administrative group/Resource class/Color."; 577 reference "RFC3630 and RFC5305"; 578 } 580 typedef extended-admin-group { 581 type binary; 582 description 583 "Extended administrative group/Resource class/Color."; 584 reference "RFC7308"; 585 } 587 typedef admin-groups { 588 type union { 589 type admin-group; 590 type extended-admin-group; 591 } 592 description "TE administrative group derived type"; 593 } 595 typedef srlg { 596 type uint32; 597 description "SRLG type"; 598 reference "RFC4203 and RFC5307"; 599 } 601 typedef te-metric { 602 type uint32; 603 description 604 "TE link metric"; 605 reference "RFC3785"; 606 } 608 /* TE features */ 609 feature p2mp-te { 610 description 611 "Indicates support for P2MP-TE"; 612 reference "RFC4875"; 613 } 615 feature frr-te { 616 description 617 "Indicates support for TE FastReroute (FRR)"; 618 reference "RFC4090"; 619 } 621 feature extended-admin-groups { 622 description 623 "Indicates support for TE link extended admin 624 groups."; 625 reference "RFC7308"; 626 } 628 feature named-path-affinities { 629 description 630 "Indicates support for named path affinities"; 631 } 633 feature named-extended-admin-groups { 634 description 635 "Indicates support for named extended admin groups"; 636 } 638 feature named-srlg-groups { 639 description 640 "Indicates support for named SRLG groups"; 641 } 643 feature named-path-constraints { 644 description 645 "Indicates support for named path constraints"; 646 } 648 feature path-optimization-metric { 649 description 650 "Indicates support for path optimization metric"; 651 } 653 feature path-optimization-objective-function { 654 description 655 "Indicates support for path optimization objective function"; 656 } 658 /* 659 * Identities 660 */ 661 identity association-type { 662 description "Base identity for tunnel association"; 663 reference "RFC6780, RFC4872, RFC4873"; 664 } 665 identity association-type-recovery { 666 base association-type; 667 description 668 "Association Type Recovery used to association LSPs of 669 same tunnel for recovery"; 671 reference "RFC4872"; 672 } 673 identity association-type-resource-sharing { 674 base association-type; 675 description 676 "Association Type Resource Sharing used to enable resource 677 sharing during make-before-break."; 678 reference "RFC4873"; 679 } 680 identity association-type-double-sided-bidir { 681 base association-type; 682 description 683 "Association Type Double Sided bidirectional used to associate 684 two LSPs of two tunnels that are independently configured on 685 either endpoint"; 686 reference "RFC7551"; 687 } 688 identity association-type-single-sided-bidir { 689 base association-type; 690 description 691 "Association Type Single Sided bidirectional used to associate 692 two LSPs of two tunnels, where a tunnel is configured on one 693 side/endpoint, and the other tunnel is dynamically created on 694 the other endpoint"; 695 reference "RFC7551"; 696 } 698 identity objective-function-type { 699 description "Base objective function type"; 700 reference "RFC4657"; 701 } 702 identity of-minimize-cost-path { 703 base objective-function-type; 704 description 705 "Minimize cost of path objective function"; 706 reference "RFC5541"; 707 } 708 identity of-minimize-load-path { 709 base objective-function-type; 710 description 711 "Minimize the load on path(s) objective 712 function"; 713 } 714 identity of-maximize-residual-bandwidth { 715 base objective-function-type; 716 description 717 "Maximize the residual bandwidth objective 718 function"; 720 } 721 identity of-minimize-agg-bandwidth-consumption { 722 base objective-function-type; 723 description 724 "minimize the aggregate bandwidth consumption 725 objective function"; 726 } 727 identity of-minimize-load-most-loaded-link { 728 base objective-function-type; 729 description 730 "Minimize the load on the most loaded link 731 objective function"; 732 } 733 identity of-minimize-cost-path-set { 734 base objective-function-type; 735 description 736 "Minimize the cost on a path set objective 737 function"; 738 } 740 identity path-computation-method { 741 description 742 "base identity for supported path computation 743 mechanisms"; 744 } 745 identity path-locally-computed { 746 base path-computation-method; 747 description 748 "indicates a constrained-path LSP in which the 749 path is computed by the local LER"; 750 } 751 identity path-externally-queried { 752 base path-computation-method; 753 description 754 "Constrained-path LSP in which the path is 755 obtained by querying an external source, such as a PCE server. 756 In the case that an LSP is defined to be externally queried, it 757 may also have associated explicit definitions (provided 758 to the external source to aid computation); and the path that is 759 returned by the external source is not required to provide a 760 wholly resolved path back to the originating system - that is to 761 say, some local computation may also be required"; 762 } 763 identity path-explicitly-defined { 764 base path-computation-method; 765 description 766 "constrained-path LSP in which the path is 767 explicitly specified as a collection of strict or/and loose 768 hops"; 769 } 771 identity LSP_METRIC_TYPE { 772 description 773 "Base identity for types of LSP metric specification"; 774 } 775 identity LSP_METRIC_RELATIVE { 776 base LSP_METRIC_TYPE; 777 description 778 "The metric specified for the LSPs to which this identity refers 779 is specified as a relative value to the IGP metric cost to the 780 LSP's tail-end."; 781 } 782 identity LSP_METRIC_ABSOLUTE { 783 base LSP_METRIC_TYPE; 784 description 785 "The metric specified for the LSPs to which this identity refers 786 is specified as an absolute value"; 787 } 788 identity LSP_METRIC_INHERITED { 789 base LSP_METRIC_TYPE; 790 description 791 "The metric for the LSPs to which this identity refers is 792 not specified explicitly - but rather inherited from the IGP 793 cost directly"; 794 } 796 identity tunnel-type { 797 description 798 "Base identity from which specific tunnel types are 799 derived."; 800 } 801 identity tunnel-p2p { 802 base tunnel-type; 803 description 804 "TE point-to-point tunnel type."; 805 } 806 identity tunnel-p2mp { 807 base tunnel-type; 808 description 809 "TE point-to-multipoint tunnel type."; 810 reference "RFC4875"; 811 } 813 identity tunnel-action-type { 814 description 815 "Base identity from which specific tunnel action types 816 are derived."; 817 } 818 identity tunnel-action-resetup { 819 base tunnel-action-type; 820 description 821 "TE tunnel action resetup. Tears the 822 tunnel's current LSP (if any) and 823 attempts to re-establish a new LSP"; 824 } 825 identity tunnel-action-reoptimize { 826 base tunnel-action-type; 827 description 828 "TE tunnel action reoptimize. 829 Reoptimizes placement of the tunnel LSP(s)"; 830 } 831 identity tunnel-action-switchpath { 832 base tunnel-action-type; 833 description 834 "TE tunnel action switchpath 835 Switches the tunnel's LSP to use the specified path"; 836 } 838 identity te-action-result { 839 description 840 "Base identity from which specific TE action results 841 are derived."; 842 } 843 identity te-action-success { 844 base te-action-result; 845 description "TE action successful."; 846 } 847 identity te-action-fail { 848 base te-action-result; 849 description "TE action failed."; 850 } 851 identity tunnel-action-inprogress { 852 base te-action-result; 853 description "TE action inprogress."; 854 } 856 identity tunnel-admin-state-type { 857 description 858 "Base identity for TE tunnel admin states"; 859 } 860 identity tunnel-admin-state-up { 861 base tunnel-admin-state-type; 862 description "Tunnel administratively state up"; 863 } 864 identity tunnel-admin-state-down { 865 base tunnel-admin-state-type; 866 description "Tunnel administratively state down"; 867 } 869 identity tunnel-state-type { 870 description 871 "Base identity for TE tunnel states"; 872 } 873 identity tunnel-state-up { 874 base tunnel-state-type; 875 description "Tunnel state up"; 876 } 877 identity tunnel-state-down { 878 base tunnel-state-type; 879 description "Tunnel state down"; 880 } 882 identity lsp-state-type { 883 description 884 "Base identity for TE LSP states"; 885 } 886 identity lsp-path-computing { 887 base lsp-state-type; 888 description 889 "State path compute in progress"; 890 } 891 identity lsp-path-computation-ok { 892 base lsp-state-type; 893 description 894 "State path compute successful"; 895 } 896 identity lsp-path-computation-failed { 897 base lsp-state-type; 898 description 899 "State path compute failed"; 900 } 901 identity lsp-state-setting-up { 902 base lsp-state-type; 903 description 904 "State setting up"; 905 } 906 identity lsp-state-setup-ok { 907 base lsp-state-type; 908 description 909 "State setup successful"; 910 } 911 identity lsp-state-setup-failed { 912 base lsp-state-type; 913 description 914 "State setup failed"; 915 } 916 identity lsp-state-up { 917 base lsp-state-type; 918 description "State up"; 919 } 920 identity lsp-state-tearing-down { 921 base lsp-state-type; 922 description 923 "State tearing down"; 924 } 925 identity lsp-state-down { 926 base lsp-state-type; 927 description "State down"; 928 } 930 identity path-invalidation-action-type { 931 description 932 "Base identity for TE path invalidation action types"; 933 } 934 identity path-invalidation-action-drop-type { 935 base path-invalidation-action-type; 936 description 937 "TE path invalidation action drop"; 938 } 939 identity path-invalidation-action-drop-tear { 940 base path-invalidation-action-type; 941 description 942 "TE path invalidation action tear"; 943 } 945 identity lsp-restoration-type { 946 description 947 "Base identity from which LSP restoration types are 948 derived."; 949 } 950 identity lsp-restoration-restore-any { 951 base lsp-restoration-type; 952 description 953 "Restores when any of the LSPs is affected by a failure"; 954 } 955 identity lsp-restoration-restore-all { 956 base lsp-restoration-type; 957 description 958 "Restores when all the tunnel LSPs are affected by failure"; 959 } 960 identity restoration-scheme-type { 961 description 962 "Base identity for LSP restoration schemes"; 963 reference "RFC4872"; 964 } 965 identity restoration-scheme-preconfigured { 966 base restoration-scheme-type; 967 description 968 "Restoration LSP is preconfigured prior to the failure"; 969 } 970 identity restoration-scheme-precomputed { 971 base restoration-scheme-type; 972 description 973 "Restoration LSP is precomputed prior to the failure"; 974 } 975 identity restoration-scheme-presignaled { 976 base restoration-scheme-type; 977 description 978 "Restoration LSP is presignaledd prior to the failure"; 979 } 981 identity lsp-protection-type { 982 description 983 "Base identity from which LSP protection types are 984 derived."; 985 } 986 identity lsp-protection-unprotected { 987 base lsp-protection-type; 988 description 989 "LSP protection 'Unprotected'"; 990 reference "RFC4872"; 991 } 992 identity lsp-protection-reroute-extra { 993 base lsp-protection-type; 994 description 995 "LSP protection '(Full) Rerouting'"; 996 reference "RFC4872"; 997 } 998 identity lsp-protection-reroute { 999 base lsp-protection-type; 1000 description 1001 "LSP protection 'Rerouting without Extra-Traffic'"; 1002 reference "RFC4872"; 1003 } 1004 identity lsp-protection-1-for-n { 1005 base lsp-protection-type; 1006 description 1007 "LSP protection '1:N Protection with Extra-Traffic'"; 1009 reference "RFC4872"; 1010 } 1011 identity lsp-protection-unidir-1-to-1 { 1012 base lsp-protection-type; 1013 description 1014 "LSP protection '1+1 Unidirectional Protection'"; 1015 reference "RFC4872"; 1016 } 1017 identity lsp-protection-bidir-1-to-1 { 1018 base lsp-protection-type; 1019 description 1020 "LSP protection '1+1 Bidirectional Protection'"; 1021 reference "RFC4872"; 1022 } 1023 identity lsp-protection-extra-traffic { 1024 base lsp-protection-type; 1025 description 1026 "LSP protection 'Extra-Traffic'"; 1027 reference 1028 "ITU-T G.808, RFC 4427."; 1029 } 1031 identity lsp-protection-state { 1032 description 1033 "Base identity of protection states for reporting 1034 purposes."; 1035 } 1036 identity normal { 1037 base lsp-protection-state; 1038 description "Normal state."; 1039 } 1040 identity signal-fail-of-protection { 1041 base lsp-protection-state; 1042 description 1043 "There is a SF condition on the protection transport 1044 entity which has higher priority than the FS command."; 1045 reference 1046 "ITU-T G.873.1, G.8031, G.8131"; 1047 } 1048 identity lockout-of-protection { 1049 base lsp-protection-state; 1050 description 1051 "A Loss of Protection (LoP) command is active."; 1052 reference 1053 "ITU-T G.808, RFC 4427"; 1054 } 1055 identity forced-switch { 1056 base lsp-protection-state; 1057 description 1058 "A forced switch (FS) command is active."; 1059 reference 1060 "ITU-T G.808, RFC 4427"; 1061 } 1062 identity signal-fail { 1063 base lsp-protection-state; 1064 description 1065 "There is a SF condition on either the working 1066 or the protection path."; 1067 reference 1068 "ITU-T G.808, RFC 4427"; 1069 } 1070 identity signal-degrade { 1071 base lsp-protection-state; 1072 description 1073 "There is an SD condition on either the working or the 1074 protection path."; 1075 reference 1076 "ITU-T G.808, RFC 4427"; 1077 } 1078 identity manual-switch { 1079 base lsp-protection-state; 1080 description 1081 "A manual switch (MS) command is active."; 1082 reference 1083 "ITU-T G.808, RFC 4427"; 1084 } 1085 identity wait-to-restore { 1086 base lsp-protection-state; 1087 description 1088 "A wait time to restore (WTR) is running."; 1089 reference 1090 "ITU-T G.808, RFC 4427"; 1091 } 1092 identity do-not-revert { 1093 base lsp-protection-state; 1094 description 1095 "A DNR condition is active because of a non-revertive 1096 behavior."; 1097 reference 1098 "ITU-T G.808, RFC 4427"; 1099 } 1100 identity failure-of-protocol { 1101 base lsp-protection-state; 1102 description 1103 "The protection is not working because of a failure of 1104 protocol condition."; 1106 reference 1107 "ITU-T G.873.1, G.8031, G.8131"; 1108 } 1110 identity protection-external-commands { 1111 description 1112 "Protection external commands for trouble shooting 1113 purposes."; 1114 } 1115 identity action-freeze { 1116 base protection-external-commands; 1117 description 1118 "A temporary configuration action initiated by an operator 1119 command to prevent any switch action to be taken and as such 1120 freezes the current state."; 1121 reference 1122 "ITU-T G.808, RFC 4427"; 1123 } 1124 identity clear-freeze { 1125 base protection-external-commands; 1126 description 1127 "An action that clears the active freeze state."; 1128 reference 1129 "ITU-T G.808, RFC 4427"; 1130 } 1131 identity action-lockout-of-normal { 1132 base protection-external-commands; 1133 description 1134 "A temporary configuration action initiated by an operator 1135 command to ensure that the normal traffic is not allowed 1136 to use the protection transport entity."; 1137 reference 1138 "ITU-T G.808, RFC 4427"; 1139 } 1140 identity clear-lockout-of-normal { 1141 base protection-external-commands; 1142 description 1143 "An action that clears the active lockout of normal state."; 1144 reference 1145 "ITU-T G.808, RFC 4427"; 1146 } 1147 identity action-lockout-of-protection { 1148 base protection-external-commands; 1149 description 1150 "A temporary configuration action initiated by an operator 1151 command to ensure that the protection transport entity is 1152 temporarily not available to transport a traffic signal 1153 (either normal or extra traffic)."; 1155 reference 1156 "ITU-T G.808, RFC 4427"; 1157 } 1158 identity action-forced-switch { 1159 base protection-external-commands; 1160 description 1161 "A switch action initiated by an operator command to switch 1162 the extra traffic signal, the normal traffic signal, or the 1163 null signal to the protection transport entity, unless an 1164 equal or higher priority switch command is in effect."; 1165 reference 1166 "ITU-T G.808, RFC 4427"; 1167 } 1168 identity action-manual-switch { 1169 base protection-external-commands; 1170 description 1171 "A switch action initiated by an operator command to switch 1172 the extra traffic signal, the normal traffic signal #i, or 1173 the null signal to the protection transport entity, unless 1174 a fault condition exists on other transport entities or an 1175 equal or higher priority switch command is in effect."; 1176 reference 1177 "ITU-T G.808, RFC 4427"; 1178 } 1179 identity action-exercise { 1180 base protection-external-commands; 1181 description 1182 "An action to start testing if the APS communication is 1183 operating correctly. It is lower priority than any other 1184 state or command."; 1185 reference 1186 "ITU-T G.808, RFC 4427"; 1187 } 1188 identity clear { 1189 base protection-external-commands; 1190 description 1191 "An action that clears the active near-end lockout of 1192 protection, forced switch, manual switch, WTR state, 1193 or exercise command."; 1194 reference 1195 "ITU-T G.808, RFC 4427"; 1196 } 1198 identity switching-capabilities { 1199 description 1200 "Base identity for interface switching capabilities"; 1201 reference "RFC3471"; 1202 } 1203 identity switching-psc1 { 1204 base switching-capabilities; 1205 description 1206 "Packet-Switch Capable-1 (PSC-1)"; 1207 reference "RFC3471"; 1208 } 1209 identity switching-evpl { 1210 base switching-capabilities; 1211 description 1212 "Ethernet Virtual Private Line (EVPL)"; 1213 } 1214 identity switching-l2sc { 1215 base switching-capabilities; 1216 description 1217 "Layer-2 Switch Capable (L2SC)"; 1218 reference "RFC3471"; 1219 } 1220 identity switching-tdm { 1221 base switching-capabilities; 1222 description 1223 "Time-Division-Multiplex Capable (TDM)"; 1224 reference "RFC3471"; 1225 } 1226 identity switching-otn { 1227 base switching-capabilities; 1228 description 1229 "OTN-TDM capable"; 1230 } 1231 identity switching-dcsc { 1232 base switching-capabilities; 1233 description 1234 "Data Channel Switching Capable (DCSC)"; 1235 } 1236 identity switching-lsc { 1237 base switching-capabilities; 1238 description 1239 "Lambda-Switch Capable (LSC)"; 1240 reference "RFC3471"; 1241 } 1242 identity switching-fsc { 1243 base switching-capabilities; 1244 description 1245 "Fiber-Switch Capable (FSC)"; 1246 reference "RFC3471"; 1247 } 1249 identity lsp-encoding-types { 1250 description 1251 "Base identity for encoding types"; 1252 reference "RFC3471"; 1253 } 1254 identity lsp-encoding-packet { 1255 base lsp-encoding-types; 1256 description 1257 "Packet LSP encoding"; 1258 reference "RFC3471"; 1259 } 1260 identity lsp-encoding-ethernet { 1261 base lsp-encoding-types; 1262 description 1263 "Ethernet LSP encoding"; 1264 reference "RFC3471"; 1265 } 1266 identity lsp-encoding-pdh { 1267 base lsp-encoding-types; 1268 description 1269 "ANSI/ETSI LSP encoding"; 1270 reference "RFC3471"; 1271 } 1272 identity lsp-encoding-sdh { 1273 base lsp-encoding-types; 1274 description 1275 "SDH ITU-T G.707 / SONET ANSI T1.105 LSP encoding"; 1276 reference "RFC3471"; 1277 } 1278 identity lsp-encoding-digital-wrapper { 1279 base lsp-encoding-types; 1280 description 1281 "Digital Wrapper LSP encoding"; 1282 reference "RFC3471"; 1283 } 1284 identity lsp-encoding-lambda { 1285 base lsp-encoding-types; 1286 description 1287 "Lambda (photonic) LSP encoding"; 1288 reference "RFC3471"; 1289 } 1290 identity lsp-encoding-fiber { 1291 base lsp-encoding-types; 1292 description 1293 "Fiber LSP encoding"; 1294 reference "RFC3471"; 1295 } 1296 identity lsp-encoding-fiber-channel { 1297 base lsp-encoding-types; 1298 description 1299 "FiberChannel LSP encoding"; 1300 reference "RFC3471"; 1301 } 1302 identity lsp-encoding-oduk { 1303 base lsp-encoding-types; 1304 description 1305 "G.709 ODUk (Digital Path)LSP encoding"; 1306 } 1307 identity lsp-encoding-optical-channel { 1308 base lsp-encoding-types; 1309 description 1310 "Line (e.g., 8B/10B) LSP encoding"; 1311 } 1312 identity lsp-encoding-line { 1313 base lsp-encoding-types; 1314 description 1315 "Line (e.g., 8B/10B) LSP encoding"; 1316 } 1317 identity path-signaling-type { 1318 description 1319 "base identity from which specific LSPs path 1320 setup types are derived"; 1321 } 1322 identity path-setup-static { 1323 base path-signaling-type; 1324 description 1325 "Static LSP provisioning path setup"; 1326 } 1327 identity path-setup-rsvp { 1328 base path-signaling-type; 1329 description 1330 "RSVP-TE signaling path setup"; 1331 reference "RFC3209"; 1332 } 1333 identity path-setup-sr { 1334 base path-signaling-type; 1335 description 1336 "Segment-routing path setup"; 1337 } 1339 identity path-scope-type { 1340 description 1341 "base identity from which specific path 1342 scope types are derived"; 1343 } 1344 identity path-scope-segment { 1345 base path-scope-type; 1346 description 1347 "Path scope segment"; 1348 } 1349 identity path-scope-end-to-end { 1350 base path-scope-type; 1351 description 1352 "Path scope end to end"; 1353 } 1355 identity route-usage-type { 1356 description 1357 "Base identity for route usage"; 1358 } 1359 identity route-include-ero { 1360 base route-usage-type; 1361 description 1362 "Include ERO resource in route"; 1363 } 1364 identity route-exclude-ero { 1365 base route-usage-type; 1366 description 1367 "Exclude ERO resource from route"; 1368 } 1369 identity route-exclude-srlg { 1370 base route-usage-type; 1371 description 1372 "Exclude SRLG from route"; 1373 } 1375 identity path-metric-type { 1376 description 1377 "Base identity for path metric type"; 1378 } 1379 identity path-metric-te { 1380 base path-metric-type; 1381 description 1382 "TE path metric"; 1383 reference "RFC3785"; 1384 } 1385 identity path-metric-igp { 1386 base path-metric-type; 1387 description 1388 "IGP path metric"; 1389 reference "RFC3785"; 1390 } 1391 identity path-metric-hop { 1392 base path-metric-type; 1393 description 1394 "Hop path metric"; 1396 } 1397 identity path-metric-delay-average { 1398 base path-metric-type; 1399 description 1400 "Unidirectional average link delay"; 1401 reference "RFC7471"; 1402 } 1404 identity path-metric-residual-bandwidth { 1405 base path-metric-type; 1406 description 1407 "Unidirectional Residual Bandwidth, which is defined to be 1408 Maximum Bandwidth [RFC3630] minus the bandwidth currently 1409 allocated to LSPs."; 1410 reference "RFC7471"; 1411 } 1412 identity path-metric-optimize-includes { 1413 base path-metric-type; 1414 description 1415 "A metric that optimizes the number of included resources 1416 specified in a set"; 1417 } 1418 identity path-metric-optimize-excludes { 1419 base path-metric-type; 1420 description 1421 "A metric that optimizes the number of excluded resources 1422 specified in a set"; 1423 } 1425 identity path-tiebreaker-type { 1426 description 1427 "Base identity for path tie-breaker type"; 1428 } 1429 identity path-tiebreaker-minfill { 1430 base path-tiebreaker-type; 1431 description 1432 "Min-Fill LSP path placement"; 1433 } 1434 identity path-tiebreaker-maxfill { 1435 base path-tiebreaker-type; 1436 description 1437 "Max-Fill LSP path placement"; 1438 } 1439 identity path-tiebreaker-randoom { 1440 base path-tiebreaker-type; 1441 description 1442 "Random LSP path placement"; 1443 } 1444 identity bidir-provisioning-mode { 1445 description 1446 "Base identity for bidirectional provisioning 1447 mode."; 1448 reference "RFC7551"; 1449 } 1450 identity bidir-provisioning-single-sided { 1451 base bidir-provisioning-mode; 1452 description 1453 "Single-sided bidirectional provisioning mode"; 1454 reference "RFC7551"; 1455 } 1456 identity bidir-provisioning-double-sided { 1457 base bidir-provisioning-mode; 1458 description 1459 "Double-sided bidirectional provisioning mode"; 1460 reference "RFC7551"; 1461 } 1463 identity bidir-association-type { 1464 description 1465 "Base identity for bidirectional association type"; 1466 reference "RFC7551"; 1467 } 1468 identity bidir-assoc-corouted { 1469 base bidir-association-type; 1470 description 1471 "Co-routed bidirectional association type"; 1472 reference "RFC7551"; 1473 } 1474 identity bidir-assoc-non-corouted { 1475 base bidir-association-type; 1476 description 1477 "Non co-routed bidirectional association type"; 1478 reference "RFC7551"; 1479 } 1481 identity resource-affinities-type { 1482 description 1483 "Base identity for resource affinities"; 1484 reference "RFC2702"; 1485 } 1486 identity resource-aff-include-all { 1487 base resource-affinities-type; 1488 description 1489 "The set of attribute filters associated with a 1490 tunnel all of which must be present for a link 1491 to be acceptable"; 1493 reference "RFC2702 and RFC3209"; 1494 } 1495 identity resource-aff-include-any { 1496 base resource-affinities-type; 1497 description 1498 "The set of attribute filters associated with a 1499 tunnel any of which must be present for a link 1500 to be acceptable"; 1501 reference "RFC2702 and RFC3209"; 1502 } 1503 identity resource-aff-exclude-any { 1504 base resource-affinities-type; 1505 description 1506 "The set of attribute filters associated with a 1507 tunnel any of which renders a link unacceptable"; 1508 reference "RFC2702 and RFC3209"; 1509 } 1511 identity te-optimization-criterion { 1512 description 1513 "Base identity for TE optimization criterion."; 1514 reference 1515 "RFC3272: Overview and Principles of Internet Traffic 1516 Engineering."; 1517 } 1518 identity not-optimized { 1519 base te-optimization-criterion; 1520 description "Optimization is not applied."; 1521 } 1522 identity cost { 1523 base te-optimization-criterion; 1524 description "Optimized on cost."; 1525 } 1526 identity delay { 1527 base te-optimization-criterion; 1528 description "Optimized on delay."; 1529 } 1531 identity path-computation-srlg-type { 1532 description 1533 "Base identity for SRLG path computation"; 1534 } 1535 identity srlg-ignore { 1536 base path-computation-srlg-type; 1537 description 1538 "Ignores SRLGs in path computation"; 1539 } 1540 identity srlg-strict { 1541 base path-computation-srlg-type; 1542 description 1543 "Include strict SRLG check in path computation"; 1544 } 1545 identity srlg-preferred { 1546 base path-computation-srlg-type; 1547 description 1548 "Include preferred SRLG check in path computation"; 1549 } 1550 identity srlg-weighted { 1551 base path-computation-srlg-type; 1552 description 1553 "Include weighted SRLG check in path computation"; 1554 } 1556 identity otn-rate-type { 1557 description 1558 "Base type to identify OTN bit rates of various information 1559 structures."; 1560 reference "RFC7139"; 1561 } 1562 identity odu0 { 1563 base otn-rate-type; 1564 description 1565 "ODU0 bit rate."; 1566 } 1567 identity odu1 { 1568 base otn-rate-type; 1569 description 1570 "ODU1 bit rate."; 1571 } 1572 identity odu2 { 1573 base otn-rate-type; 1574 description 1575 "ODU2 bit rate."; 1576 } 1577 identity odu3 { 1578 base otn-rate-type; 1579 description 1580 "ODU3 bit rate."; 1581 } 1582 identity odu4 { 1583 base otn-rate-type; 1584 description 1585 "ODU4 bit rate."; 1586 } 1587 identity odu2e { 1588 base otn-rate-type; 1589 description 1590 "ODU2e bit rate."; 1591 } 1592 identity oduc { 1593 base otn-rate-type; 1594 description 1595 "ODUCn bit rate."; 1596 } 1597 identity oduflex { 1598 base otn-rate-type; 1599 description 1600 "ODUflex bit rate."; 1601 } 1603 identity wdm-spectrum-type { 1604 description 1605 "Base type to identify WDM spectrum type."; 1606 } 1607 identity cwdm { 1608 base wdm-spectrum-type; 1609 description "CWDM."; 1610 reference "RFC6205"; 1611 } 1612 identity dwdm { 1613 base wdm-spectrum-type; 1614 description "DWDM."; 1615 reference "RFC6205"; 1616 } 1617 identity flexible-grid { 1618 base wdm-spectrum-type; 1619 description "Flexible grid."; 1620 reference "RFC6205"; 1621 } 1623 /** 1624 * TE bandwidth groupings 1625 **/ 1626 grouping te-bandwidth { 1627 description 1628 "This grouping defines the generic TE bandwidth. 1629 For some known data plane technologies, specific modeling 1630 structures are specified. The string encoded te-bandwidth 1631 type is used for un-specified technologies. 1632 The modeling structure can be augmented later for other 1633 technologies."; 1634 container te-bandwidth { 1635 description 1636 "Container that specifies TE bandwidth."; 1638 choice technology { 1639 default generic; 1640 description 1641 "Data plane technology type."; 1642 case generic { 1643 leaf generic { 1644 type te-bandwidth; 1645 description 1646 "Bandwidth specified in a generic format."; 1647 } 1648 } 1649 } 1650 } 1651 } 1653 /** 1654 * TE label groupings 1655 **/ 1656 grouping te-label { 1657 description 1658 "This grouping defines the generic TE label. 1659 The modeling structure can be augmented for each technology. 1660 For un-specified technologies, rt-types:generalized-label 1661 is used."; 1662 container te-label { 1663 description 1664 "Container that specifies TE label."; 1665 choice technology { 1666 default generic; 1667 description 1668 "Data plane technology type."; 1669 case generic { 1670 leaf generic { 1671 type rt-types:generalized-label; 1672 description 1673 "TE label specified in a generic format."; 1674 } 1675 } 1676 } 1677 leaf direction { 1678 type te-label-direction; 1679 description "Label direction"; 1680 } 1681 } 1682 } 1684 grouping te-topology-identifier { 1685 description 1686 "Augmentation for TE topology."; 1687 container te-topology-identifier { 1688 description "TE topology identifier container"; 1689 leaf provider-id { 1690 type te-types:te-global-id; 1691 description 1692 "An identifier to uniquely identify a provider."; 1693 } 1694 leaf client-id { 1695 type te-types:te-global-id; 1696 description 1697 "An identifier to uniquely identify a client."; 1698 } 1699 leaf topology-id { 1700 type te-types:te-topology-id; 1701 description 1702 "It is presumed that a datastore will contain many 1703 topologies. To distinguish between topologies it is 1704 vital to have UNIQUE topology identifiers."; 1705 } 1706 } 1707 } 1709 /** 1710 * TE performance metric groupings 1711 **/ 1712 grouping performance-metric-one-way-delay-loss { 1713 description 1714 "Performance metric information in real time that can 1715 be applicable to links or connections. PM defined 1716 in this grouping is applicable to generic TE performance 1717 metrics as well as packet TE performance metrics."; 1718 reference 1719 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 1720 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 1721 RFC7823: Performance-Based Path Selection for Explicitly 1722 Routed Label Switched Paths (LSPs) Using TE Metric 1723 Extensions"; 1724 leaf one-way-delay { 1725 type uint32 { 1726 range 0..16777215; 1727 } 1728 description "Delay or latency in micro seconds."; 1729 } 1730 leaf one-way-min-delay { 1731 type uint32 { 1732 range 0..16777215; 1733 } 1734 description "Minimum delay or latency in micro seconds."; 1735 } 1736 leaf one-way-max-delay { 1737 type uint32 { 1738 range 0..16777215; 1739 } 1740 description "Maximum delay or latency in micro seconds."; 1741 } 1742 leaf one-way-delay-variation { 1743 type uint32 { 1744 range 0..16777215; 1745 } 1746 description "Delay variation in micro seconds."; 1747 } 1748 leaf one-way-packet-loss { 1749 type decimal64 { 1750 fraction-digits 6; 1751 range "0 .. 50.331642"; 1752 } 1753 description 1754 "Packet loss as a percentage of the total traffic sent 1755 over a configurable interval. The finest precision is 1756 0.000003%."; 1757 } 1758 } 1760 grouping performance-metric-two-way-delay-loss { 1761 description 1762 "Performance metric information in real time that can 1763 be applicable to links or connections. PM defined 1764 in this grouping is applicable to generic TE performance 1765 metrics as well as packet TE performance metrics."; 1766 reference 1767 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 1768 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 1769 RFC7823: Performance-Based Path Selection for Explicitly 1770 Routed Label Switched Paths (LSPs) Using TE Metric 1771 Extensions"; 1772 leaf two-way-delay { 1773 type uint32 { 1774 range 0..16777215; 1775 } 1776 description "Delay or latency in micro seconds."; 1777 } 1778 leaf two-way-min-delay { 1779 type uint32 { 1780 range 0..16777215; 1781 } 1782 description "Minimum delay or latency in micro seconds."; 1783 } 1784 leaf two-way-max-delay { 1785 type uint32 { 1786 range 0..16777215; 1787 } 1788 description "Maximum delay or latency in micro seconds."; 1789 } 1790 leaf two-way-delay-variation { 1791 type uint32 { 1792 range 0..16777215; 1793 } 1794 description "Delay variation in micro seconds."; 1795 } 1796 leaf two-way-packet-loss { 1797 type decimal64 { 1798 fraction-digits 6; 1799 range "0 .. 50.331642"; 1800 } 1801 description 1802 "Packet loss as a percentage of the total traffic sent 1803 over a configurable interval. The finest precision is 1804 0.000003%."; 1805 } 1806 } 1808 grouping performance-metric-one-way-bandwidth { 1809 description 1810 "Performance metric information in real time that can 1811 be applicable to links. PM defined 1812 in this grouping is applicable to generic TE performance 1813 metrics as well as packet TE performance metrics."; 1814 reference 1815 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 1816 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 1817 RFC7823: Performance-Based Path Selection for Explicitly 1818 Routed Label Switched Paths (LSPs) Using TE Metric 1819 Extensions"; 1821 leaf one-way-residual-bandwidth { 1822 type rt-types:bandwidth-ieee-float32; 1823 description 1824 "Residual bandwidth that subtracts tunnel 1825 reservations from Maximum Bandwidth (or link capacity) 1826 [RFC3630] and provides an aggregated remainder across QoS 1827 classes."; 1828 } 1829 leaf one-way-available-bandwidth { 1830 type rt-types:bandwidth-ieee-float32; 1831 description 1832 "Available bandwidth that is defined to be residual 1833 bandwidth minus the measured bandwidth used for the 1834 actual forwarding of non-RSVP-TE LSP packets. For a 1835 bundled link, available bandwidth is defined to be the 1836 sum of the component link available bandwidths."; 1837 } 1838 leaf one-way-utilized-bandwidth { 1839 type rt-types:bandwidth-ieee-float32; 1840 description 1841 "Bandwidth utilization that represents the actual 1842 utilization of the link (i.e. as measured in the router). 1843 For a bundled link, bandwidth utilization is defined to 1844 be the sum of the component link bandwidth 1845 utilizations."; 1846 } 1847 } 1849 grouping performance-metric-container { 1850 description 1851 "A container containing performance metric attributes."; 1852 container performance-metric-one-way { 1853 description 1854 "One-way link performance information in real time."; 1855 reference 1856 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 1857 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 1858 RFC7823: Performance-Based Path Selection for Explicitly 1859 Routed Label Switched Paths (LSPs) Using TE Metric 1860 Extensions"; 1861 uses performance-metric-one-way-delay-loss; 1862 uses performance-metric-one-way-bandwidth; 1863 } 1864 container performance-metric-two-way { 1865 description 1866 "Two-way link performance information in real time."; 1867 reference 1868 "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. 1869 RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. 1870 RFC7823: Performance-Based Path Selection for Explicitly 1871 Routed Label Switched Paths (LSPs) Using TE Metric 1872 Extensions"; 1873 uses performance-metric-two-way-delay-loss; 1874 } 1875 } 1877 /** 1878 * TE tunnel generic groupings 1879 **/ 1880 grouping explicit-route-hop { 1881 description 1882 "The explicit route subobject grouping"; 1883 choice type { 1884 description 1885 "The explicit route subobject type"; 1886 case num-unnum-hop { 1887 container num-unnum-hop { 1888 leaf node-id { 1889 type te-types:te-node-id; 1890 description 1891 "The identifier of a node in the TE topology."; 1892 } 1893 leaf link-tp-id { 1894 type te-types:te-tp-id; 1895 description 1896 "TE link termination point identifier. The combination 1897 of TE link ID and the TE node ID is used to identify an 1898 unnumbered TE link."; 1899 } 1900 leaf hop-type { 1901 type te-hop-type; 1902 description "strict or loose hop"; 1903 } 1904 leaf direction { 1905 type te-link-direction; 1906 default INCOMING; 1907 description "Link ERO direction"; 1908 } 1909 description 1910 "Numbered and Unnumbered link/node explicit route 1911 subobject"; 1912 reference 1913 "RFC3209: section 4.3 for EXPLICIT_ROUTE in RSVP-TE 1914 RFC3477: Signalling Unnumbered Links in RSVP-TE"; 1915 } 1916 } 1917 case as-number { 1918 container as-number-hop { 1919 leaf as-number { 1920 type binary { 1921 length 16; 1922 } 1923 description "AS number"; 1924 } 1925 leaf hop-type { 1926 type te-hop-type; 1927 description 1928 "strict or loose hop"; 1929 } 1930 description 1931 "Autonomous System explicit route subobject"; 1932 } 1933 } 1934 case label { 1935 container label-hop { 1936 description "Label hop type"; 1937 uses te-label; 1938 } 1939 description 1940 "The Label ERO subobject"; 1941 } 1942 } 1943 } 1945 grouping record-route-subobject_state { 1946 description 1947 "The record route subobject grouping"; 1948 leaf index { 1949 type uint32; 1950 description "RRO subobject index"; 1951 } 1952 choice type { 1953 description 1954 "The record route subobject type"; 1955 case numbered { 1956 leaf address { 1957 type te-types:te-tp-id; 1958 description 1959 "Numbered link TE termination point address."; 1960 } 1961 leaf ip-flags { 1962 type binary { 1963 length 8; 1964 } 1965 description 1966 "RRO IP address sub-object flags"; 1967 reference "RFC3209"; 1968 } 1969 } 1970 case unnumbered { 1971 leaf node-id { 1972 type te-types:te-node-id; 1973 description 1974 "The identifier of a node in the TE topology."; 1975 } 1976 leaf link-tp-id { 1977 type te-types:te-tp-id; 1978 description 1979 "TE link termination point identifier, used 1980 together with te-node-id to identify the 1981 link termination point"; 1982 } 1983 description 1984 "Unnumbered link record route subobject"; 1985 reference 1986 "RFC3477: Signalling Unnumbered Links in 1987 RSVP-TE"; 1988 } 1989 case label { 1990 container label-hop { 1991 description "Label hop type"; 1992 uses te-label; 1993 leaf label-flags { 1994 type binary { 1995 length 8; 1996 } 1997 description 1998 "Label sub-object flags"; 1999 reference "RFC3209"; 2000 } 2001 } 2002 description 2003 "The Label RRO subobject"; 2004 } 2005 } 2006 } 2008 grouping label-restriction-info { 2009 description "Label set item info"; 2010 leaf restriction { 2011 type enumeration { 2012 enum inclusive { 2013 description "The label or label range is inclusive."; 2014 } 2015 enum exclusive { 2016 description "The label or label range is exclusive."; 2017 } 2018 } 2019 description 2020 "Whether the list item is inclusive or exclusive."; 2021 } 2022 leaf index { 2023 type uint32; 2024 description 2025 "Then index of the label restriction list entry."; 2026 } 2027 container label-start { 2028 must "not(../label-end/te-label/direction) or " 2029 + "not(te-label/direction) " 2030 + "or ../label-end/te-label/direction = te-label/direction" { 2031 error-message 2032 "label-start and label-end must have the same direction."; 2033 } 2034 description 2035 "This is the starting label if a label range is specified. 2036 This is the label value if a single label is specified, 2037 in which case, attribute 'label-end' is not set."; 2038 uses te-label; 2039 } 2040 container label-end { 2041 must "not(../label-end/te-label/direction) or " 2042 + "not(te-label/direction) " 2043 + "or ../label-end/te-label/direction = te-label/direction" { 2044 error-message 2045 "label-start and label-end must have the same direction."; 2046 } 2047 description 2048 "The ending label if a label range is specified; 2049 This attribute is not set, If a single label is 2050 specified."; 2051 uses te-label; 2052 } 2053 container label-step { 2054 description 2055 "The step increment between labels in the label range. 2056 The label start/end values will have to be consistent 2057 with the sign of label step. For example, 2058 label-start < label-end enforces label-step > 0 2059 label-start > label-end enforces label-step < 0"; 2060 choice technology { 2061 default generic; 2062 description 2063 "Data plane technology type."; 2064 case generic { 2065 leaf generic { 2066 type int32; 2067 default 1; 2068 description "Label range step"; 2069 } 2071 } 2072 } 2073 } 2074 leaf range-bitmap { 2075 type binary; 2076 description 2077 "When there are gaps between label-start and label-end, 2078 this attribute is used to specify the positions 2079 of the used labels."; 2080 } 2081 } 2083 grouping label-set-info { 2084 description 2085 "Grouping for List of label restrictions specifying what labels 2086 may or may not be used on a link connectivity."; 2087 container label-restrictions { 2088 description 2089 "The label restrictions container"; 2090 list label-restriction { 2091 key "index"; 2092 description 2093 "The absence of label-set implies that all labels are 2094 acceptable; otherwise only restricted labels are 2095 available."; 2096 reference 2097 "RFC7579: General Network Element Constraint Encoding 2098 for GMPLS-Controlled Networks"; 2099 uses label-restriction-info; 2100 } 2101 } 2102 } 2104 grouping optimizations_config { 2105 description "Optimization metrics configuration grouping"; 2106 leaf metric-type { 2107 type identityref { 2108 base te-types:path-metric-type; 2109 } 2110 description "TE path metric type"; 2111 } 2112 leaf weight { 2113 type uint8; 2114 description "TE path metric normalization weight"; 2115 } 2116 container explicit-route-exclude-objects { 2117 when "../metric-type = " + 2118 "'te-types:path-metric-optimize-excludes'"; 2120 description 2121 "Container for the exclude route object list"; 2122 uses path-route-exclude-objects; 2123 } 2124 container explicit-route-include-objects { 2125 when "../metric-type = " + 2126 "'te-types:path-metric-optimize-includes'"; 2127 description 2128 "Container for the include route object list"; 2129 uses path-route-include-objects; 2130 } 2131 } 2133 grouping common-constraints_config { 2134 description 2135 "Common constraints grouping that can be set on 2136 a constraint set or directly on the tunnel"; 2138 uses te-types:te-bandwidth { 2139 description 2140 "A requested bandwidth to use for path computation"; 2141 } 2143 leaf setup-priority { 2144 type uint8 { 2145 range "0..7"; 2146 } 2147 description 2148 "TE LSP requested setup priority"; 2149 reference "RFC3209"; 2150 } 2151 leaf hold-priority { 2152 type uint8 { 2153 range "0..7"; 2154 } 2155 description 2156 "TE LSP requested hold priority"; 2157 reference "RFC3209"; 2158 } 2159 leaf signaling-type { 2160 type identityref { 2161 base te-types:path-signaling-type; 2162 } 2163 description "TE tunnel path signaling type"; 2164 } 2165 } 2167 grouping tunnel-constraints_config { 2168 description 2169 "Tunnel constraints grouping that can be set on 2170 a constraint set or directly on the tunnel"; 2171 uses te-types:te-topology-identifier; 2172 uses te-types:common-constraints_config; 2173 } 2175 grouping path-metrics-bounds_config { 2176 description "TE path metric bounds grouping"; 2177 leaf metric-type { 2178 type identityref { 2179 base te-types:path-metric-type; 2180 } 2181 description "TE path metric type"; 2182 } 2183 leaf upper-bound { 2184 type uint64; 2185 description "Upper bound on end-to-end TE path metric"; 2186 } 2187 } 2189 grouping path-objective-function_config { 2190 description "Optimization metrics configuration grouping"; 2191 leaf objective-function-type { 2192 type identityref { 2193 base te-types:objective-function-type; 2194 } 2195 description 2196 "Objective function entry"; 2197 } 2198 } 2200 grouping path-route-objects { 2201 description 2202 "List of EROs to be included or excluded when performing 2203 the path computation."; 2204 container explicit-route-objects { 2205 description 2206 "Container for the exclude route object list"; 2207 list route-object-exclude-always { 2208 key index; 2209 description 2210 "List of explicit route objects to always exclude 2211 from path computation"; 2212 leaf index { 2213 type uint32; 2214 description "ERO subobject index"; 2215 } 2216 uses te-types:explicit-route-hop; 2217 } 2218 list route-object-include-exclude { 2219 key index; 2220 description 2221 "List of explicit route objects to include or 2222 exclude in path computation"; 2223 leaf explicit-route-usage { 2224 type identityref { 2225 base te-types:route-usage-type; 2226 } 2227 description "Explicit-route usage."; 2228 } 2229 leaf index { 2230 type uint32; 2231 description "ERO subobject index"; 2232 } 2233 uses te-types:explicit-route-hop { 2234 augment "type" { 2235 case srlg { 2236 container srlg { 2237 description "SRLG container"; 2238 leaf srlg { 2239 type uint32; 2240 description "SRLG value"; 2241 } 2242 } 2243 description "An SRLG value to be included or excluded"; 2244 } 2245 description 2246 "Augmentation to generic explicit route for SRLG 2247 exclusion"; 2248 } 2249 } 2250 } 2251 } 2252 } 2254 grouping path-route-include-objects { 2255 description 2256 "List of EROs to be included when performing 2257 the path computation."; 2258 list route-object-include-object { 2259 key index; 2260 description 2261 "List of explicit route objects to be included 2262 in path computation"; 2263 leaf index { 2264 type uint32; 2265 description "ERO subobject index"; 2266 } 2267 uses te-types:explicit-route-hop; 2268 } 2269 } 2271 grouping path-route-exclude-objects { 2272 description 2273 "List of EROs to be included when performing 2274 the path computation."; 2275 list route-object-exclude-object { 2276 key index; 2277 description 2278 "List of explicit route objects to be excluded 2279 in path computation"; 2280 leaf index { 2281 type uint32; 2282 description "ERO subobject index"; 2283 } 2284 uses te-types:explicit-route-hop { 2285 augment "type" { 2286 case srlg { 2287 container srlg { 2288 description "SRLG container"; 2289 leaf srlg { 2290 type uint32; 2291 description "SRLG value"; 2292 } 2293 } 2294 description "An SRLG value to be included or excluded"; 2295 } 2296 description 2297 "Augmentation to generic explicit route for SRLG exclusion"; 2298 } 2299 } 2300 } 2301 } 2303 grouping generic-path-metric-bounds { 2304 description "TE path metric bounds grouping"; 2305 container path-metric-bounds { 2306 description "TE path metric bounds container"; 2307 list path-metric-bound { 2308 key metric-type; 2309 description "List of TE path metric bounds"; 2310 uses path-metrics-bounds_config; 2311 } 2313 } 2314 } 2316 grouping generic-path-optimization { 2317 description "TE generic path optimization grouping"; 2319 container optimizations { 2320 description 2321 "The objective function container that includes 2322 attributes to impose when computing a TE path"; 2324 choice algorithm { 2325 description "Optimizations algorithm."; 2326 case metric { 2327 if-feature path-optimization-metric; 2328 /* Optimize by metric */ 2329 list optimization-metric { 2330 key "metric-type"; 2331 description "TE path metric type"; 2332 uses optimizations_config; 2333 } 2334 /* Tiebreakers */ 2335 container tiebreakers { 2336 description 2337 "The list of tiebreaker criterion to apply 2338 on an equally favored set of paths to pick best"; 2339 list tiebreaker { 2340 key "tiebreaker-type"; 2341 description 2342 "The list of tiebreaker criterion to apply 2343 on an equally favored set of paths to pick best"; 2344 leaf tiebreaker-type { 2345 type identityref { 2346 base te-types:path-metric-type; 2347 } 2348 description "The objective function"; 2349 } 2350 } 2351 } 2352 } 2353 case objective-function { 2354 if-feature path-optimization-objective-function; 2355 /* Objective functions */ 2356 container objective-function { 2357 description 2358 "The objective function container that includes 2359 attributes to impose when computing a TE path"; 2360 uses path-objective-function_config; 2362 } 2363 } 2364 } 2365 } 2366 } 2368 grouping generic-path-affinities { 2369 description 2370 "Path affinities grouping"; 2371 container path-affinities-values { 2372 description 2373 "Path affinities values representation"; 2374 list path-affinities-value { 2375 key "usage"; 2376 description 2377 "List of named affinity constraints"; 2378 leaf usage { 2379 type identityref { 2380 base resource-affinities-type; 2381 } 2382 description "Affinities usage"; 2383 } 2384 leaf value { 2385 type admin-groups; 2386 description "Affinity value"; 2387 } 2388 } 2389 } 2390 container path-affinity-names { 2391 description 2392 "Path affinities named representation style"; 2393 list path-affinity-name { 2394 key "usage"; 2395 description "List of named affinity constraints"; 2396 leaf usage { 2397 type identityref { 2398 base te-types:resource-affinities-type; 2399 } 2400 description "Affinities usage"; 2401 } 2402 list affinity-name { 2403 key "name"; 2404 leaf name { 2405 type string; 2406 description "Affinity name"; 2407 } 2408 description "List of named affinities"; 2409 } 2411 } 2412 } 2413 } 2415 grouping generic-path-srlgs { 2416 description 2417 "Path SRLG grouping"; 2418 container path-srlgs-values { 2419 description 2420 "Path SRLG properties container"; 2421 leaf usage { 2422 type identityref { 2423 base te-types:route-exclude-srlg; 2424 } 2425 description "SRLG usage"; 2426 } 2427 leaf-list values { 2428 type srlg; 2429 description "SRLG value"; 2430 } 2431 } 2432 container path-srlgs-names { 2433 description "Container for named SRLG list"; 2434 list path-srlgs-name { 2435 key "usage"; 2436 description "List of named SRLGs"; 2437 leaf usage { 2438 type identityref { 2439 base te-types:route-exclude-srlg; 2440 } 2441 description "SRLG usage"; 2442 } 2443 list srlg-name { 2444 key "name"; 2445 leaf name { 2446 type string; 2447 description "The SRLG name"; 2448 } 2449 description "List named SRLGs"; 2450 } 2451 } 2452 } 2453 } 2455 grouping generic-path-disjointness { 2456 description "Path disjointness grouping"; 2457 leaf disjointness { 2458 type te-types:te-path-disjointness; 2459 description 2460 "The type of resource disjointness. 2461 Under primary path, disjointness level applies to 2462 all secondary LSPs. Under secondary, disjointness 2463 level overrides the one under primary"; 2464 } 2465 } 2467 grouping common-path-constraints-attributes { 2468 description 2469 "Common path constraints configuration grouping"; 2470 uses common-constraints_config; 2471 uses generic-path-metric-bounds; 2472 uses generic-path-affinities; 2473 uses generic-path-srlgs; 2474 } 2476 grouping generic-path-constraints { 2477 description 2478 "Global named path constraints configuration 2479 grouping"; 2480 container path-constraints { 2481 description "TE named path constraints container"; 2482 uses common-path-constraints-attributes; 2483 uses generic-path-disjointness; 2484 } 2485 } 2487 grouping generic-path-properties { 2488 description "TE generic path properties grouping"; 2489 container path-properties { 2490 config false; 2491 description "The TE path properties"; 2492 list path-metric { 2493 key metric-type; 2494 description "TE path metric type"; 2495 leaf metric-type { 2496 type identityref { 2497 base te-types:path-metric-type; 2498 } 2499 description "TE path metric type"; 2500 } 2501 leaf accumulative-value { 2502 type uint64; 2503 description "TE path metric accumulative value"; 2504 } 2505 } 2506 uses generic-path-affinities; 2507 uses generic-path-srlgs; 2508 container path-route-objects { 2509 description 2510 "Container for the list of route objects either returned by 2511 the computation engine or actually used by an LSP"; 2512 list path-route-object { 2513 key index; 2514 description 2515 "List of route objects either returned by the computation 2516 engine or actually used by an LSP"; 2517 leaf index { 2518 type uint32; 2519 description "ERO subobject index"; 2520 } 2521 uses explicit-route-hop; 2522 } 2523 } 2524 } 2525 } 2526 } 2527 2529 Figure 1: TE basic types YANG module 2531 4. IETF MPLS TE Types YANG Module 2533 file "ietf-te-mpls-types@2018-09-13.yang" 2534 module ietf-te-mpls-types { 2536 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls-types"; 2538 /* Replace with IANA when assigned */ 2539 prefix "te-mpls-types"; 2541 organization 2542 "IETF TEAS Working Group"; 2544 contact 2545 "WG Web: 2546 WG List: 2548 WG Chair: Lou Berger 2549 2551 WG Chair: Vishnu Pavan Beeram 2552 2554 Editor: Tarek Saad 2555 2557 Editor: Rakesh Gandhi 2558 2560 Editor: Vishnu Pavan Beeram 2561 2563 Editor: Himanshu Shah 2564 2566 Editor: Xufeng Liu 2567 2569 Editor: Igor Bryskin 2570 2572 Editor: Young Lee 2573 "; 2575 description 2576 "This module contains a collection of generally 2577 useful MPLS TE specific YANG data type definitions."; 2579 revision "2018-09-13" { 2580 description "Latest revision of TE MPLS types"; 2581 reference "RFC3209"; 2582 } 2584 identity backup-protection-type { 2585 description 2586 "Base identity for backup protection type"; 2587 } 2589 identity backup-protection-link { 2590 base backup-protection-type; 2591 description 2592 "backup provides link protection only"; 2593 } 2595 identity backup-protection-node-link { 2596 base backup-protection-type; 2597 description 2598 "backup offers node (preferred) or link protection"; 2599 } 2601 identity bc-model-type { 2602 description 2603 "Base identity for Diffserv-TE bandwidth constraint 2604 model type"; 2605 } 2607 identity bc-model-rdm { 2608 base bc-model-type; 2609 description 2610 "Russian Doll bandwidth constraint model type."; 2611 } 2613 identity bc-model-mam { 2614 base bc-model-type; 2615 description 2616 "Maximum Allocation bandwidth constraint 2617 model type."; 2618 } 2620 identity bc-model-mar { 2621 base bc-model-type; 2622 description 2623 "Maximum Allocation with Reservation 2624 bandwidth constraint model type."; 2625 } 2627 typedef bandwidth-kbps { 2628 type uint64; 2629 units "Kbps"; 2630 description 2631 "Bandwidth values expressed in kilobits per second"; 2632 } 2634 typedef bandwidth-mbps { 2635 type uint64; 2636 units "Mbps"; 2637 description 2638 "Bandwidth values expressed in megabits per second"; 2639 } 2641 typedef bandwidth-gbps { 2642 type uint64; 2643 units "Gbps"; 2644 description 2645 "Bandwidth values expressed in gigabits per second"; 2646 } 2648 typedef te-bandwidth-type { 2649 type enumeration { 2650 enum SPECIFIED { 2651 description 2652 "Bandwidth is explicitly specified"; 2653 } 2654 enum AUTO { 2655 description 2656 "Bandwidth is automatically computed"; 2657 } 2658 } 2659 description 2660 "enumerated type for specifying whether bandwidth is 2661 explicitly specified or automatically computed"; 2662 } 2664 typedef bfd-type { 2665 type enumeration { 2666 enum classical { 2667 description "BFD classical session type."; 2668 } 2669 enum seamless { 2670 description "BFD seamless session type."; 2671 } 2672 } 2673 default "classical"; 2674 description 2675 "Type of BFD session"; 2676 } 2678 typedef bfd-encap-mode-type { 2679 type enumeration { 2680 enum gal { 2681 description 2682 "BFD with GAL mode"; 2683 } 2684 enum ip { 2685 description 2686 "BFD with IP mode"; 2687 } 2688 } 2689 default ip; 2690 description 2691 "Possible BFD transport modes when running over TE 2692 LSPs."; 2693 } 2694 } 2695 2697 Figure 2: TE MPLS types YANG module 2699 5. IANA Considerations 2701 This document registers the following URIs in the IETF XML registry 2702 [RFC3688]. Following the format in [RFC3688], the following 2703 registration is requested to be made. 2705 URI: urn:ietf:params:xml:ns:yang:ietf-te-types XML: N/A, the 2706 requested URI is an XML namespace. 2708 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls-types XML: N/A, the 2709 requested URI is an XML namespace. 2711 This document registers a YANG module in the YANG Module Names 2712 registry [RFC6020]. 2714 name: ietf-te-types namespace: urn:ietf:params:xml:ns:yang:ietf-te- 2715 types prefix: ietf-te-types reference: RFC3209 2717 name: ietf-te-mpls-types namespace: urn:ietf:params:xml:ns:yang:ietf- 2718 te-mpls-types prefix: ietf-te-mpls-types reference: RFC3209 2720 6. Security Considerations 2722 The YANG module defined in this memo is designed to be accessed via 2723 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 2724 secure transport layer and the mandatory-to-implement secure 2725 transport is SSH [RFC6242]. The NETCONF access control model 2726 [RFC8341] provides means to restrict access for particular NETCONF 2727 users to a pre-configured subset of all available NETCONF protocol 2728 operations and content. 2730 7. Acknowledgement 2732 The authors would like to thank the members of the multi-vendor YANG 2733 design team who are involved in the definition of these data types. 2735 The authors would also like to thank Loa Andersson, Lou Berger, 2736 Sergio Belotti, Italo Busi, Carlo Perocchio, Francesco Lazzeri, Aihua 2737 Guo, Dhruv Dhody, Anurag Sharma, and Xian Zhang for their comments 2738 and providing valuable feedback on this document. 2740 8. Normative References 2742 [I-D.ietf-teas-yang-rsvp] 2743 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 2744 and H. Shah, "A YANG Data Model for Resource Reservation 2745 Protocol (RSVP)", draft-ietf-teas-yang-rsvp-09 (work in 2746 progress), May 2018. 2748 [I-D.ietf-teas-yang-te] 2749 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 2750 I. Bryskin, "A YANG Data Model for Traffic Engineering 2751 Tunnels and Interfaces", draft-ietf-teas-yang-te-16 (work 2752 in progress), July 2018. 2754 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2755 Requirement Levels", BCP 14, RFC 2119, 2756 DOI 10.17487/RFC2119, March 1997, 2757 . 2759 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 2760 DOI 10.17487/RFC3688, January 2004, 2761 . 2763 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 2764 the Network Configuration Protocol (NETCONF)", RFC 6020, 2765 DOI 10.17487/RFC6020, October 2010, 2766 . 2768 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2769 and A. Bierman, Ed., "Network Configuration Protocol 2770 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2771 . 2773 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 2774 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 2775 . 2777 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 2778 RFC 6991, DOI 10.17487/RFC6991, July 2013, 2779 . 2781 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 2782 RFC 7950, DOI 10.17487/RFC7950, August 2016, 2783 . 2785 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 2786 "Common YANG Data Types for the Routing Area", RFC 8294, 2787 DOI 10.17487/RFC8294, December 2017, 2788 . 2790 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 2791 Access Control Model", STD 91, RFC 8341, 2792 DOI 10.17487/RFC8341, March 2018, 2793 . 2795 Authors' Addresses 2797 Tarek Saad (editor) 2798 Cisco Systems Inc 2800 Email: tsaad@cisco.com 2802 Rakesh Gandhi 2803 Cisco Systems Inc 2805 Email: rgandhi@cisco.com 2807 Xufeng Liu 2808 Volta Networks 2810 Email: xufeng.liu.ietf@gmail.com 2812 Vishnu Pavan Beeram 2813 Juniper Networks 2815 Email: vbeeram@juniper.net 2817 Himanshu Shah 2818 Ciena 2820 Email: hshah@ciena.com 2822 Igor Bryskin 2823 Huawei Technologies 2825 Email: Igor.Bryskin@huawei.com 2827 Young Lee 2828 Huawei Technologies 2830 Email: leeyoung@huawei.com