idnits 2.17.1 draft-ietf-teas-yang-te-mpls-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 09, 2020) is 1502 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-10 == Outdated reference: A later version (-19) exists of draft-ietf-teas-yang-rsvp-12 == Outdated reference: A later version (-09) exists of draft-ietf-teas-yang-rsvp-te-07 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-22 Summary: 0 errors (**), 0 flaws (~~), 6 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 Juniper Networks 4 Intended status: Standards Track R. Gandhi 5 Expires: September 10, 2020 Cisco Systems Inc 6 X. Liu 7 Volta Networks 8 V. Beeram 9 Juniper Networks 10 I. Bryskin 11 Individual 12 March 09, 2020 14 A YANG Data Model for MPLS Traffic Engineering Tunnels 15 draft-ietf-teas-yang-te-mpls-03 17 Abstract 19 This document defines a YANG data model for the configuration and 20 management of Multiprotocol Label Switching (MPLS) Traffic 21 Engineering (TE) tunnels, Label Switched Paths (LSPs) and interfaces. 22 The model augments the TE generic YANG model for MPLS packet 23 dataplane technology. 25 This model covers data for configuration, operational state, remote 26 procedural calls, and event notifications. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at https://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on September 10, 2020. 45 Copyright Notice 47 Copyright (c) 2020 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (https://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 63 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 64 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 65 1.3. Acronyms and Abbreviations . . . . . . . . . . . . . . . 3 66 2. MPLS TE YANG Model . . . . . . . . . . . . . . . . . . . . . 3 67 2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 4 68 2.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 4 69 2.3. MPLS TE YANG Module . . . . . . . . . . . . . . . . . . . 8 70 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 71 4. Security Considerations . . . . . . . . . . . . . . . . . . . 18 72 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 19 73 6. Normative References . . . . . . . . . . . . . . . . . . . . 19 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 76 1. Introduction 78 YANG [RFC6020] and [RFC7950] is a data modeling language used to 79 define the contents of a conceptual data store that allows networked 80 devices to be managed using NETCONF [RFC6241]. YANG has proved 81 relevant beyond its initial confines, as bindings to other interfaces 82 (e.g. RESTCONF [RFC8040]) and encoding other than XML (e.g. JSON) 83 are being defined. Furthermore, YANG data models can be used as the 84 basis of implementation for other interfaces, such as CLI and 85 programmatic APIs. 87 This document describes the YANG data model for configuration and 88 management of MPLS TE tunnels, LSPs, and interfaces. Other YANG 89 module(s) that model the establishment of MPLS LSP(s) via signaling 90 protocols such as RSVP-TE ([RFC3209], [RFC3473]) are described in 91 separate document(s). 93 1.1. Terminology 95 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 96 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 97 "OPTIONAL" in this document are to be interpreted as described in BCP 98 14 [RFC2119] [RFC8174] when, and only when, they appear in all 99 capitals, as shown here. 101 The terminology for describing YANG data models is found in 102 [RFC7950]. 104 1.2. Prefixes in Data Node Names 106 In this document, names of data nodes and other data model objects 107 are prefixed using the standard prefix associated with the 108 corresponding YANG imported modules, as shown in Table 1. 110 +---------------+--------------------+-------------------------------+ 111 | Prefix | YANG module | Reference | 112 +---------------+--------------------+-------------------------------+ 113 | yang | ietf-yang-types | [RFC6991] | 114 | inet | ietf-inet-types | [RFC6991] | 115 | rt-types | ietf-routing-types | [RFC8294] | 116 | te | ietf-te | [I-D.ietf-teas-yang-te] | 117 | te-dev | ietf-te-device | [I-D.ietf-teas-yang-te] | 118 | te-mpls | ietf-te-mpls | This document | 119 | te-types | ietf-te-types | [I-D.ietf-teas-yang-te-types] | 120 | te-mpls-types | ietf-te-mpls-types | [I-D.ietf-teas-yang-te-types] | 121 +---------------+--------------------+-------------------------------+ 123 Table 1: Prefixes and corresponding YANG modules 125 1.3. Acronyms and Abbreviations 127 MPLS: Multiprotocol Label Switching LSP: Label Switched Path LSR: 128 Label Switching Router LER: Label Edge Router TE: Traffic 129 Engineering 131 2. MPLS TE YANG Model 133 The MPLS TE YANG model covers the configuration, state, RPC and 134 notifications data pertaining to MPLS TE interfaces, tunnels and LSPs 135 parameters. The data specific to the signaling protocol used to 136 establish MPLS LSP(s) is outside the scope of this document and is 137 covered in other documents, e.g. in [I-D.ietf-teas-yang-rsvp] and 138 [I-D.ietf-teas-yang-rsvp-te]. 140 2.1. Module(s) Relationship 142 The MPLS TE YANG module "ietf-te-mpls" imports the following modules: 144 o ietf-te and ietf-te-device defined in [I-D.ietf-teas-yang-te] 146 o ietf-te-types and ietf-te-packet-types defined in 147 [I-D.ietf-teas-yang-te-types] 149 o ietf-routing-types defined in [RFC8294] 151 o ietf-mpls-static defined in [I-D.ietf-mpls-static-yang] 153 TE generic +---------+ o: augment 154 module | ietf-te | 155 +---------+ 156 o o 157 | | 158 +-----+ +-----+ 159 | | 160 +--------------+ +--------------+ 161 RSVP-TE | ietf-rsvp-te | | ietf-te-mpls | 162 +--------------+ +--------------+ 164 Figure 1: Relationship of MPLS TE module with TE generic and RSVP-TE 165 YANG modules 167 The MPLS TE YANG module "ietf-te-mpls" augments the "ietf-te" TE 168 generic YANG module as shown in Figure 1. 170 2.2. Model Tree Diagram 172 Figure 2 shows the tree diagram of the MPLS TE YANG model that is 173 defined in ietf-te-mpls.yang. 175 module: ietf-te-mpls 176 augment /te:te/te-dev:performance-thresholds: 177 +--rw throttle 178 +--rw one-way-delay-offset? uint32 179 +--rw measure-interval? uint32 180 +--rw advertisement-interval? uint32 181 +--rw suppression-interval? uint32 182 +--rw threshold-out 183 | +--rw one-way-delay? uint32 184 | +--rw one-way-residual-bandwidth? 185 | | rt-types:bandwidth-ieee-float32 186 | +--rw one-way-available-bandwidth? 187 | | rt-types:bandwidth-ieee-float32 188 | +--rw one-way-utilized-bandwidth? 189 | | rt-types:bandwidth-ieee-float32 190 | +--rw two-way-delay? uint32 191 | +--rw one-way-min-delay? uint32 192 | +--rw one-way-max-delay? uint32 193 | +--rw one-way-delay-variation? uint32 194 | +--rw one-way-packet-loss? decimal64 195 | +--rw two-way-min-delay? uint32 196 | +--rw two-way-max-delay? uint32 197 | +--rw two-way-delay-variation? uint32 198 | +--rw two-way-packet-loss? decimal64 199 +--rw threshold-in 200 | +--rw one-way-delay? uint32 201 | +--rw one-way-residual-bandwidth? 202 | | rt-types:bandwidth-ieee-float32 203 | +--rw one-way-available-bandwidth? 204 | | rt-types:bandwidth-ieee-float32 205 | +--rw one-way-utilized-bandwidth? 206 | | rt-types:bandwidth-ieee-float32 207 | +--rw two-way-delay? uint32 208 | +--rw one-way-min-delay? uint32 209 | +--rw one-way-max-delay? uint32 210 | +--rw one-way-delay-variation? uint32 211 | +--rw one-way-packet-loss? decimal64 212 | +--rw two-way-min-delay? uint32 213 | +--rw two-way-max-delay? uint32 214 | +--rw two-way-delay-variation? uint32 215 | +--rw two-way-packet-loss? decimal64 216 +--rw threshold-accelerated-advertisement 217 +--rw one-way-delay? uint32 218 +--rw one-way-residual-bandwidth? 219 | rt-types:bandwidth-ieee-float32 220 +--rw one-way-available-bandwidth? 221 | rt-types:bandwidth-ieee-float32 222 +--rw one-way-utilized-bandwidth? 223 | rt-types:bandwidth-ieee-float32 224 +--rw two-way-delay? uint32 225 +--rw one-way-min-delay? uint32 226 +--rw one-way-max-delay? uint32 227 +--rw one-way-delay-variation? uint32 228 +--rw one-way-packet-loss? decimal64 229 +--rw two-way-min-delay? uint32 230 +--rw two-way-max-delay? uint32 231 +--rw two-way-delay-variation? uint32 232 +--rw two-way-packet-loss? decimal64 233 augment /te:te/te:tunnels/te:tunnel: 234 +--rw tunnel-igp-shortcut 235 | +--rw shortcut-eligible? boolean 236 | +--rw metric-type? identityref 237 | +--rw metric? int32 238 | +--rw routing-afs* inet:ip-version 239 +--rw forwarding 240 | +--rw binding-label? rt-types:mpls-label 241 | +--rw load-share? uint32 242 | +--rw policy-class? uint8 243 +--rw bandwidth-mpls 244 +--rw specification-type? 245 | te-packet-types:te-bandwidth-requested-type 246 +--rw set-bandwidth? te-packet-types:bandwidth-kbps 247 +--rw class-type? te-types:te-ds-class 248 +--ro state 249 | +--ro signaled-bandwidth? te-packet-types:bandwidth-kbps 250 +--rw auto-bandwidth 251 +--rw enabled? boolean 252 +--rw min-bw? te-packet-types:bandwidth-kbps 253 +--rw max-bw? te-packet-types:bandwidth-kbps 254 +--rw adjust-interval? uint32 255 +--rw adjust-threshold? rt-types:percentage 256 +--rw overflow 257 | +--rw enabled? boolean 258 | +--rw overflow-threshold? rt-types:percentage 259 | +--rw trigger-event-count? uint16 260 +--rw underflow 261 +--rw enabled? boolean 262 +--rw underflow-threshold? rt-types:percentage 263 +--rw trigger-event-count? uint16 264 augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path: 265 +--rw static-lsp-name? mpls-static:static-lsp-ref 266 augment /te:te/te:tunnels/te:tunnel/te:secondary-paths 267 /te:secondary-path: 268 +--rw static-lsp-name? mpls-static:static-lsp-ref 269 augment /te:te/te:globals/te:named-path-constraints 270 /te:named-path-constraint: 271 +--rw bandwidth 272 +--rw specification-type? 273 | te-packet-types:te-bandwidth-requested-type 274 +--rw set-bandwidth? te-packet-types:bandwidth-kbps 275 +--rw class-type? te-types:te-ds-class 276 +--ro state 277 +--ro signaled-bandwidth? te-packet-types:bandwidth-kbps 278 augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path 279 /te:lsps/te:lsp: 280 +--ro performance-metrics-one-way 281 | +--ro one-way-delay? uint32 282 | +--ro one-way-delay-normality? 283 | | te-types:performance-metrics-normality 284 | +--ro one-way-residual-bandwidth? 285 | | rt-types:bandwidth-ieee-float32 286 | +--ro one-way-residual-bandwidth-normality? 287 | | te-types:performance-metrics-normality 288 | +--ro one-way-available-bandwidth? 289 | | rt-types:bandwidth-ieee-float32 290 | +--ro one-way-available-bandwidth-normality? 291 | | te-types:performance-metrics-normality 292 | +--ro one-way-utilized-bandwidth? 293 | | rt-types:bandwidth-ieee-float32 294 | +--ro one-way-utilized-bandwidth-normality? 295 | | te-types:performance-metrics-normality 296 | +--ro one-way-min-delay? uint32 297 | +--ro one-way-min-delay-normality? 298 | | te-types:performance-metrics-normality 299 | +--ro one-way-max-delay? uint32 300 | +--ro one-way-max-delay-normality? 301 | | te-types:performance-metrics-normality 302 | +--ro one-way-delay-variation? uint32 303 | +--ro one-way-delay-variation-normality? 304 | | te-types:performance-metrics-normality 305 | +--ro one-way-packet-loss? decimal64 306 | +--ro one-way-packet-loss-normality? 307 | te-types:performance-metrics-normality 308 +--ro performance-metrics-two-way 309 +--ro two-way-delay? uint32 310 +--ro two-way-delay-normality? 311 | te-types:performance-metrics-normality 312 +--ro two-way-min-delay? uint32 313 +--ro two-way-min-delay-normality? 314 | te-types:performance-metrics-normality 315 +--ro two-way-max-delay? uint32 316 +--ro two-way-max-delay-normality? 317 | te-types:performance-metrics-normality 318 +--ro two-way-delay-variation? uint32 319 +--ro two-way-delay-variation-normality? 320 | te-types:performance-metrics-normality 321 +--ro two-way-packet-loss? decimal64 322 +--ro two-way-packet-loss-normality? 323 te-types:performance-metrics-normality 325 Figure 2: MPLS TE model configuration and state tree 327 2.3. MPLS TE YANG Module 329 file "ietf-te-mpls@2020-03-09.yang" 330 module ietf-te-mpls { 331 yang-version 1.1; 332 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls"; 334 /* Replace with IANA when assigned */ 335 prefix "te-mpls"; 337 /* Import TE base model */ 338 import ietf-te { 339 prefix te; 340 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 341 Engineering Tunnels and Interfaces"; 342 } 344 import ietf-te-device { 345 prefix te-dev; 346 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 347 Engineering Tunnels and Interfaces"; 348 } 350 /* Import TE MPLS types */ 351 import ietf-te-packet-types { 352 prefix "te-packet-types"; 353 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 354 Common Traffic Engineering Types"; 355 } 357 /* Import TE generic types */ 358 import ietf-te-types { 359 prefix te-types; 360 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 361 Common Traffic Engineering Types"; 362 } 364 /* Import routing types */ 365 import ietf-routing-types { 366 prefix rt-types; 367 reference "RFC8294: Common YANG Data Types for the Routing Area"; 368 } 370 import ietf-mpls-static { 371 prefix mpls-static; 372 reference "draft-ietf-mpls-static-yang: A YANG Data Model 373 for MPLS Static LSPs"; 374 } 375 import ietf-inet-types { 376 prefix inet; 377 reference "RFC6991: Common YANG Data Types"; 378 } 380 organization 381 "IETF Traffic Engineering Architecture and Signaling (TEAS) 382 Working Group"; 384 contact 385 "WG Web: 386 WG List: 388 Editor: Tarek Saad 389 391 Editor: Rakesh Gandhi 392 394 Editor: Vishnu Pavan Beeram 395 397 Editor: Xufeng Liu 398 400 Editor: Igor Bryskin 401 "; 403 description 404 "YANG data module for MPLS TE configurations, 405 state, RPC and notifications. The model fully conforms to 406 the Network Management Datastore Architecture (NMDA). 408 Copyright (c) 2018 IETF Trust and the persons 409 identified as authors of the code. All rights reserved. 411 Redistribution and use in source and binary forms, with or 412 without modification, is permitted pursuant to, and subject 413 to the license terms contained in, the Simplified BSD License 414 set forth in Section 4.c of the IETF Trust's Legal Provisions 415 Relating to IETF Documents 416 (https://trustee.ietf.org/license-info). 417 This version of this YANG module is part of RFC XXXX; see 418 the RFC itself for full legal notices."; 420 // RFC Ed.: replace XXXX with actual RFC number and remove this 421 // note. 423 // RFC Ed.: update the date below with the date of RFC publication 424 // and remove this note. 426 revision "2020-03-09" { 427 description "Latest update to MPLS TE YANG module."; 428 reference 429 "RFCXXXX: A YANG Data Model for MPLS-TE Tunnels and LSP(s)"; 430 } 432 /* MPLS TE Identities */ 433 identity tunnel-action-resetup { 434 base te:tunnel-actions-type; 435 description "Resetup tunnel action type"; 436 } 438 /* 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"; 472 } 473 leaf-list routing-afs { 474 type inet:ip-version; 475 description 476 "Address families"; 477 } 478 } 480 grouping tunnel-igp-shortcuts { 481 description 482 "TE tunnel IGP shortcut grouping"; 483 container tunnel-igp-shortcut { 484 description 485 "Tunnel IGP shortcut properties"; 486 uses tunnel-igp-shortcut-config; 487 } 488 } 490 grouping tunnel-forwarding-adjacency-configs { 491 description "Tunnel forwarding adjacency grouping"; 492 leaf binding-label { 493 type rt-types:mpls-label; 494 description "MPLS tunnel binding label"; 495 } 496 leaf load-share { 497 type uint32 { 498 range "1..4294967295"; 499 } 500 description "ECMP tunnel forwarding 501 load-share factor."; 502 } 503 leaf policy-class { 504 type uint8 { 505 range "1..7"; 506 } 507 description 508 "The class associated with this tunnel"; 509 } 510 } 512 grouping tunnel-forwarding-adjacency { 513 description "Properties for using tunnel in forwarding."; 514 container forwarding { 515 description 516 "Tunnel forwarding properties container"; 517 uses tunnel-forwarding-adjacency-configs; 518 } 519 } 520 /*** End of MPLS TE tunnel configuration/state */ 521 grouping te-lsp-auto-bandwidth-config { 522 description 523 "Configuration parameters related to autobandwidth"; 525 leaf enabled { 526 type boolean; 527 default false; 528 description 529 "Enables MPLS auto-bandwidth on the 530 LSP"; 531 } 533 leaf min-bw { 534 type te-packet-types:bandwidth-kbps; 535 description 536 "set the minimum bandwidth in Kbps for an 537 auto-bandwidth LSP"; 538 } 540 leaf max-bw { 541 type te-packet-types:bandwidth-kbps; 542 description 543 "set the maximum bandwidth in Kbps for an 544 auto-bandwidth LSP"; 545 } 547 leaf adjust-interval { 548 type uint32; 549 description 550 "time in seconds between adjustments to 551 LSP bandwidth"; 552 } 554 leaf adjust-threshold { 555 type rt-types:percentage; 556 description 557 "percentage difference between the LSP's 558 specified bandwidth and its current bandwidth 559 allocation -- if the difference is greater than the 560 specified percentage, auto-bandwidth adjustment is 561 triggered"; 562 } 563 } 565 grouping te-lsp-overflow-config { 566 description 567 "configuration for MPLS LSP bandwidth 568 overflow adjustment"; 570 leaf enabled { 571 type boolean; 572 default false; 573 description 574 "Enables MPLS LSP bandwidth overflow 575 adjustment on the LSP"; 576 } 578 leaf overflow-threshold { 579 type rt-types:percentage; 580 description 581 "bandwidth percentage change to trigger 582 an overflow event"; 584 } 586 leaf trigger-event-count { 587 type uint16; 588 description 589 "number of consecutive overflow sample 590 events needed to trigger an overflow adjustment"; 591 } 592 } 594 grouping te-lsp-underflow-config { 595 description 596 "configuration for MPLS LSP bandwidth 597 underflow adjustment"; 599 leaf enabled { 600 type boolean; 601 default false; 602 description 603 "enables bandwidth underflow 604 adjustment on the LSP"; 605 } 607 leaf underflow-threshold { 608 type rt-types:percentage; 609 description 610 "bandwidth percentage change to trigger 611 and underflow event"; 612 } 614 leaf trigger-event-count { 615 type uint16; 616 description 617 "number of consecutive underflow sample 618 events needed to trigger an underflow adjustment"; 619 } 620 } 621 grouping te-tunnel-bandwidth-config { 622 description 623 "Configuration parameters related to bandwidth for a tunnel"; 625 leaf specification-type { 626 type te-packet-types:te-bandwidth-requested-type; 627 default specified; 628 description 629 "The method used for setting the bandwidth, either explicitly 630 specified or configured"; 631 } 633 leaf set-bandwidth { 634 when "../specification-type = 'specified'" { 635 description 636 "The bandwidth value when bandwidth is explicitly 637 specified"; 638 } 639 type te-packet-types:bandwidth-kbps; 640 description 641 "set bandwidth explicitly, e.g., using 642 offline calculation"; 643 } 644 leaf class-type { 645 type te-types:te-ds-class; 646 description 647 "The Class-Type of traffic transported by the LSP."; 648 reference "RFC4124: section-4.3.1"; 649 } 650 } 652 grouping te-tunnel-bandwidth-state { 653 description 654 "Operational state parameters relating to bandwidth for a tunnel"; 656 leaf signaled-bandwidth { 657 type te-packet-types:bandwidth-kbps; 658 description 659 "The currently signaled bandwidth of the LSP. In the case where 660 the bandwidth is specified explicitly, then this will match the 661 value of the set-bandwidth leaf; in cases where the bandwidth is 662 dynamically computed by the system, the current value of the 663 bandwidth should be reflected."; 665 } 666 } 668 grouping tunnel-bandwidth_top { 669 description 670 "Top level grouping for specifying bandwidth for a tunnel"; 672 container bandwidth-mpls { 673 description 674 "Bandwidth configuration for TE LSPs"; 676 uses te-tunnel-bandwidth-config; 678 container state { 679 config false; 680 description 681 "State parameters related to bandwidth 682 configuration of TE tunnels"; 683 uses te-tunnel-bandwidth-state; 684 } 686 container auto-bandwidth { 687 when "../specification-type = 'auto'" { 688 description 689 "Include this container for auto bandwidth 690 specific configuration"; 691 } 692 description 693 "Parameters related to auto-bandwidth"; 695 uses te-lsp-auto-bandwidth-config; 697 container overflow { 698 description 699 "configuration of MPLS overflow bandwidth 700 adjustment for the LSP"; 702 uses te-lsp-overflow-config; 703 } 705 container underflow { 706 description 707 "configuration of MPLS underflow bandwidth 708 adjustment for the LSP"; 710 uses te-lsp-underflow-config; 711 } 712 } 714 } 715 } 717 grouping te-path-bandwidth_top { 718 description 719 "Top level grouping for specifying bandwidth for a TE path"; 721 container bandwidth { 722 description 723 "Bandwidth configuration for TE LSPs"; 725 uses te-tunnel-bandwidth-config; 726 container state { 727 config false; 728 description 729 "State parameters related to bandwidth 730 configuration of TE tunnels"; 731 uses te-tunnel-bandwidth-state; 732 } 733 } 734 } 736 /** 737 * MPLS TE augmentations 738 */ 739 augment "/te:te/te-dev:performance-thresholds" { 740 uses te-packet-types:performance-metrics-throttle-container-packet; 741 description 742 "Performance parameters configurable thresholds"; 743 } 745 /* MPLS TE interface augmentations */ 747 /* MPLS TE tunnel augmentations */ 748 augment "/te:te/te:tunnels/te:tunnel" { 749 description "MPLS TE tunnel config augmentations"; 750 uses tunnel-igp-shortcuts; 751 uses tunnel-forwarding-adjacency; 752 uses tunnel-bandwidth_top; 753 } 755 /* MPLS TE LSPs augmentations */ 756 augment "/te:te/te:tunnels/te:tunnel/" + 757 "te:primary-paths/te:primary-path" { 758 when "/te:te/te:tunnels/te:tunnel" + 759 "/te:primary-paths/te:primary-path" + 760 "/te:signaling-type = 'te-types:path-setup-static'" { 761 description 762 "When the path is statically provisioned"; 763 } 764 description "MPLS TE LSP augmentation"; 765 leaf static-lsp-name { 766 type mpls-static:static-lsp-ref; 767 description "Static LSP name"; 768 } 769 } 771 augment "/te:te/te:tunnels/te:tunnel/" + 772 "te:secondary-paths/te:secondary-path" { 773 when "/te:te/te:tunnels/te:tunnel" + 774 "/te:secondary-paths/te:secondary-path/" + 775 "te:signaling-type = 'te-types:path-setup-static'" { 776 description 777 "When the path is statically provisioned"; 778 } 779 description "MPLS TE LSP augmentation"; 780 leaf static-lsp-name { 781 type mpls-static:static-lsp-ref; 782 description "Static LSP name"; 783 } 784 } 786 augment "/te:te/te:globals/te:named-path-constraints/" + 787 "te:named-path-constraint" { 788 description "foo"; 789 uses te-path-bandwidth_top; 790 } 792 augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + 793 "/te:primary-path/te:lsps/te:lsp" { 794 description 795 "MPLS TE generic data augmentation pertaining to specific TE 796 LSP"; 797 uses te-packet-types:performance-metrics-attributes-packet; 798 } 799 } 800 802 Figure 3: TE generic YANG module 804 3. IANA Considerations 806 This document registers the following URIs in the IETF XML registry 807 [RFC3688]. Following the format in [RFC3688], the following 808 registration is requested to be made. 810 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls 811 XML: N/A, the requested URI is an XML namespace. 813 This document registers a YANG module in the YANG Module Names 814 registry [RFC6020]. 816 name: ietf-te-mpls 817 namespace: urn:ietf:params:xml:ns:yang:ietf-te-mpls 818 prefix: ietf-te-mpls 819 reference: RFC3209 821 4. Security Considerations 823 The YANG module defined in this memo is designed to be accessed via 824 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 825 secure transport layer and the mandatory-to-implement secure 826 transport is SSH [RFC6242]. The NETCONF access control model 827 [RFC8341] provides means to restrict access for particular NETCONF 828 users to a pre-configured subset of all available NETCONF protocol 829 operations and content. 831 A number of data nodes defined in this YANG module are 832 writable/creatable/deletable (i.e., config true, which is the 833 default). These data nodes may be considered sensitive or vulnerable 834 in some network environments. Write operations (e.g., ) 835 to these data nodes without proper protection can have a negative 836 effect on MPLS network operations. Following are the subtrees and 837 data nodes and their sensitivity/vulnerability: 839 "/te/tunnels": The augmentation to this list specifies configuration 840 to TE tunnels on a device. Unauthorized access to this list could 841 cause the device to ignore packets it should receive and process. 843 "/te/globals": The augmentation to this target specifies 844 configuration applicable to the to all or one TE device. 845 Unauthorized access to this list could cause the device to ignore 846 packets it should receive and process. 848 5. Contributors 850 Himanshu Shah 851 Ciena 852 Email: hshah@ciena.com 854 6. Normative References 856 [I-D.ietf-mpls-static-yang] 857 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 858 "A YANG Data Model for MPLS Static LSPs", draft-ietf-mpls- 859 static-yang-10 (work in progress), September 2019. 861 [I-D.ietf-teas-yang-rsvp] 862 Beeram, V., Saad, T., Gandhi, R., Liu, X., and I. Bryskin, 863 "A YANG Data Model for Resource Reservation Protocol 864 (RSVP)", draft-ietf-teas-yang-rsvp-12 (work in progress), 865 January 2020. 867 [I-D.ietf-teas-yang-rsvp-te] 868 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 869 and H. Shah, "A YANG Data Model for RSVP-TE Protocol", 870 draft-ietf-teas-yang-rsvp-te-07 (work in progress), July 871 2019. 873 [I-D.ietf-teas-yang-te] 874 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 875 "A YANG Data Model for Traffic Engineering Tunnels and 876 Interfaces", draft-ietf-teas-yang-te-22 (work in 877 progress), November 2019. 879 [I-D.ietf-teas-yang-te-types] 880 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 881 "Traffic Engineering Common YANG Types", draft-ietf-teas- 882 yang-te-types-13 (work in progress), November 2019. 884 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 885 Requirement Levels", BCP 14, RFC 2119, 886 DOI 10.17487/RFC2119, March 1997, 887 . 889 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 890 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 891 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 892 . 894 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 895 Switching (GMPLS) Signaling Resource ReserVation Protocol- 896 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, 897 DOI 10.17487/RFC3473, January 2003, 898 . 900 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 901 DOI 10.17487/RFC3688, January 2004, 902 . 904 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 905 the Network Configuration Protocol (NETCONF)", RFC 6020, 906 DOI 10.17487/RFC6020, October 2010, 907 . 909 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 910 and A. Bierman, Ed., "Network Configuration Protocol 911 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 912 . 914 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 915 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 916 . 918 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 919 RFC 6991, DOI 10.17487/RFC6991, July 2013, 920 . 922 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 923 RFC 7950, DOI 10.17487/RFC7950, August 2016, 924 . 926 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 927 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 928 . 930 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 931 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 932 May 2017, . 934 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 935 "Common YANG Data Types for the Routing Area", RFC 8294, 936 DOI 10.17487/RFC8294, December 2017, 937 . 939 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 940 Access Control Model", STD 91, RFC 8341, 941 DOI 10.17487/RFC8341, March 2018, 942 . 944 Authors' Addresses 946 Tarek Saad 947 Juniper Networks 949 Email: tsaad@juniper.net 951 Rakesh Gandhi 952 Cisco Systems Inc 954 Email: rgandhi@cisco.com 956 Xufeng Liu 957 Volta Networks 959 Email: xufeng.liu.ietf@gmail.com 961 Vishnu Pavan Beeram 962 Juniper Networks 964 Email: vbeeram@juniper.net 966 Igor Bryskin 967 Individual 969 Email: i_bryskin@yahoo.com