idnits 2.17.1 draft-ietf-teas-yang-rsvp-te-08.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 236 has weird spacing: '...nnel-id ine...' == Line 285 has weird spacing: '...k-tp-id te-...' == Line 290 has weird spacing: '...k-tp-id te-...' == Line 296 has weird spacing: '...-number ine...' == Line 314 has weird spacing: '...k-tp-id te-...' == (32 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 09, 2020) is 1502 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-19) exists of draft-ietf-teas-yang-rsvp-12 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-22 Summary: 0 errors (**), 0 flaws (~~), 10 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 T. Saad 4 Intended status: Standards Track Juniper Networks 5 Expires: September 10, 2020 R. Gandhi 6 Cisco Systems, Inc. 7 X. Liu 8 Volta Networks 9 I. Bryskin 10 Huawei Technologies 11 H. Shah 12 Ciena 13 March 09, 2020 15 A YANG Data Model for RSVP-TE Protocol 16 draft-ietf-teas-yang-rsvp-te-08 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 26 are technology agnostic. The generic RSVP-TE module is to be 27 augmented by technology specific RSVP-TE modules that define 28 technology specific data. This document also defines the 29 augmentation for RSVP-TE 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 https://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 September 10, 2020. 50 Copyright Notice 52 Copyright (c) 2020 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 (https://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. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 70 2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 4 71 2.1. Module Relationship . . . . . . . . . . . . . . . . . . . 4 72 2.2. Model Tree Diagrams . . . . . . . . . . . . . . . . . . . 5 73 2.2.1. RSVP-TE Model Tree Diagram . . . . . . . . . . . . . 5 74 2.2.2. RSVP-TE MPLS Model Tree Diagram . . . . . . . . . . . 14 75 2.3. YANG Modules . . . . . . . . . . . . . . . . . . . . . . 16 76 2.3.1. RSVP-TE YANG Module . . . . . . . . . . . . . . . . . 16 77 2.3.2. RSVP-TE MPLS YANG Module . . . . . . . . . . . . . . 30 78 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 79 4. Security Considerations . . . . . . . . . . . . . . . . . . . 43 80 5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 43 81 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 43 82 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 44 83 7.1. Normative References . . . . . . . . . . . . . . . . . . 44 84 7.2. Informative References . . . . . . . . . . . . . . . . . 46 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46 87 1. Introduction 89 YANG [RFC7950] is a data modeling language that was introduced to 90 define the contents of a conceptual data store that allows networked 91 devices to be managed using NETCONF [RFC6241]. YANG has proved 92 relevant beyond its initial confines, as bindings to other interfaces 93 (e.g. RESTCONF [RFC8040]) and encoding other than XML (e.g. JSON) 94 are being defined. Furthermore, YANG data models can be used as the 95 basis of implementation for other interfaces, such as CLI and 96 programmatic APIs. 98 This document defines a generic YANG data model for configuring and 99 managing RSVP-TE LSP(s) [RFC3209]. The RSVP-TE generic model 100 augments the RSVP base and extended models defined in 101 [I-D.ietf-teas-yang-rsvp], and adds TE extensions to the RSVP 102 protocol [RFC2205] model configuration and state data. The 103 technology specific RSVP-TE models augment the generic RSVP-TE model 104 with additional technology specific parameters. For example, this 105 document also defines the MPLS RSVP-TE model for configuring and 106 managing MPLS RSVP TE LSP(s). 108 In addition to augmenting the RSVP YANG module, the modules defined 109 in this document augment the TE Interfaces, Tunnels and LSP(s) YANG 110 module defined in [I-D.ietf-teas-yang-te] to define additional 111 parameters to enable signaling for RSVP-TE. 113 1.1. Terminology 115 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 116 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 117 "OPTIONAL" in this document are to be interpreted as described in BCP 118 14 [RFC2119] [RFC8174] when, and only when, they appear in all 119 capitals, as shown here. 121 The terminology for describing YANG data models is found in 122 [RFC7950]. 124 1.2. Prefixes in Data Node Names 126 In this document, names of data nodes and other data model objects 127 are prefixed using the standard prefix associated with the 128 corresponding YANG imported modules, as shown in Table 1. 130 +---------------+--------------------+-------------------------------+ 131 | Prefix | YANG module | Reference | 132 +---------------+--------------------+-------------------------------+ 133 | yang | ietf-yang-types | [RFC6991] | 134 | inet | ietf-inet-types | [RFC6991] | 135 | te | ietf-te | [I-D.ietf-teas-yang-te] | 136 | rsvp | ietf-rsvp | [I-D.ietf-teas-yang-rsvp] | 137 | te-dev | ietf-te-device | [I-D.ietf-teas-yang-te] | 138 | te-types | ietf-te-types | [I-D.ietf-teas-yang-te-types] | 139 | te-mpls-types | ietf-te-mpls-types | [I-D.ietf-teas-yang-te-types] | 140 | rsvp-te | ietf-rsvp-te | this document | 141 | rsvp-te-mpls | ietf-rsvp-te-mpls | this document | 142 +---------------+--------------------+-------------------------------+ 144 Table 1: Prefixes and corresponding YANG modules 146 2. Model Overview 148 The RSVP-TE generic model augments the RSVP base and extended YANG 149 models defined in [I-D.ietf-teas-yang-rsvp]. It also augments the TE 150 tunnels and interfaces module defined in [I-D.ietf-teas-yang-te] to 151 cover parameters specific to the configuration and management of 152 RSVP-TE interfaces, tunnels and LSP(s). 154 The RSVP-TE MPLS YANG model augments the RSVP-TE generic model with 155 parameters to configure and manage signaling of MPLS RSVP-TE LSPs. 156 RSVP-TE model augmentation for other dataplane technologies (e.g. 157 OTN or WDM) are outside the scope of this document. 159 There are three types of configuration and state data nodes in 160 module(s) defined in this document: 162 o those augmenting or extending the base RSVP module that is defined 163 in [I-D.ietf-teas-yang-rsvp] 165 o those augmenting or extending the base TE module defined in 166 [I-D.ietf-teas-yang-te] 168 o those that are specific to the RSVP-TE and RSVP-TE MPLS modules 169 defined in this document. 171 2.1. Module Relationship 173 The data pertaining to RSVP-TE in this document is divided into two 174 modules: a technology agnostic RSVP-TE module that holds generic 175 parameters for RSVP-TE applicable to all technologies, and a MPLS 176 technology specific RSVP-TE module that holds parameters specific to 177 MPLS technology. 179 The relationship between the different modules is shown in Figure 1. 181 TE basic +---------+ 182 module | ietf-te | o: augment 183 +---------+ 184 o 185 | 186 | 187 +--------------+ 188 RSVP-TE module | ietf-rsvp-te |o . . . 189 +--------------+ \ 190 | \ 191 o +--------------------+ 192 +-----------+ | ietf-rsvp-te-mpls | 193 RSVP module | ietf-rsvp | +--------------------+ 194 +-----------+ RSVP-TE with MPLS 195 o 196 | 197 RSVP extended | 198 module +--------------------+ 199 | ietf-rsvp-extended | 200 +--------------------+ 202 Figure 1: Relationship of RSVP and RSVP-TE modules with other 203 protocol modules 205 2.2. Model Tree Diagrams 207 A full tree diagram of the module(s) defined in this document as per 208 the syntax defined in [RFC8340] are given in subsequent sections. 210 2.2.1. RSVP-TE Model Tree Diagram 212 Figure 2 shows the YANG tree diagram of the RSVP-TE generic YANG 213 model defined in module ietf-rsvp-te.yang. 215 module: ietf-rsvp-te 216 augment /rt:routing/rt:control-plane-protocols 217 /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals: 218 +--rw global-soft-preemption! 219 +--rw soft-preemption-timeout? uint16 220 augment /rt:routing/rt:control-plane-protocols 221 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces: 222 +--rw rsvp-te-interface-attributes 223 +--ro state 224 augment /rt:routing/rt:control-plane-protocols 225 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 226 /rsvp:interface: 228 +--rw rsvp-te-interface-attributes 229 +--ro state 230 augment /rt:routing/rt:control-plane-protocols 231 /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals 232 /rsvp:sessions: 233 +--ro session-te* [tunnel-endpoint tunnel-id extended-tunnel-id] 234 +--ro tunnel-endpoint inet:ip-address 235 +--ro tunnel-id uint16 236 +--ro extended-tunnel-id inet:ip-address 237 +--ro destination-port? inet:port-number 238 +--ro protocol-id? uint8 239 +--ro source? inet:ip-address 240 +--ro destination? inet:ip-address 241 +--ro session-name? string 242 +--ro session-state? enumeration 243 +--ro session-type? identityref 244 +--ro psbs 245 | +--ro psb* [] 246 | +--ro source-port? inet:port-number 247 | +--ro expires-in? uint32 248 | +--ro tspec-average-rate? rt-types:bandwidth-ieee-float32 249 | +--ro tspec-size? rt-types:bandwidth-ieee-float32 250 | +--ro tspec-peak-rate? rt-types:bandwidth-ieee-float32 251 | +--ro min-policed-unit? uint32 252 | +--ro max-packet-size? uint32 253 +--ro rsbs 254 +--ro rsb* [] 255 +--ro source-port? inet:port-number 256 +--ro reservation-style? identityref 257 +--ro expires-in? uint32 258 +--ro fspec-average-rate? rt-types:bandwidth-ieee-float32 259 +--ro fspec-size? rt-types:bandwidth-ieee-float32 260 +--ro fspec-peak-rate? rt-types:bandwidth-ieee-float32 261 +--ro min-policed-unit? uint32 262 +--ro max-packet-size? uint32 263 augment /rt:routing/rt:control-plane-protocols 264 /rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors: 265 augment /te:te/te:tunnels/te:tunnel: 266 +--rw lsp-signaled-name? string 267 +--rw session-attribute* identityref 268 +--rw lsp-attribute* identityref 269 +--rw retry-timer? uint16 270 augment /te:te/te:lsps-state/te:lsp: 271 +--ro associated-rsvp-session? leafref 272 +--ro lsp-signaled-name? string 273 +--ro session-attribute* identityref 274 +--ro lsp-attribute* identityref 275 +--ro explicit-route-objects 276 | +--ro incoming-explicit-route-hop* [index] 277 | | +--ro index uint32 278 | | +--ro (type)? 279 | | +--:(numbered-node-hop) 280 | | | +--ro numbered-node-hop 281 | | | +--ro node-id te-node-id 282 | | | +--ro hop-type? te-hop-type 283 | | +--:(numbered-link-hop) 284 | | | +--ro numbered-link-hop 285 | | | +--ro link-tp-id te-tp-id 286 | | | +--ro hop-type? te-hop-type 287 | | | +--ro direction? te-link-direction 288 | | +--:(unnumbered-link-hop) 289 | | | +--ro unnumbered-link-hop 290 | | | +--ro link-tp-id te-tp-id 291 | | | +--ro node-id te-node-id 292 | | | +--ro hop-type? te-hop-type 293 | | | +--ro direction? te-link-direction 294 | | +--:(as-number) 295 | | | +--ro as-number-hop 296 | | | +--ro as-number inet:as-number 297 | | | +--ro hop-type? te-hop-type 298 | | +--:(label) 299 | | +--ro label-hop 300 | | +--ro te-label 301 | | +--ro (technology)? 302 | | | +--:(generic) 303 | | | +--ro generic? rt-types:generalized-label 304 | | +--ro direction? te-label-direction 305 | +--ro outgoing-explicit-route-hop* [index] 306 | +--ro index uint32 307 | +--ro (type)? 308 | +--:(numbered-node-hop) 309 | | +--ro numbered-node-hop 310 | | +--ro node-id te-node-id 311 | | +--ro hop-type? te-hop-type 312 | +--:(numbered-link-hop) 313 | | +--ro numbered-link-hop 314 | | +--ro link-tp-id te-tp-id 315 | | +--ro hop-type? te-hop-type 316 | | +--ro direction? te-link-direction 317 | +--:(unnumbered-link-hop) 318 | | +--ro unnumbered-link-hop 319 | | +--ro link-tp-id te-tp-id 320 | | +--ro node-id te-node-id 321 | | +--ro hop-type? te-hop-type 322 | | +--ro direction? te-link-direction 323 | +--:(as-number) 324 | | +--ro as-number-hop 325 | | +--ro as-number inet:as-number 326 | | +--ro hop-type? te-hop-type 327 | +--:(label) 328 | +--ro label-hop 329 | +--ro te-label 330 | +--ro (technology)? 331 | | +--:(generic) 332 | | +--ro generic? rt-types:generalized-label 333 | +--ro direction? te-label-direction 334 +--ro incoming-record-route-subobjects 335 | +--ro incoming-record-route-subobject* [index] 336 | +--ro index uint32 337 | +--ro (type)? 338 | +--:(numbered-node-hop) 339 | | +--ro numbered-node-hop 340 | | +--ro node-id te-node-id 341 | | +--ro flags* path-attribute-flags 342 | +--:(numbered-link-hop) 343 | | +--ro numbered-link-hop 344 | | +--ro link-tp-id te-tp-id 345 | | +--ro flags* path-attribute-flags 346 | +--:(unnumbered-link-hop) 347 | | +--ro unnumbered-link-hop 348 | | +--ro link-tp-id te-tp-id 349 | | +--ro node-id? te-node-id 350 | | +--ro flags* path-attribute-flags 351 | +--:(label) 352 | +--ro label-hop 353 | +--ro te-label 354 | | +--ro (technology)? 355 | | | +--:(generic) 356 | | | +--ro generic? rt-types:generalized-label 357 | | +--ro direction? te-label-direction 358 | +--ro flags* path-attribute-flags 359 +--ro outgoing-record-route-subobjects 360 +--ro outgoing-record-route-subobject* [index] 361 +--ro index uint32 362 +--ro (type)? 363 +--:(numbered-node-hop) 364 | +--ro numbered-node-hop 365 | +--ro node-id te-node-id 366 | +--ro flags* path-attribute-flags 367 +--:(numbered-link-hop) 368 | +--ro numbered-link-hop 369 | +--ro link-tp-id te-tp-id 370 | +--ro flags* path-attribute-flags 371 +--:(unnumbered-link-hop) 372 | +--ro unnumbered-link-hop 373 | +--ro link-tp-id te-tp-id 374 | +--ro node-id? te-node-id 375 | +--ro flags* path-attribute-flags 376 +--:(label) 377 +--ro label-hop 378 +--ro te-label 379 | +--ro (technology)? 380 | | +--:(generic) 381 | | +--ro generic? rt-types:generalized-label 382 | +--ro direction? te-label-direction 383 +--ro flags* path-attribute-flags 384 augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path 385 /te:lsps/te:lsp: 386 +--ro associated-rsvp-session? leafref 387 +--ro lsp-signaled-name? string 388 +--ro session-attribute* identityref 389 +--ro lsp-attribute* identityref 390 +--ro explicit-route-objects 391 | +--ro incoming-explicit-route-hop* [index] 392 | | +--ro index uint32 393 | | +--ro (type)? 394 | | +--:(numbered-node-hop) 395 | | | +--ro numbered-node-hop 396 | | | +--ro node-id te-node-id 397 | | | +--ro hop-type? te-hop-type 398 | | +--:(numbered-link-hop) 399 | | | +--ro numbered-link-hop 400 | | | +--ro link-tp-id te-tp-id 401 | | | +--ro hop-type? te-hop-type 402 | | | +--ro direction? te-link-direction 403 | | +--:(unnumbered-link-hop) 404 | | | +--ro unnumbered-link-hop 405 | | | +--ro link-tp-id te-tp-id 406 | | | +--ro node-id te-node-id 407 | | | +--ro hop-type? te-hop-type 408 | | | +--ro direction? te-link-direction 409 | | +--:(as-number) 410 | | | +--ro as-number-hop 411 | | | +--ro as-number inet:as-number 412 | | | +--ro hop-type? te-hop-type 413 | | +--:(label) 414 | | +--ro label-hop 415 | | +--ro te-label 416 | | +--ro (technology)? 417 | | | +--:(generic) 418 | | | +--ro generic? rt-types:generalized-label 419 | | +--ro direction? te-label-direction 420 | +--ro outgoing-explicit-route-hop* [index] 421 | +--ro index uint32 422 | +--ro (type)? 423 | +--:(numbered-node-hop) 424 | | +--ro numbered-node-hop 425 | | +--ro node-id te-node-id 426 | | +--ro hop-type? te-hop-type 427 | +--:(numbered-link-hop) 428 | | +--ro numbered-link-hop 429 | | +--ro link-tp-id te-tp-id 430 | | +--ro hop-type? te-hop-type 431 | | +--ro direction? te-link-direction 432 | +--:(unnumbered-link-hop) 433 | | +--ro unnumbered-link-hop 434 | | +--ro link-tp-id te-tp-id 435 | | +--ro node-id te-node-id 436 | | +--ro hop-type? te-hop-type 437 | | +--ro direction? te-link-direction 438 | +--:(as-number) 439 | | +--ro as-number-hop 440 | | +--ro as-number inet:as-number 441 | | +--ro hop-type? te-hop-type 442 | +--:(label) 443 | +--ro label-hop 444 | +--ro te-label 445 | +--ro (technology)? 446 | | +--:(generic) 447 | | +--ro generic? rt-types:generalized-label 448 | +--ro direction? te-label-direction 449 +--ro incoming-record-route-subobjects 450 | +--ro incoming-record-route-subobject* [index] 451 | +--ro index uint32 452 | +--ro (type)? 453 | +--:(numbered-node-hop) 454 | | +--ro numbered-node-hop 455 | | +--ro node-id te-node-id 456 | | +--ro flags* path-attribute-flags 457 | +--:(numbered-link-hop) 458 | | +--ro numbered-link-hop 459 | | +--ro link-tp-id te-tp-id 460 | | +--ro flags* path-attribute-flags 461 | +--:(unnumbered-link-hop) 462 | | +--ro unnumbered-link-hop 463 | | +--ro link-tp-id te-tp-id 464 | | +--ro node-id? te-node-id 465 | | +--ro flags* path-attribute-flags 466 | +--:(label) 467 | +--ro label-hop 468 | +--ro te-label 469 | | +--ro (technology)? 470 | | | +--:(generic) 471 | | | +--ro generic? rt-types:generalized-label 472 | | +--ro direction? te-label-direction 473 | +--ro flags* path-attribute-flags 474 +--ro outgoing-record-route-subobjects 475 +--ro outgoing-record-route-subobject* [index] 476 +--ro index uint32 477 +--ro (type)? 478 +--:(numbered-node-hop) 479 | +--ro numbered-node-hop 480 | +--ro node-id te-node-id 481 | +--ro flags* path-attribute-flags 482 +--:(numbered-link-hop) 483 | +--ro numbered-link-hop 484 | +--ro link-tp-id te-tp-id 485 | +--ro flags* path-attribute-flags 486 +--:(unnumbered-link-hop) 487 | +--ro unnumbered-link-hop 488 | +--ro link-tp-id te-tp-id 489 | +--ro node-id? te-node-id 490 | +--ro flags* path-attribute-flags 491 +--:(label) 492 +--ro label-hop 493 +--ro te-label 494 | +--ro (technology)? 495 | | +--:(generic) 496 | | +--ro generic? rt-types:generalized-label 497 | +--ro direction? te-label-direction 498 +--ro flags* path-attribute-flags 499 augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path 500 /te:lsp-provisioning-error-infos 501 /te:lsp-provisioning-error-info: 502 +--ro rsvp-message-type? identityref 503 +--ro rsvp-error-code? uint8 504 +--ro rsvp-error-subcode? uint16 505 augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path 506 /te:lsps/te:lsp/te:lsp-provisioning-error-infos 507 /te:lsp-provisioning-error-info: 508 +--ro rsvp-message-type? identityref 509 +--ro rsvp-error-code? uint8 510 +--ro rsvp-error-subcode? uint16 511 augment /te:te/te:tunnels/te:tunnel/te:secondary-paths 512 /te:secondary-path/te:lsps/te:lsp: 513 +--ro associated-rsvp-session? leafref 514 +--ro lsp-signaled-name? string 515 +--ro session-attribute* identityref 516 +--ro lsp-attribute* identityref 517 +--ro explicit-route-objects 518 | +--ro incoming-explicit-route-hop* [index] 519 | | +--ro index uint32 520 | | +--ro (type)? 521 | | +--:(numbered-node-hop) 522 | | | +--ro numbered-node-hop 523 | | | +--ro node-id te-node-id 524 | | | +--ro hop-type? te-hop-type 525 | | +--:(numbered-link-hop) 526 | | | +--ro numbered-link-hop 527 | | | +--ro link-tp-id te-tp-id 528 | | | +--ro hop-type? te-hop-type 529 | | | +--ro direction? te-link-direction 530 | | +--:(unnumbered-link-hop) 531 | | | +--ro unnumbered-link-hop 532 | | | +--ro link-tp-id te-tp-id 533 | | | +--ro node-id te-node-id 534 | | | +--ro hop-type? te-hop-type 535 | | | +--ro direction? te-link-direction 536 | | +--:(as-number) 537 | | | +--ro as-number-hop 538 | | | +--ro as-number inet:as-number 539 | | | +--ro hop-type? te-hop-type 540 | | +--:(label) 541 | | +--ro label-hop 542 | | +--ro te-label 543 | | +--ro (technology)? 544 | | | +--:(generic) 545 | | | +--ro generic? rt-types:generalized-label 546 | | +--ro direction? te-label-direction 547 | +--ro outgoing-explicit-route-hop* [index] 548 | +--ro index uint32 549 | +--ro (type)? 550 | +--:(numbered-node-hop) 551 | | +--ro numbered-node-hop 552 | | +--ro node-id te-node-id 553 | | +--ro hop-type? te-hop-type 554 | +--:(numbered-link-hop) 555 | | +--ro numbered-link-hop 556 | | +--ro link-tp-id te-tp-id 557 | | +--ro hop-type? te-hop-type 558 | | +--ro direction? te-link-direction 559 | +--:(unnumbered-link-hop) 560 | | +--ro unnumbered-link-hop 561 | | +--ro link-tp-id te-tp-id 562 | | +--ro node-id te-node-id 563 | | +--ro hop-type? te-hop-type 564 | | +--ro direction? te-link-direction 565 | +--:(as-number) 566 | | +--ro as-number-hop 567 | | +--ro as-number inet:as-number 568 | | +--ro hop-type? te-hop-type 569 | +--:(label) 570 | +--ro label-hop 571 | +--ro te-label 572 | +--ro (technology)? 573 | | +--:(generic) 574 | | +--ro generic? rt-types:generalized-label 575 | +--ro direction? te-label-direction 576 +--ro incoming-record-route-subobjects 577 | +--ro incoming-record-route-subobject* [index] 578 | +--ro index uint32 579 | +--ro (type)? 580 | +--:(numbered-node-hop) 581 | | +--ro numbered-node-hop 582 | | +--ro node-id te-node-id 583 | | +--ro flags* path-attribute-flags 584 | +--:(numbered-link-hop) 585 | | +--ro numbered-link-hop 586 | | +--ro link-tp-id te-tp-id 587 | | +--ro flags* path-attribute-flags 588 | +--:(unnumbered-link-hop) 589 | | +--ro unnumbered-link-hop 590 | | +--ro link-tp-id te-tp-id 591 | | +--ro node-id? te-node-id 592 | | +--ro flags* path-attribute-flags 593 | +--:(label) 594 | +--ro label-hop 595 | +--ro te-label 596 | | +--ro (technology)? 597 | | | +--:(generic) 598 | | | +--ro generic? rt-types:generalized-label 599 | | +--ro direction? te-label-direction 600 | +--ro flags* path-attribute-flags 601 +--ro outgoing-record-route-subobjects 602 +--ro outgoing-record-route-subobject* [index] 603 +--ro index uint32 604 +--ro (type)? 605 +--:(numbered-node-hop) 606 | +--ro numbered-node-hop 607 | +--ro node-id te-node-id 608 | +--ro flags* path-attribute-flags 609 +--:(numbered-link-hop) 610 | +--ro numbered-link-hop 611 | +--ro link-tp-id te-tp-id 612 | +--ro flags* path-attribute-flags 613 +--:(unnumbered-link-hop) 614 | +--ro unnumbered-link-hop 615 | +--ro link-tp-id te-tp-id 616 | +--ro node-id? te-node-id 617 | +--ro flags* path-attribute-flags 618 +--:(label) 619 +--ro label-hop 620 +--ro te-label 621 | +--ro (technology)? 622 | | +--:(generic) 623 | | +--ro generic? rt-types:generalized-label 624 | +--ro direction? te-label-direction 625 +--ro flags* path-attribute-flags 626 augment /te:te/te:tunnels/te:tunnel/te:secondary-paths 627 /te:secondary-path/te:lsp-provisioning-error-infos 628 /te:lsp-provisioning-error-info: 629 +--ro rsvp-message-type? identityref 630 +--ro rsvp-error-code? uint8 631 +--ro rsvp-error-subcode? uint16 632 augment /te:te/te:tunnels/te:tunnel/te:secondary-paths 633 /te:secondary-path/te:lsps/te:lsp 634 /te:lsp-provisioning-error-infos 635 /te:lsp-provisioning-error-info: 636 +--ro rsvp-message-type? identityref 637 +--ro rsvp-error-code? uint8 638 +--ro rsvp-error-subcode? uint16 639 augment /te:te/te-dev:interfaces/te-dev:interface: 641 Figure 2: RSVP-TE model Tree diagram 643 2.2.2. RSVP-TE MPLS Model Tree Diagram 645 Figure 5 shows the YANG tree diagram of the RSVP-TE MPLS YANG model 646 defined in module ietf-rsvp-te-mpls.yang and that augments RSVP-TE 647 module as well as RSVP and TE YANG modules. 649 module: ietf-rsvp-te-mpls 650 augment /rt:routing/rt:control-plane-protocols 651 /rt:control-plane-protocol/rsvp:rsvp: 652 +--rw fast-reroute-local-revertive 653 +--rw rsvp-frr-local-revert-delay? uint32 654 augment /rt:routing/rt:control-plane-protocols 655 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces: 656 augment /rt:routing/rt:control-plane-protocols 657 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 658 /rsvp:interface: 659 augment /rt:routing/rt:control-plane-protocols 660 /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals 661 /rsvp:sessions: 662 augment /rt:routing/rt:control-plane-protocols 663 /rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors: 664 augment /te:te/te:tunnels/te:tunnel: 665 +--rw session-attribute* identityref 666 augment /te:te/te:lsps-state/te:lsp: 667 +--ro session-attribute* identityref 668 +--ro backup-info 669 +--ro backup-tunnel-name? string 670 +--ro backup-frr-on? uint8 671 +--ro backup-protected-lsp-num? uint32 672 augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path 673 /te:lsps/te:lsp: 674 +--ro session-attribute* identityref 675 +--ro backup-info 676 +--ro backup-tunnel-name? string 677 +--ro backup-frr-on? uint8 678 +--ro backup-protected-lsp-num? uint32 679 augment /te:te/te:tunnels/te:tunnel/te:secondary-paths 680 /te:secondary-path/te:lsps/te:lsp: 681 +--ro session-attribute* identityref 682 +--ro backup-info 683 +--ro backup-tunnel-name? string 684 +--ro backup-frr-on? uint8 685 +--ro backup-protected-lsp-num? uint32 686 augment /te:te/te-dev:interfaces/te-dev:interface: 687 +--rw bandwidth-mpls-reservable 688 +--rw (bandwidth-value)? 689 | +--:(absolute) 690 | | +--rw absolute-value? te-packet-types:bandwidth-kbps 691 | +--:(percentage) 692 | +--rw percent-value? uint32 693 +--rw (bc-model-type)? 694 +--:(bc-model-rdm) 695 | +--rw bc-model-rdm 696 | +--rw bandwidth-mpls-constraints 697 | +--rw maximum-reservable? 698 | | te-packet-types:bandwidth-kbps 699 | +--rw bc-value* uint32 700 +--:(bc-model-mam) 701 | +--rw bc-model-mam 702 | +--rw bandwidth-mpls-constraints 703 | +--rw maximum-reservable? 704 | | te-packet-types:bandwidth-kbps 705 | +--rw bc-value* uint32 706 +--:(bc-model-mar) 707 +--rw bc-model-mar 708 +--rw bandwidth-mpls-constraints 709 +--rw maximum-reservable? 710 | te-packet-types:bandwidth-kbps 711 +--rw bc-value* uint32 712 augment /te:te/te-dev:interfaces/te-dev:interface: 713 +--rw rsvp-te-frr-backups 714 +--rw (type)? 715 +--:(static-tunnel) 716 | +--rw static-backups 717 | +--rw static-backup* [backup-tunnel-name] 718 | +--rw backup-tunnel-name 719 | -> /te:te/tunnels/tunnel/name 720 +--:(auto-tunnel) 721 +--rw auto-tunnel-backups 722 +--rw auto-backup-protection? identityref 723 +--rw auto-backup-path-computation? identityref 725 Figure 3: RSVP-TE MPLS Tree diagram 727 2.3. YANG Modules 729 2.3.1. RSVP-TE YANG Module 731 The RSVP-TE generic YANG module "ietf-rsvp-te" imports the following 732 modules: 734 o ietf-rsvp defined in [I-D.ietf-teas-yang-rsvp] 736 o ietf-routing-types defined in [RFC8294] 738 o ietf-te-types defined in [I-D.ietf-teas-yang-te-types] 740 o ietf-te and ietf-te-dev defined in [I-D.ietf-teas-yang-te] 742 This module references the following documents: 743 [I-D.ietf-teas-yang-rsvp], [RFC8349], [I-D.ietf-teas-yang-te], 744 [I-D.ietf-teas-yang-te-types], [RFC2210], [RFC4920], [RFC5420], 745 [RFC7570], [RFC4859]. 747 file "ietf-rsvp-te@2020-03-09.yang" 748 module ietf-rsvp-te { 749 yang-version 1.1; 751 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te"; 753 prefix "rsvp-te"; 755 import ietf-rsvp { 756 prefix rsvp; 757 reference "draft-ietf-teas-yang-rsvp: A YANG Data Model for 758 Resource Reservation Protocol (RSVP)"; 759 } 761 import ietf-routing { 762 prefix "rt"; 763 reference "RFC8349: A YANG Data Model for Routing Management"; 764 } 766 import ietf-routing-types { 767 prefix rt-types; 768 reference "RFC8294: Common YANG Data Types for the Routing Area"; 769 } 771 import ietf-te { 772 prefix te; 773 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 774 Engineering Tunnels and Interfaces"; 775 } 777 import ietf-te-device { 778 prefix te-dev; 779 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 780 Engineering Tunnels and Interfaces"; 781 } 783 /* Import TE generic types */ 784 import ietf-te-types { 785 prefix te-types; 786 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 787 Common Traffic Engineering Types"; 788 } 790 import ietf-inet-types { 791 prefix inet; 792 reference "RFC6991: Common YANG Data Types"; 793 } 795 organization 796 "IETF Traffic Engineering Architecture and Signaling (TEAS) 797 Working Group"; 799 contact 800 "WG Web: 801 WG List: 803 WG Chair: Lou Berger 804 806 WG Chair: Vishnu Pavan Beeram 807 809 Editor: Vishnu Pavan Beeram 810 812 Editor: Tarek Saad 813 815 Editor: Rakesh Gandhi 816 818 Editor: Xufeng Liu 819 821 Editor: Igor Bryskin 822 824 Editor: Himanshu Shah 825 "; 827 description 828 "This module contains the RSVP-TE YANG generic data model. 829 The model fully conforms to the Network Management Datastore 830 Architecture (NMDA). 832 Copyright (c) 2018 IETF Trust and the persons 833 identified as authors of the code. All rights reserved. 835 Redistribution and use in source and binary forms, with or 836 without modification, is permitted pursuant to, and subject 837 to the license terms contained in, the Simplified BSD License 838 set forth in Section 4.c of the IETF Trust's Legal Provisions 839 Relating to IETF Documents 840 (https://trustee.ietf.org/license-info). 841 This version of this YANG module is part of RFC XXXX; see 842 the RFC itself for full legal notices."; 844 // RFC Ed.: replace XXXX with actual RFC number and remove this 845 // note. 847 // RFC Ed.: update the date below with the date of RFC publication 848 // and remove this note. 850 revision "2020-03-09" { 851 description "A YANG Data Model for RSVP-TE"; 852 reference 853 "RFCXXXX: A YANG Data Model for RSVP-TE Protocol"; 854 } 856 identity rsvp-message-type { 857 description "RSVP message types"; 858 } 860 identity rsvp-message-path { 861 base rsvp-message-type; 862 description "RSVP Path message"; 863 reference "RFC2205"; 864 } 865 identity rsvp-message-resv { 866 base rsvp-message-type; 867 description "RSVP Resv message"; 868 reference "RFC2205"; 869 } 870 identity rsvp-message-path-err { 871 base rsvp-message-type; 872 description "RSVP Path-Err message"; 873 reference "RFC2205"; 874 } 875 identity rsvp-message-resv-err { 876 base rsvp-message-type; 877 description "RSVP Resv-Err message"; 878 reference "RFC2205"; 879 } 880 identity rsvp-message-path-tear { 881 base rsvp-message-type; 882 description "RSVP Path Tear message"; 883 reference "RFC2205"; 884 } 885 identity rsvp-message-resv-conf { 886 base rsvp-message-type; 887 description "RSVP Resv Confirm message"; 888 reference "RFC2205"; 889 } 890 identity rsvp-message-srefresh { 891 base rsvp-message-type; 892 description "RSVP SRefresh message"; 893 reference "RFC2961"; 894 } 895 identity rsvp-message-hello { 896 base rsvp-message-type; 897 description "RSVP Hello message"; 898 reference "RFC3209"; 899 } 900 identity rsvp-message-bundle { 901 base rsvp-message-type; 902 description "RSVP Bundle message"; 903 reference "RFC2961"; 904 } 905 identity rsvp-message-notify { 906 base rsvp-message-type; 907 description "RSVP Notify message"; 908 reference "RFC3473"; 909 } 911 /** 912 * RSVP-TE LSPs groupings. 913 */ 914 grouping lsp-record-route-information-state { 915 description "recorded route information grouping"; 916 container incoming-record-route-subobjects { 917 description "RSVP recorded route object incoming information"; 918 list incoming-record-route-subobject { 919 when "../../te:origin-type != 'ingress'" { 920 description "Applicable on non-ingress LSPs only"; 921 } 922 key "index"; 923 ordered-by user; 924 description 925 "List of RSVP Path record-route objects"; 926 uses te-types:record-route-state; 927 } 928 } 929 container outgoing-record-route-subobjects { 930 description "RSVP recorded route object outgoing information"; 931 list outgoing-record-route-subobject { 932 when "../../te:origin-type != 'egress'" { 933 description "Applicable on non-egress LSPs only"; 934 } 935 key "index"; 936 ordered-by user; 937 description 938 "List of RSVP Resv record-route objects"; 939 uses te-types:record-route-state; 940 } 941 } 942 } 944 grouping lsp-explicit-route-information-state { 945 description "RSVP-TE LSP explicit-route information"; 946 container explicit-route-objects { 947 description "Explicit route object information"; 948 list incoming-explicit-route-hop { 949 when "../../te:origin-type != 'ingress'" { 950 description "Applicable on non-ingress LSPs only"; 951 } 952 key "index"; 953 ordered-by user; 954 description 955 "List of incoming RSVP Path explicit-route objects"; 956 leaf index { 957 type uint32; 958 description 959 "Explicit route hop index. The index is used to 960 identify an entry in the list. The order of entries 961 is defined by the user without relying on key values"; 962 } 963 uses te-types:explicit-route-hop; 964 } 965 list outgoing-explicit-route-hop { 966 when "../../te:origin-type != 'egress'" { 967 description "Applicable on non-egress LSPs only"; 968 } 969 key "index"; 970 ordered-by user; 971 description 972 "List of outgoing RSVP Path explicit-route objects"; 973 leaf index { 974 type uint32; 975 description 976 "Explicit route hop index. The index is used to 977 identify an entry in the list. The order of entries 978 is defined by the user without relying on key values"; 979 } 980 uses te-types:explicit-route-hop; 981 } 982 } 983 } 985 grouping lsp-attributes-flags-config { 986 description 987 "Configuration parameters relating to RSVP-TE LSP 988 attribute flags"; 989 leaf-list lsp-attribute { 990 type identityref { 991 base te-types:lsp-attributes-flags; 992 } 993 description "RSVP per LSP attributes flags"; 994 reference 995 "RFC4920, RFC5420, RFC7570"; 997 } 998 } 1000 grouping lsp-session-attributes-obj-flags-config { 1001 description 1002 "Configuration parameters relating to RSVP-TE LSP 1003 session attribute flags"; 1004 reference 1005 "RFC4859: Registry for RSVP-TE Session Flags"; 1006 leaf-list session-attribute { 1007 when "../session-attribute != 1008 'te-types:bandwidth-protection-desired' or 1009 ../session-attribute != 1010 'te-types:soft-preemption-desired'"; 1011 type identityref { 1012 base te-types:session-attributes-flags; 1013 } 1014 description "RSVP session attributes flags"; 1015 reference 1016 "RFC4859: Registry for RSVP-TE Session Flags"; 1017 } 1018 } 1020 grouping lsp-properties-config { 1021 description 1022 "Configuration parameters relating to RSVP-TE LSP 1023 session attribute flags"; 1024 leaf lsp-signaled-name { 1025 type string; 1026 description 1027 "Sets the session name to use in the session 1028 attribute object."; 1029 } 1030 uses lsp-session-attributes-obj-flags-config; 1031 uses lsp-attributes-flags-config; 1032 } 1034 grouping tunnel-properties-config { 1035 description "RSVP-TE Tunnel properties grouping"; 1036 leaf retry-timer { 1037 type uint16 { 1038 range 1..600; 1039 } 1040 units seconds; 1041 description 1042 "sets the time between attempts to establish the 1043 LSP"; 1044 } 1046 } 1048 /*** End of RSVP-TE LSP groupings ***/ 1050 /** 1051 * RSVP-TE generic global properties. 1052 */ 1053 grouping global-soft-preemption-config { 1054 description 1055 "Configuration for global RSVP-TE soft preemption"; 1056 leaf soft-preemption-timeout { 1057 type uint16 { 1058 range 0..300; 1059 } 1060 default 0; 1061 description 1062 "Timeout value for soft preemption to revert 1063 to hard preemption"; 1064 } 1065 } 1067 grouping global-soft-preemption { 1068 description 1069 "Top level group for RSVP-TE soft-preemption"; 1070 container global-soft-preemption { 1071 presence "Enables soft preemption on a node."; 1072 description 1073 "Top level container for RSVP-TE soft-preemption"; 1074 uses global-soft-preemption-config; 1075 } 1076 } 1077 /*** End of RSVP-TE generic global properties. ***/ 1079 /** 1080 * RSVP-TE interface generic groupings. 1081 */ 1082 grouping rsvp-te-interface-attributes { 1083 description 1084 "Top level grouping for RSVP-TE interface properties."; 1085 container rsvp-te-interface-attributes { 1086 description 1087 "Top level container for RSVP-TE interface 1088 properties"; 1089 container state { 1090 config false; 1091 description 1092 "State information associated with RSVP-TE 1093 bandwidth"; 1095 } 1096 } 1097 } 1098 /*** End of RSVP-TE generic groupings ***/ 1100 /* RSVP-TE global properties */ 1101 augment "/rt:routing/rt:control-plane-protocols/" 1102 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals" { 1103 description 1104 "RSVP-TE augmentation to RSVP globals"; 1105 uses global-soft-preemption; 1106 } 1108 /* Linkage to the base RSVP all links */ 1109 augment "/rt:routing/rt:control-plane-protocols/" 1110 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { 1111 description 1112 "RSVP-TE generic data augmentation pertaining to interfaces"; 1113 uses rsvp-te-interface-attributes; 1114 } 1116 /* Linkage to per RSVP interface */ 1117 augment "/rt:routing/rt:control-plane-protocols/" 1118 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 1119 "rsvp:interface" { 1120 description 1121 "RSVP-TE generic data augmentation pertaining to specific 1122 interface"; 1123 uses rsvp-te-interface-attributes; 1124 } 1126 /* add augmentation for sessions and neighbors */ 1127 augment "/rt:routing/rt:control-plane-protocols/" 1128 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1129 + "rsvp:sessions" { 1130 description 1131 "RSVP-TE generic data augmentation pertaining to session"; 1132 list session-te { 1133 key "tunnel-endpoint tunnel-id extended-tunnel-id"; 1134 config false; 1135 description 1136 "List of RSVP sessions"; 1137 leaf tunnel-endpoint { 1138 type inet:ip-address; 1139 description "XX"; 1140 } 1141 leaf tunnel-id { 1142 type uint16; 1143 description "XX"; 1144 } 1145 leaf extended-tunnel-id { 1146 type inet:ip-address; 1147 description "XX"; 1148 } 1150 uses rsvp:session-attributes-state; 1151 } 1153 } 1155 augment "/rt:routing/rt:control-plane-protocols/" 1156 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1157 + "rsvp:sessions/session-te/psbs/psb" { 1158 description 1159 "RSVP-TE generic data augmentation pertaining to session"; 1160 /* To be added */ 1161 leaf tspec-average-rate { 1162 type rt-types:bandwidth-ieee-float32; 1163 units "Bytes per second"; 1164 description "Tspec Token Bucket Average Rate"; 1165 reference "RFC2210: RSVP with INTSERV"; 1166 } 1167 leaf tspec-size { 1168 type rt-types:bandwidth-ieee-float32; 1169 units "Bytes per second"; 1170 description "Tspec Token Bucket Burst Rate"; 1171 reference "RFC2210"; 1172 } 1173 leaf tspec-peak-rate { 1174 type rt-types:bandwidth-ieee-float32; 1175 units "Bytes per second"; 1176 description "Tspec Token Bucket Peak Data Rate"; 1177 reference "RFC2210"; 1178 } 1179 leaf min-policed-unit { 1180 type uint32; 1181 description "Tspec Minimum Policed Unit"; 1182 reference "RFC2210"; 1183 } 1184 leaf max-packet-size { 1185 type uint32; 1186 description "Tspec Maximum Packet Size"; 1187 reference "RFC2210"; 1188 } 1189 } 1190 augment "/rt:routing/rt:control-plane-protocols/" 1191 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1192 + "rsvp:sessions/session-te/rsbs/rsb" { 1193 description 1194 "RSVP-TE generic data augmentation pertaining to session"; 1195 leaf fspec-average-rate { 1196 type rt-types:bandwidth-ieee-float32; 1197 units "Bytes per second"; 1198 description "Fspec Token Bucket Average Rate"; 1199 reference "RFC2210"; 1200 } 1201 leaf fspec-size { 1202 type rt-types:bandwidth-ieee-float32; 1203 units "Bytes per second"; 1204 description "Fspec Token Bucket Burst Rate"; 1205 reference "RFC2210"; 1206 } 1207 leaf fspec-peak-rate { 1208 type rt-types:bandwidth-ieee-float32; 1209 units "Bytes per second"; 1210 description "Fspec Token Bucket Peak Data Rate"; 1211 reference "RFC2210"; 1212 } 1213 leaf min-policed-unit { 1214 type uint32; 1215 description "Fspec Minimum Policed Unit"; 1216 reference "RFC2210"; 1217 } 1218 leaf max-packet-size { 1219 type uint32; 1220 description "Fspec Maximum Packet Size"; 1221 reference "RFC2210"; 1222 } 1223 } 1225 augment "/rt:routing/rt:control-plane-protocols/" 1226 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" { 1227 description 1228 "RSVP-TE generic data augmentation pertaining to neighbors"; 1229 /* To be added */ 1230 } 1232 /** 1233 * RSVP-TE generic augmentations of generic TE model. 1234 */ 1236 /* TE tunnel augmentation */ 1237 augment "/te:te/te:tunnels/te:tunnel" { 1238 when "/te:te/te:tunnels/te:tunnel" + 1239 "/te:primary-paths/te:primary-path" + 1240 "/te:signaling-type = 'te-types:path-setup-rsvp'" { 1241 description 1242 "When the path signaling protocol is RSVP-TE "; 1243 } 1244 description 1245 "RSVP-TE generic data augmentation pertaining to TE tunnels"; 1246 uses lsp-properties-config; 1247 uses tunnel-properties-config; 1248 } 1250 /* TE LSP augmentation */ 1251 grouping rsvp-te-lsp-error-info { 1252 description 1253 "Grouping for RSVP-TE error reporting information"; 1254 leaf rsvp-message-type { 1255 type identityref { 1256 base rsvp-message-type; 1257 } 1258 description 1259 "The RSVP message type that delivered the error"; 1260 } 1261 leaf rsvp-error-code { 1262 type uint8; 1263 description "RSVP error code"; 1264 reference "RFC2205"; 1265 } 1266 leaf rsvp-error-subcode { 1267 type uint16; 1268 description "RSVP Error sub-codes"; 1269 reference "RFC2205"; 1270 } 1271 } 1273 grouping rsvp-te-lsp-properties { 1274 description "RSVP-TE LSP properties grouping"; 1275 leaf associated-rsvp-session { 1276 type leafref { 1277 path "/rt:routing/rt:control-plane-protocols/" 1278 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1279 + "rsvp:sessions/session-te/tunnel-id"; 1280 } 1281 config false; 1282 description 1283 "If the signalling protocol specified for this path is 1284 RSVP-TE, this leaf provides a reference to the associated 1285 session within the RSVP-TE protocol sessions list, such 1286 that details of the signaling can be retrieved."; 1287 } 1289 uses lsp-properties-config; 1290 uses lsp-explicit-route-information-state; 1291 uses lsp-record-route-information-state; 1292 } 1294 augment "/te:te/te:lsps-state/te:lsp" { 1295 when "/te:te/te:lsps-state/te:lsp" + 1296 "/te:signaling-type = 'te-types:path-setup-rsvp'" { 1297 description 1298 "When the signaling protocol is RSVP-TE "; 1299 } 1300 description 1301 "RSVP-TE generic data augmentation pertaining to specific TE 1302 LSP"; 1303 uses rsvp-te-lsp-properties; 1304 } 1306 augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + 1307 "/te:primary-path/te:lsps/te:lsp" { 1308 when "/te:te/te:tunnels/te:tunnel/te:primary-paths" + 1309 "/te:primary-path/te:lsps/te:lsp" + 1310 "/te:signaling-type = 'te-types:path-setup-rsvp'" { 1311 description 1312 "When the signaling protocol is RSVP-TE "; 1313 } 1314 description 1315 "RSVP-TE generic data augmentation pertaining to specific TE 1316 LSP"; 1317 uses rsvp-te-lsp-properties; 1318 } 1319 augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + 1320 "/te:primary-path" + 1321 "/te:lsp-provisioning-error-infos" + 1322 "/te:lsp-provisioning-error-info" { 1323 description 1324 "Augmentation for RSVP-TE per LSP error reason"; 1325 uses rsvp-te-lsp-error-info; 1326 } 1327 augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + 1328 "/te:primary-path/te:lsps/te:lsp" + 1329 "/te:lsp-provisioning-error-infos" + 1330 "/te:lsp-provisioning-error-info" { 1331 when "/te:te/te:tunnels/te:tunnel/te:primary-paths" + 1332 "/te:primary-path/te:lsps/te:lsp" + 1333 "/te:signaling-type = 'te-types:path-setup-rsvp'" { 1335 description 1336 "When the signaling protocol is RSVP-TE "; 1337 } 1338 description 1339 "Augmentation for RSVP-TE per path error reason"; 1340 uses rsvp-te-lsp-error-info; 1341 } 1343 augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + 1344 "/te:secondary-path/te:lsps/te:lsp" { 1345 when "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + 1346 "/te:secondary-path/te:lsps/te:lsp" + 1347 "/te:signaling-type = 'te-types:path-setup-rsvp'" { 1348 description 1349 "When the signaling protocol is RSVP-TE "; 1350 } 1351 description 1352 "RSVP-TE generic data augmentation pertaining to specific TE 1353 LSP"; 1354 uses rsvp-te-lsp-properties; 1355 } 1356 augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + 1357 "/te:secondary-path" + 1358 "/te:lsp-provisioning-error-infos" + 1359 "/te:lsp-provisioning-error-info" { 1360 description 1361 "Augmentation for RSVP-TE per path error reason"; 1362 uses rsvp-te-lsp-error-info; 1363 } 1364 augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + 1365 "/te:secondary-path/te:lsps/te:lsp" + 1366 "/te:lsp-provisioning-error-infos" + 1367 "/te:lsp-provisioning-error-info" { 1368 when "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + 1369 "/te:secondary-path/te:lsps/te:lsp" + 1370 "/te:signaling-type = 'te-types:path-setup-rsvp'" { 1371 description 1372 "When the signaling protocol is RSVP-TE "; 1373 } 1374 description 1375 "Augmentation for RSVP-TE per LSP error reason"; 1376 uses rsvp-te-lsp-error-info; 1377 } 1379 /* TE interface augmentation */ 1380 augment "/te:te/te-dev:interfaces/te-dev:interface" { 1381 description 1382 "RSVP-TE generic data augmentation pertaining to specific TE 1383 interface"; 1384 } 1385 } 1386 1388 Figure 4: RSVP TE generic YANG module 1390 2.3.2. RSVP-TE MPLS YANG Module 1392 The RSVP-TE MPLS YANG module "ietf-rsvp-te-mpls" imports the 1393 following module(s): 1395 o ietf-rsvp defined in [I-D.ietf-teas-yang-rsvp] 1397 o ietf-routing-types defined in [RFC8294] 1399 o ietf-te-mpls-types defined in [I-D.ietf-teas-yang-te-types] 1401 o ietf-te and ietf-te-dev defined in [I-D.ietf-teas-yang-te] 1403 This module references the following documents: 1404 [I-D.ietf-teas-yang-rsvp], [RFC8349], [I-D.ietf-teas-yang-te-types], 1405 [I-D.ietf-teas-yang-te], [RFC3209]. 1407 file "ietf-rsvp-te-mpls@2020-03-09.yang" 1408 module ietf-rsvp-te-mpls { 1409 yang-version 1.1; 1411 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls"; 1413 prefix "rsvp-te-mpls"; 1415 import ietf-rsvp { 1416 prefix "rsvp"; 1417 reference "draft-ietf-teas-yang-rsvp: A YANG Data Model for 1418 Resource Reservation Protocol (RSVP)"; 1419 } 1421 import ietf-routing { 1422 prefix "rt"; 1423 reference "RFC8349: A YANG Data Model for Routing Management"; 1424 } 1426 import ietf-te-packet-types { 1427 prefix "te-packet-types"; 1428 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 1429 Common Traffic Engineering Types"; 1430 } 1431 import ietf-te-types { 1432 prefix "te-types"; 1433 reference "draft-ietf-teas-yang-te-types: A YANG Data Model for 1434 Common Traffic Engineering Types"; 1435 } 1437 import ietf-te { 1438 prefix "te"; 1439 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 1440 Engineering Tunnels and Interfaces"; 1441 } 1443 import ietf-te-device { 1444 prefix "te-dev"; 1445 reference "draft-ietf-teas-yang-te: A YANG Data Model for Traffic 1446 Engineering Tunnels and Interfaces"; 1447 } 1449 organization 1450 "IETF Traffic Engineering Architecture and Signaling (TEAS) 1451 Working Group"; 1453 contact 1454 "WG Web: 1455 WG List: 1457 WG Chair: Lou Berger 1458 1460 WG Chair: Vishnu Pavan Beeram 1461 1463 Editor: Vishnu Pavan Beeram 1464 1466 Editor: Tarek Saad 1467 1469 Editor: Rakesh Gandhi 1470 1472 Editor: Xufeng Liu 1473 1475 Editor: Igor Bryskin 1476 1478 Editor: Himanshu Shah 1479 "; 1481 description 1482 "Latest update to MPLS RSVP-TE YANG data model. 1483 The model fully conforms to the Network Management Datastore 1484 Architecture (NMDA). 1486 Copyright (c) 2018 IETF Trust and the persons 1487 identified as authors of the code. All rights reserved. 1489 Redistribution and use in source and binary forms, with or 1490 without modification, is permitted pursuant to, and subject 1491 to the license terms contained in, the Simplified BSD License 1492 set forth in Section 4.c of the IETF Trust's Legal Provisions 1493 Relating to IETF Documents 1494 (https://trustee.ietf.org/license-info). 1495 This version of this YANG module is part of RFC XXXX; see 1496 the RFC itself for full legal notices."; 1498 // RFC Ed.: replace XXXX with actual RFC number and remove this 1499 // note. 1501 // RFC Ed.: update the date below with the date of RFC publication 1502 // and remove this note. 1504 revision "2020-03-09" { 1505 description "Update to MPLS RSVP-TE YANG initial revision."; 1506 reference 1507 "RFCXXXX: A YANG Data Model for RSVP-TE Protocol"; 1508 } 1510 /* RSVP-TE MPLS LSPs groupings */ 1511 grouping lsp-attributes-flags-mpls-config { 1512 description 1513 "Configuration parameters relating to RSVP-TE MPLS LSP 1514 attribute flags"; 1515 } 1517 grouping lsp-session-attributes-obj-flags-mpls-config { 1518 description 1519 "Configuration parameters relating to RSVP-TE MPLS LSP 1520 session attribute flags"; 1521 reference 1522 "RFC4859: Registry for RSVP-TE Session Flags"; 1523 leaf-list session-attribute { 1524 when "../session-attribute = 1525 'te-types:bandwidth-protection-desired' or 1526 ../session-attribute = 1527 'te-types:soft-preemption-desired'"; 1528 type identityref { 1529 base te-types:session-attributes-flags; 1530 } 1531 description "RSVP session attributes flags"; 1532 reference 1533 "RFC4859: Registry for RSVP-TE Session Flags"; 1534 } 1535 } 1537 grouping tunnel-properties-mpls-config { 1538 description 1539 "Top level grouping for LSP properties."; 1540 uses lsp-session-attributes-obj-flags-mpls-config; 1541 uses lsp-attributes-flags-mpls-config; 1542 } 1544 grouping lsp-properties-mpls { 1545 description 1546 "Top level grouping for LSP properties."; 1547 uses lsp-session-attributes-obj-flags-mpls-config; 1548 uses lsp-attributes-flags-mpls-config; 1549 } 1550 /* End of RSVP-TE MPLS LSPs groupings */ 1552 /* MPLS RSVP-TE interface groupings */ 1553 grouping rsvp-te-interface-state { 1554 description 1555 "The RSVP-TE interface state grouping"; 1556 leaf over-subscribed-bandwidth { 1557 type te-packet-types:bandwidth-kbps; 1558 description 1559 "The amount of over-subscribed bandwidth on 1560 the interface"; 1561 } 1562 } 1564 grouping rsvp-te-interface-softpreemption-state { 1565 description 1566 "The RSVP-TE interface preeemptions state grouping"; 1567 container interface-softpreemption-state { 1568 description 1569 "The RSVP-TE interface preeemptions state grouping"; 1570 leaf soft-preempted-bandwidth { 1571 type te-packet-types:bandwidth-kbps; 1572 description 1573 "The amount of soft-preempted bandwidth on 1574 this interface"; 1576 } 1577 list lsps { 1578 key 1579 "source destination tunnel-id lsp-id "+ 1580 "extended-tunnel-id"; 1581 description 1582 "List of LSPs that are soft-preempted"; 1583 leaf source { 1584 type leafref { 1585 path "/te:te/te:lsps-state/te:lsp/"+ 1586 "te:source"; 1587 } 1588 description 1589 "Tunnel sender address extracted from 1590 SENDER_TEMPLATE object"; 1591 reference "RFC3209"; 1592 } 1593 leaf destination { 1594 type leafref { 1595 path "/te:te/te:lsps-state/te:lsp/"+ 1596 "te:destination"; 1597 } 1598 description 1599 "Tunnel endpoint address extracted from 1600 SESSION object"; 1601 reference "RFC3209"; 1602 } 1603 leaf tunnel-id { 1604 type leafref { 1605 path "/te:te/te:lsps-state/te:lsp/"+ 1606 "te:tunnel-id"; 1607 } 1608 description 1609 "Tunnel identifier used in the SESSION 1610 that remains constant over the life 1611 of the tunnel."; 1612 reference "RFC3209"; 1613 } 1614 leaf lsp-id { 1615 type leafref { 1616 path "/te:te/te:lsps-state/te:lsp/"+ 1617 "te:lsp-id"; 1618 } 1619 description 1620 "Identifier used in the SENDER_TEMPLATE 1621 and the FILTER_SPEC that can be changed 1622 to allow a sender to share resources with 1623 itself."; 1625 reference "RFC3209"; 1626 } 1627 leaf extended-tunnel-id { 1628 type leafref { 1629 path "/te:te/te:lsps-state/te:lsp/"+ 1630 "te:extended-tunnel-id"; 1631 } 1632 description 1633 "Extended Tunnel ID of the LSP."; 1634 reference "RFC3209"; 1635 } 1636 leaf type { 1637 type leafref { 1638 path "/te:te/te:lsps-state/te:lsp/"+ 1639 "te:type"; 1640 } 1641 description "LSP type P2P or P2MP"; 1642 } 1643 } 1644 } 1645 } 1647 grouping bandwidth-mpls-constraints { 1648 description "Bandwidth constraints."; 1649 container bandwidth-mpls-constraints { 1650 description 1651 "Holds the bandwidth constraints properties"; 1652 leaf maximum-reservable { 1653 type te-packet-types:bandwidth-kbps; 1654 description 1655 "The maximum reservable bandwidth on the 1656 interface in kbps"; 1657 } 1658 leaf-list bc-value { 1659 type uint32 { 1660 range "0..4294967295"; 1661 } 1662 max-elements 8; 1663 description 1664 "The bandwidth constraint type"; 1665 } 1666 } 1667 } 1669 grouping bandwidth-constraint-values { 1670 description 1671 "Packet bandwidth contraints values"; 1672 choice value-type { 1673 description 1674 "Value representation"; 1675 case percentages { 1676 container perc-values { 1677 uses bandwidth-mpls-constraints; 1678 description 1679 "Percentage values"; 1680 } 1681 } 1682 case absolutes { 1683 container abs-values { 1684 uses bandwidth-mpls-constraints; 1685 description 1686 "Absolute values"; 1687 } 1688 } 1689 } 1690 } 1692 grouping bandwidth-mpls-reservable-config { 1693 description 1694 "Interface bandwidth reservable configuration grouping"; 1695 choice bandwidth-value { 1696 description "Reservable bandwidth configuration choice"; 1697 case absolute { 1698 leaf absolute-value { 1699 type te-packet-types:bandwidth-kbps; 1700 description "Absolute value of the bandwidth"; 1701 } 1702 } 1703 case percentage { 1704 leaf percent-value { 1705 type uint32 { 1706 range "0..4294967295"; 1707 } 1708 description "Percentage reservable bandwidth"; 1709 } 1710 description 1711 "The maximum reservable bandwidth on the 1712 interface"; 1713 } 1714 } 1715 choice bc-model-type { 1716 description 1717 "Reservable bandwidth percentage capacity 1718 values."; 1719 case bc-model-rdm { 1720 container bc-model-rdm { 1721 description 1722 "Russian Doll Model Bandwidth Constraints."; 1723 uses bandwidth-mpls-constraints; 1724 } 1725 } 1726 case bc-model-mam { 1727 container bc-model-mam { 1728 uses bandwidth-mpls-constraints; 1729 description 1730 "Maximum Allocation Model Bandwidth 1731 Constraints."; 1732 } 1733 } 1734 case bc-model-mar { 1735 container bc-model-mar { 1736 uses bandwidth-mpls-constraints; 1737 description 1738 "Maximum Allocation with Reservation Model 1739 Bandwidth Constraints."; 1740 } 1741 } 1742 } 1743 } 1745 grouping bandwidth-mpls-reservable { 1746 description 1747 "Packet reservable bandwidth"; 1748 container bandwidth-mpls-reservable { 1749 description 1750 "Interface bandwidth reservable container"; 1751 uses bandwidth-mpls-reservable-config; 1752 } 1753 } 1754 /* End of RSVP-TE interface groupings */ 1756 /* RSVP-TE FRR groupings */ 1757 grouping rsvp-te-frr-auto-tunnel-backup-config { 1758 description 1759 "Auto-tunnel backup configuration grouping"; 1760 leaf auto-backup-protection { 1761 type identityref { 1762 base te-packet-types:backup-protection-type; 1763 } 1764 default 1765 te-packet-types:backup-protection-node-link; 1766 description 1767 "Describes whether the backup should offer 1768 protection against link, node, or either"; 1770 } 1771 leaf auto-backup-path-computation { 1772 type identityref { 1773 base 1774 te-types:path-computation-srlg-type; 1775 } 1776 description 1777 "FRR backup computation type"; 1778 } 1779 } 1781 grouping rsvp-te-frr-backups-config { 1782 description 1783 "Top level container for RSVP-TE FRR backup parameters"; 1784 choice type { 1785 description 1786 "FRR backup tunnel type"; 1787 case static-tunnel { 1788 container static-backups { 1789 description "List of static backups"; 1790 list static-backup { 1791 key "backup-tunnel-name"; 1792 description 1793 "List of static backup tunnels that 1794 protect the RSVP-TE interface."; 1795 leaf backup-tunnel-name { 1796 type leafref { 1797 path "/te:te/te:tunnels/te:tunnel/te:name"; 1798 } 1799 description "FRR Backup tunnel name"; 1800 } 1801 } 1802 } 1803 } 1804 case auto-tunnel { 1805 container auto-tunnel-backups { 1806 description "Auto-tunnel choice"; 1807 uses rsvp-te-frr-auto-tunnel-backup-config; 1808 } 1809 } 1810 } 1811 } 1813 grouping rsvp-te-frr-backups { 1814 description 1815 "RSVP-TE facility backup grouping"; 1816 container rsvp-te-frr-backups { 1817 description 1818 "RSVP-TE facility backup properties"; 1819 uses rsvp-te-frr-backups-config; 1820 } 1821 } 1823 grouping lsp-backup-info-state { 1824 description "LSP backup information grouping"; 1825 leaf backup-tunnel-name { 1826 type string; 1827 description 1828 "If an LSP has an FRR backup LSP that can protect it, 1829 this field identifies the tunnel name of the backup LSP. 1830 Otherwise, this field is empty."; 1831 } 1832 leaf backup-frr-on { 1833 type uint8; 1834 description 1835 "Whether currently this backup is carrying traffic"; 1836 } 1837 leaf backup-protected-lsp-num { 1838 type uint32; 1839 description 1840 "Number of LSPs protected by this backup"; 1841 } 1842 } 1844 grouping lsp-backup-info { 1845 description "Backup/bypass LSP related information"; 1846 container backup-info { 1847 description 1848 "backup information"; 1849 uses lsp-backup-info-state; 1850 } 1851 } 1853 grouping fast-reroute-local-revertive-config { 1854 description "RSVP-TE FRR local revertive grouping"; 1855 leaf rsvp-frr-local-revert-delay { 1856 type uint32; 1857 description 1858 "Time to wait after primary link is restored 1859 before node attempts local revertive 1860 procedures."; 1861 } 1862 } 1864 /*** End of RSVP-TE FRR backup information ***/ 1865 grouping fast-reroute-local-revertive { 1866 description 1867 "Top level grouping for globals properties"; 1868 container fast-reroute-local-revertive { 1869 description "RSVP-TE FRR local revertive container"; 1870 uses fast-reroute-local-revertive-config; 1871 } 1872 } 1874 /* RSVP-TE global properties */ 1875 augment "/rt:routing/rt:control-plane-protocols/" 1876 + "rt:control-plane-protocol/rsvp:rsvp" { 1877 description 1878 "RSVP-TE augmentation to RSVP globals"; 1879 uses fast-reroute-local-revertive; 1880 } 1882 /* Linkage to the base RSVP all interfaces */ 1883 augment "/rt:routing/rt:control-plane-protocols/" 1884 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { 1885 description 1886 "Augmentations for RSVP-TE MPLS all interfaces properties"; 1887 /* To be added */ 1888 } 1890 /* Linkage to per RSVP interface */ 1891 augment "/rt:routing/rt:control-plane-protocols/" 1892 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 1893 "rsvp:interface" { 1894 description 1895 "Augmentations for RSVP-TE MPLS per interface properties"; 1896 /* To be added */ 1897 } 1899 /* add augmentation for sessions neighbors */ 1900 augment "/rt:routing/rt:control-plane-protocols/" 1901 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1902 + "rsvp:sessions" { 1903 description 1904 "Augmentation for RSVP-TE MPLS sessions"; 1905 /* To be added */ 1906 } 1908 augment "/rt:routing/rt:control-plane-protocols/" 1909 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" { 1910 description 1911 "Augmentations for RSVP-TE MPLS neighbors properties"; 1912 /* To be added */ 1914 } 1916 /** 1917 * Augmentation to TE generic module 1918 */ 1919 augment "/te:te/te:tunnels/te:tunnel" { 1920 description 1921 "Augmentations for RSVP-TE MPLS TE tunnel properties"; 1922 uses tunnel-properties-mpls-config; 1923 } 1925 augment "/te:te/te:lsps-state/te:lsp" { 1926 when "/te:te/te:lsps-state/te:lsp" + 1927 "/te:signaling-type = 'te-types:path-setup-rsvp'" { 1928 description 1929 "When the signaling protocol is RSVP-TE "; 1930 } 1931 description 1932 "RSP-TE MPLS LSP state properties"; 1933 uses lsp-properties-mpls; 1934 uses lsp-backup-info; 1935 } 1937 augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" + 1938 "/te:primary-path/te:lsps/te:lsp" { 1939 when "/te:te/te:tunnels/te:tunnel" + 1940 "/te:secondary-paths/te:secondary-path/" + 1941 "te:signaling-type = 'te-types:path-setup-rsvp'" { 1942 description 1943 "When the signaling protocol is RSVP-TE "; 1944 } 1945 description 1946 "RSVP-TE MPLS LSP state properties"; 1947 uses lsp-properties-mpls; 1948 uses lsp-backup-info; 1949 } 1951 augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" + 1952 "/te:secondary-path/te:lsps/te:lsp" { 1953 when "/te:te/te:tunnels/te:tunnel" + 1954 "/te:secondary-paths/te:secondary-path/" + 1955 "te:signaling-type = 'te-types:path-setup-rsvp'" { 1956 description 1957 "When the signaling protocol is RSVP-TE "; 1958 } 1959 description 1960 "RSVP-TE MPLS LSP state properties"; 1961 uses lsp-properties-mpls; 1962 uses lsp-backup-info; 1963 } 1965 augment "/te:te/te-dev:interfaces/te-dev:interface" { 1966 description 1967 "RSVP reservable bandwidth configuration properties"; 1968 uses bandwidth-mpls-reservable; 1969 } 1971 augment "/te:te/te-dev:interfaces/te-dev:interface" { 1972 description 1973 "RSVP reservable bandwidth configuration properties"; 1974 uses rsvp-te-frr-backups; 1975 } 1976 } 1977 1979 Figure 5: RSVP TE MPLS YANG module 1981 3. IANA Considerations 1983 This document registers the following URIs in the IETF XML registry 1984 [RFC3688]. Following the format in [RFC3688], the following 1985 registration is requested to be made. 1987 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-te 1988 XML: N/A, the requested URI is an XML namespace. 1990 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls 1991 XML: N/A, the requested URI is an XML namespace. 1993 This document registers two YANG modules in the YANG Module Names 1994 registry [RFC6020]. 1996 name: ietf-rsvp 1997 namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp-te 1998 prefix: ietf-rsvp 1999 reference: RFCXXXX 2001 name: ietf-rsvp-te 2002 namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls 2003 prefix: ietf-rsvp-te 2004 reference: RFCXXXX 2006 4. Security Considerations 2008 The YANG module defined in this memo is designed to be accessed via 2009 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 2010 secure transport layer and the mandatory-to-implement secure 2011 transport is SSH [RFC6242]. The NETCONF access control model 2012 [RFC8341] provides means to restrict access for particular NETCONF 2013 users to a pre-configured subset of all available NETCONF protocol 2014 operations and content. 2016 There are a number of data nodes defined in the YANG module(s) 2017 defined in this document which are writable/creatable/deletable 2018 (i.e., config true, which is the default). These data nodes may be 2019 considered sensitive or vulnerable in some network environments. 2020 Write operations (e.g., ) to these data nodes without 2021 proper protection can have a negative effect on network operations. 2023 /rt:routing/rt:control-plane-protocols/rt:control-plane- 2024 protocol/rsvp:rsvp/globals: The data nodes defined defined in this 2025 document and under this branch are applicable device-wide and can 2026 affect all RSVP established sessions. Unauthorized access to this 2027 container can potentially cause disruptive event(s) on all 2028 established sessions. 2030 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 2031 rsvp:rsvp/rsvp:globals/rsvp:sessions: The data nodes defined in this 2032 document and under this branch are applicable to one or all RSVP-TE 2033 session(s). Unauthorized access to this container can potentially 2034 affect the impacted RSVP session(s). 2036 /rt:routing/rt:control-plane-protocols/rt:control-plane- 2037 protocol/rsvp:rsvp/rsvp:interfaces: The data nodes defined defined in 2038 this document and under this branch are applicable to one or all RSVP 2039 interfaces. Unauthorized access to this container can potentially 2040 affect established session(s) over impacted interface(s). 2042 5. Acknowledgement 2044 The authors would like to thank Lou Berger for reviewing and 2045 providing valuable feedback on this document. 2047 6. Contributors 2048 Xia Chen 2049 Huawei Technologies 2051 Email: jescia.chenxia@huawei.com 2053 Raqib Jones 2054 Brocade 2056 Email: raqib@Brocade.com 2058 Bin Wen 2059 Comcast 2061 Email: Bin_Wen@cable.comcast.com 2063 7. References 2065 7.1. Normative References 2067 [I-D.ietf-teas-yang-rsvp] 2068 Beeram, V., Saad, T., Gandhi, R., Liu, X., and I. Bryskin, 2069 "A YANG Data Model for Resource Reservation Protocol 2070 (RSVP)", draft-ietf-teas-yang-rsvp-12 (work in progress), 2071 January 2020. 2073 [I-D.ietf-teas-yang-te] 2074 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 2075 "A YANG Data Model for Traffic Engineering Tunnels and 2076 Interfaces", draft-ietf-teas-yang-te-22 (work in 2077 progress), November 2019. 2079 [I-D.ietf-teas-yang-te-types] 2080 Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, 2081 "Traffic Engineering Common YANG Types", draft-ietf-teas- 2082 yang-te-types-13 (work in progress), November 2019. 2084 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2085 Requirement Levels", BCP 14, RFC 2119, 2086 DOI 10.17487/RFC2119, March 1997, 2087 . 2089 [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. 2090 Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 2091 Functional Specification", RFC 2205, DOI 10.17487/RFC2205, 2092 September 1997, . 2094 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 2095 DOI 10.17487/RFC3688, January 2004, 2096 . 2098 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 2099 the Network Configuration Protocol (NETCONF)", RFC 6020, 2100 DOI 10.17487/RFC6020, October 2010, 2101 . 2103 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2104 and A. Bierman, Ed., "Network Configuration Protocol 2105 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2106 . 2108 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 2109 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 2110 . 2112 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 2113 RFC 6991, DOI 10.17487/RFC6991, July 2013, 2114 . 2116 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 2117 RFC 7950, DOI 10.17487/RFC7950, August 2016, 2118 . 2120 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 2121 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 2122 . 2124 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2125 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2126 May 2017, . 2128 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 2129 "Common YANG Data Types for the Routing Area", RFC 8294, 2130 DOI 10.17487/RFC8294, December 2017, 2131 . 2133 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 2134 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 2135 . 2137 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 2138 Access Control Model", STD 91, RFC 8341, 2139 DOI 10.17487/RFC8341, March 2018, 2140 . 2142 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 2143 Routing Management (NMDA Version)", RFC 8349, 2144 DOI 10.17487/RFC8349, March 2018, 2145 . 2147 7.2. Informative References 2149 [RFC2210] Wroclawski, J., "The Use of RSVP with IETF Integrated 2150 Services", RFC 2210, DOI 10.17487/RFC2210, September 1997, 2151 . 2153 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 2154 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 2155 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 2156 . 2158 [RFC4859] Farrel, A., "Codepoint Registry for the Flags Field in the 2159 Resource Reservation Protocol-Traffic Engineering (RSVP- 2160 TE) Session Attribute Object", RFC 4859, 2161 DOI 10.17487/RFC4859, April 2007, 2162 . 2164 [RFC4920] Farrel, A., Ed., Satyanarayana, A., Iwata, A., Fujita, N., 2165 and G. Ash, "Crankback Signaling Extensions for MPLS and 2166 GMPLS RSVP-TE", RFC 4920, DOI 10.17487/RFC4920, July 2007, 2167 . 2169 [RFC5420] Farrel, A., Ed., Papadimitriou, D., Vasseur, JP., and A. 2170 Ayyangarps, "Encoding of Attributes for MPLS LSP 2171 Establishment Using Resource Reservation Protocol Traffic 2172 Engineering (RSVP-TE)", RFC 5420, DOI 10.17487/RFC5420, 2173 February 2009, . 2175 [RFC7570] Margaria, C., Ed., Martinelli, G., Balls, S., and B. 2176 Wright, "Label Switched Path (LSP) Attribute in the 2177 Explicit Route Object (ERO)", RFC 7570, 2178 DOI 10.17487/RFC7570, July 2015, 2179 . 2181 Authors' Addresses 2183 Vishnu Pavan Beeram 2184 Juniper Networks 2186 Email: vbeeram@juniper.net 2187 Tarek Saad 2188 Juniper Networks 2190 Email: tsaad@juniper.net 2192 Rakesh Gandhi 2193 Cisco Systems, Inc. 2195 Email: rgandhi@cisco.com 2197 Xufeng Liu 2198 Volta Networks 2200 Email: xufeng.liu.ietf@gmail.com 2202 Igor Bryskin 2203 Huawei Technologies 2205 Email: Igor.Bryskin@huawei.com 2207 Himanshu Shah 2208 Ciena 2210 Email: hshah@ciena.com