idnits 2.17.1 draft-ietf-teas-yang-te-mpls-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (November 02, 2019) is 1637 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-11 == 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-21 == Outdated reference: A later version (-13) exists of draft-ietf-teas-yang-te-types-11 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 Juniper Networks 4 Intended status: Standards Track R. Gandhi 5 Expires: May 5, 2020 Cisco Systems Inc 6 X. Liu 7 Volta Networks 8 V. Beeram 9 Juniper Networks 10 I. Bryskin 11 Individual 12 November 02, 2019 14 A YANG Data Model for MPLS Traffic Engineering Tunnels 15 draft-ietf-teas-yang-te-mpls-02 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 May 5, 2020. 45 Copyright Notice 47 Copyright (c) 2019 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 . . . . . . . . . . . . . . . . . . . . . 17 71 4. Security Considerations . . . . . . . . . . . . . . . . . . . 18 72 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 73 6. Normative References . . . . . . . . . . . . . . . . . . . . 18 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 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:p2p-primary-paths 265 /te:p2p-primary-path: 266 +--rw static-lsp-name? mpls-static:static-lsp-ref 267 augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths 268 /te:p2p-secondary-path: 269 +--rw static-lsp-name? mpls-static:static-lsp-ref 270 augment /te:te/te:globals/te:named-path-constraints 271 /te:named-path-constraint: 272 +--rw bandwidth 273 +--rw specification-type? 274 | te-packet-types:te-bandwidth-requested-type 275 +--rw set-bandwidth? te-packet-types:bandwidth-kbps 276 +--rw class-type? te-types:te-ds-class 277 +--ro state 278 +--ro signaled-bandwidth? te-packet-types:bandwidth-kbps 279 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths 280 /te:p2p-primary-path/te:lsps/te:lsp: 281 +--ro performance-metrics-one-way 282 | +--ro one-way-delay? uint32 283 | +--ro one-way-delay-normality? 284 | | te-types:performance-metrics-normality 285 | +--ro one-way-residual-bandwidth? 286 | | rt-types:bandwidth-ieee-float32 287 | +--ro one-way-residual-bandwidth-normality? 288 | | te-types:performance-metrics-normality 289 | +--ro one-way-available-bandwidth? 290 | | rt-types:bandwidth-ieee-float32 291 | +--ro one-way-available-bandwidth-normality? 292 | | te-types:performance-metrics-normality 293 | +--ro one-way-utilized-bandwidth? 294 | | rt-types:bandwidth-ieee-float32 295 | +--ro one-way-utilized-bandwidth-normality? 296 | | te-types:performance-metrics-normality 297 | +--ro one-way-min-delay? uint32 298 | +--ro one-way-min-delay-normality? 299 | | te-types:performance-metrics-normality 300 | +--ro one-way-max-delay? uint32 301 | +--ro one-way-max-delay-normality? 302 | | te-types:performance-metrics-normality 303 | +--ro one-way-delay-variation? uint32 304 | +--ro one-way-delay-variation-normality? 305 | | te-types:performance-metrics-normality 306 | +--ro one-way-packet-loss? decimal64 307 | +--ro one-way-packet-loss-normality? 308 | te-types:performance-metrics-normality 309 +--ro performance-metrics-two-way 310 +--ro two-way-delay? uint32 311 +--ro two-way-delay-normality? 312 | te-types:performance-metrics-normality 313 +--ro two-way-min-delay? uint32 314 +--ro two-way-min-delay-normality? 315 | te-types:performance-metrics-normality 316 +--ro two-way-max-delay? uint32 317 +--ro two-way-max-delay-normality? 318 | te-types:performance-metrics-normality 319 +--ro two-way-delay-variation? uint32 320 +--ro two-way-delay-variation-normality? 321 | te-types:performance-metrics-normality 322 +--ro two-way-packet-loss? decimal64 323 +--ro two-way-packet-loss-normality? 324 te-types:performance-metrics-normality 326 Figure 2: MPLS TE model configuration and state tree 328 2.3. MPLS TE YANG Module 330 file "ietf-te-mpls@2019-11-02.yang" 331 module ietf-te-mpls { 332 yang-version 1.1; 333 namespace "urn:ietf:params:xml:ns:yang:ietf-te-mpls"; 335 /* Replace with IANA when assigned */ 336 prefix "te-mpls"; 338 /* Import TE base model */ 339 import ietf-te { 340 prefix te; 341 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 342 Engineering Tunnels and Interfaces"; 343 } 345 import ietf-te-device { 346 prefix te-dev; 347 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 348 Engineering Tunnels and Interfaces"; 349 } 351 /* Import TE MPLS types */ 352 import ietf-te-packet-types { 353 prefix "te-packet-types"; 354 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 355 Common Traffic Engineering Types"; 356 } 358 /* Import TE generic types */ 359 import ietf-te-types { 360 prefix te-types; 361 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 362 Common Traffic Engineering Types"; 363 } 365 /* Import routing types */ 366 import ietf-routing-types { 367 prefix rt-types; 368 reference "RFC8294: Common YANG Data Types for the Routing Area"; 369 } 371 import ietf-mpls-static { 372 prefix mpls-static; 373 reference "draft-ietf-mpls-static-yang: A YANG Data Model 374 for MPLS Static LSPs"; 375 } 376 import ietf-inet-types { 377 prefix inet; 378 reference "RFC6991: Common YANG Data Types"; 379 } 381 organization 382 "IETF Traffic Engineering Architecture and Signaling (TEAS) 383 Working Group"; 385 contact 386 "WG Web: 387 WG List: 389 Editor: Tarek Saad 390 392 Editor: Rakesh Gandhi 393 395 Editor: Vishnu Pavan Beeram 396 398 Editor: Xufeng Liu 399 401 Editor: Igor Bryskin 402 "; 404 description 405 "YANG data module for MPLS TE configurations, 406 state, RPC and notifications. The model fully conforms to 407 the Network Management Datastore Architecture (NMDA). 409 Copyright (c) 2018 IETF Trust and the persons 410 identified as authors of the code. All rights reserved. 412 Redistribution and use in source and binary forms, with or 413 without modification, is permitted pursuant to, and subject 414 to the license terms contained in, the Simplified BSD License 415 set forth in Section 4.c of the IETF Trust's Legal Provisions 416 Relating to IETF Documents 417 (https://trustee.ietf.org/license-info). 418 This version of this YANG module is part of RFC XXXX; see 419 the RFC itself for full legal notices."; 421 // RFC Ed.: replace XXXX with actual RFC number and remove this 422 // note. 424 // RFC Ed.: update the date below with the date of RFC publication 425 // and remove this note. 427 revision "2019-11-02" { 428 description "Latest update to MPLS TE YANG module."; 429 reference 430 "RFCXXXX: A YANG Data Model for MPLS-TE Tunnels and LSP(s)"; 431 } 433 /* MPLS TE tunnel properties*/ 435 grouping tunnel-igp-shortcut-config { 436 description "TE tunnel IGP shortcut configs"; 437 leaf shortcut-eligible { 438 type boolean; 439 default "true"; 440 description 441 "Whether this LSP is considered to be eligible for us as a 442 shortcut in the IGP. In the case that this leaf is set to 443 true, the IGP SPF calculation uses the metric specified to 444 determine whether traffic should be carried over this LSP"; 445 } 446 leaf metric-type { 447 type identityref { 448 base te-types:lsp-metric-type; 449 } 450 default te-types:lsp-metric-inherited; 451 description 452 "The type of metric specification that should be used to set 453 the LSP(s) metric"; 454 } 455 leaf metric { 456 type int32; 457 description 458 "The value of the metric that should be specified. The value 459 supplied in this leaf is used in conjunction with the metric 460 type to determine the value of the metric used by the system. 461 Where the metric-type is set to lsp-metric-absolute - the 462 value of this leaf is used directly; where it is set to 463 lsp-metric-relative, the relevant (positive or negative) 464 offset is used to formulate the metric; where metric-type 465 is lsp-metric-inherited, the value of this leaf is not 466 utilized"; 467 } 468 leaf-list routing-afs { 469 type inet:ip-version; 470 description 471 "Address families"; 473 } 474 } 476 grouping tunnel-igp-shortcuts { 477 description 478 "TE tunnel IGP shortcut grouping"; 479 container tunnel-igp-shortcut { 480 description 481 "Tunnel IGP shortcut properties"; 482 uses tunnel-igp-shortcut-config; 483 } 484 } 486 grouping tunnel-forwarding-adjacency-configs { 487 description "Tunnel forwarding adjacency grouping"; 488 leaf binding-label { 489 type rt-types:mpls-label; 490 description "MPLS tunnel binding label"; 491 } 492 leaf load-share { 493 type uint32 { 494 range "1..4294967295"; 495 } 496 description "ECMP tunnel forwarding 497 load-share factor."; 498 } 499 leaf policy-class { 500 type uint8 { 501 range "1..7"; 502 } 503 description 504 "The class associated with this tunnel"; 505 } 506 } 508 grouping tunnel-forwarding-adjacency { 509 description "Properties for using tunnel in forwarding."; 510 container forwarding { 511 description 512 "Tunnel forwarding properties container"; 513 uses tunnel-forwarding-adjacency-configs; 514 } 515 } 517 /*** End of MPLS TE tunnel configuration/state */ 518 grouping te-lsp-auto-bandwidth-config { 519 description 520 "Configuration parameters related to autobandwidth"; 522 leaf enabled { 523 type boolean; 524 default false; 525 description 526 "Enables MPLS auto-bandwidth on the 527 LSP"; 528 } 530 leaf min-bw { 531 type te-packet-types:bandwidth-kbps; 532 description 533 "set the minimum bandwidth in Kbps for an 534 auto-bandwidth LSP"; 535 } 537 leaf max-bw { 538 type te-packet-types:bandwidth-kbps; 539 description 540 "set the maximum bandwidth in Kbps for an 541 auto-bandwidth LSP"; 542 } 544 leaf adjust-interval { 545 type uint32; 546 description 547 "time in seconds between adjustments to 548 LSP bandwidth"; 549 } 551 leaf adjust-threshold { 552 type rt-types:percentage; 553 description 554 "percentage difference between the LSP's 555 specified bandwidth and its current bandwidth 556 allocation -- if the difference is greater than the 557 specified percentage, auto-bandwidth adjustment is 558 triggered"; 559 } 560 } 562 grouping te-lsp-overflow-config { 563 description 564 "configuration for MPLS LSP bandwidth 565 overflow adjustment"; 567 leaf enabled { 568 type boolean; 569 default false; 570 description 571 "Enables MPLS LSP bandwidth overflow 572 adjustment on the LSP"; 573 } 575 leaf overflow-threshold { 576 type rt-types:percentage; 577 description 578 "bandwidth percentage change to trigger 579 an overflow event"; 581 } 583 leaf trigger-event-count { 584 type uint16; 585 description 586 "number of consecutive overflow sample 587 events needed to trigger an overflow adjustment"; 588 } 589 } 591 grouping te-lsp-underflow-config { 592 description 593 "configuration for MPLS LSP bandwidth 594 underflow adjustment"; 596 leaf enabled { 597 type boolean; 598 default false; 599 description 600 "enables bandwidth underflow 601 adjustment on the LSP"; 602 } 604 leaf underflow-threshold { 605 type rt-types:percentage; 606 description 607 "bandwidth percentage change to trigger 608 and underflow event"; 609 } 611 leaf trigger-event-count { 612 type uint16; 613 description 614 "number of consecutive underflow sample 615 events needed to trigger an underflow adjustment"; 616 } 617 } 618 grouping te-tunnel-bandwidth-config { 619 description 620 "Configuration parameters related to bandwidth for a tunnel"; 622 leaf specification-type { 623 type te-packet-types:te-bandwidth-requested-type; 624 default specified; 625 description 626 "The method used for setting the bandwidth, either explicitly 627 specified or configured"; 628 } 630 leaf set-bandwidth { 631 when "../specification-type = 'specified'" { 632 description 633 "The bandwidth value when bandwidth is explicitly 634 specified"; 635 } 636 type te-packet-types:bandwidth-kbps; 637 description 638 "set bandwidth explicitly, e.g., using 639 offline calculation"; 640 } 641 leaf class-type { 642 type te-types:te-ds-class; 643 description 644 "The Class-Type of traffic transported by the LSP."; 645 reference "RFC4124: section-4.3.1"; 646 } 647 } 649 grouping te-tunnel-bandwidth-state { 650 description 651 "Operational state parameters relating to bandwidth for a tunnel"; 653 leaf signaled-bandwidth { 654 type te-packet-types:bandwidth-kbps; 655 description 656 "The currently signaled bandwidth of the LSP. In the case where 657 the bandwidth is specified explicitly, then this will match the 658 value of the set-bandwidth leaf; in cases where the bandwidth is 659 dynamically computed by the system, the current value of the 660 bandwidth should be reflected."; 661 } 662 } 664 grouping tunnel-bandwidth_top { 665 description 666 "Top level grouping for specifying bandwidth for a tunnel"; 668 container bandwidth-mpls { 669 description 670 "Bandwidth configuration for TE LSPs"; 672 uses te-tunnel-bandwidth-config; 674 container state { 675 config false; 676 description 677 "State parameters related to bandwidth 678 configuration of TE tunnels"; 679 uses te-tunnel-bandwidth-state; 680 } 682 container auto-bandwidth { 683 when "../specification-type = 'auto'" { 684 description 685 "Include this container for auto bandwidth 686 specific configuration"; 687 } 688 description 689 "Parameters related to auto-bandwidth"; 691 uses te-lsp-auto-bandwidth-config; 693 container overflow { 694 description 695 "configuration of MPLS overflow bandwidth 696 adjustment for the LSP"; 698 uses te-lsp-overflow-config; 699 } 701 container underflow { 702 description 703 "configuration of MPLS underflow bandwidth 704 adjustment for the LSP"; 706 uses te-lsp-underflow-config; 707 } 708 } 709 } 710 } 712 grouping te-path-bandwidth_top { 713 description 714 "Top level grouping for specifying bandwidth for a TE path"; 716 container bandwidth { 717 description 718 "Bandwidth configuration for TE LSPs"; 720 uses te-tunnel-bandwidth-config; 721 container state { 722 config false; 723 description 724 "State parameters related to bandwidth 725 configuration of TE tunnels"; 726 uses te-tunnel-bandwidth-state; 727 } 728 } 729 } 731 /** 732 * MPLS TE augmentations 733 */ 734 augment "/te:te/te-dev:performance-thresholds" { 735 uses te-packet-types:performance-metrics-throttle-container-packet; 736 description 737 "Performance parameters configurable thresholds"; 738 } 740 /* MPLS TE interface augmentations */ 742 /* MPLS TE tunnel augmentations */ 743 augment "/te:te/te:tunnels/te:tunnel" { 744 description "MPLS TE tunnel config augmentations"; 745 uses tunnel-igp-shortcuts; 746 uses tunnel-forwarding-adjacency; 747 uses tunnel-bandwidth_top; 748 } 750 /* MPLS TE LSPs augmentations */ 751 augment "/te:te/te:tunnels/te:tunnel/" + 752 "te:p2p-primary-paths/te:p2p-primary-path" { 753 when "/te:te/te:tunnels/te:tunnel" + 754 "/te:p2p-primary-paths/te:p2p-primary-path" + 755 "/te:path-setup-protocol = 'te-types:path-setup-static'" { 756 description 757 "When the path is statically provisioned"; 758 } 759 description "MPLS TE LSP augmentation"; 760 leaf static-lsp-name { 761 type mpls-static:static-lsp-ref; 762 description "Static LSP name"; 763 } 764 } 766 augment "/te:te/te:tunnels/te:tunnel/" + 767 "te:p2p-secondary-paths/te:p2p-secondary-path" { 768 when "/te:te/te:tunnels/te:tunnel" + 769 "/te:p2p-secondary-paths/te:p2p-secondary-path/" + 770 "te:path-setup-protocol = 'te-types:path-setup-static'" { 771 description 772 "When the path is statically provisioned"; 773 } 774 description "MPLS TE LSP augmentation"; 775 leaf static-lsp-name { 776 type mpls-static:static-lsp-ref; 777 description "Static LSP name"; 778 } 779 } 781 augment "/te:te/te:globals/te:named-path-constraints/" + 782 "te:named-path-constraint" { 783 description "foo"; 784 uses te-path-bandwidth_top; 785 } 787 augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + 788 "/te:p2p-primary-path/te:lsps/te:lsp" { 789 description 790 "MPLS TE generic data augmentation pertaining to specific TE 791 LSP"; 792 uses te-packet-types:performance-metrics-attributes-packet; 793 } 794 } 795 797 Figure 3: TE generic YANG module 799 3. IANA Considerations 801 This document registers the following URIs in the IETF XML registry 802 [RFC3688]. Following the format in [RFC3688], the following 803 registration is requested to be made. 805 URI: urn:ietf:params:xml:ns:yang:ietf-te-mpls 806 XML: N/A, the requested URI is an XML namespace. 808 This document registers a YANG module in the YANG Module Names 809 registry [RFC6020]. 811 name: ietf-te-mpls 812 namespace: urn:ietf:params:xml:ns:yang:ietf-te-mpls 813 prefix: ietf-te-mpls 814 reference: RFC3209 816 4. Security Considerations 818 The YANG module defined in this memo is designed to be accessed via 819 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 820 secure transport layer and the mandatory-to-implement secure 821 transport is SSH [RFC6242]. The NETCONF access control model 822 [RFC8341] provides means to restrict access for particular NETCONF 823 users to a pre-configured subset of all available NETCONF protocol 824 operations and content. 826 A number of data nodes defined in this YANG module are 827 writable/creatable/deletable (i.e., config true, which is the 828 default). These data nodes may be considered sensitive or vulnerable 829 in some network environments. Write operations (e.g., ) 830 to these data nodes without proper protection can have a negative 831 effect on MPLS network operations. Following are the subtrees and 832 data nodes and their sensitivity/vulnerability: 834 "/te/tunnels": The augmentation to this list specifies configuration 835 to TE tunnels on a device. Unauthorized access to this list could 836 cause the device to ignore packets it should receive and process. 838 "/te/globals": The augmentation to this target specifies 839 configuration applicable to the to all or one TE device. 840 Unauthorized access to this list could cause the device to ignore 841 packets it should receive and process. 843 5. Contributors 845 Himanshu Shah 846 Ciena 847 Email: hshah@ciena.com 849 6. Normative References 851 [I-D.ietf-mpls-static-yang] 852 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 853 "A YANG Data Model for MPLS Static LSPs", draft-ietf-mpls- 854 static-yang-10 (work in progress), September 2019. 856 [I-D.ietf-teas-yang-rsvp] 857 Beeram, V., Saad, T., Gandhi, R., Liu, X., and I. Bryskin, 858 "A YANG Data Model for Resource Reservation Protocol 859 (RSVP)", draft-ietf-teas-yang-rsvp-11 (work in progress), 860 July 2019. 862 [I-D.ietf-teas-yang-rsvp-te] 863 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 864 and H. Shah, "A YANG Data Model for RSVP-TE Protocol", 865 draft-ietf-teas-yang-rsvp-te-07 (work in progress), July 866 2019. 868 [I-D.ietf-teas-yang-te] 869 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 870 "A YANG Data Model for Traffic Engineering Tunnels and 871 Interfaces", draft-ietf-teas-yang-te-21 (work in 872 progress), April 2019. 874 [I-D.ietf-teas-yang-te-types] 875 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 876 "Traffic Engineering Common YANG Types", draft-ietf-teas- 877 yang-te-types-11 (work in progress), October 2019. 879 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 880 Requirement Levels", BCP 14, RFC 2119, 881 DOI 10.17487/RFC2119, March 1997, 882 . 884 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 885 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 886 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 887 . 889 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 890 Switching (GMPLS) Signaling Resource ReserVation Protocol- 891 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, 892 DOI 10.17487/RFC3473, January 2003, 893 . 895 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 896 DOI 10.17487/RFC3688, January 2004, 897 . 899 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 900 the Network Configuration Protocol (NETCONF)", RFC 6020, 901 DOI 10.17487/RFC6020, October 2010, 902 . 904 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 905 and A. Bierman, Ed., "Network Configuration Protocol 906 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 907 . 909 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 910 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 911 . 913 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 914 RFC 6991, DOI 10.17487/RFC6991, July 2013, 915 . 917 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 918 RFC 7950, DOI 10.17487/RFC7950, August 2016, 919 . 921 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 922 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 923 . 925 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 926 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 927 May 2017, . 929 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 930 "Common YANG Data Types for the Routing Area", RFC 8294, 931 DOI 10.17487/RFC8294, December 2017, 932 . 934 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 935 Access Control Model", STD 91, RFC 8341, 936 DOI 10.17487/RFC8341, March 2018, 937 . 939 Authors' Addresses 941 Tarek Saad 942 Juniper Networks 944 Email: tsaad@juniper.net 946 Rakesh Gandhi 947 Cisco Systems Inc 949 Email: rgandhi@cisco.com 950 Xufeng Liu 951 Volta Networks 953 Email: xufeng.liu.ietf@gmail.com 955 Vishnu Pavan Beeram 956 Juniper Networks 958 Email: vbeeram@juniper.net 960 Igor Bryskin 961 Individual 963 Email: i_bryskin@yahoo.com