idnits 2.17.1 draft-ietf-teas-yang-rsvp-te-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 == Line 136 has weird spacing: '... rw for r...' == Line 137 has weird spacing: '... ro for r...' -- The document date (July 02, 2017) is 2484 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-19) exists of draft-ietf-teas-yang-rsvp-07 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-07 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TEAS Working Group V. Beeram 3 Internet-Draft Juniper Networks 4 Intended status: Standards Track T. Saad, Ed. 5 Expires: January 3, 2018 R. Gandhi 6 Cisco Systems, Inc. 7 X. Liu 8 Jabil 9 I. Bryskin 10 Huawei Technologies 11 H. Shah 12 Ciena 13 July 02, 2017 15 A YANG Data Model for RSVP-TE 16 draft-ietf-teas-yang-rsvp-te-01 18 Abstract 20 This document defines a YANG data model for the configuration and 21 management of RSVP (Resource Reservation Protocol) to establish 22 Traffic-Engineered (TE) Label-Switched Paths (LSPs) for MPLS (Multi- 23 Protocol Label Switching) and other technologies. 25 The model defines a generic RSVP-TE module for signaling LSPs that is 26 technology agnostic. The generic RSVP-TE module is to be augmented 27 by technology specific RSVP-TE modules that define technology 28 specific data. This document defines the augmentation for RSVP-TE 29 MPLS LSPs model. 31 This model covers data for the configuration, operational state, 32 remote procedural calls, and event notifications. 34 Status of This Memo 36 This Internet-Draft is submitted in full conformance with the 37 provisions of BCP 78 and BCP 79. 39 Internet-Drafts are working documents of the Internet Engineering 40 Task Force (IETF). Note that other groups may also distribute 41 working documents as Internet-Drafts. The list of current Internet- 42 Drafts is at http://datatracker.ietf.org/drafts/current/. 44 Internet-Drafts are draft documents valid for a maximum of six months 45 and may be updated, replaced, or obsoleted by other documents at any 46 time. It is inappropriate to use Internet-Drafts as reference 47 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on January 3, 2018. 50 Copyright Notice 52 Copyright (c) 2017 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (http://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the Simplified BSD License. 65 Table of Contents 67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 68 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 69 1.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3 70 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 71 2. Design Considerations . . . . . . . . . . . . . . . . . . . . 5 72 2.1. Module Hierarchy . . . . . . . . . . . . . . . . . . . . 5 73 2.2. Data Organization . . . . . . . . . . . . . . . . . . . . 5 74 2.3. RSVP-TE Generic Model . . . . . . . . . . . . . . . . . . 6 75 2.3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 6 76 2.3.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 17 77 2.4. RSVP-TE MPLS Model . . . . . . . . . . . . . . . . . . . 28 78 2.4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 28 79 2.4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 32 80 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45 81 4. Security Considerations . . . . . . . . . . . . . . . . . . . 45 82 5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 46 83 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 46 84 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 46 85 7.1. Normative References . . . . . . . . . . . . . . . . . . 46 86 7.2. Informative References . . . . . . . . . . . . . . . . . 47 87 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 48 89 1. Introduction 91 YANG [RFC6020] is a data definition language that was introduced to 92 define the contents of a conceptual data store that allows networked 93 devices to be managed using NETCONF [RFC6241]. YANG is proving 94 relevant beyond its initial confines, as bindings to other interfaces 95 (e.g. ReST) and encoding other than XML (e.g. JSON) are being 96 defined. Furthermore, YANG data models can be used as the basis of 97 implementation for other interfaces, such as CLI and programmatic 98 APIs. 100 This document defines a generic YANG data model for configuring and 101 managing RSVP-TE LSP(s) [RFC3209]. The RSVP-TE generic model 102 augments the RSVP base and extended models defined in 103 [I-D.ietf-teas-yang-rsvp], and adds TE extensions to the RSVP 104 protocol [RFC2205] model configuration and state data. The 105 technology specific RSVP-TE models augment the generic RSVP-TE model 106 with additional technology specific parameters. For example, this 107 document also defines the MPLS RSVP-TE model for configuring and 108 managing MPLS RSVP TE LSP(s). 110 In addition to augmenting the RSVP YANG module, the modules defined 111 in this document augment the TE Interfaces, Tunnels and LSP(s) YANG 112 module defined in [I-D.ietf-teas-yang-te] to define additional 113 parameters to enable signaling for RSVP-TE. 115 1.1. Terminology 117 In this document, the key words "MUST", "MUST NOT", "REQUIRED", 118 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 119 and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 120 [RFC2119]. 122 1.2. Tree Diagram 124 A simplified graphical representation of the data model is presented 125 in each section of the model. The following notations are used for 126 the YANG model data tree representation. 128 130 is one of: 131 + for current 132 x for deprecated 133 o for obsolete 135 is one of: 136 rw for read-write configuration data 137 ro for read-only non-configuration data 138 -x for execution rpcs 139 -n for notifications 141 is the name of the node 143 If the node is augmented into the tree from another module, its name 144 is printed as : 146 is one of: 147 ? for an optional leaf or node 148 ! for a presence container 149 * for a leaf-list or list 150 Brackets [] for a list's keys 151 Curly braces {} for optional feature that make node 152 conditional 153 Colon : for marking case nodes 154 Ellipses ("...") subtree contents not shown 156 Parentheses enclose choice and case nodes, and case nodes are also 157 marked with a colon (":"). 159 is the name of the type for leafs and leaf-lists. 161 1.3. Prefixes in Data Node Names 163 In this document, names of data nodes and other data model objects 164 are prefixed using the standard prefix associated with the 165 corresponding YANG imported modules, as shown in Table 1. 167 +---------------+--------------------+---------------+ 168 | Prefix | YANG module | Reference | 169 +---------------+--------------------+---------------+ 170 | yang | ietf-yang-types | [RFC6991] | 171 | inet | ietf-inet-types | [RFC6991] | 172 | te | ietf-te | this document | 173 | te-types | ietf-te-types | this document | 174 | te-mpls-types | ietf-te-mpls-types | this document | 175 | te-dev | ietf-te-device | this document | 176 | te-mpls | ietf-te-mpls | this document | 177 | te-sr-mpls | ietf-te-sr-mpls | this document | 178 +---------------+--------------------+---------------+ 180 Table 1: Prefixes and corresponding YANG modules 182 2. Design Considerations 184 2.1. Module Hierarchy 186 The data pertaining to RSVP-TE in this document is divided into two 187 modules: a technology agnostic RSVP-TE module that holds generic 188 parameters for RSVP-TE applicable to all technologies, and a 189 technology specific RSVP-TE module (e.g. for MPLS RSVP-TE) that holds 190 parameters specific to the technology. 192 This document defines YANG data models for RSVP-TE, and RSVP-TE MPLS 193 configuration, state, notification and RPCs. The relationship 194 between the different modules is depicted in Figure 1. 196 2.2. Data Organization 198 The approach described in [I-D.openconfig-netmod-opstate] is adopted 199 to represent data configuration for intended and applied 200 configuration, and derived state data. Each container in the model 201 holds a "config" and "state" sub-container. 203 The "config" sub-container holds the intended configurable 204 parameters, while the state sub-container holds both applied 205 configuration parameters as well as any derived state such as 206 counters or statistics information. The pure state data (for 207 example, protocol derived data) is also placed under the "state" sub- 208 container. 210 The decision to use this approach was made to better align with the 211 MPLS consolidated model in [I-D.openconfig-mpls-consolidated-model], 212 and maximize reusability of groupings defined in this document and 213 allow for possible convergence between the two models. 215 TE basic +---------+ ^: import 216 module | ietf-te | o: augment 217 +---------+ 218 | o 219 | | 220 v | 221 +--------------+ 222 RSVP-TE module | ietf-rsvp-te |o . . . 223 +--------------+ \ 224 ^ | \ 225 | o +-------------------+ 226 +-----------+ | ietf-rsvp-otn-te | 227 RSVP module | ietf-rsvp | +-------------------+ 228 +-----------+ RSVP-TE with OTN 229 o extensions 230 | (shown for illustration 231 RSVP extended | not in this document) 232 module +--------------------+ 233 | ietf-rsvp-extended | 234 +--------------------+ 236 Figure 1: Relationship of RSVP and RSVP-TE modules with other 237 protocol modules 239 2.3. RSVP-TE Generic Model 241 The RSVP-TE generic module augments the RSVP base and extended YANG 242 modules defined in [I-D.ietf-teas-yang-rsvp] as well as the TE 243 tunnels and interfaces module [I-D.ietf-teas-yang-te] to cover 244 parameters specific to the configuration and management of RSVP-TE 245 interfaces, tunnels and LSP(s). 247 2.3.1. Tree Diagram 249 There are three types of configuration and state data nodes in this 250 module: 252 o those augmenting or extending the base RSVP module 254 o those augmenting or extending the base TE module 256 o those that are specific to the RSVP-TE module 258 Below is a YANG tree representation for data items defined in the 259 RSVP-TE generic module: 261 module: ietf-rsvp-te 262 augment 263 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 264 rsvp:rsvp/rsvp:globals: 265 +--rw global-soft-preemption! 266 +--rw config 267 | +--rw soft-preemption-timeout? uint16 268 +--rw state 269 +--rw soft-preemption-timeout? uint16 270 augment 271 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 272 rsvp:rsvp/rsvp:interfaces: 273 +--rw rsvp-te-interface-attributes 274 +--rw config 275 +--ro state 276 augment 277 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 278 rsvp:rsvp/rsvp:interfaces/rsvp:interface: 279 +--rw rsvp-te-interface-attributes 280 +--rw config 281 +--ro state 282 augment 283 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 284 rsvp:rsvp/rsvp:globals/rsvp:sessions/rsvp:session/rsvp:state/ 285 rsvp:psbs/rsvp:psb: 286 +--ro tspec-average-rate? rt-types:bandwidth-ieee-float32 287 +--ro tspec-size? rt-types:bandwidth-ieee-float32 288 +--ro tspec-peak-rate? rt-types:bandwidth-ieee-float32 289 +--ro min-policed-unit? uint32 290 +--ro max-packet-size? uint32 291 augment 292 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 293 rsvp:rsvp/rsvp:globals/rsvp:sessions/rsvp:session/rsvp:state/ 294 rsvp:rsbs/rsvp:rsb: 295 +--ro fspec-average-rate? rt-types:bandwidth-ieee-float32 296 +--ro fspec-size? rt-types:bandwidth-ieee-float32 297 +--ro fspec-peak-rate? rt-types:bandwidth-ieee-float32 298 +--ro min-policed-unit? uint32 299 +--ro max-packet-size? uint32 300 augment 301 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 302 rsvp:rsvp/rsvp:neighbors: 303 augment /te:te/te:tunnels/te:tunnel/te:config: 304 +--rw lsp-signaled-name? string 305 +--rw local-recording-desired? boolean 306 +--rw se-style-desired? boolean 307 +--rw path-reevaluation-request? boolean 308 +--rw soft-preemption-desired? boolean 309 +--rw lsp-rerouting? enumeration 310 +--rw lsp-integrity-required? boolean 311 +--rw lsp-contiguous? boolean 312 +--rw lsp-stitching-desired? boolean 313 +--rw lsp-preplanned? boolean 314 +--rw lsp-oob-mapping? boolean 315 +--rw retry-timer? uint16 316 augment /te:te/te:tunnels/te:tunnel/te:state: 317 +--ro lsp-signaled-name? string 318 +--ro local-recording-desired? boolean 319 +--ro se-style-desired? boolean 320 +--ro path-reevaluation-request? boolean 321 +--ro soft-preemption-desired? boolean 322 +--ro lsp-rerouting? enumeration 323 +--ro lsp-integrity-required? boolean 324 +--ro lsp-contiguous? boolean 325 +--ro lsp-stitching-desired? boolean 326 +--ro lsp-preplanned? boolean 327 +--ro lsp-oob-mapping? boolean 328 +--ro retry-timer? uint16 329 augment /te:te/te:lsps-state/te:lsp: 330 +--ro associated-rsvp-session? -> 331 /rt:routing/control-plane-protocols/control-plane-protocol/ 332 rsvp:rsvp/globals/sessions/session/local-index 333 +--ro lsp-signaled-name? string 334 +--ro local-recording-desired? boolean 335 +--ro se-style-desired? boolean 336 +--ro path-reevaluation-request? boolean 337 +--ro soft-preemption-desired? boolean 338 +--ro lsp-rerouting? enumeration 339 +--ro lsp-integrity-required? boolean 340 +--ro lsp-contiguous? boolean 341 +--ro lsp-stitching-desired? boolean 342 +--ro lsp-preplanned? boolean 343 +--ro lsp-oob-mapping? boolean 344 +--ro explicit-route-objects 345 | +--ro incoming-explicit-route-hop* [index] 346 | | +--ro index -> ../config/index 347 | | +--ro config 348 | | | +--ro index? uint32 349 | | | +--ro (type)? 350 | | | +--:(numbered) 351 | | | | +--ro numbered-hop 352 | | | | +--ro address? te-types:te-tp-id 353 | | | | +--ro hop-type? te-hop-type 354 | | | +--:(as-number) 355 | | | | +--ro as-number-hop 356 | | | | +--ro as-number? binary 357 | | | | +--ro hop-type? te-hop-type 358 | | | +--:(unnumbered) 359 | | | | +--ro unnumbered-hop 360 | | | | +--ro node-id? te-types:te-node-id 361 | | | | +--ro link-tp-id? te-types:te-tp-id 362 | | | | +--ro hop-type? te-hop-type 363 | | | +--:(label) 364 | | | | +--ro label-hop 365 | | | | +--ro value? rt-types:generalized-label 366 | | | +--:(sid) 367 | | | +--ro sid-hop 368 | | | +--ro sid? rt-types:generalized-label 369 | | +--ro state 370 | | +--ro index? uint32 371 | | +--ro (type)? 372 | | +--:(numbered) 373 | | | +--ro numbered-hop 374 | | | +--ro address? te-types:te-tp-id 375 | | | +--ro hop-type? te-hop-type 376 | | +--:(as-number) 377 | | | +--ro as-number-hop 378 | | | +--ro as-number? binary 379 | | | +--ro hop-type? te-hop-type 380 | | +--:(unnumbered) 381 | | | +--ro unnumbered-hop 382 | | | +--ro node-id? te-types:te-node-id 383 | | | +--ro link-tp-id? te-types:te-tp-id 384 | | | +--ro hop-type? te-hop-type 385 | | +--:(label) 386 | | | +--ro label-hop 387 | | | +--ro value? rt-types:generalized-label 388 | | +--:(sid) 389 | | +--ro sid-hop 390 | | +--ro sid? rt-types:generalized-label 391 | +--ro outgoing-explicit-route-hop* [index] 392 | +--ro index uint32 393 | +--ro config 394 | | +--ro index? uint32 395 | | +--ro (type)? 396 | | +--:(numbered) 397 | | | +--ro numbered-hop 398 | | | +--ro address? te-types:te-tp-id 399 | | | +--ro hop-type? te-hop-type 400 | | +--:(as-number) 401 | | | +--ro as-number-hop 402 | | | +--ro as-number? binary 403 | | | +--ro hop-type? te-hop-type 404 | | +--:(unnumbered) 405 | | | +--ro unnumbered-hop 406 | | | +--ro node-id? te-types:te-node-id 407 | | | +--ro link-tp-id? te-types:te-tp-id 408 | | | +--ro hop-type? te-hop-type 409 | | +--:(label) 410 | | | +--ro label-hop 411 | | | +--ro value? rt-types:generalized-label 412 | | +--:(sid) 413 | | +--ro sid-hop 414 | | +--ro sid? rt-types:generalized-label 415 | +--ro state 416 | +--ro index? uint32 417 | +--ro (type)? 418 | +--:(numbered) 419 | | +--ro numbered-hop 420 | | +--ro address? te-types:te-tp-id 421 | | +--ro hop-type? te-hop-type 422 | +--:(as-number) 423 | | +--ro as-number-hop 424 | | +--ro as-number? binary 425 | | +--ro hop-type? te-hop-type 426 | +--:(unnumbered) 427 | | +--ro unnumbered-hop 428 | | +--ro node-id? te-types:te-node-id 429 | | +--ro link-tp-id? te-types:te-tp-id 430 | | +--ro hop-type? te-hop-type 431 | +--:(label) 432 | | +--ro label-hop 433 | | +--ro value? rt-types:generalized-label 434 | +--:(sid) 435 | +--ro sid-hop 436 | +--ro sid? rt-types:generalized-label 437 +--ro incoming-record-route-subobjects 438 | +--ro incoming-record-route-subobject* [index] 439 | +--ro index uint32 440 | +--ro (type)? 441 | +--:(numbered) 442 | | +--ro address? te-types:te-tp-id 443 | | +--ro ip-flags? binary 444 | +--:(unnumbered) 445 | | +--ro node-id? te-types:te-node-id 446 | | +--ro link-tp-id? te-types:te-tp-id 447 | +--:(label) 448 | +--ro value? rt-types:generalized-label 449 | +--ro label-flags? binary 450 +--ro outgoing-record-route-subobjects 451 +--ro outgoing-record-route-subobject* [index] 452 +--ro index uint32 453 +--ro (type)? 454 +--:(numbered) 455 | +--ro address? te-types:te-tp-id 456 | +--ro ip-flags? binary 457 +--:(unnumbered) 458 | +--ro node-id? te-types:te-node-id 459 | +--ro link-tp-id? te-types:te-tp-id 460 +--:(label) 461 +--ro value? rt-types:generalized-label 462 +--ro label-flags? binary 463 augment 464 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary-path/ 465 te:state/te:lsps/te:lsp: 466 +--ro associated-rsvp-session? -> 467 /rt:routing/control-plane-protocols/control-plane-protocol/ 468 rsvp:rsvp/globals/sessions/session/local-index 469 +--ro lsp-signaled-name? string 470 +--ro local-recording-desired? boolean 471 +--ro se-style-desired? boolean 472 +--ro path-reevaluation-request? boolean 473 +--ro soft-preemption-desired? boolean 474 +--ro lsp-rerouting? enumeration 475 +--ro lsp-integrity-required? boolean 476 +--ro lsp-contiguous? boolean 477 +--ro lsp-stitching-desired? boolean 478 +--ro lsp-preplanned? boolean 479 +--ro lsp-oob-mapping? boolean 480 +--ro explicit-route-objects 481 | +--ro incoming-explicit-route-hop* [index] 482 | | +--ro index -> ../config/index 483 | | +--ro config 484 | | | +--ro index? uint32 485 | | | +--ro (type)? 486 | | | +--:(numbered) 487 | | | | +--ro numbered-hop 488 | | | | +--ro address? te-types:te-tp-id 489 | | | | +--ro hop-type? te-hop-type 490 | | | +--:(as-number) 491 | | | | +--ro as-number-hop 492 | | | | +--ro as-number? binary 493 | | | | +--ro hop-type? te-hop-type 494 | | | +--:(unnumbered) 495 | | | | +--ro unnumbered-hop 496 | | | | +--ro node-id? te-types:te-node-id 497 | | | | +--ro link-tp-id? te-types:te-tp-id 498 | | | | +--ro hop-type? te-hop-type 499 | | | +--:(label) 500 | | | | +--ro label-hop 501 | | | | +--ro value? rt-types:generalized-label 502 | | | +--:(sid) 503 | | | +--ro sid-hop 504 | | | +--ro sid? rt-types:generalized-label 505 | | +--ro state 506 | | +--ro index? uint32 507 | | +--ro (type)? 508 | | +--:(numbered) 509 | | | +--ro numbered-hop 510 | | | +--ro address? te-types:te-tp-id 511 | | | +--ro hop-type? te-hop-type 512 | | +--:(as-number) 513 | | | +--ro as-number-hop 514 | | | +--ro as-number? binary 515 | | | +--ro hop-type? te-hop-type 516 | | +--:(unnumbered) 517 | | | +--ro unnumbered-hop 518 | | | +--ro node-id? te-types:te-node-id 519 | | | +--ro link-tp-id? te-types:te-tp-id 520 | | | +--ro hop-type? te-hop-type 521 | | +--:(label) 522 | | | +--ro label-hop 523 | | | +--ro value? rt-types:generalized-label 524 | | +--:(sid) 525 | | +--ro sid-hop 526 | | +--ro sid? rt-types:generalized-label 527 | +--ro outgoing-explicit-route-hop* [index] 528 | +--ro index uint32 529 | +--ro config 530 | | +--ro index? uint32 531 | | +--ro (type)? 532 | | +--:(numbered) 533 | | | +--ro numbered-hop 534 | | | +--ro address? te-types:te-tp-id 535 | | | +--ro hop-type? te-hop-type 536 | | +--:(as-number) 537 | | | +--ro as-number-hop 538 | | | +--ro as-number? binary 539 | | | +--ro hop-type? te-hop-type 540 | | +--:(unnumbered) 541 | | | +--ro unnumbered-hop 542 | | | +--ro node-id? te-types:te-node-id 543 | | | +--ro link-tp-id? te-types:te-tp-id 544 | | | +--ro hop-type? te-hop-type 545 | | +--:(label) 546 | | | +--ro label-hop 547 | | | +--ro value? rt-types:generalized-label 548 | | +--:(sid) 549 | | +--ro sid-hop 550 | | +--ro sid? rt-types:generalized-label 551 | +--ro state 552 | +--ro index? uint32 553 | +--ro (type)? 554 | +--:(numbered) 555 | | +--ro numbered-hop 556 | | +--ro address? te-types:te-tp-id 557 | | +--ro hop-type? te-hop-type 558 | +--:(as-number) 559 | | +--ro as-number-hop 560 | | +--ro as-number? binary 561 | | +--ro hop-type? te-hop-type 562 | +--:(unnumbered) 563 | | +--ro unnumbered-hop 564 | | +--ro node-id? te-types:te-node-id 565 | | +--ro link-tp-id? te-types:te-tp-id 566 | | +--ro hop-type? te-hop-type 567 | +--:(label) 568 | | +--ro label-hop 569 | | +--ro value? rt-types:generalized-label 570 | +--:(sid) 571 | +--ro sid-hop 572 | +--ro sid? rt-types:generalized-label 573 +--ro incoming-record-route-subobjects 574 | +--ro incoming-record-route-subobject* [index] 575 | +--ro index uint32 576 | +--ro (type)? 577 | +--:(numbered) 578 | | +--ro address? te-types:te-tp-id 579 | | +--ro ip-flags? binary 580 | +--:(unnumbered) 581 | | +--ro node-id? te-types:te-node-id 582 | | +--ro link-tp-id? te-types:te-tp-id 583 | +--:(label) 584 | +--ro value? rt-types:generalized-label 585 | +--ro label-flags? binary 586 +--ro outgoing-record-route-subobjects 587 +--ro outgoing-record-route-subobject* [index] 588 +--ro index uint32 589 +--ro (type)? 590 +--:(numbered) 591 | +--ro address? te-types:te-tp-id 592 | +--ro ip-flags? binary 593 +--:(unnumbered) 594 | +--ro node-id? te-types:te-node-id 595 | +--ro link-tp-id? te-types:te-tp-id 596 +--:(label) 597 +--ro value? rt-types:generalized-label 598 +--ro label-flags? binary 600 augment 601 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 602 te:p2p-secondary-path/te:state/te:lsps/te:lsp: 603 +--ro associated-rsvp-session? -> 604 /rt:routing/control-plane-protocols/control-plane-protocol/ 605 rsvp:rsvp/globals/sessions/session/local-index 606 +--ro lsp-signaled-name? string 607 +--ro local-recording-desired? boolean 608 +--ro se-style-desired? boolean 609 +--ro path-reevaluation-request? boolean 610 +--ro soft-preemption-desired? boolean 611 +--ro lsp-rerouting? enumeration 612 +--ro lsp-integrity-required? boolean 613 +--ro lsp-contiguous? boolean 614 +--ro lsp-stitching-desired? boolean 615 +--ro lsp-preplanned? boolean 616 +--ro lsp-oob-mapping? boolean 617 +--ro explicit-route-objects 618 | +--ro incoming-explicit-route-hop* [index] 619 | | +--ro index -> ../config/index 620 | | +--ro config 621 | | | +--ro index? uint32 622 | | | +--ro (type)? 623 | | | +--:(numbered) 624 | | | | +--ro numbered-hop 625 | | | | +--ro address? te-types:te-tp-id 626 | | | | +--ro hop-type? te-hop-type 627 | | | +--:(as-number) 628 | | | | +--ro as-number-hop 629 | | | | +--ro as-number? binary 630 | | | | +--ro hop-type? te-hop-type 631 | | | +--:(unnumbered) 632 | | | | +--ro unnumbered-hop 633 | | | | +--ro node-id? te-types:te-node-id 634 | | | | +--ro link-tp-id? te-types:te-tp-id 635 | | | | +--ro hop-type? te-hop-type 636 | | | +--:(label) 637 | | | | +--ro label-hop 638 | | | | +--ro value? rt-types:generalized-label 639 | | | +--:(sid) 640 | | | +--ro sid-hop 641 | | | +--ro sid? rt-types:generalized-label 642 | | +--ro state 643 | | +--ro index? uint32 644 | | +--ro (type)? 645 | | +--:(numbered) 646 | | | +--ro numbered-hop 647 | | | +--ro address? te-types:te-tp-id 648 | | | +--ro hop-type? te-hop-type 649 | | +--:(as-number) 650 | | | +--ro as-number-hop 651 | | | +--ro as-number? binary 652 | | | +--ro hop-type? te-hop-type 653 | | +--:(unnumbered) 654 | | | +--ro unnumbered-hop 655 | | | +--ro node-id? te-types:te-node-id 656 | | | +--ro link-tp-id? te-types:te-tp-id 657 | | | +--ro hop-type? te-hop-type 658 | | +--:(label) 659 | | | +--ro label-hop 660 | | | +--ro value? rt-types:generalized-label 661 | | +--:(sid) 662 | | +--ro sid-hop 663 | | +--ro sid? rt-types:generalized-label 664 | +--ro outgoing-explicit-route-hop* [index] 665 | +--ro index uint32 666 | +--ro config 667 | | +--ro index? uint32 668 | | +--ro (type)? 669 | | +--:(numbered) 670 | | | +--ro numbered-hop 671 | | | +--ro address? te-types:te-tp-id 672 | | | +--ro hop-type? te-hop-type 673 | | +--:(as-number) 674 | | | +--ro as-number-hop 675 | | | +--ro as-number? binary 676 | | | +--ro hop-type? te-hop-type 677 | | +--:(unnumbered) 678 | | | +--ro unnumbered-hop 679 | | | +--ro node-id? te-types:te-node-id 680 | | | +--ro link-tp-id? te-types:te-tp-id 681 | | | +--ro hop-type? te-hop-type 682 | | +--:(label) 683 | | | +--ro label-hop 684 | | | +--ro value? rt-types:generalized-label 685 | | +--:(sid) 686 | | +--ro sid-hop 687 | | +--ro sid? rt-types:generalized-label 688 | +--ro state 689 | +--ro index? uint32 690 | +--ro (type)? 691 | +--:(numbered) 692 | | +--ro numbered-hop 693 | | +--ro address? te-types:te-tp-id 694 | | +--ro hop-type? te-hop-type 695 | +--:(as-number) 696 | | +--ro as-number-hop 697 | | +--ro as-number? binary 698 | | +--ro hop-type? te-hop-type 699 | +--:(unnumbered) 700 | | +--ro unnumbered-hop 701 | | +--ro node-id? te-types:te-node-id 702 | | +--ro link-tp-id? te-types:te-tp-id 703 | | +--ro hop-type? te-hop-type 704 | +--:(label) 705 | | +--ro label-hop 706 | | +--ro value? rt-types:generalized-label 707 | +--:(sid) 708 | +--ro sid-hop 709 | +--ro sid? rt-types:generalized-label 710 +--ro incoming-record-route-subobjects 711 | +--ro incoming-record-route-subobject* [index] 712 | +--ro index uint32 713 | +--ro (type)? 714 | +--:(numbered) 715 | | +--ro address? te-types:te-tp-id 716 | | +--ro ip-flags? binary 717 | +--:(unnumbered) 718 | | +--ro node-id? te-types:te-node-id 719 | | +--ro link-tp-id? te-types:te-tp-id 720 | +--:(label) 721 | +--ro value? rt-types:generalized-label 722 | +--ro label-flags? binary 723 +--ro outgoing-record-route-subobjects 724 +--ro outgoing-record-route-subobject* [index] 725 +--ro index uint32 726 +--ro (type)? 727 +--:(numbered) 728 | +--ro address? te-types:te-tp-id 729 | +--ro ip-flags? binary 730 +--:(unnumbered) 731 | +--ro node-id? te-types:te-node-id 732 | +--ro link-tp-id? te-types:te-tp-id 733 +--:(label) 734 +--ro value? rt-types:generalized-label 735 +--ro label-flags? binary 736 augment /te:te/te-dev:interfaces/te-dev:interface: 738 Figure 2: RSVP-TE model Tree diagram 740 2.3.2. YANG Module 742 file "ietf-rsvp-te@2017-03-10.yang" 743 module ietf-rsvp-te { 745 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te"; 747 prefix "rsvp-te"; 749 import ietf-rsvp { 750 prefix rsvp; 751 } 753 import ietf-routing { 754 prefix "rt"; 755 } 757 import ietf-routing-types { 758 prefix rt-types; 759 } 761 import ietf-te { 762 prefix te; 763 } 765 import ietf-te-device { 766 prefix te-dev; 767 } 769 /* Import TE generic types */ 770 import ietf-te-types { 771 prefix te-types; 772 } 774 organization 775 "IETF Traffic Engineering Architecture and Signaling (TEAS) 776 Working Group"; 778 contact 779 "WG Web: 780 WG List: 782 WG Chair: Lou Berger 783 785 WG Chair: Vishnu Pavan Beeram 786 788 Editor: Vishnu Pavan Beeram 789 791 Editor: Tarek Saad 792 794 Editor: Rakesh Gandhi 795 797 Editor: Himanshu Shah 798 800 Editor: Xufeng Liu 801 803 Editor: Xia Chen 804 806 Editor: Raqib Jones 807 809 Editor: Bin Wen 810 "; 812 description 813 "This module contains the RSVP-TE YANG generic data model."; 815 revision "2017-06-29" { 816 description "Latest revision to RSVP-TE generic YANG module"; 817 reference "RFC2205, RFC3209, etc."; 818 } 820 /** 821 * RSVP-TE LSPs groupings. 822 */ 824 grouping lsp-record-route-information_state { 825 description "recorded route information grouping"; 826 container incoming-record-route-subobjects { 827 description "RSVP recorded route object incoming information"; 828 list incoming-record-route-subobject { 829 when "../../te:origin-type != 'ingress'" { 830 description "Applicable on non-ingress LSPs only"; 831 } 832 key "index"; 833 description 834 "List of RSVP Path record-route objects"; 836 leaf index { 837 type uint32; 838 description "RRO subobject index"; 839 } 840 uses te-types:record-route-subobject; 841 } 842 } 843 container outgoing-record-route-subobjects { 844 description "RSVP recorded route object outgoing information"; 845 list outgoing-record-route-subobject { 846 when "../../te:origin-type != 'egress'" { 847 description "Applicable on non-egress LSPs only"; 848 } 849 key "index"; 850 description 851 "List of RSVP Resv record-route objects"; 852 leaf index { 853 type uint32; 854 description "RRO subobject index"; 855 } 856 uses te-types:record-route-subobject; 857 } 858 } 859 } 861 grouping lsp-explicit-route-information_state { 862 description "RSVP-TE LSP explicit-route information"; 863 container explicit-route-objects { 864 description "Explicit route object information"; 865 list incoming-explicit-route-hop { 866 when "../../te:origin-type != 'ingress'" { 867 description "Applicable on non-ingress LSPs only"; 868 } 869 key "index"; 870 description 871 "List of incoming RSVP Path explicit-route objects"; 872 leaf index { 873 type leafref { 874 path "../config/index"; 875 } 876 description "ERO subobject index"; 877 } 878 uses te-types:explicit-route-hop; 879 } 880 list outgoing-explicit-route-hop { 881 when "../../te:origin-type != 'egress'" { 882 description "Applicable on non-egress LSPs only"; 883 } 884 key "index"; 885 description 886 "List of outgoing RSVP Path explicit-route objects"; 887 leaf index { 888 type uint32; 889 description "ERO subobject index"; 890 } 891 uses te-types:explicit-route-hop; 892 } 893 } 894 } 896 grouping lsp-attributes-flags_config { 897 description 898 "Configuration parameters relating to RSVP-TE LSP 899 attribute flags"; 900 leaf lsp-rerouting { 901 type enumeration { 902 enum end-to-end-routing { 903 description 904 "End-to-end routing desired"; 905 reference "RFC4920, RFC5420"; 906 } 907 enum boundary-rerouting { 908 description 909 "Boundary rerouting desired"; 910 reference "RFC4920, RFC5420"; 911 } 912 enum segment-based-rerouting { 913 description 914 "Segment-based rerouting desired"; 915 reference "RFC4920, RFC5420"; 916 } 917 } 918 description "LSP rerouting types"; 919 } 920 leaf lsp-integrity-required { 921 type boolean; 922 description "LSP integrity desired"; 923 reference "RFC4875"; 924 } 925 leaf lsp-contiguous { 926 type boolean; 927 description "Contiguous LSP"; 928 reference "RFC5151"; 929 } 930 leaf lsp-stitching-desired { 931 type boolean; 932 description "Stitched LSP"; 933 reference "RFC5150"; 934 } 935 leaf lsp-preplanned { 936 type boolean; 937 description "Preplanned LSP"; 938 reference "RFC6001"; 939 } 940 leaf lsp-oob-mapping { 941 type boolean; 942 description 943 "Mapping is done out-of-band"; 944 reference "RFC6511"; 945 } 946 } 948 grouping lsp-session-attributes-obj-flags_config { 949 description 950 "Configuration parameters relating to RSVP-TE LSP 951 session attribute flags"; 952 reference 953 "RFC4859: Registry for RSVP-TE Session Flags"; 954 leaf local-recording-desired { 955 type boolean; 956 description "Path recording is desired."; 957 reference "RFC3209"; 958 } 959 leaf se-style-desired { 960 type boolean; 961 description "SE Style desired"; 962 reference "RFC3209"; 963 } 964 leaf path-reevaluation-request { 965 type boolean; 966 description "Path re-evaluation request"; 967 reference "RFC4736"; 968 } 969 leaf soft-preemption-desired { 970 type boolean; 971 description "Soft-preemption is desired"; 972 reference "RFC5712"; 973 } 974 } 976 grouping lsp-properties_config { 977 description 978 "Configuration parameters relating to RSVP-TE LSP 979 session attribute flags"; 981 leaf lsp-signaled-name { 982 type string; 983 description 984 "Sets the session name to use in the session 985 attribute object."; 986 } 987 uses lsp-session-attributes-obj-flags_config; 988 uses lsp-attributes-flags_config; 989 } 991 grouping tunnel-properties_config { 992 description "RSVP-TE Tunnel properties grouping"; 993 leaf retry-timer { 994 type uint16 { 995 range 1..600; 996 } 997 units seconds; 998 description 999 "sets the time between attempts to establish the 1000 LSP"; 1001 } 1002 } 1004 /*** End of RSVP-TE LSP groupings ***/ 1006 /** 1007 * RSVP-TE generic global properties. 1008 */ 1010 grouping global-soft-preemption_config { 1011 description 1012 "Configuration for global RSVP-TE soft preemption"; 1013 leaf soft-preemption-timeout { 1014 type uint16 { 1015 range 0..300; 1016 } 1017 default 0; 1018 description 1019 "Timeout value for soft preemption to revert 1020 to hard preemption"; 1021 } 1022 } 1024 grouping global-soft-preemption { 1025 description 1026 "Top level group for RSVP-TE soft-preemption"; 1027 container global-soft-preemption { 1028 presence "Enables soft preemption on a node."; 1029 description 1030 "Top level container for RSVP-TE soft-preemption"; 1031 container config { 1032 description 1033 "Configuration parameters relating to RSVP 1034 soft preemption support"; 1035 uses global-soft-preemption_config; 1036 } 1037 container state { 1038 description "State parameters relating to RSVP 1039 soft preemption support"; 1040 uses global-soft-preemption_config; 1041 } 1042 } 1043 } 1044 /*** End of RSVP-TE generic global properties. ***/ 1046 /** 1047 * RSVP-TE interface generic groupings. 1048 */ 1050 grouping rsvp-te-interface-attributes { 1051 description 1052 "Top level grouping for RSVP-TE interface properties."; 1053 container rsvp-te-interface-attributes { 1054 description 1055 "Top level container for RSVP-TE interface 1056 properties"; 1057 container config { 1058 description 1059 "Configuration parameters relating to RSVP-TE 1060 bandwidth"; 1061 } 1062 container state { 1063 config false; 1064 description 1065 "State information associated with RSVP-TE 1066 bandwidth"; 1067 } 1068 } 1069 } 1070 /*** End of RSVP-TE generic groupings ***/ 1072 /* RSVP-TE global properties */ 1073 augment "/rt:routing/rt:control-plane-protocols/" 1074 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals" { 1075 description 1076 "RSVP-TE augmentation to RSVP globals"; 1077 uses global-soft-preemption; 1078 } 1080 /* Linkage to the base RSVP all links */ 1081 augment "/rt:routing/rt:control-plane-protocols/" 1082 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { 1083 description 1084 "RSVP-TE generic data augmentation pertaining to interfaces"; 1085 uses rsvp-te-interface-attributes; 1086 } 1088 /* Linkage to per RSVP interface */ 1089 augment "/rt:routing/rt:control-plane-protocols/" 1090 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 1091 "rsvp:interface" { 1092 description 1093 "RSVP-TE generic data augmentation pertaining to specific 1094 interface"; 1095 uses rsvp-te-interface-attributes; 1096 } 1098 /* add augmentation for sessions and neighbors */ 1099 augment "/rt:routing/rt:control-plane-protocols/" 1100 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1101 + "rsvp:sessions/rsvp:session/rsvp:state/rsvp:psbs/rsvp:psb" { 1102 description 1103 "RSVP-TE generic data augmentation pertaining to session"; 1104 /* To be added */ 1105 leaf tspec-average-rate { 1106 type rt-types:bandwidth-ieee-float32; 1107 units "Bytes per second"; 1108 description "Tspec Token Bucket Average Rate"; 1109 reference "RFC2210: RSVP with INTSERV"; 1110 } 1111 leaf tspec-size { 1112 type rt-types:bandwidth-ieee-float32; 1113 units "Bytes per second"; 1114 description "Tspec Token Bucket Burst Rate"; 1115 reference "RFC2210"; 1116 } 1117 leaf tspec-peak-rate { 1118 type rt-types:bandwidth-ieee-float32; 1119 units "Bytes per second"; 1120 description "Tspec Token Bucket Peak Data Rate"; 1121 reference "RFC2210"; 1122 } 1123 leaf min-policed-unit { 1124 type uint32; 1125 description "Tspec Minimum Policed Unit"; 1126 reference "RFC2210"; 1127 } 1128 leaf max-packet-size { 1129 type uint32; 1130 description "Tspec Maximum Packet Size"; 1131 reference "RFC2210"; 1132 } 1133 } 1134 augment "/rt:routing/rt:control-plane-protocols/" 1135 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1136 + "rsvp:sessions/rsvp:session/rsvp:state/rsvp:rsbs/rsvp:rsb" { 1137 description 1138 "RSVP-TE generic data augmentation pertaining to session"; 1139 leaf fspec-average-rate { 1140 type rt-types:bandwidth-ieee-float32; 1141 units "Bytes per second"; 1142 description "Fspec Token Bucket Average Rate"; 1143 reference "RFC2210"; 1144 } 1145 leaf fspec-size { 1146 type rt-types:bandwidth-ieee-float32; 1147 units "Bytes per second"; 1148 description "Fspec Token Bucket Burst Rate"; 1149 reference "RFC2210"; 1150 } 1151 leaf fspec-peak-rate { 1152 type rt-types:bandwidth-ieee-float32; 1153 units "Bytes per second"; 1154 description "Fspec Token Bucket Peak Data Rate"; 1155 reference "RFC2210"; 1156 } 1157 leaf min-policed-unit { 1158 type uint32; 1159 description "Fspec Minimum Policed Unit"; 1160 reference "RFC2210"; 1161 } 1162 leaf max-packet-size { 1163 type uint32; 1164 description "Fspec Maximum Packet Size"; 1165 reference "RFC2210"; 1166 } 1167 } 1169 augment "/rt:routing/rt:control-plane-protocols/" 1170 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" { 1171 description 1172 "RSVP-TE generic data augmentation pertaining to neighbors"; 1173 /* To be added */ 1174 } 1176 /** 1177 * RSVP-TE generic augmentations of generic TE model. 1178 */ 1180 /* TE tunnel augmentation */ 1181 augment "/te:te/te:tunnels/te:tunnel/te:config" { 1182 when "/te:te/te:tunnels/te:tunnel" + 1183 "/te:p2p-primary-paths/te:p2p-primary-path/te:config" + 1184 "/te:path-setup-protocol = 'te-types:te-path-setup-rsvp'" { 1185 description 1186 "When the path signaling protocol is RSVP-TE "; 1187 } 1188 description 1189 "RSVP-TE generic data augmentation pertaining to TE tunnels"; 1190 uses lsp-properties_config; 1191 uses tunnel-properties_config; 1192 } 1194 augment "/te:te/te:tunnels/te:tunnel/te:state" { 1195 when "/te:te/te:tunnels/te:tunnel" + 1196 "/te:p2p-primary-paths/te:p2p-primary-path/te:config" + 1197 "/te:path-setup-protocol = 'te-types:te-path-setup-rsvp'" { 1198 description 1199 "When the path signaling protocol is RSVP-TE "; 1200 } 1201 description 1202 "RSVP-TE generic data augmentation pertaining to TE tunnels"; 1203 uses lsp-properties_config; 1204 uses tunnel-properties_config; 1205 } 1207 /* TE LSP augmentation */ 1208 grouping rsvp-te-lsp-properties { 1209 description "RSVP-TE LSP properties grouping"; 1210 leaf associated-rsvp-session { 1211 type leafref { 1212 path "/rt:routing/rt:control-plane-protocols/" 1213 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1214 + "rsvp:sessions/rsvp:session/rsvp:local-index"; 1215 } 1216 description 1217 "If the signalling protocol specified for this path is 1218 RSVP-TE, this leaf provides a reference to the associated 1219 session within the RSVP-TE protocol sessions list, such 1220 that details of the signaling can be retrieved."; 1221 } 1223 uses lsp-properties_config; 1224 uses lsp-explicit-route-information_state; 1225 uses lsp-record-route-information_state; 1226 } 1228 augment "/te:te/te:lsps-state/te:lsp" { 1229 when "/te:te/te:lsps-state/te:lsp" + 1230 "/te:path-setup-protocol = 'te-types:te-path-setup-rsvp'" { 1231 description 1232 "When the signaling protocol is RSVP-TE "; 1233 } 1234 description 1235 "RSVP-TE generic data augmentation pertaining to specific TE 1236 LSP"; 1237 uses rsvp-te-lsp-properties; 1238 } 1240 augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + 1241 "/te:p2p-primary-path/te:state/te:lsps/te:lsp" { 1242 when "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + 1243 "/te:p2p-primary-path/te:state/te:lsps/te:lsp" + 1244 "/te:path-setup-protocol = 'te-types:te-path-setup-rsvp'" { 1245 description 1246 "When the signaling protocol is RSVP-TE "; 1247 } 1248 description 1249 "RSVP-TE generic data augmentation pertaining to specific TE 1250 LSP"; 1251 uses rsvp-te-lsp-properties; 1252 } 1254 augment "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + 1255 "/te:p2p-secondary-path/te:state/te:lsps/te:lsp" { 1256 when "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + 1257 "/te:p2p-primary-path/te:state/te:lsps/te:lsp" + 1258 "/te:path-setup-protocol = 'te-types:te-path-setup-rsvp'" { 1259 description 1260 "When the signaling protocol is RSVP-TE "; 1261 } 1262 description 1263 "RSVP-TE generic data augmentation pertaining to specific TE 1264 LSP"; 1265 uses rsvp-te-lsp-properties; 1266 } 1267 /* TE interface augmentation */ 1268 augment "/te:te/te-dev:interfaces/te-dev:interface" { 1269 description 1270 "RSVP-TE generic data augmentation pertaining to specific TE 1271 interface"; 1272 } 1273 } 1274 1276 Figure 3: RSVP TE generic YANG module 1278 2.4. RSVP-TE MPLS Model 1280 The MPLS RSVP-TE YANG module augments the RSVP-TE generic module with 1281 parameters to configure and manage signaling of MPLS RSVP-TE LSPs. 1282 RSVP-TE YANG modules for other dataplane technologies (e.g. OTN or 1283 WDM) are outside the scope of this document and are defined in other 1284 documents. 1286 2.4.1. Tree Diagram 1288 The following are possible types of configuration and state data 1289 nodes in this module: 1291 o those augmenting or extending the generic RSVP-TE module 1293 o those augmenting or extending the TE module 1295 o those that are specific to the RSVP-TE MPLS module 1297 Below is a YANG tree representation for data items defined in the 1298 RSVP-TE MPLS module: 1300 module: ietf-rsvp-te-mpls 1301 augment 1302 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 1303 rsvp:rsvp: 1304 +--rw fast-reroute-local-revertive 1305 +--rw config 1306 | +--rw rsvp-frr-local-revert-delay? uint32 1307 +--ro state 1308 +--ro rsvp-frr-local-revert-delay? uint32 1309 augment 1310 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 1311 rsvp:rsvp/rsvp:interfaces: 1312 augment 1313 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 1314 rsvp:rsvp/rsvp:interfaces/rsvp:interface: 1316 augment 1317 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 1318 rsvp:rsvp/rsvp:globals/rsvp:sessions/rsvp:session/rsvp:state: 1319 augment 1320 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 1321 rsvp:rsvp/rsvp:neighbors: 1322 augment /te:te/te:tunnels/te:tunnel/te:config: 1323 +--rw local-protection-desired? empty 1324 +--rw bandwidth-protection-desired? empty 1325 +--rw node-protection-desired? empty 1326 +--rw non-php-desired? empty 1327 +--rw entropy-label-cap? empty 1328 +--rw oam-mep-entities-desired? empty 1329 +--rw oam-mip-entities-desired? empty 1330 augment /te:te/te:tunnels/te:tunnel/te:state: 1331 +--ro local-protection-desired? empty 1332 +--ro bandwidth-protection-desired? empty 1333 +--ro node-protection-desired? empty 1334 +--ro non-php-desired? empty 1335 +--ro entropy-label-cap? empty 1336 +--ro oam-mep-entities-desired? empty 1337 +--ro oam-mip-entities-desired? empty 1338 augment /te:te/te:lsps-state/te:lsp: 1339 +--ro local-protection-desired? empty 1340 +--ro bandwidth-protection-desired? empty 1341 +--ro node-protection-desired? empty 1342 +--ro non-php-desired? empty 1343 +--ro entropy-label-cap? empty 1344 +--ro oam-mep-entities-desired? empty 1345 +--ro oam-mip-entities-desired? empty 1346 +--ro backup-info 1347 +--ro backup-tunnel-name? string 1348 +--ro backup-frr-on? uint8 1349 +--ro backup-protected-lsp-num? uint32 1350 augment 1351 /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths/te:p2p-primary-path/ 1352 te:state/te:lsps/te:lsp: 1353 +--ro local-protection-desired? empty 1354 +--ro bandwidth-protection-desired? empty 1355 +--ro node-protection-desired? empty 1356 +--ro non-php-desired? empty 1357 +--ro entropy-label-cap? empty 1358 +--ro oam-mep-entities-desired? empty 1359 +--ro oam-mip-entities-desired? empty 1360 +--ro backup-info 1361 +--ro backup-tunnel-name? string 1362 +--ro backup-frr-on? uint8 1363 +--ro backup-protected-lsp-num? uint32 1365 augment 1366 /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths/ 1367 te:p2p-secondary-path/te:state/te:lsps/te:lsp: 1368 +--ro local-protection-desired? empty 1369 +--ro bandwidth-protection-desired? empty 1370 +--ro node-protection-desired? empty 1371 +--ro non-php-desired? empty 1372 +--ro entropy-label-cap? empty 1373 +--ro oam-mep-entities-desired? empty 1374 +--ro oam-mip-entities-desired? empty 1375 +--ro backup-info 1376 +--ro backup-tunnel-name? string 1377 +--ro backup-frr-on? uint8 1378 +--ro backup-protected-lsp-num? uint32 1379 augment /te:te/te-dev:interfaces/te-dev:interface: 1380 +--rw bandwidth-mpls-reservable 1381 +--rw config 1382 | +--rw (bandwidth-value)? 1383 | | +--:(absolute) 1384 | | | +--rw absolute-value? uint32 1385 | | +--:(percentage) 1386 | | +--rw percent-value? uint32 1387 | +--rw (bc-model-type)? 1388 | +--:(bc-model-rdm) 1389 | | +--rw bc-model-rdm 1390 | | +--rw bandwidth-mpls-constraints 1391 | | +--rw maximum-reservable? uint32 1392 | | +--rw bc-value* uint32 1393 | +--:(bc-model-mam) 1394 | | +--rw bc-model-mam 1395 | | +--rw bandwidth-mpls-constraints 1396 | | +--rw maximum-reservable? uint32 1397 | | +--rw bc-value* uint32 1398 | +--:(bc-model-mar) 1399 | +--rw bc-model-mar 1400 | +--rw bandwidth-mpls-constraints 1401 | +--rw maximum-reservable? uint32 1402 | +--rw bc-value* uint32 1403 +--ro state 1404 +--ro (bandwidth-value)? 1405 | +--:(absolute) 1406 | | +--ro absolute-value? uint32 1407 | +--:(percentage) 1408 | +--ro percent-value? uint32 1409 +--ro (bc-model-type)? 1410 +--:(bc-model-rdm) 1411 | +--ro bc-model-rdm 1412 | +--ro bandwidth-mpls-constraints 1413 | +--ro maximum-reservable? uint32 1414 | +--ro bc-value* uint32 1415 +--:(bc-model-mam) 1416 | +--ro bc-model-mam 1417 | +--ro bandwidth-mpls-constraints 1418 | +--ro maximum-reservable? uint32 1419 | +--ro bc-value* uint32 1420 +--:(bc-model-mar) 1421 +--ro bc-model-mar 1422 +--ro bandwidth-mpls-constraints 1423 +--ro maximum-reservable? uint32 1424 +--ro bc-value* uint32 1425 augment /te:te/te-dev:interfaces/te-dev:interface: 1426 +--rw rsvp-te-frr-backups 1427 +--rw config 1428 | +--rw (type)? 1429 | +--:(static-tunnel) 1430 | | +--rw static-backups 1431 | | +--rw static-backup* [backup-tunnel-name] 1432 | | +--rw backup-tunnel-name -> 1433 ../config/backup-tunnel-name 1434 | | +--rw config 1435 | | | +--rw backup-tunnel-name? -> 1436 /te:te/tunnels/tunnel/name 1437 | | +--ro state 1438 | | +--ro backup-tunnel-name? -> 1439 /te:te/tunnels/tunnel/name 1440 | +--:(auto-tunnel) 1441 | +--rw auto-backup-protection? identityref 1442 | +--rw auto-backup-path-computation? identityref 1443 +--ro state 1444 +--ro (type)? 1445 +--:(static-tunnel) 1446 | +--ro static-backups 1447 | +--ro static-backup* [backup-tunnel-name] 1448 | +--ro backup-tunnel-name -> 1449 ../config/backup-tunnel-name 1450 | +--ro config 1451 | | +--ro backup-tunnel-name? -> 1452 /te:te/tunnels/tunnel/name 1453 | +--ro state 1454 | +--ro backup-tunnel-name? -> 1455 /te:te/tunnels/tunnel/name 1456 +--:(auto-tunnel) 1457 +--ro auto-backup-protection? identityref 1458 +--ro auto-backup-path-computation? identityref 1460 Figure 4: RSVP-TE MPLS Tree diagram 1462 2.4.2. YANG Module 1464 file "ietf-rsvp-te@2017-03-10.yang" 1465 module ietf-rsvp-te-mpls { 1467 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls"; 1469 prefix "rsvp-te-mpls"; 1471 import ietf-rsvp { 1472 prefix "rsvp"; 1473 } 1475 import ietf-routing { 1476 prefix "rt"; 1477 } 1479 import ietf-te-mpls-types { 1480 prefix "te-mpls-types"; 1481 } 1483 import ietf-te-types { 1484 prefix "te-types"; 1485 } 1487 import ietf-te { 1488 prefix "te"; 1489 } 1491 import ietf-te-device { 1492 prefix "te-dev"; 1493 } 1495 organization 1496 "IETF Traffic Engineering Architecture and Signaling (TEAS) 1497 Working Group"; 1499 contact 1500 "WG Web: 1501 WG List: 1503 WG Chair: Lou Berger 1504 1506 WG Chair: Vishnu Pavan Beeram 1507 1509 Editor: Vishnu Pavan Beeram 1510 1512 Editor: Tarek Saad 1513 1515 Editor: Rakesh Gandhi 1516 1518 Editor: Himanshu Shah 1519 1521 Editor: Xufeng Liu 1522 1524 Editor: Xia Chen 1525 1527 Editor: Raqib Jones 1528 1530 Editor: Bin Wen 1531 "; 1533 description 1534 "Latest update to MPLS RSVP-TE YANG data model."; 1536 revision "2017-06-29" { 1537 description "Update to MPLS RSVP-TE YANG initial revision."; 1538 reference "RFC3209, RFC6511, RFC6790, RFC7260, RFC4859, RFC4090"; 1539 } 1541 /* RSVP-TE MPLS LSPs groupings */ 1542 grouping lsp-attributes-flags-mpls_config { 1543 description 1544 "Configuration parameters relating to RSVP-TE MPLS LSP 1545 attribute flags"; 1546 leaf non-php-desired { 1547 type empty; 1548 description 1549 "Non-PHP is desired"; 1550 reference "RFC6511"; 1551 } 1552 leaf entropy-label-cap { 1553 type empty; 1554 description "Entropy label capability"; 1555 reference "RFC6790"; 1556 } 1557 leaf oam-mep-entities-desired { 1558 type empty; 1559 description "OAM MEP entities desired"; 1560 reference "RFC7260"; 1561 } 1562 leaf oam-mip-entities-desired { 1563 type empty; 1564 description "OAM MIP entities desired"; 1565 reference "RFC7260"; 1566 } 1567 } 1569 grouping lsp-session-attributes-obj-flags-mpls_config { 1570 description 1571 "Configuration parameters relating to RSVP-TE MPLS LSP 1572 session attribute flags"; 1573 reference 1574 "RFC4859: Registry for RSVP-TE Session Flags"; 1575 leaf local-protection-desired { 1576 type empty; 1577 description "Fastreroute local protection is desired."; 1578 reference 1579 "RFC4859: Registry for RSVP-TE Session Flags"; 1580 } 1581 leaf bandwidth-protection-desired { 1582 type empty; 1583 description 1584 "Request FRR bandwidth protection on LSRs if 1585 present."; 1586 reference "RFC4090"; 1587 } 1588 leaf node-protection-desired { 1589 type empty; 1590 description 1591 "Request FRR node protection on LSRs if 1592 present."; 1593 reference "RFC4090"; 1594 } 1595 } 1597 grouping tunnel-properties-mpls { 1598 description 1599 "Top level grouping for LSP properties."; 1600 uses lsp-session-attributes-obj-flags-mpls_config; 1601 uses lsp-attributes-flags-mpls_config; 1602 } 1604 grouping lsp-properties-mpls { 1605 description 1606 "Top level grouping for LSP properties."; 1607 uses lsp-session-attributes-obj-flags-mpls_config; 1608 uses lsp-attributes-flags-mpls_config; 1609 } 1610 /* End of RSVP-TE MPLS LSPs groupings */ 1612 /* MPLS RSVP-TE interface groupings */ 1613 grouping rsvp-te-interface_state { 1614 description 1615 "The RSVP-TE interface state grouping"; 1616 leaf over-subscribed-bandwidth { 1617 type uint32; 1618 description 1619 "The amount of over-subscribed bandwidth on 1620 the interface"; 1621 } 1622 } 1624 grouping rsvp-te-interface-softpreemption_state { 1625 description 1626 "The RSVP-TE interface preeemptions state grouping"; 1627 container interface-softpreemption-state { 1628 description 1629 "The RSVP-TE interface preeemptions state grouping"; 1630 leaf soft-preempted-bandwidth { 1631 type uint32; 1632 description 1633 "The amount of soft-preempted bandwidth on 1634 this interface"; 1635 } 1636 list lsps { 1637 key 1638 "source destination tunnel-id lsp-id "+ 1639 "extended-tunnel-id"; 1640 description 1641 "List of LSPs that are soft-preempted"; 1642 leaf source { 1643 type leafref { 1644 path "/te:te/te:lsps-state/te:lsp/"+ 1645 "te:source"; 1646 } 1647 description 1648 "Tunnel sender address extracted from 1649 SENDER_TEMPLATE object"; 1650 reference "RFC3209"; 1651 } 1652 leaf destination { 1653 type leafref { 1654 path "/te:te/te:lsps-state/te:lsp/"+ 1655 "te:destination"; 1656 } 1657 description 1658 "Tunnel endpoint address extracted from 1659 SESSION object"; 1660 reference "RFC3209"; 1661 } 1662 leaf tunnel-id { 1663 type leafref { 1664 path "/te:te/te:lsps-state/te:lsp/"+ 1665 "te:tunnel-id"; 1666 } 1667 description 1668 "Tunnel identifier used in the SESSION 1669 that remains constant over the life 1670 of the tunnel."; 1671 reference "RFC3209"; 1672 } 1673 leaf lsp-id { 1674 type leafref { 1675 path "/te:te/te:lsps-state/te:lsp/"+ 1676 "te:lsp-id"; 1677 } 1678 description 1679 "Identifier used in the SENDER_TEMPLATE 1680 and the FILTER_SPEC that can be changed 1681 to allow a sender to share resources with 1682 itself."; 1683 reference "RFC3209"; 1684 } 1685 leaf extended-tunnel-id { 1686 type leafref { 1687 path "/te:te/te:lsps-state/te:lsp/"+ 1688 "te:extended-tunnel-id"; 1689 } 1690 description 1691 "Extended Tunnel ID of the LSP."; 1692 reference "RFC3209"; 1693 } 1694 leaf type { 1695 type leafref { 1696 path "/te:te/te:lsps-state/te:lsp/"+ 1697 "te:type"; 1698 } 1699 description "LSP type P2P or P2MP"; 1700 } 1701 } 1703 } 1704 } 1706 grouping bandwidth-mpls-constraints { 1707 description "Bandwidth constraints."; 1708 container bandwidth-mpls-constraints { 1709 description 1710 "Holds the bandwidth constraints properties"; 1711 leaf maximum-reservable { 1712 type uint32 { 1713 range "0..4294967295"; 1714 } 1715 description 1716 "The maximum reservable bandwidth on the 1717 interface"; 1718 } 1719 leaf-list bc-value { 1720 type uint32 { 1721 range "0..4294967295"; 1722 } 1723 max-elements 8; 1724 description 1725 "The bandwidth constraint type"; 1726 } 1727 } 1728 } 1730 grouping bandwidth-constraint-values { 1731 description 1732 "Packet bandwidth contraints values"; 1733 choice value-type { 1734 description 1735 "Value representation"; 1736 case percentages { 1737 container perc-values { 1738 uses bandwidth-mpls-constraints; 1739 description 1740 "Percentage values"; 1741 } 1742 } 1743 case absolutes { 1744 container abs-values { 1745 uses bandwidth-mpls-constraints; 1746 description 1747 "Absolute values"; 1748 } 1749 } 1750 } 1752 } 1754 grouping bandwidth-mpls-reservable_config { 1755 description 1756 "Interface bandwidth reservable configuration grouping"; 1757 choice bandwidth-value { 1758 description "Reservable bandwidth configuration choice"; 1759 case absolute { 1760 leaf absolute-value { 1761 type uint32; 1762 description "Absolute value of the bandwidth"; 1763 } 1764 } 1765 case percentage { 1766 leaf percent-value { 1767 type uint32 { 1768 range "0..4294967295"; 1769 } 1770 description "Percentage reservable bandwidth"; 1771 } 1772 description 1773 "The maximum reservable bandwidth on the 1774 interface"; 1775 } 1776 } 1777 choice bc-model-type { 1778 description 1779 "Reservable bandwidth percentage capacity 1780 values."; 1781 case bc-model-rdm { 1782 container bc-model-rdm { 1783 description 1784 "Russian Doll Model Bandwidth Constraints."; 1785 uses bandwidth-mpls-constraints; 1786 } 1787 } 1788 case bc-model-mam { 1789 container bc-model-mam { 1790 uses bandwidth-mpls-constraints; 1791 description 1792 "Maximum Allocation Model Bandwidth 1793 Constraints."; 1794 } 1795 } 1796 case bc-model-mar { 1797 container bc-model-mar { 1798 uses bandwidth-mpls-constraints; 1799 description 1800 "Maximum Allocation with Reservation Model 1801 Bandwidth Constraints."; 1802 } 1803 } 1804 } 1805 } 1807 grouping bandwidth-mpls-reservable { 1808 description 1809 "Packet reservable bandwidth"; 1810 container bandwidth-mpls-reservable { 1811 description 1812 "Interface bandwidth reservable container"; 1813 container config { 1814 description 1815 "Configuration parameters relating to 1816 interface bandwidth reservable properties"; 1817 uses bandwidth-mpls-reservable_config; 1818 } 1819 container state { 1820 config false; 1821 description 1822 "State parameters relating to 1823 interface bandwidth reservable properties"; 1824 uses bandwidth-mpls-reservable_config; 1825 } 1826 } 1827 } 1828 /* End of RSVP-TE interface groupings */ 1830 /* RSVP-TE FRR groupings */ 1831 grouping rsvp-te-frr-backups_config { 1832 description 1833 "Top level container for RSVP-TE FRR backup parameters"; 1834 choice type { 1835 description 1836 "FRR backup tunnel type"; 1837 case static-tunnel { 1838 container static-backups { 1839 description "List of static backups"; 1840 list static-backup { 1841 key "backup-tunnel-name"; 1842 description 1843 "List of static backup tunnels that 1844 protect the RSVP-TE interface."; 1845 leaf backup-tunnel-name { 1846 type leafref { 1847 path "../config/backup-tunnel-name"; 1849 } 1850 description "Backup tunnel name"; 1851 } 1852 container config { 1853 description "Configuration for backup tunnels"; 1854 leaf backup-tunnel-name { 1855 type leafref { 1856 path "/te:te/te:tunnels/te:tunnel/te:name"; 1857 } 1858 description "FRR Backup tunnel name"; 1859 } 1860 } 1861 container state { 1862 config false; 1863 description "State for backup tunnels"; 1864 leaf backup-tunnel-name { 1865 type leafref { 1866 path "/te:te/te:tunnels/te:tunnel/te:name"; 1867 } 1868 description "FRR Backup tunnel name"; 1869 } 1870 } 1871 } 1872 } 1873 } 1874 case auto-tunnel { 1875 leaf auto-backup-protection { 1876 type identityref { 1877 base te-mpls-types:backup-protection-type; 1878 } 1879 default 1880 te-mpls-types:backup-protection-node-link; 1881 description 1882 "Describes whether the backup should offer 1883 protection against link, node, or either"; 1884 } 1885 leaf auto-backup-path-computation { 1886 type identityref { 1887 base 1888 te-types:path-computation-srlg-type; 1889 } 1890 description 1891 "FRR backup computation type"; 1892 } 1893 } 1894 } 1895 } 1896 grouping rsvp-te-frr-backups { 1897 description 1898 "RSVP-TE facility backup grouping"; 1899 container rsvp-te-frr-backups { 1900 description 1901 "RSVP-TE facility backup properties"; 1902 container config { 1903 description 1904 "Configuration parameters relating to 1905 RSVP-TE facility backups properties"; 1906 uses rsvp-te-frr-backups_config; 1907 } 1908 container state { 1909 config false; 1910 description 1911 "State parameters relating to 1912 RSVP-TE facility backups properties"; 1913 uses rsvp-te-frr-backups_config; 1914 } 1915 } 1916 } 1918 grouping lps-backup-info_state { 1919 description "Backup/bypass LSP related information"; 1920 container backup-info { 1921 description 1922 "backup information"; 1924 leaf backup-tunnel-name { 1925 type string; 1926 description 1927 "If an LSP has an FRR backup LSP that can protect it, 1928 this field identifies the tunnel name of the backup LSP. 1929 Otherwise, this field is empty."; 1930 } 1932 leaf backup-frr-on { 1933 type uint8; 1934 description 1935 "Whether currently this backup is carrying traffic"; 1936 } 1938 leaf backup-protected-lsp-num { 1939 type uint32; 1940 description 1941 "Number of LSPs protected by this backup"; 1942 } 1943 } 1945 } 1947 grouping fast-reroute-local-revertive_config { 1948 description "RSVP-TE FRR local revertive grouping"; 1949 leaf rsvp-frr-local-revert-delay { 1950 type uint32; 1951 description 1952 "Time to wait after primary link is restored 1953 before node attempts local revertive 1954 procedures."; 1955 } 1956 } 1958 /*** End of RSVP-TE FRR backup information ***/ 1960 grouping fast-reroute-local-revertive { 1961 description 1962 "Top level grouping for globals properties"; 1963 container fast-reroute-local-revertive { 1964 description "RSVP-TE FRR local revertive container"; 1965 container config { 1966 description 1967 "Configuration parameters relating to 1968 global MPLS RSVP-TE properties"; 1969 uses fast-reroute-local-revertive_config; 1970 } 1971 container state { 1972 config false; 1973 description 1974 "State parameters relating to 1975 global MPLS RSVP-TE properties"; 1976 uses fast-reroute-local-revertive_config; 1977 } 1978 } 1979 } 1981 /* RSVP-TE global properties */ 1982 augment "/rt:routing/rt:control-plane-protocols/" 1983 + "rt:control-plane-protocol/rsvp:rsvp" { 1984 description 1985 "RSVP-TE augmentation to RSVP globals"; 1986 uses fast-reroute-local-revertive; 1987 } 1989 /* Linkage to the base RSVP all interfaces */ 1990 augment "/rt:routing/rt:control-plane-protocols/" 1991 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { 1992 description 1993 "Augmentations for RSVP-TE MPLS all interfaces properties"; 1994 /* To be added */ 1995 } 1997 /* Linkage to per RSVP interface */ 1998 augment "/rt:routing/rt:control-plane-protocols/" 1999 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2000 "rsvp:interface" { 2001 description 2002 "Augmentations for RSVP-TE MPLS per interface properties"; 2003 /* To be added */ 2004 } 2006 /* add augmentation for sessions neighbors */ 2007 augment "/rt:routing/rt:control-plane-protocols/" 2008 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 2009 + "rsvp:sessions/rsvp:session/rsvp:state" { 2010 description 2011 "Augmentations for RSVP-TE MPLS sessions"; 2012 /* To be added */ 2013 } 2015 augment "/rt:routing/rt:control-plane-protocols/" 2016 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" { 2017 description 2018 "Augmentations for RSVP-TE MPLS neighbors properties"; 2019 /* To be added */ 2020 } 2022 /** 2023 * Augmentation to TE generic module 2024 */ 2025 augment "/te:te/te:tunnels/te:tunnel/te:config" { 2026 description 2027 "Augmentations for RSVP-TE MPLS TE tunnel properties"; 2028 uses tunnel-properties-mpls; 2029 } 2031 augment "/te:te/te:tunnels/te:tunnel/te:state" { 2032 description 2033 "Augmentations for RSVP-TE MPLS TE tunnel properties"; 2034 uses tunnel-properties-mpls; 2035 } 2037 augment "/te:te/te:lsps-state/te:lsp" { 2038 when "/te:te/te:lsps-state/te:lsp" + 2039 "/te:path-setup-protocol = 'te-types:te-path-setup-rsvp'" { 2040 description 2041 "When the signaling protocol is RSVP-TE "; 2042 } 2043 description 2044 "RSVP-TE MPLS LSP state properties"; 2045 uses lsp-properties-mpls; 2046 uses lps-backup-info_state; 2047 } 2049 augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + 2050 "/te:p2p-primary-path/te:state/te:lsps/te:lsp" { 2051 when "/te:te/te:tunnels/te:tunnel" + 2052 "/te:p2p-secondary-paths/te:p2p-secondary-path/te:config" + 2053 "/te:path-setup-protocol = 'te-types:te-path-setup-rsvp'" { 2054 description 2055 "When the signaling protocol is RSVP-TE "; 2056 } 2057 description 2058 "RSVP-TE MPLS LSP state properties"; 2059 uses lsp-properties-mpls; 2060 uses lps-backup-info_state; 2061 } 2063 augment "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + 2064 "/te:p2p-secondary-path/te:state/te:lsps/te:lsp" { 2065 when "/te:te/te:tunnels/te:tunnel" + 2066 "/te:p2p-secondary-paths/te:p2p-secondary-path/te:config" + 2067 "/te:path-setup-protocol = 'te-types:te-path-setup-rsvp'" { 2068 description 2069 "When the signaling protocol is RSVP-TE "; 2070 } 2071 description 2072 "RSVP-TE MPLS LSP state properties"; 2073 uses lsp-properties-mpls; 2074 uses lps-backup-info_state; 2075 } 2077 augment "/te:te/te-dev:interfaces/te-dev:interface" { 2078 description 2079 "RSVP reservable bandwidth configuration properties"; 2080 uses bandwidth-mpls-reservable; 2081 } 2083 augment "/te:te/te-dev:interfaces/te-dev:interface" { 2084 description 2085 "RSVP reservable bandwidth configuration properties"; 2086 uses rsvp-te-frr-backups; 2087 } 2088 } 2089 2091 Figure 5: RSVP TE MPLS YANG module 2093 Figure 5 shows the YANG tree representation of the RSVP TE MPLS 2094 module that augments RSVP-TE module as well as RSVP and TE YANG 2095 modules. 2097 3. IANA Considerations 2099 This document registers the following URIs in the IETF XML registry 2100 [RFC3688]. Following the format in [RFC3688], the following 2101 registration is requested to be made. 2103 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-te XML: N/A, the requested 2104 URI is an XML namespace. 2106 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls XML: N/A, the 2107 requested URI is an XML namespace. 2109 This document registers a YANG module in the YANG Module Names 2110 registry [RFC6020]. 2112 name: ietf-rsvp namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp-te 2113 prefix: ietf-rsvp reference: RFC3209 2115 name: ietf-rsvp-te namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp- 2116 te-mpls prefix: ietf-rsvp-te reference: RFC3209 2118 4. Security Considerations 2120 The YANG module defined in this memo is designed to be accessed via 2121 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 2122 secure transport layer and the mandatory-to-implement secure 2123 transport is SSH [RFC6242]. The NETCONF access control model 2124 [RFC6536] provides means to restrict access for particular NETCONF 2126 users to a pre-configured subset of all available NETCONF protocol 2127 operations and content. 2129 There are a number of data nodes defined in the YANG module which are 2130 writable/creatable/deletable (i.e., config true, which is the 2131 default). These data nodes may be considered sensitive or vulnerable 2132 in some network environments. Write operations (e.g., ) 2133 to these data nodes without proper protection can have a negative 2134 effect on network operations. 2136 5. Acknowledgement 2138 The authors would like to thank Lou Berger for reviewing and 2139 providing valuable feedback on this document. 2141 6. Contributors 2143 Xia Chen 2144 Huawei Technologies 2146 Email: jescia.chenxia@huawei.com 2148 Raqib Jones 2149 Brocade 2151 Email: raqib@Brocade.com 2153 Bin Wen 2154 Comcast 2156 Email: Bin_Wen@cable.comcast.com 2158 7. References 2160 7.1. Normative References 2162 [I-D.ietf-teas-yang-rsvp] 2163 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 2164 and H. Shah, "A YANG Data Model for Resource Reservation 2165 Protocol (RSVP)", draft-ietf-teas-yang-rsvp-07 (work in 2166 progress), March 2017. 2168 [I-D.ietf-teas-yang-te] 2169 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 2170 I. Bryskin, "A YANG Data Model for Traffic Engineering 2171 Tunnels and Interfaces", draft-ietf-teas-yang-te-07 (work 2172 in progress), June 2017. 2174 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2175 Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ 2176 RFC2119, March 1997, 2177 . 2179 [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. 2180 Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 2181 Functional Specification", RFC 2205, DOI 10.17487/RFC2205, 2182 September 1997, . 2184 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 2185 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 2186 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 2187 . 2189 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 2190 DOI 10.17487/RFC3688, January 2004, 2191 . 2193 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 2194 the Network Configuration Protocol (NETCONF)", RFC 6020, 2195 DOI 10.17487/RFC6020, October 2010, 2196 . 2198 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2199 and A. Bierman, Ed., "Network Configuration Protocol 2200 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2201 . 2203 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 2204 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 2205 . 2207 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 2208 Protocol (NETCONF) Access Control Model", RFC 6536, DOI 2209 10.17487/RFC6536, March 2012, 2210 . 2212 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 2213 6991, DOI 10.17487/RFC6991, July 2013, 2214 . 2216 7.2. Informative References 2218 [I-D.openconfig-mpls-consolidated-model] 2219 George, J., Fang, L., eric.osborne@level3.com, e., and R. 2220 Shakir, "MPLS / TE Model for Service Provider Networks", 2221 draft-openconfig-mpls-consolidated-model-02 (work in 2222 progress), October 2015. 2224 [I-D.openconfig-netmod-opstate] 2225 Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling 2226 of Operational State Data in YANG", draft-openconfig- 2227 netmod-opstate-01 (work in progress), July 2015. 2229 Authors' Addresses 2231 Vishnu Pavan Beeram 2232 Juniper Networks 2234 Email: vbeeram@juniper.net 2236 Tarek Saad (editor) 2237 Cisco Systems, Inc. 2239 Email: tsaad@cisco.com 2241 Rakesh Gandhi 2242 Cisco Systems, Inc. 2244 Email: rgandhi@cisco.com 2246 Xufeng Liu 2247 Jabil 2249 Email: Xufeng_Liu@jabil.com 2251 Igor Bryskin 2252 Huawei Technologies 2254 Email: Igor.Bryskin@huawei.com 2256 Himanshu Shah 2257 Ciena 2259 Email: hshah@ciena.com