idnits 2.17.1 draft-ietf-teas-yang-te-mpls-01.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 (February 23, 2019) is 1879 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 (-14) exists of draft-ietf-mpls-static-yang-07 == Outdated reference: A later version (-19) exists of draft-ietf-teas-yang-rsvp-10 == Outdated reference: A later version (-09) exists of draft-ietf-teas-yang-rsvp-te-05 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-19 == Outdated reference: A later version (-13) exists of draft-ietf-teas-yang-te-types-06 Summary: 0 errors (**), 0 flaws (~~), 7 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: August 27, 2019 X. Liu 6 Volta Networks 7 V. Beeram 8 Juniper Networks 9 I. Bryskin 10 Huawei Technologies 11 February 23, 2019 13 A YANG Data Model for MPLS Traffic Engineering Tunnels 14 draft-ietf-teas-yang-te-mpls-01 16 Abstract 18 This document defines a YANG data model for the configuration and 19 management of Multiprotocol Label Switching (MPLS) Traffic 20 Engineering (TE) tunnels, Label Switched Paths (LSPs) and interfaces. 21 The model augments the TE generic YANG model for MPLS packet 22 dataplane technology. 24 This model covers data for configuration, operational state, remote 25 procedural calls, and event notifications. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on August 27, 2019. 44 Copyright Notice 46 Copyright (c) 2019 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (https://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 63 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 64 1.3. Acronyms and Abbreviations . . . . . . . . . . . . . . . 3 65 2. MPLS TE YANG Model . . . . . . . . . . . . . . . . . . . . . 3 66 2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 3 67 2.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 4 68 2.3. MPLS TE YANG Module . . . . . . . . . . . . . . . . . . . 7 69 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 70 4. Security Considerations . . . . . . . . . . . . . . . . . . . 18 71 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 72 6. Normative References . . . . . . . . . . . . . . . . . . . . 18 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 75 1. Introduction 77 YANG [RFC6020] and [RFC7950] is a data modeling language used to 78 define the contents of a conceptual data store that allows networked 79 devices to be managed using NETCONF [RFC6241]. YANG has proved 80 relevant beyond its initial confines, as bindings to other interfaces 81 (e.g. RESTCONF [RFC8040]) and encoding other than XML (e.g. JSON) 82 are being defined. Furthermore, YANG data models can be used as the 83 basis of implementation for other interfaces, such as CLI and 84 programmatic APIs. 86 This document describes the YANG data model for configuration and 87 management of MPLS TE tunnels, LSPs, and interfaces. Other YANG 88 module(s) that model the establishment of MPLS LSP(s) via signaling 89 protocols such as RSVP-TE ([RFC3209], [RFC3473]) are described in 90 separate document(s). 92 1.1. Terminology 94 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 95 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 96 "OPTIONAL" in this document are to be interpreted as described in BCP 97 14 [RFC2119] [RFC8174] when, and only when, they appear in all 98 capitals, as shown here. 100 The terminology for describing YANG data models is found in 101 [RFC7950]. 103 1.2. Prefixes in Data Node Names 105 In this document, names of data nodes and other data model objects 106 are prefixed using the standard prefix associated with the 107 corresponding YANG imported modules, as shown in Table 1. 109 +---------------+--------------------+-------------------------------+ 110 | Prefix | YANG module | Reference | 111 +---------------+--------------------+-------------------------------+ 112 | yang | ietf-yang-types | [RFC6991] | 113 | inet | ietf-inet-types | [RFC6991] | 114 | rt-types | ietf-routing-types | [RFC8294] | 115 | te | ietf-te | [I-D.ietf-teas-yang-te] | 116 | te-dev | ietf-te-device | [I-D.ietf-teas-yang-te] | 117 | te-mpls | ietf-te-mpls | This document | 118 | te-types | ietf-te-types | [I-D.ietf-teas-yang-te-types] | 119 | te-mpls-types | ietf-te-mpls-types | [I-D.ietf-teas-yang-te-types] | 120 +---------------+--------------------+-------------------------------+ 122 Table 1: Prefixes and corresponding YANG modules 124 1.3. Acronyms and Abbreviations 126 MPLS: Multiprotocol Label Switching LSP: Label Switched Path LSR: 127 Label Switching Router LER: Label Edge Router TE: Traffic 128 Engineering 130 2. MPLS TE YANG Model 132 The MPLS TE YANG model covers the configuration, state, RPC and 133 notifications data pertaining to MPLS TE interfaces, tunnels and LSPs 134 parameters. The data specific to the signaling protocol used to 135 establish MPLS LSP(s) is outside the scope of this document and is 136 covered in other documents, e.g. in [I-D.ietf-teas-yang-rsvp] and 137 [I-D.ietf-teas-yang-rsvp-te]. 139 2.1. Module(s) Relationship 141 The MPLS TE YANG module "ietf-te-mpls" imports the following modules: 143 o ietf-te and ietf-te-device defined in [I-D.ietf-teas-yang-te] 144 o ietf-te-types and ietf-te-packet-types defined in 145 [I-D.ietf-teas-yang-te-types] 147 o ietf-routing-types defined in [RFC8294] 149 o ietf-mpls-static defined in [I-D.ietf-mpls-static-yang] 151 TE generic +---------+ o: augment 152 module | ietf-te | 153 +---------+ 154 o o 155 | | 156 +-----+ +-----+ 157 | | 158 +--------------+ +--------------+ 159 RSVP-TE | ietf-rsvp-te | | ietf-te-mpls | 160 +--------------+ +--------------+ 162 Figure 1: Relationship of MPLS TE module with TE generic and RSVP-TE 163 YANG modules 165 The MPLS TE YANG module "ietf-te-mpls" augments the "ietf-te" TE 166 generic YANG module as shown in Figure 1. 168 2.2. Model Tree Diagram 170 Figure 2 shows the tree diagram of the MPLS TE YANG model that is 171 defined in ietf-te-mpls.yang. 173 module: ietf-te-mpls 174 augment /te:te/te-dev:performance-thresholds: 175 +--rw throttle 176 +--rw one-way-delay-offset? uint32 177 +--rw measure-interval? uint32 178 +--rw advertisement-interval? uint32 179 +--rw suppression-interval? uint32 180 +--rw threshold-out 181 | +--rw one-way-delay? uint32 182 | +--rw one-way-residual-bandwidth? 183 | | rt-types:bandwidth-ieee-float32 184 | +--rw one-way-available-bandwidth? 185 | | rt-types:bandwidth-ieee-float32 186 | +--rw one-way-utilized-bandwidth? 187 | | rt-types:bandwidth-ieee-float32 188 | +--rw two-way-delay? uint32 189 | +--rw one-way-min-delay? uint32 190 | +--rw one-way-max-delay? uint32 191 | +--rw one-way-delay-variation? uint32 192 | +--rw one-way-packet-loss? decimal64 193 | +--rw two-way-min-delay? uint32 194 | +--rw two-way-max-delay? uint32 195 | +--rw two-way-delay-variation? uint32 196 | +--rw two-way-packet-loss? decimal64 197 +--rw threshold-in 198 | +--rw one-way-delay? uint32 199 | +--rw one-way-residual-bandwidth? 200 | | rt-types:bandwidth-ieee-float32 201 | +--rw one-way-available-bandwidth? 202 | | rt-types:bandwidth-ieee-float32 203 | +--rw one-way-utilized-bandwidth? 204 | | rt-types:bandwidth-ieee-float32 205 | +--rw two-way-delay? uint32 206 | +--rw one-way-min-delay? uint32 207 | +--rw one-way-max-delay? uint32 208 | +--rw one-way-delay-variation? uint32 209 | +--rw one-way-packet-loss? decimal64 210 | +--rw two-way-min-delay? uint32 211 | +--rw two-way-max-delay? uint32 212 | +--rw two-way-delay-variation? uint32 213 | +--rw two-way-packet-loss? decimal64 214 +--rw threshold-accelerated-advertisement 215 +--rw one-way-delay? uint32 216 +--rw one-way-residual-bandwidth? 217 | rt-types:bandwidth-ieee-float32 218 +--rw one-way-available-bandwidth? 219 | rt-types:bandwidth-ieee-float32 220 +--rw one-way-utilized-bandwidth? 221 | rt-types:bandwidth-ieee-float32 222 +--rw two-way-delay? uint32 223 +--rw one-way-min-delay? uint32 224 +--rw one-way-max-delay? uint32 225 +--rw one-way-delay-variation? uint32 226 +--rw one-way-packet-loss? decimal64 227 +--rw two-way-min-delay? uint32 228 +--rw two-way-max-delay? uint32 229 +--rw two-way-delay-variation? uint32 230 +--rw two-way-packet-loss? decimal64 231 augment /te:te/te:tunnels/te:tunnel: 232 +--rw tunnel-igp-shortcut 233 | +--rw shortcut-eligible? boolean 234 | +--rw metric-type? identityref 235 | +--rw metric? int32 236 | +--rw routing-afs* inet:ip-version 237 +--rw forwarding 238 | +--rw binding-label? rt-types:mpls-label 239 | +--rw load-share? uint32 240 | +--rw policy-class? uint8 241 +--rw bandwidth-mpls 242 +--rw specification-type? 243 | te-packet-types:te-bandwidth-requested-type 244 +--rw set-bandwidth? te-packet-types:bandwidth-kbps 245 +--rw class-type? te-types:te-ds-class 246 +--ro state 247 | +--ro signaled-bandwidth? te-packet-types:bandwidth-kbps 248 +--rw auto-bandwidth 249 +--rw enabled? boolean 250 +--rw min-bw? te-packet-types:bandwidth-kbps 251 +--rw max-bw? te-packet-types:bandwidth-kbps 252 +--rw adjust-interval? uint32 253 +--rw adjust-threshold? rt-types:percentage 254 +--rw overflow 255 | +--rw enabled? boolean 256 | +--rw overflow-threshold? rt-types:percentage 257 | +--rw trigger-event-count? uint16 258 +--rw underflow 259 +--rw enabled? boolean 260 +--rw underflow-threshold? rt-types:percentage 261 +--rw trigger-event-count? uint16 262 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 263 /te:p2p-primary-path: 264 +--rw static-lsp-name? mpls-static:static-lsp-ref 265 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 266 /te:p2p-secondary-path: 267 +--rw static-lsp-name? mpls-static:static-lsp-ref 268 augment /te:te/te:globals/te:named-path-constraints 269 /te:named-path-constraint: 270 +--rw bandwidth 271 +--rw specification-type? 272 | te-packet-types:te-bandwidth-requested-type 273 +--rw set-bandwidth? te-packet-types:bandwidth-kbps 274 +--rw class-type? te-types:te-ds-class 275 +--ro state 276 +--ro signaled-bandwidth? te-packet-types:bandwidth-kbps 277 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 278 /te:p2p-primary-path/te:lsps/te:lsp: 279 +--ro performance-metrics-one-way 280 | +--ro one-way-delay? uint32 281 | +--ro one-way-delay-normality? 282 | | te-types:performance-metrics-normality 283 | +--ro one-way-residual-bandwidth? 284 | | rt-types:bandwidth-ieee-float32 285 | +--ro one-way-residual-bandwidth-normality? 286 | | te-types:performance-metrics-normality 287 | +--ro one-way-available-bandwidth? 288 | | rt-types:bandwidth-ieee-float32 289 | +--ro one-way-available-bandwidth-normality? 290 | | te-types:performance-metrics-normality 291 | +--ro one-way-utilized-bandwidth? 292 | | rt-types:bandwidth-ieee-float32 293 | +--ro one-way-utilized-bandwidth-normality? 294 | | te-types:performance-metrics-normality 295 | +--ro one-way-min-delay? uint32 296 | +--ro one-way-min-delay-normality? 297 | | te-types:performance-metrics-normality 298 | +--ro one-way-max-delay? uint32 299 | +--ro one-way-max-delay-normality? 300 | | te-types:performance-metrics-normality 301 | +--ro one-way-delay-variation? uint32 302 | +--ro one-way-delay-variation-normality? 303 | | te-types:performance-metrics-normality 304 | +--ro one-way-packet-loss? decimal64 305 | +--ro one-way-packet-loss-normality? 306 | te-types:performance-metrics-normality 307 +--ro performance-metrics-two-way 308 +--ro two-way-delay? uint32 309 +--ro two-way-delay-normality? 310 | te-types:performance-metrics-normality 311 +--ro two-way-min-delay? uint32 312 +--ro two-way-min-delay-normality? 313 | te-types:performance-metrics-normality 314 +--ro two-way-max-delay? uint32 315 +--ro two-way-max-delay-normality? 316 | te-types:performance-metrics-normality 317 +--ro two-way-delay-variation? uint32 318 +--ro two-way-delay-variation-normality? 319 | te-types:performance-metrics-normality 320 +--ro two-way-packet-loss? decimal64 321 +--ro two-way-packet-loss-normality? 322 te-types:performance-metrics-normality 324 Figure 2: MPLS TE model configuration and state tree 326 2.3. MPLS TE YANG Module 328 file "ietf-te-mpls@2019-02-23.yang" 329 module ietf-te-mpls { 330 yang-version 1.1; 331 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls"; 333 /* Replace with IANA when assigned */ 334 prefix "te-mpls"; 335 /* Import TE base model */ 336 import ietf-te { 337 prefix te; 338 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 339 Engineering Tunnels and Interfaces"; 340 } 342 import ietf-te-device { 343 prefix te-dev; 344 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 345 Engineering Tunnels and Interfaces"; 346 } 348 /* Import TE MPLS types */ 349 import ietf-te-packet-types { 350 prefix "te-packet-types"; 351 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 352 Common Traffic Engineering Types"; 353 } 355 /* Import TE generic types */ 356 import ietf-te-types { 357 prefix te-types; 358 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 359 Common Traffic Engineering Types"; 360 } 362 /* Import routing types */ 363 import ietf-routing-types { 364 prefix rt-types; 365 reference "RFC8294: Common YANG Data Types for the Routing Area"; 366 } 368 import ietf-mpls-static { 369 prefix mpls-static; 370 reference "draft-ietf-mpls-static-yang: A YANG Data Model 371 for MPLS Static LSPs"; 372 } 374 import ietf-inet-types { 375 prefix inet; 376 reference "RFC6991: Common YANG Data Types"; 377 } 379 organization 380 "IETF Traffic Engineering Architecture and Signaling (TEAS) 381 Working Group"; 383 contact 384 "WG Web: 385 WG List: 387 WG Chair: Lou Berger 388 390 WG Chair: Vishnu Pavan Beeram 391 393 Editor: Tarek Saad 394 396 Editor: Rakesh Gandhi 397 399 Editor: Vishnu Pavan Beeram 400 402 Editor: Xufeng Liu 403 405 Editor: Igor Bryskin 406 "; 408 description 409 "YANG data module for MPLS TE configurations, 410 state, RPC and notifications. The model fully conforms to 411 the Network Management Datastore Architecture (NMDA). 413 Copyright (c) 2018 IETF Trust and the persons 414 identified as authors of the code. All rights reserved. 416 Redistribution and use in source and binary forms, with or 417 without modification, is permitted pursuant to, and subject 418 to the license terms contained in, the Simplified BSD License 419 set forth in Section 4.c of the IETF Trust's Legal Provisions 420 Relating to IETF Documents 421 (https://trustee.ietf.org/license-info). 422 This version of this YANG module is part of RFC XXXX; see 423 the RFC itself for full legal notices."; 425 // RFC Ed.: replace XXXX with actual RFC number and remove this 426 // note. 428 // RFC Ed.: update the date below with the date of RFC publication 429 // and remove this note. 431 revision "2019-02-23" { 432 description "Latest update to MPLS TE YANG module."; 433 reference 434 "RFCXXXX: A YANG Data Model for MPLS-TE Tunnels and LSP(s)"; 435 } 437 /* MPLS TE tunnel properties*/ 439 grouping tunnel-igp-shortcut-config { 440 description "TE tunnel IGP shortcut configs"; 441 leaf shortcut-eligible { 442 type boolean; 443 default "true"; 444 description 445 "Whether this LSP is considered to be eligible for us as a 446 shortcut in the IGP. In the case that this leaf is set to 447 true, the IGP SPF calculation uses the metric specified to 448 determine whether traffic should be carried over this LSP"; 449 } 450 leaf metric-type { 451 type identityref { 452 base te-types:lsp-metric-type; 453 } 454 default te-types:lsp-metric-inherited; 455 description 456 "The type of metric specification that should be used to set 457 the LSP(s) metric"; 458 } 459 leaf metric { 460 type int32; 461 description 462 "The value of the metric that should be specified. The value 463 supplied in this leaf is used in conjunction with the metric 464 type to determine the value of the metric used by the system. 465 Where the metric-type is set to lsp-metric-absolute - the 466 value of this leaf is used directly; where it is set to 467 lsp-metric-relative, the relevant (positive or negative) 468 offset is used to formulate the metric; where metric-type 469 is lsp-metric-inherited, the value of this leaf is not 470 utilized"; 471 } 472 leaf-list routing-afs { 473 type inet:ip-version; 474 description 475 "Address families"; 476 } 477 } 478 grouping tunnel-igp-shortcuts { 479 description 480 "TE tunnel IGP shortcut grouping"; 481 container tunnel-igp-shortcut { 482 description 483 "Tunnel IGP shortcut properties"; 484 uses tunnel-igp-shortcut-config; 485 } 486 } 488 grouping tunnel-forwarding-adjacency-configs { 489 description "Tunnel forwarding adjacency grouping"; 490 leaf binding-label { 491 type rt-types:mpls-label; 492 description "MPLS tunnel binding label"; 493 } 494 leaf load-share { 495 type uint32 { 496 range "1..4294967295"; 497 } 498 description "ECMP tunnel forwarding 499 load-share factor."; 500 } 501 leaf policy-class { 502 type uint8 { 503 range "1..7"; 504 } 505 description 506 "The class associated with this tunnel"; 507 } 508 } 510 grouping tunnel-forwarding-adjacency { 511 description "Properties for using tunnel in forwarding."; 512 container forwarding { 513 description 514 "Tunnel forwarding properties container"; 515 uses tunnel-forwarding-adjacency-configs; 516 } 517 } 519 /*** End of MPLS TE tunnel configuration/state */ 520 grouping te-lsp-auto-bandwidth-config { 521 description 522 "Configuration parameters related to autobandwidth"; 524 leaf enabled { 525 type boolean; 526 default false; 527 description 528 "Enables MPLS auto-bandwidth on the 529 LSP"; 530 } 532 leaf min-bw { 533 type te-packet-types:bandwidth-kbps; 534 description 535 "set the minimum bandwidth in Kbps for an 536 auto-bandwidth LSP"; 537 } 539 leaf max-bw { 540 type te-packet-types:bandwidth-kbps; 541 description 542 "set the maximum bandwidth in Kbps for an 543 auto-bandwidth LSP"; 544 } 546 leaf adjust-interval { 547 type uint32; 548 description 549 "time in seconds between adjustments to 550 LSP bandwidth"; 551 } 553 leaf adjust-threshold { 554 type rt-types:percentage; 555 description 556 "percentage difference between the LSP's 557 specified bandwidth and its current bandwidth 558 allocation -- if the difference is greater than the 559 specified percentage, auto-bandwidth adjustment is 560 triggered"; 561 } 562 } 564 grouping te-lsp-overflow-config { 565 description 566 "configuration for MPLS LSP bandwidth 567 overflow adjustment"; 569 leaf enabled { 570 type boolean; 571 default false; 572 description 573 "Enables MPLS LSP bandwidth overflow 574 adjustment on the LSP"; 575 } 577 leaf overflow-threshold { 578 type rt-types:percentage; 579 description 580 "bandwidth percentage change to trigger 581 an overflow event"; 583 } 585 leaf trigger-event-count { 586 type uint16; 587 description 588 "number of consecutive overflow sample 589 events needed to trigger an overflow adjustment"; 590 } 591 } 593 grouping te-lsp-underflow-config { 594 description 595 "configuration for MPLS LSP bandwidth 596 underflow adjustment"; 598 leaf enabled { 599 type boolean; 600 default false; 601 description 602 "enables bandwidth underflow 603 adjustment on the LSP"; 604 } 606 leaf underflow-threshold { 607 type rt-types:percentage; 608 description 609 "bandwidth percentage change to trigger 610 and underflow event"; 611 } 613 leaf trigger-event-count { 614 type uint16; 615 description 616 "number of consecutive underflow sample 617 events needed to trigger an underflow adjustment"; 618 } 619 } 620 grouping te-tunnel-bandwidth-config { 621 description 622 "Configuration parameters related to bandwidth for a tunnel"; 624 leaf specification-type { 625 type te-packet-types:te-bandwidth-requested-type; 626 default specified; 627 description 628 "The method used for setting the bandwidth, either explicitly 629 specified or configured"; 630 } 632 leaf set-bandwidth { 633 when "../specification-type = 'specified'" { 634 description 635 "The bandwidth value when bandwidth is explicitly 636 specified"; 637 } 638 type te-packet-types:bandwidth-kbps; 639 description 640 "set bandwidth explicitly, e.g., using 641 offline calculation"; 642 } 643 leaf class-type { 644 type te-types:te-ds-class; 645 description 646 "The Class-Type of traffic transported by the LSP."; 647 reference "RFC4124: section-4.3.1"; 648 } 649 } 651 grouping te-tunnel-bandwidth-state { 652 description 653 "Operational state parameters relating to bandwidth for a tunnel"; 655 leaf signaled-bandwidth { 656 type te-packet-types:bandwidth-kbps; 657 description 658 "The currently signaled bandwidth of the LSP. In the case where 659 the bandwidth is specified explicitly, then this will match the 660 value of the set-bandwidth leaf; in cases where the bandwidth is 661 dynamically computed by the system, the current value of the 662 bandwidth should be reflected."; 663 } 664 } 666 grouping tunnel-bandwidth_top { 667 description 668 "Top level grouping for specifying bandwidth for a tunnel"; 670 container bandwidth-mpls { 671 description 672 "Bandwidth configuration for TE LSPs"; 674 uses te-tunnel-bandwidth-config; 676 container state { 677 config false; 678 description 679 "State parameters related to bandwidth 680 configuration of TE tunnels"; 681 uses te-tunnel-bandwidth-state; 682 } 684 container auto-bandwidth { 685 when "../specification-type = 'auto'" { 686 description 687 "Include this container for auto bandwidth 688 specific configuration"; 689 } 690 description 691 "Parameters related to auto-bandwidth"; 693 uses te-lsp-auto-bandwidth-config; 695 container overflow { 696 description 697 "configuration of MPLS overflow bandwidth 698 adjustment for the LSP"; 700 uses te-lsp-overflow-config; 701 } 703 container underflow { 704 description 705 "configuration of MPLS underflow bandwidth 706 adjustment for the LSP"; 708 uses te-lsp-underflow-config; 709 } 710 } 711 } 712 } 714 grouping te-path-bandwidth_top { 715 description 716 "Top level grouping for specifying bandwidth for a TE path"; 718 container bandwidth { 719 description 720 "Bandwidth configuration for TE LSPs"; 722 uses te-tunnel-bandwidth-config; 723 container state { 724 config false; 725 description 726 "State parameters related to bandwidth 727 configuration of TE tunnels"; 728 uses te-tunnel-bandwidth-state; 729 } 730 } 731 } 733 /** 734 * MPLS TE augmentations 735 */ 736 augment "/te:te/te-dev:performance-thresholds" { 737 uses te-packet-types:performance-metrics-throttle-container-packet; 738 description 739 "Performance parameters configurable thresholds"; 740 } 742 /* MPLS TE interface augmentations */ 744 /* MPLS TE tunnel augmentations */ 745 augment "/te:te/te:tunnels/te:tunnel" { 746 description "MPLS TE tunnel config augmentations"; 747 uses tunnel-igp-shortcuts; 748 uses tunnel-forwarding-adjacency; 749 uses tunnel-bandwidth_top; 750 } 752 /* MPLS TE LSPs augmentations */ 753 augment "/te:te/te:tunnels/te:tunnel/" + 754 "te:p2p-primary-paths/te:p2p-primary-path" { 755 when "/te:te/te:tunnels/te:tunnel" + 756 "/te:p2p-primary-paths/te:p2p-primary-path" + 757 "/te:path-setup-protocol = 'te-types:path-setup-static'" { 758 description 759 "When the path is statically provisioned"; 760 } 761 description "MPLS TE LSP augmentation"; 762 leaf static-lsp-name { 763 type mpls-static:static-lsp-ref; 764 description "Static LSP name"; 765 } 766 } 768 augment "/te:te/te:tunnels/te:tunnel/" + 769 "te:p2p-secondary-paths/te:p2p-secondary-path" { 770 when "/te:te/te:tunnels/te:tunnel" + 771 "/te:p2p-secondary-paths/te:p2p-secondary-path/" + 772 "te:path-setup-protocol = 'te-types:path-setup-static'" { 773 description 774 "When the path is statically provisioned"; 775 } 776 description "MPLS TE LSP augmentation"; 777 leaf static-lsp-name { 778 type mpls-static:static-lsp-ref; 779 description "Static LSP name"; 780 } 781 } 783 augment "/te:te/te:globals/te:named-path-constraints/" + 784 "te:named-path-constraint" { 785 description "foo"; 786 uses te-path-bandwidth_top; 787 } 789 augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + 790 "/te:p2p-primary-path/te:lsps/te:lsp" { 791 description 792 "MPLS TE generic data augmentation pertaining to specific TE 793 LSP"; 794 uses te-packet-types:performance-metrics-attributes-packet; 795 } 796 } 797 799 Figure 3: TE generic YANG module 801 3. IANA Considerations 803 This document registers the following URIs in the IETF XML registry 804 [RFC3688]. Following the format in [RFC3688], the following 805 registration is requested to be made. 807 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls 808 XML: N/A, the requested URI is an XML namespace. 810 This document registers a YANG module in the YANG Module Names 811 registry [RFC6020]. 813 name: ietf-te-mpls 814 namespace: urn:ietf:params:xml:ns:yang:ietf-te-mpls 815 prefix: ietf-te-mpls 816 reference: RFC3209 818 4. Security Considerations 820 The YANG module defined in this memo is designed to be accessed via 821 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 822 secure transport layer and the mandatory-to-implement secure 823 transport is SSH [RFC6242]. The NETCONF access control model 824 [RFC8341] provides means to restrict access for particular NETCONF 825 users to a pre-configured subset of all available NETCONF protocol 826 operations and content. 828 A number of data nodes defined in this YANG module are 829 writable/creatable/deletable (i.e., config true, which is the 830 default). These data nodes may be considered sensitive or vulnerable 831 in some network environments. Write operations (e.g., ) 832 to these data nodes without proper protection can have a negative 833 effect on MPLS network operations. Following are the subtrees and 834 data nodes and their sensitivity/vulnerability: 836 "/te/tunnels": The augmentation to this list specifies configuration 837 to TE tunnels on a device. Unauthorized access to this list could 838 cause the device to ignore packets it should receive and process. 840 "/te/globals": The augmentation to this target specifies 841 configuration applicable to the to all or one TE device. 842 Unauthorized access to this list could cause the device to ignore 843 packets it should receive and process. 845 5. Contributors 847 Himanshu Shah 848 Ciena 849 Email: hshah@ciena.com 851 6. Normative References 853 [I-D.ietf-mpls-static-yang] 854 Saad, T., Raza, K., Gandhi, R., Liu, X., Beeram, V., Shah, 855 H., and I. Bryskin, "A YANG Data Model for MPLS Static 856 LSPs", draft-ietf-mpls-static-yang-07 (work in progress), 857 November 2018. 859 [I-D.ietf-teas-yang-rsvp] 860 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 861 and H. Shah, "A YANG Data Model for Resource Reservation 862 Protocol (RSVP)", draft-ietf-teas-yang-rsvp-10 (work in 863 progress), February 2019. 865 [I-D.ietf-teas-yang-rsvp-te] 866 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 867 and H. Shah, "A YANG Data Model for RSVP-TE Protocol", 868 draft-ietf-teas-yang-rsvp-te-05 (work in progress), 869 February 2019. 871 [I-D.ietf-teas-yang-te] 872 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 873 "A YANG Data Model for Traffic Engineering Tunnels and 874 Interfaces", draft-ietf-teas-yang-te-19 (work in 875 progress), February 2019. 877 [I-D.ietf-teas-yang-te-types] 878 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 879 "Traffic Engineering Common YANG Types", draft-ietf-teas- 880 yang-te-types-06 (work in progress), February 2019. 882 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 883 Requirement Levels", BCP 14, RFC 2119, 884 DOI 10.17487/RFC2119, March 1997, 885 . 887 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 888 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 889 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 890 . 892 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 893 Switching (GMPLS) Signaling Resource ReserVation Protocol- 894 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, 895 DOI 10.17487/RFC3473, January 2003, 896 . 898 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 899 DOI 10.17487/RFC3688, January 2004, 900 . 902 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 903 the Network Configuration Protocol (NETCONF)", RFC 6020, 904 DOI 10.17487/RFC6020, October 2010, 905 . 907 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 908 and A. Bierman, Ed., "Network Configuration Protocol 909 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 910 . 912 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 913 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 914 . 916 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 917 RFC 6991, DOI 10.17487/RFC6991, July 2013, 918 . 920 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 921 RFC 7950, DOI 10.17487/RFC7950, August 2016, 922 . 924 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 925 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 926 . 928 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 929 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 930 May 2017, . 932 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 933 "Common YANG Data Types for the Routing Area", RFC 8294, 934 DOI 10.17487/RFC8294, December 2017, 935 . 937 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 938 Access Control Model", STD 91, RFC 8341, 939 DOI 10.17487/RFC8341, March 2018, 940 . 942 Authors' Addresses 944 Tarek Saad 945 Cisco Systems Inc 947 Email: tsaad@cisco.com 948 Rakesh Gandhi 949 Cisco Systems Inc 951 Email: rgandhi@cisco.com 953 Xufeng Liu 954 Volta Networks 956 Email: xufeng.liu.ietf@gmail.com 958 Vishnu Pavan Beeram 959 Juniper Networks 961 Email: vbeeram@juniper.net 963 Igor Bryskin 964 Huawei Technologies 966 Email: Igor.Bryskin@huawei.com