idnits 2.17.1 draft-ietf-teas-yang-rsvp-05.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 141 has weird spacing: '... rw for r...' == Line 142 has weird spacing: '... ro for r...' == Line 536 has weird spacing: '...terface if:...' == Line 605 has weird spacing: '...ination ine...' == Line 859 has weird spacing: '...gnaling param...' == (3 more instances...) -- The document date (October 29, 2016) is 2736 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 (-25) exists of draft-ietf-netmod-routing-cfg-24 == Outdated reference: A later version (-36) exists of draft-ietf-teas-yang-te-04 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 1 error (**), 0 flaws (~~), 9 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: May 2, 2017 R. Gandhi 6 Cisco Systems Inc 7 X. Liu 8 Ericsson 9 H. Shah 10 Ciena 11 X. Chen 12 Huawei Technologies 13 R. Jones 14 Brocade 15 B. Wen 16 Comcast 17 October 29, 2016 19 A YANG Data Model for Resource Reservation Protocol (RSVP) 20 draft-ietf-teas-yang-rsvp-05 22 Abstract 24 This document defines a YANG data model for the configuration and 25 management of RSVP Protocol. The model defines generic RSVP protocol 26 building blocks that can be augmented and used by other RSVP 27 extension models such as RVSP extensions to Traffic-Engineering 28 (RSVP-TE). The model covers the RSVP protocol configuration, 29 operational state, remote procedural calls, and event notifications 30 data. 32 Status of This Memo 34 This Internet-Draft is submitted in full conformance with the 35 provisions of BCP 78 and BCP 79. 37 Internet-Drafts are working documents of the Internet Engineering 38 Task Force (IETF). Note that other groups may also distribute 39 working documents as Internet-Drafts. The list of current Internet- 40 Drafts is at http://datatracker.ietf.org/drafts/current/. 42 Internet-Drafts are draft documents valid for a maximum of six months 43 and may be updated, replaced, or obsoleted by other documents at any 44 time. It is inappropriate to use Internet-Drafts as reference 45 material or to cite them other than as "work in progress." 47 This Internet-Draft will expire on May 2, 2017. 49 Copyright Notice 51 Copyright (c) 2016 IETF Trust and the persons identified as the 52 document authors. All rights reserved. 54 This document is subject to BCP 78 and the IETF Trust's Legal 55 Provisions Relating to IETF Documents 56 (http://trustee.ietf.org/license-info) in effect on the date of 57 publication of this document. Please review these documents 58 carefully, as they describe your rights and restrictions with respect 59 to this document. Code Components extracted from this document must 60 include Simplified BSD License text as described in Section 4.e of 61 the Trust Legal Provisions and are provided without warranty as 62 described in the Simplified BSD License. 64 Table of Contents 66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 67 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 68 1.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3 69 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 70 1.4. Open Issues and Next Steps . . . . . . . . . . . . . . . 5 71 1.4.1. Module Hierarchy . . . . . . . . . . . . . . . . . . 5 72 1.4.2. Model Data Organization . . . . . . . . . . . . . . . 5 73 1.4.3. State Data . . . . . . . . . . . . . . . . . . . . . 5 74 2. Design Considerations . . . . . . . . . . . . . . . . . . . . 6 75 2.1. Base Model(s) . . . . . . . . . . . . . . . . . . . . . . 6 76 2.2. Extended Model(s) . . . . . . . . . . . . . . . . . . . . 7 77 2.3. Configuration Inheritance . . . . . . . . . . . . . . . . 7 78 2.4. Routing Instance Support . . . . . . . . . . . . . . . . 8 79 3. Model Organization . . . . . . . . . . . . . . . . . . . . . 8 80 3.1. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 8 81 3.1.1. Configuration and State Data . . . . . . . . . . . . 10 82 3.1.2. RPC and Notification Data . . . . . . . . . . . . . . 15 83 3.1.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 15 84 3.2. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 32 85 3.2.1. Configuration and State Data . . . . . . . . . . . . 32 86 3.2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 35 87 3.3. RSVP-TE Generic YANG Model . . . . . . . . . . . . . . . 46 88 3.3.1. Configuration and State Data . . . . . . . . . . . . 47 89 3.3.2. RPC and Notification Data . . . . . . . . . . . . . . 50 90 3.3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 50 91 3.4. RSVP-TE MPLS Model . . . . . . . . . . . . . . . . . . . 61 92 3.4.1. Configuration and State Data . . . . . . . . . . . . 61 93 3.4.2. RPC and Notification Data . . . . . . . . . . . . . . 65 94 3.4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 65 95 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 78 96 5. Security Considerations . . . . . . . . . . . . . . . . . . . 78 97 6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 79 98 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 79 99 7.1. Normative References . . . . . . . . . . . . . . . . . . 79 100 7.2. Informative References . . . . . . . . . . . . . . . . . 80 101 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 81 103 1. Introduction 105 YANG [RFC6020] is a data definition language that was introduced to 106 define the contents of a conceptual data store that allows networked 107 devices to be managed using NETCONF [RFC6241]. YANG is proving 108 relevant beyond its initial confines, as bindings to other interfaces 109 (e.g. ReST) and encoding other than XML (e.g. JSON) are being 110 defined. Furthermore, YANG data models can be used as the basis of 111 implementation for other interface, such as CLI and programmatic 112 APIs. 114 This document defines a YANG data model that can be used to configure 115 and manage the RSVP protocol. This model covers generic protocol 116 building blocks that can be augmented and used by other RSVP 117 extension models- such as extensions for signaling RSVP-TE MPLS (or 118 other technology specific) Label Switched Paths (LSP)s. 120 1.1. Terminology 122 In this document, the key words "MUST", "MUST NOT", "REQUIRED", 123 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 124 and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 125 [RFC2119]. 127 1.2. Tree Diagram 129 A simplified graphical representation of the data model is presented 130 in each section of the model. The following notations are used for 131 the YANG model data tree representation. 133 135 is one of: 136 + for current 137 x for deprecated 138 o for obsolete 140 is one of: 141 rw for read-write configuration data 142 ro for read-only non-configuration data 143 -x for execution rpcs 144 -n for notifications 146 is the name of the node 148 If the node is augmented into the tree from another module, its name 149 is printed as : 151 is one of: 152 ? for an optional leaf or node 153 ! for a presence container 154 * for a leaf-list or list 155 Brackets [] for a list's keys 156 Curly braces {} for optional feature that make node 157 conditional 158 Colon : for marking case nodes 159 Ellipses ("...") subtree contents not shown 161 Parentheses enclose choice and case nodes, and case nodes are also 162 marked with a colon (":"). 164 is the name of the type for leafs and leaf-lists. 166 1.3. Prefixes in Data Node Names 168 In this document, names of data nodes and other data model objects 169 are prefixed using the standard prefix associated with the 170 corresponding YANG imported modules, as shown in Table 1. 172 +--------+-----------------+-----------+ 173 | Prefix | YANG module | Reference | 174 +--------+-----------------+-----------+ 175 | yang | ietf-yang-types | [RFC6991] | 176 | inet | ietf-inet-types | [RFC6991] | 177 +--------+-----------------+-----------+ 179 Table 1: Prefixes and corresponding YANG modules 181 1.4. Open Issues and Next Steps 183 This document covers YANG models for data pertaining to the base 184 RSVP, the generic RSVP-TE, and the MPLS RSVP-TE. The current 185 revision of this draft covers configuration and state data, but 186 future revisions are expected to cover data for RPCs, and 187 notifications. 189 1.4.1. Module Hierarchy 191 During discussions, some of the RSVP features were debated whether 192 they should be present in the base RSVP model or in extension RSVP 193 model (e.g. RSVP-TE model) especially that some features were 194 defined in RSVP extension drafts for GMPLS or RSVP-TE states. For 195 example, the RSVP Hello extensions defined in [RFC3209] with 196 extensions to RSVP for TE states. However, RSVP Hellos extension can 197 also apply to non RSVP-TE states, and some vendor implementations, 198 allow it to be enabled independent of RSVP-TE features. 200 1.4.2. Model Data Organization 202 Throughout the model, the approach described in 203 [I-D.openconfig-netmod-opstate] is adopted to represent data 204 pertaining to configuration intended state, applied state and derived 205 state data elements. Each container in the model hold a "config" and 206 "state" sub-container. The "config" sub-container is used to 207 represent the intended configurable parameters, and the state sub- 208 container is used to represent both the applied configurable 209 parameters and any derived state, such as counters or statistical 210 information. 212 The decision to use this approach was made to better align with the 213 MPLS consolidated model in [I-D.openconfig-mpls-consolidated-model], 214 and maximize reusability of groupings defined in this document and 215 allow for possible convergence between the two models. 217 1.4.3. State Data 219 Pure state data (for example, protocol derived data) can be modeled 220 using two options: 222 o Contained inside the read-write container, under the "state" sub- 223 container, as shown in Figure 2 225 o Contained inside a separate read-only container 227 The first option allows for reusing the same containers that hold 228 configuration read-write data under a "config" sub-container, and by 229 adding the state data under the read-only "state" sub-container of 230 the container. For ephemeral or purely derived states (e.g. RSVP 231 sessions), and since in this case the state would hang off a read- 232 write parent container, it will be possible to delete the parent 233 container and removing such state. 235 The second option entails defining a new read-only parent container 236 in the model (e.g. neighbors-state) that holds the data. 238 This revision of the draft adopts the first option. Further 239 discussions on this topic are expected to close on the best choice to 240 adopt. 242 2. Design Considerations 244 2.1. Base Model(s) 246 The base RSVP model covers core features with the minimal set of 247 configuration parameters needed to operate them. Additional core 248 RSVP parameter configuration(s) as well as extended RSVP feature(s) 249 are covered in a separate RSVP extended model. 251 The RSVP-TE [RFC3209] and other traffic-engineering specific 252 enhancements are also addressed in separate module(s). The generic 253 and MPLS RSVP traffic-engineering models are augmentations to the 254 RSVP base model and are discussed in this revision of the document in 255 Section 3.3. 257 Currently, the RSVP-TE module is presented as part of this draft, and 258 is mostly packet centric. It is expected that the RSVP-TE YANG model 259 will move to a separate document in the next revision. 261 TE basic +---------+ ^: import 262 module | ietf-te | o: augment 263 +---------+ 264 | o 265 | | 266 v | 267 +--------------+ 268 RSVP-TE module | ietf-rsvp-te |o . . . 269 +--------------+ \ 270 ^ | \ 271 | o +-------------------+ 272 +-----------+ | ietf-rsvp-otn-te | 273 RSVP module | ietf-rsvp | +-------------------+ 274 +-----------+ RSVP-TE with OTN 275 o extensions 276 | (shown for illustration 277 RSVP extended | not in this document) 278 module +--------------------+ 279 | ietf-rsvp-extended | 280 +--------------------+ 282 Figure 1: Relationship of RSVP and RSVP-TE modules with other 283 protocol modules 285 The RSVP base model in this revision of the document does not aim to 286 be feature complete. The primary intent is to cover a set of 287 standard core features (listed below) that are commonly in use. 289 o Authentication ([RFC2747]) 291 o Refresh Reduction ([RFC2961]) 293 o Hellos ([RFC3209]) 295 o Graceful Restart ([RFC3473], [RFC5063]) 297 2.2. Extended Model(s) 299 The extended RSVP YANG model covers non-basic configuration(s) for 300 RSVP core feature(s) as well as optional RSVP feature that are not a 301 must for basic RSVP operation. 303 2.3. Configuration Inheritance 305 The defined data model supports configuration inheritance for 306 neighbors, and interfaces. Data elements defined in the main 307 container (e.g. the container that encompasses the list of 308 interfaces, or neighbors) are assumed to apply equally to all 309 elements of the list, unless overridden explicitly for a certain 310 element (e.g. interface). Vendors are expected to augment the above 311 container(s) to provide the list of inheritance command for their 312 implementations. 314 2.4. Routing Instance Support 316 There two main popular types of routing protocol configuration that 317 vendors may support: 319 o protocol centric - all the protocol related configuration is 320 contained within the protocol itself. Configuration belonging to 321 multiple instances of the protocol running in different routing- 322 instances (e.g. VRFs) are contained under the default routing 323 instance [I-D.ietf-netmod-routing-cfg]: 325 o VRF centric - all the protocol related configuration for a 326 routing- instance is contained within this routing-instance. 328 On-going discussions within the IETF community have converged on 329 adopting the VRF centric approach. The proposed model in this 330 document adheres to this conclusion. 332 3. Model Organization 334 This document defines YANG data models for RSVP base, RSVP extended, 335 RSVP-TE generic, and RSVP-TE MPLS configuration, state, notification 336 and RPCs. The relationship between the different modules is depicted 337 in Figure 1. 339 3.1. RSVP Base YANG Model 341 This section describes the RSVP base YANG data model. It covers base 342 RSVP protocol data defined by RSVP [RFC2205], and enhancements that 343 pertain to the base protocol operation. 345 The container "rsvp" is the top level container in this data model. 346 The presence of this container is expected to enable RSVP protocol 347 functionality. 349 The approach described in [I-D.openconfig-netmod-opstate] allows for 350 modeling the intended and respective applied and derived state. The 351 TE state data in this model falls into one of the following 352 categpries: 354 o State corresponding to applied configuration 356 o State corrsponding to derived state, counters, stats, etc. 358 Data for such state is contained under the respective "state" sub- 359 container of the intended object (e.g. interface) as shown in 360 Figure 2. 362 module: ietf-rsvp 363 +--rw rsvp! 364 +--rw globals 365 +-- rw config 366 <> 367 . 368 +-- ro state 369 <> 370 <> 371 . 372 . 373 +--rw interfaces 374 +-- rw config 375 <> 376 . 377 +-- ro state 378 <> 379 <> 380 . 381 . 382 +--rw neighbors 383 +-- rw config 384 <> 385 . 386 +-- ro state 387 <> 388 <> 389 . 390 . 391 +--rw sessions 392 +-- rw config 393 <> 394 . 395 +-- ro state 396 <> 397 <> 398 . 399 rpcs: 400 +--x global-rpc 401 +--x interfaces-rpc 402 +--x neighbors-rpc 403 +--x sessions-rpc 404 notifications: 405 +--n global-notif 406 +--n interfaces-notif 407 +--n neighbors-notif 408 +--n sessions-notif 410 Figure 2: RSVP highlevel model view 412 The following subsections provide overview of the parts of the model 413 pertaining to configuration and state data. 415 3.1.1. Configuration and State Data 417 3.1.1.1. Global Data 419 This branch of the data model covers global configuration and states 420 that control RSVP protocol behavior. 422 module: ietf-rsvp 423 augment /rt:routing/rt:control-plane-protocols/ 424 rt:control-plane-protocol: 425 +--rw rsvp! 426 +--rw globals 427 | +--rw config 428 | | +--rw graceful-restart 429 | | +--rw enabled? boolean 430 | +--ro state 431 | +--ro graceful-restart 432 | | +--ro enabled? boolean 433 | +--ro packets-stats 434 | | +--ro sent? yang:counter32 435 | | +--ro rcvd? yang:counter32 436 | +--ro protocol-stats 437 | | +--ro ack-sent? yang:counter32 438 | | +--ro ack-rcvd? yang:counter32 439 | | +--ro bundle-sent? yang:counter32 440 | | +--ro bundle-rcvd? yang:counter32 441 | | +--ro hello-sent? yang:counter32 442 | | +--ro hello-rcvd? yang:counter32 443 | | +--ro integrity-challenge-sent? yang:counter32 444 | | +--ro integrity-challenge-rcvd? yang:counter32 445 | | +--ro integrity-response-sent? yang:counter32 446 | | +--ro integrity-response-rcvd? yang:counter32 447 | | +--ro notify-sent? yang:counter32 448 | | +--ro notify-rcvd? yang:counter32 449 | | +--ro path-sent? yang:counter32 450 | | +--ro path-rcvd? yang:counter32 451 | | +--ro path-err-sent? yang:counter32 452 | | +--ro path-err-rcvd? yang:counter32 453 | | +--ro path-tear-sent? yang:counter32 454 | | +--ro path-tear-rcvd? yang:counter32 455 | | +--ro resv-sent? yang:counter32 456 | | +--ro resv-rcvd? yang:counter32 457 | | +--ro resv-confirm-sent? yang:counter32 458 | | +--ro resv-confirm-rcvd? yang:counter32 459 | | +--ro resv-err-sent? yang:counter32 460 | | +--ro resv-err-rcvd? yang:counter32 461 | | +--ro resv-tear-sent? yang:counter32 462 | | +--ro resv-tear-rcvd? yang:counter32 463 | | +--ro summary-refresh-sent? yang:counter32 464 | | +--ro summary-refresh-rcvd? yang:counter32 465 | | +--ro unknown-recv? yang:counter32 466 | +--ro errors-stats 467 | +--ro authenticate? yang:counter64 468 | +--ro checksum? yang:counter64 469 | +--ro packet-len? yang:counter64 471 3.1.1.2. Interface Data 473 This branch of the data model covers configuration and state elements 474 relevant to one or all RSVP interfaces. Any data configuration 475 applied at the "interfaces" container level are equally applicable to 476 all interfaces - unless overridden by explicit configuration under a 477 specific interface. 479 +--rw interfaces 480 | +--rw config 481 | | +--rw refresh-reduction 482 | | | +--rw enabled? boolean 483 | | +--rw rsvp-hellos 484 | | | +--rw enabled? boolean 485 | | +--rw authentication 486 | | +--rw enabled? boolean 487 | | +--rw password? string 488 | | +--rw algorithm? identityref 489 | +--ro state 490 | | +--ro refresh-reduction 491 | | | +--ro enabled? boolean 492 | | +--ro rsvp-hellos 493 | | | +--ro enabled? boolean 494 | | +--ro authentication 495 | | | +--ro enabled? boolean 496 | | | +--ro password? string 497 | | | +--ro algorithm? identityref 498 | | +--ro packets-stats 499 | | | +--ro sent? yang:counter32 500 | | | +--ro rcvd? yang:counter32 501 | | +--ro protocol-stats 502 | | | +--ro ack-sent? yang:counter32 503 | | | +--ro ack-rcvd? yang:counter32 504 | | | +--ro bundle-sent? yang:counter32 505 | | | +--ro bundle-rcvd? yang:counter32 506 | | | +--ro hello-sent? yang:counter32 507 | | | +--ro hello-rcvd? yang:counter32 508 | | | +--ro integrity-challenge-sent? yang:counter32 509 | | | +--ro integrity-challenge-rcvd? yang:counter32 510 | | | +--ro integrity-response-sent? yang:counter32 511 | | | +--ro integrity-response-rcvd? yang:counter32 512 | | | +--ro notify-sent? yang:counter32 513 | | | +--ro notify-rcvd? yang:counter32 514 | | | +--ro path-sent? yang:counter32 515 | | | +--ro path-rcvd? yang:counter32 516 | | | +--ro path-err-sent? yang:counter32 517 | | | +--ro path-err-rcvd? yang:counter32 518 | | | +--ro path-tear-sent? yang:counter32 519 | | | +--ro path-tear-rcvd? yang:counter32 520 | | | +--ro resv-sent? yang:counter32 521 | | | +--ro resv-rcvd? yang:counter32 522 | | | +--ro resv-confirm-sent? yang:counter32 523 | | | +--ro resv-confirm-rcvd? yang:counter32 524 | | | +--ro resv-err-sent? yang:counter32 525 | | | +--ro resv-err-rcvd? yang:counter32 526 | | | +--ro resv-tear-sent? yang:counter32 527 | | | +--ro resv-tear-rcvd? yang:counter32 528 | | | +--ro summary-refresh-sent? yang:counter32 529 | | | +--ro summary-refresh-rcvd? yang:counter32 530 | | | +--ro unknown-recv? yang:counter32 531 | | +--ro errors-stats 532 | | +--ro authenticate? yang:counter64 533 | | +--ro checksum? yang:counter64 534 | | +--ro packet-len? yang:counter64 535 | +--rw interface* [interface] 536 | +--rw interface if:interface-ref 537 | +--rw config 538 | | +--rw refresh-reduction 539 | | | +--rw enabled? boolean 540 | | +--rw rsvp-hellos 541 | | | +--rw enabled? boolean 542 | | +--rw authentication 543 | | +--rw enabled? boolean 544 | | +--rw password? string 545 | | +--rw algorithm? identityref 546 | +--ro state 547 | +--ro refresh-reduction 548 | | +--ro enabled? boolean 549 | +--ro rsvp-hellos 550 | | +--ro enabled? boolean 551 | +--ro authentication 552 | | +--ro enabled? boolean 553 | | +--ro password? string 554 | | +--ro algorithm? identityref 555 | +--ro packets-stats 556 | | +--ro sent? yang:counter32 557 | | +--ro rcvd? yang:counter32 558 | +--ro protocol-stats 559 | | +--ro ack-sent? yang:counter32 560 | | +--ro ack-rcvd? yang:counter32 561 | | +--ro bundle-sent? yang:counter32 562 | | +--ro bundle-rcvd? yang:counter32 563 | | +--ro hello-sent? yang:counter32 564 | | +--ro hello-rcvd? yang:counter32 565 | | +--ro integrity-challenge-sent? yang:counter32 566 | | +--ro integrity-challenge-rcvd? yang:counter32 567 | | +--ro integrity-response-sent? yang:counter32 568 | | +--ro integrity-response-rcvd? yang:counter32 569 | | +--ro notify-sent? yang:counter32 570 | | +--ro notify-rcvd? yang:counter32 571 | | +--ro path-sent? yang:counter32 572 | | +--ro path-rcvd? yang:counter32 573 | | +--ro path-err-sent? yang:counter32 574 | | +--ro path-err-rcvd? yang:counter32 575 | | +--ro path-tear-sent? yang:counter32 576 | | +--ro path-tear-rcvd? yang:counter32 577 | | +--ro resv-sent? yang:counter32 578 | | +--ro resv-rcvd? yang:counter32 579 | | +--ro resv-confirm-sent? yang:counter32 580 | | +--ro resv-confirm-rcvd? yang:counter32 581 | | +--ro resv-err-sent? yang:counter32 582 | | +--ro resv-err-rcvd? yang:counter32 583 | | +--ro resv-tear-sent? yang:counter32 584 | | +--ro resv-tear-rcvd? yang:counter32 585 | | +--ro summary-refresh-sent? yang:counter32 586 | | +--ro summary-refresh-rcvd? yang:counter32 587 | | +--ro unknown-recv? yang:counter32 588 | +--ro errors-stats 589 | +--ro authenticate? yang:counter64 590 | +--ro checksum? yang:counter64 591 | +--ro packet-len? yang:counter64 593 3.1.1.3. Session Data 595 This branch of the data model covers configuration of elements 596 relevant to RSVP neighbors. This would be discussed in detail in 597 future revisions. 599 module: ietf-rsvp 600 +--rw rsvp! 601 +--rw sessions 602 | +--rw session* [dst_port source destination] 603 | +--rw dst_port uint16 604 | +--rw source inet:ip-address 605 | +--rw destination inet:ip-address 606 | +--rw config 607 | +--ro state 609 3.1.1.4. Neighbor Data 611 This branch of the data model covers configuration of elements 612 relevant to RSVP sessions. This would be discussed in detail in 613 future revisions. 615 module: ietf-rsvp 616 +--rw rsvp! 617 +--rw neighbors 618 +--rw neighbor* [address] 619 +--rw address inet:ip-address 620 +--rw neighbor-attributes 621 +--rw config 622 +--ro state 623 +--ro epoch? uint32 624 +--ro expiry-time? uint32 625 +--ro graceful-restart 626 | +--ro enabled? boolean 627 | +--ro local-restart-time? uint32 628 | +--ro local-recovery-time? uint32 629 | +--ro nbr-restart-time? uint32 630 | +--ro nbr-recovery-time? uint32 631 | +--ro helper-mode 632 | +--ro helper-mode? boolean 633 | +--ro max-helper-restart-time? uint32 634 | +--ro max-helper-recovery-time? uint32 635 | +--ro nbr-restart-ttd? uint32 636 | +--ro nbr-recovery-ttd? uint32 637 +--ro hello-status? enumeration {hellos}? 638 +--ro interface? if:interface-ref 639 +--ro neighbor-state? enumeration 640 +--ro psb-count? uint32 641 +--ro rsb-count? uint32 642 +--ro refresh-reduction-capable? boolean 643 +--ro restart-count? uint32 644 +--ro restart-time? yang:date-and-time 646 3.1.2. RPC and Notification Data 648 TBD. 650 3.1.3. YANG Module 652 file "ietf-rsvp@2016-10-29.yang" 653 module ietf-rsvp { 655 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp"; 657 /* Replace with IANA when assigned */ 658 prefix "rsvp"; 660 import ietf-interfaces { 661 prefix "if"; 662 } 663 import ietf-inet-types { 664 prefix inet; 665 } 667 import ietf-yang-types { 668 prefix "yang"; 669 } 671 import ietf-routing { 672 prefix "rt"; 673 } 675 organization 676 "IETF Traffic Engineering Architecture and Signaling (TEAS) 677 Working Group"; 679 contact 680 "WG Web: 681 WG List: 683 WG Chair: Lou Berger 684 686 WG Chair: Vishnu Pavan Beeram 687 689 Editor: Vishnu Pavan Beeram 690 692 Editor: Tarek Saad 693 695 Editor: Rakesh Gandhi 696 698 Editor: Himanshu Shah 699 701 Editor: Xufeng Liu 702 704 Editor: Xia Chen 705 707 Editor: Raqib Jones 708 710 Editor: Bin Wen 711 "; 713 description 714 "This module contains the RSVP YANG data model."; 716 revision "2016-10-29" { 717 description "Latest revision of RSVP yang module."; 718 reference "RFC2205"; 719 } 721 identity rsvp { 722 base "rt:routing-protocol"; 723 description "RSVP protocol"; 724 } 726 identity hash-algorithm { 727 description 728 "Base identity for message-digest algorithm"; 729 } 731 identity MD5 { 732 base hash-algorithm; 733 description 734 "MD5 hash algorithm"; 735 reference "RFC1321"; 736 } 738 identity SHA-1 { 739 base hash-algorithm; 740 description 741 "SHA-1 hash algorithm"; 742 reference "NIST, FIPS PUB 180-1: Secure Hash Standard"; 743 } 745 grouping graceful-restart_config { 746 description 747 "Base configuration parameters relating to RSVP 748 Graceful-Restart"; 749 leaf enabled { 750 type boolean; 751 description 752 "'true' if RSVP Graceful Restart is enabled. 753 'false' if RSVP Graceful Restart is disabled."; 754 } 755 } 757 grouping graceful-restart { 758 description 759 "Top level grouping for RSVP graceful-restart 760 parameters"; 761 container graceful-restart { 762 description 763 "Top level container for RSVP graceful-restart"; 764 uses graceful-restart_config; 765 } 766 } 768 grouping refresh-reduction_config { 769 description 770 "Configuration parameters relating to RSVP 771 refresh reduction"; 773 leaf enabled { 774 type boolean; 775 description 776 "'true' if RSVP Refresh Reduction is enabled. 777 'false' if RSVP Refresh Reduction is disabled."; 778 } 779 } 781 grouping refresh-reduction { 782 description 783 "Top level grouping for RSVP refresh reduction 784 parameters"; 785 container refresh-reduction { 786 description 787 "Top level container for RSVP refresh reduction 788 parameters"; 789 uses refresh-reduction_config; 790 } 791 } 793 grouping authentication_config { 794 description 795 "Configuration parameters relating to RSVP 796 authentication"; 797 leaf enabled { 798 type boolean; 799 description 800 "'true' if RSVP Authenticaiton is enabled. 801 'false' if RSVP Authenticaiton is disabled."; 802 } 803 leaf password { 804 type string; 805 description 806 "An authentication key string"; 807 } 808 leaf algorithm { 809 type identityref { 810 base hash-algorithm; 811 } 812 description 813 "Cryptographic hash algorithm"; 814 } 815 } 817 grouping authentication { 818 description 819 "Top level grouping for RSVP authentication parameters"; 820 container authentication { 821 description 822 "Top level container for RSVP authentication 823 parameters"; 824 uses authentication_config; 825 } 826 } 828 grouping rsvp-hellos_config { 829 description 830 "Configuration parameters relating to RSVP 831 hellos"; 832 leaf enabled { 833 type boolean; 834 description 835 "'true' if RSVP Hello is enabled. 836 'false' if RSVP Hello is disabled."; 837 } 838 } 840 grouping rsvp-hellos { 841 description 842 "Top level grouping for RSVP hellos parameters"; 843 container rsvp-hellos { 844 description 845 "Top level container for RSVP hello parameters"; 846 uses rsvp-hellos_config; 847 } 848 } 850 grouping signaling-parameters_config { 851 description 852 "Configuration parameters relating to RSVP 853 signaling"; 855 } 857 grouping signaling-parameters { 858 description 859 "Top level grouping for RSVP signaling parameters"; 860 uses signaling-parameters_config; 861 } 863 grouping session-attributes { 864 description 865 "Top level grouping for RSVP session properties"; 866 container config { 867 description 868 "Configuration for session properties"; 869 } 870 container state { 871 config false; 872 description 873 "State information associated with RSVP 874 session properties"; 875 } 876 } 878 grouping neighbor-attributes { 879 description 880 "Top level grouping for RSVP neighbor properties"; 881 container neighbor-attributes { 882 description 883 "Top level container for RSVP neighbor properties"; 884 container config { 885 description 886 "Configuration for neighbor properties"; 887 } 888 container state { 889 config false; 890 description 891 "State information associated with RSVP 892 neighbor properties"; 893 uses neighbor-derived_state; 894 } 895 } 896 } 898 grouping statistics-packets_state { 899 description 900 "Packet statistics grouping"; 901 container packets-stats { 902 description 903 "Packet statistics container"; 904 leaf sent { 905 type yang:counter32; 906 description 907 "Packet sent count"; 908 } 910 leaf rcvd { 911 type yang:counter32; 912 description 913 "Packet received count"; 914 } 915 } 916 } 918 grouping statistics-protocol_state { 919 description 920 "RSVP protocol statistics grouping"; 921 container protocol-stats { 922 description 923 "RSVP protocol statistics container"; 924 leaf ack-sent { 925 type yang:counter32; 926 description 927 "Hello sent count"; 928 } 930 leaf ack-rcvd { 931 type yang:counter32; 932 description 933 "Hello received count"; 934 } 936 leaf bundle-sent { 937 type yang:counter32; 938 description 939 "Bundle sent count"; 940 } 942 leaf bundle-rcvd { 943 type yang:counter32; 944 description 945 "Bundle received count"; 946 } 948 leaf hello-sent { 949 type yang:counter32; 950 description 951 "Hello sent count"; 952 } 954 leaf hello-rcvd { 955 type yang:counter32; 956 description 957 "Hello received count"; 958 } 960 leaf integrity-challenge-sent { 961 type yang:counter32; 962 description 963 "Integrity Challenge sent count"; 964 } 966 leaf integrity-challenge-rcvd { 967 type yang:counter32; 968 description 969 "Integrity Challenge received count"; 970 } 972 leaf integrity-response-sent { 973 type yang:counter32; 974 description 975 "Integrity Response sent count"; 976 } 978 leaf integrity-response-rcvd { 979 type yang:counter32; 980 description 981 "Integrity Response received count"; 982 } 984 leaf notify-sent { 985 type yang:counter32; 986 description 987 "Notify sent count"; 988 } 990 leaf notify-rcvd { 991 type yang:counter32; 992 description 993 "Notify received count"; 994 } 996 leaf path-sent { 997 type yang:counter32; 998 description 999 "Path sent count"; 1000 } 1002 leaf path-rcvd { 1003 type yang:counter32; 1004 description 1005 "Path received count"; 1006 } 1008 leaf path-err-sent { 1009 type yang:counter32; 1010 description 1011 "Path error sent count"; 1012 } 1014 leaf path-err-rcvd { 1015 type yang:counter32; 1016 description 1017 "Path error received count"; 1018 } 1020 leaf path-tear-sent { 1021 type yang:counter32; 1022 description 1023 "Path tear sent count"; 1024 } 1026 leaf path-tear-rcvd { 1027 type yang:counter32; 1028 description 1029 "Path tear received count"; 1030 } 1032 leaf resv-sent { 1033 type yang:counter32; 1034 description 1035 "Resv sent count"; 1036 } 1038 leaf resv-rcvd { 1039 type yang:counter32; 1040 description 1041 "Resv received count"; 1042 } 1044 leaf resv-confirm-sent { 1045 type yang:counter32; 1046 description 1047 "Confirm sent count"; 1048 } 1050 leaf resv-confirm-rcvd { 1051 type yang:counter32; 1052 description 1053 "Confirm received count"; 1054 } 1056 leaf resv-err-sent { 1057 type yang:counter32; 1058 description 1059 "Resv error sent count"; 1060 } 1062 leaf resv-err-rcvd { 1063 type yang:counter32; 1064 description 1065 "Resv error received count"; 1066 } 1068 leaf resv-tear-sent { 1069 type yang:counter32; 1070 description 1071 "Resv tear sent count"; 1072 } 1074 leaf resv-tear-rcvd { 1075 type yang:counter32; 1076 description 1077 "Resv tear received count"; 1078 } 1080 leaf summary-refresh-sent { 1081 type yang:counter32; 1082 description 1083 "Summary refresh sent count"; 1084 } 1086 leaf summary-refresh-rcvd { 1087 type yang:counter32; 1088 description 1089 "Summary refresh received count"; 1090 } 1092 leaf unknown-recv { 1093 type yang:counter32; 1094 description 1095 "Unknown packet received count"; 1096 } 1097 } 1098 } 1100 grouping statistics-errors_state { 1101 description 1102 "Error statistics state grouping"; 1103 container errors-stats { 1104 description 1105 "Error statistics state container"; 1106 leaf authenticate { 1107 type yang:counter64; 1108 description 1109 "The total number of packets received with an 1110 authentication failure."; 1111 } 1113 leaf checksum { 1114 type yang:counter64; 1115 description 1116 "The total number of packets received with an invalid 1117 checksum value."; 1118 } 1120 leaf packet-len { 1121 type yang:counter64; 1122 description 1123 "The total number of packets received with an invalid 1124 packet length."; 1125 } 1126 } 1127 } // statistics_state 1129 grouping statistics_state { 1130 description "RSVP statistic attributes."; 1131 uses statistics-packets_state; 1132 uses statistics-protocol_state; 1133 uses statistics-errors_state; 1134 } 1136 grouping neighbor-derived_state { 1137 description 1138 "Derived state at neighbor level."; 1140 leaf epoch { 1141 type uint32; 1142 description 1143 "Neighbor epoch."; 1144 } 1146 leaf expiry-time { 1147 type uint32; 1148 units seconds; 1149 description 1150 "Neighbor expiry time after which the neighbor state 1151 is purged if no states associated with it"; 1152 } 1154 container graceful-restart { 1155 description 1156 "Graceful restart information."; 1158 leaf enabled { 1159 type boolean; 1160 description 1161 "'true' if graceful restart is enabled for the 1162 neighbor."; 1163 } 1165 leaf local-restart-time { 1166 type uint32; 1167 units seconds; 1168 description 1169 "Local node restart time"; 1170 } 1172 leaf local-recovery-time { 1173 type uint32; 1174 units seconds; 1175 description 1176 "Local node recover time"; 1177 } 1179 leaf nbr-restart-time { 1180 type uint32; 1181 units seconds; 1182 description 1183 "Neighbor restart time"; 1184 } 1186 leaf nbr-recovery-time { 1187 type uint32; 1188 units seconds; 1189 description 1190 "Neighbor recover time"; 1192 } 1194 container helper-mode { 1195 description 1196 "Helper mode information "; 1198 leaf helper-mode { 1199 type boolean; 1200 description 1201 "'true' if helper mode is enabled."; 1202 } 1204 leaf max-helper-restart-time { 1205 type uint32; 1206 units seconds; 1207 description 1208 "The time the router or switch waits after it 1209 discovers that a neighboring router has gone down 1210 before it declares the neighbor down"; 1211 } 1213 leaf max-helper-recovery-time { 1214 type uint32; 1215 units seconds; 1216 description 1217 "The amount of time the router retains the state of its 1218 RSVP neighbors while they undergo a graceful restart"; 1219 } 1221 leaf nbr-restart-ttd { 1222 type uint32; 1223 units seconds; 1224 description 1225 "Number of seconds remaining for neighbor to send 1226 Hello message after restart."; 1227 } 1229 leaf nbr-recovery-ttd { 1230 type uint32; 1231 units seconds; 1232 description 1233 "Number of seconds remaining for neighbor to 1234 refresh."; 1235 } 1236 } // helper-mode 1237 } // graceful-restart 1239 leaf hello-status { 1240 type enumeration { 1241 enum "enabled" { 1242 description 1243 "Enabled"; 1244 } 1245 enum "disabled" { 1246 description 1247 "Disabled"; 1248 } 1249 enum "restarting" { 1250 description 1251 "Restarting"; 1252 } 1253 } 1254 description 1255 "Hello status"; 1256 } 1258 leaf interface { 1259 type if:interface-ref; 1260 description 1261 "Interface to this neighbor."; 1262 } 1264 leaf neighbor-state { 1265 type enumeration { 1266 enum "up" { 1267 description 1268 "up"; 1269 } 1270 enum "down" { 1271 description 1272 "down"; 1273 } 1274 enum "hello-disable" { 1275 description 1276 "hello-disable"; 1277 } 1278 enum "restarting" { 1279 description 1280 "restarting"; 1281 } 1282 } 1283 description 1284 "Neighbor state"; 1285 } 1287 leaf psb-count { 1288 type uint32; 1289 description 1290 "Number of PSB state currently referencing the 1291 neighbor."; 1292 } 1294 leaf rsb-count { 1295 type uint32; 1296 description 1297 "Number of RSB state currently referencing the 1298 neighbor."; 1299 } 1301 leaf refresh-reduction-capable { 1302 type boolean; 1303 description 1304 "Whether neighbor is refresh reduction capable."; 1305 } 1307 leaf restart-count { 1308 type uint32; 1309 description 1310 "Number of times this neighbor restart"; 1311 } 1313 leaf restart-time { 1314 type yang:date-and-time; 1315 description 1316 "Last restart time of the neighbor"; 1317 } 1318 } // neighbor-derived_state 1320 grouping global-attributes { 1321 description 1322 "Top level grouping for RSVP global properties"; 1323 container config { 1324 description 1325 "Configuration globals properties"; 1326 uses graceful-restart; 1327 } 1328 container state { 1329 config false; 1330 description 1331 "State information associated with RSVP 1332 global properties"; 1333 uses graceful-restart; 1334 uses statistics_state; 1335 } 1337 } 1339 grouping intf-attributes { 1340 description 1341 "Top level grouping for RSVP interface properties"; 1342 container config { 1343 description 1344 "Configuration parameters relating to 1345 RSVP interface parameters"; 1346 uses signaling-parameters; 1347 uses refresh-reduction; 1348 uses rsvp-hellos; 1349 uses authentication; 1350 } 1351 container state { 1352 config false; 1353 description 1354 "State information associated with RSVP 1355 interface parameters"; 1356 uses signaling-parameters; 1357 uses refresh-reduction; 1358 uses rsvp-hellos; 1359 uses authentication; 1360 uses statistics_state; 1361 } 1362 } 1364 augment "/rt:routing/rt:control-plane-protocols/" 1365 + "rt:control-plane-protocol" { 1366 when "rt:type = 'rsvp:rsvp'" { 1367 description 1368 "This augment is only valid when routing protocol 1369 instance type is RSVP."; 1370 } 1371 description 1372 "RSVP protocol augmentation"; 1373 container rsvp { 1374 presence "Enable RSVP feature"; 1375 description "RSVP feature container"; 1376 container globals { 1377 description "RSVP global properties."; 1378 uses global-attributes; 1379 } 1381 container interfaces { 1382 description 1383 "RSVP interfaces container"; 1384 uses intf-attributes; 1385 list interface { 1386 key "interface"; 1387 description 1388 "RSVP interfaces."; 1389 leaf interface { 1390 type if:interface-ref; 1391 description 1392 "RSVP interface."; 1393 } 1394 uses intf-attributes; 1395 } 1396 } 1398 container sessions { 1399 description 1400 "RSVP sessions container"; 1401 list session { 1402 key "dst_port source destination"; 1403 description 1404 "List of RSVP sessions"; 1405 leaf dst_port { 1406 type uint16; 1407 description "RSVP destination port"; 1408 reference "RFC2205"; 1409 } 1410 leaf source { 1411 type inet:ip-address; 1412 description "RSVP source address"; 1413 reference "RFC2205"; 1414 } 1415 leaf destination { 1416 type inet:ip-address; 1417 description "RSVP destination address"; 1418 reference "RFC2205"; 1419 } 1420 uses session-attributes; 1421 } 1422 } 1424 container neighbors { 1425 description 1426 "RSVP neighbors container"; 1427 list neighbor { 1428 key "address"; 1429 description 1430 "List of RSVP neighbors"; 1431 leaf address { 1432 type inet:ip-address; 1433 description 1434 "Neighbor address"; 1435 } 1436 uses neighbor-attributes; 1437 } 1438 } 1439 } 1440 } 1441 } 1443 1445 3.2. RSVP Extended YANG Model 1447 The RSVP extended YANG model covers optional configuration(s) for 1448 RSVP core feature(s). It also covers non-core RSVP feature(s) that 1449 are negotiated with "if-feature" checks. 1451 3.2.1. Configuration and State Data 1453 Figure 3 shows the YANG tree representation for configuration and 1454 state data that is augmenting the RSVP basic module: 1456 module: ietf-rsvp-extended 1457 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1458 /rsvp:rsvp/rsvp:globals/rsvp:config/rsvp:graceful-restart: 1459 +--rw restart-time? uint32 1460 +--rw recovery-time? uint32 1461 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1462 /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:graceful-restart: 1463 +--ro restart-time? uint32 1464 +--ro recovery-time? uint32 1465 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1466 /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:packets-stats: 1467 +--ro discontinuity-time? yang:date-and-time 1468 +--ro tx-dropped? yang:counter32 1469 +--ro rx-dropped? yang:counter32 1470 +--ro tx-error? yang:counter32 1471 +--ro rx-error? yang:counter32 1472 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1473 /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:protocol-stats: 1474 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1475 /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:errors-stats: 1476 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1477 /rsvp:rsvp/rsvp:interfaces/rsvp:config: 1478 +--rw refresh-interval? uint32 1479 +--rw refresh-misses? uint32 1480 +--rw checksum? uint32 1481 +--rw patherr-state-removal? empty 1482 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1483 /rsvp:rsvp/rsvp:interfaces/rsvp:state: 1484 +--ro refresh-interval? uint32 1485 +--ro refresh-misses? uint32 1486 +--ro checksum? uint32 1487 +--ro patherr-state-removal? empty 1488 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1489 /rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:refresh-reduction: 1490 +--rw bundle-message-max-size? uint32 1491 +--rw reliable-ack-hold-time? uint32 1492 +--rw reliable-ack-max-size? uint32 1493 +--rw reliable-retransmit-time? uint32 1494 +--rw reliable-srefresh? empty 1495 +--rw summary-max-size? uint32 1496 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1497 /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:refresh-reduction: 1498 +--ro bundle-message-max-size? uint32 1499 +--ro reliable-ack-hold-time? uint32 1500 +--ro reliable-ack-max-size? uint32 1501 +--ro reliable-retransmit-time? uint32 1502 +--ro reliable-srefresh? empty 1503 +--ro summary-max-size? uint32 1504 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1505 /rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:rsvp-hellos: 1506 +--rw interface-based? empty 1507 +--rw hello-interval? uint32 1508 +--rw hello-misses? uint32 1509 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1510 /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:rsvp-hellos: 1511 +--ro interface-based? empty 1512 +--ro hello-interval? uint32 1513 +--ro hello-misses? uint32 1514 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1515 /rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:authentication: 1516 +--rw lifetime? uint32 1517 +--rw window-size? uint32 1518 +--rw challenge? empty 1519 +--rw retransmits? uint32 1520 +--rw key-chain? string 1521 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1522 /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:authentication: 1523 +--ro lifetime? uint32 1524 +--ro window-size? uint32 1525 +--ro challenge? empty 1526 +--ro retransmits? uint32 1527 +--ro key-chain? string 1528 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1529 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config: 1530 +--rw refresh-interval? uint32 1531 +--rw refresh-misses? uint32 1532 +--rw checksum? uint32 1533 +--rw patherr-state-removal? empty 1534 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1535 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state: 1536 +--ro refresh-interval? uint32 1537 +--ro refresh-misses? uint32 1538 +--ro checksum? uint32 1539 +--ro patherr-state-removal? empty 1540 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1541 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/ 1542 rsvp:refresh-reduction: 1543 +--rw bundle-message-max-size? uint32 1544 +--rw reliable-ack-hold-time? uint32 1545 +--rw reliable-ack-max-size? uint32 1546 +--rw reliable-retransmit-time? uint32 1547 +--rw reliable-srefresh? empty 1548 +--rw summary-max-size? uint32 1549 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1550 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/ 1551 rsvp:refresh-reduction: 1552 +--ro bundle-message-max-size? uint32 1553 +--ro reliable-ack-hold-time? uint32 1554 +--ro reliable-ack-max-size? uint32 1555 +--ro reliable-retransmit-time? uint32 1556 +--ro reliable-srefresh? empty 1557 +--ro summary-max-size? uint32 1558 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1559 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/rsvp:rsvp-hellos: 1560 +--rw interface-based? empty 1561 +--rw hello-interval? uint32 1562 +--rw hello-misses? uint32 1563 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1564 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:rsvp-hellos: 1565 +--ro interface-based? empty 1566 +--ro hello-interval? uint32 1567 +--ro hello-misses? uint32 1568 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1569 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/ 1570 rsvp:authentication: 1571 +--rw lifetime? uint32 1572 +--rw window-size? uint32 1573 +--rw challenge? empty 1574 +--rw retransmits? uint32 1575 +--rw key-chain? string 1576 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 1577 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:authentication 1578 +--ro lifetime? uint32 1579 +--ro window-size? uint32 1580 +--ro challenge? empty 1581 +--ro retransmits? uint32 1583 Figure 3: RSVP extended YANG Tree representation 1585 3.2.2. YANG Module 1587 Figure 4 shows the RSVP extended YANG module: 1589 file "ietf-rsvp-extended@2016-10-29.yang" 1591 module ietf-rsvp-extended { 1593 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended"; 1595 prefix "rsvp-ext"; 1597 import ietf-rsvp { 1598 prefix "rsvp"; 1599 } 1601 import ietf-routing { 1602 prefix "rt"; 1603 } 1605 import ietf-yang-types { 1606 prefix "yang"; 1607 } 1609 organization 1610 "IETF Traffic Engineering Architecture and Signaling (TEAS) 1611 Working Group"; 1613 contact 1614 "WG Web: 1615 WG List: 1617 WG Chair: Lou Berger 1618 1620 WG Chair: Vishnu Pavan Beeram 1621 1623 Editor: Vishnu Pavan Beeram 1624 1626 Editor: Tarek Saad 1627 1629 Editor: Rakesh Gandhi 1630 1632 Editor: Himanshu Shah 1633 1635 Editor: Xufeng Liu 1636 1638 Editor: Xia Chen 1639 1641 Editor: Raqib Jones 1642 1644 Editor: Bin Wen 1645 "; 1647 description 1648 "This module contains the Extended RSVP YANG data model."; 1650 revision "2016-10-29" { 1651 description "Latest revision of RSVP extended yang module."; 1652 reference "RFC2205"; 1653 } 1655 /* RSVP features */ 1656 feature authentication { 1657 description 1658 "Indicates support for RSVP authentication"; 1659 } 1661 feature error-statistics { 1662 description 1663 "Indicates support for error statistics"; 1664 } 1666 feature global-statistics { 1667 description 1668 "Indicates support for global statistics"; 1669 } 1671 feature graceful-restart { 1672 description 1673 "Indicates support for RSVP graceful restart"; 1674 } 1676 feature hellos { 1677 description 1678 "Indicates support for RSVP hellos (RFC3209)."; 1679 } 1681 feature notify { 1682 description 1683 "Indicates support for RSVP notify message (RFC3473)."; 1684 } 1686 feature refresh-reduction { 1687 description 1688 "Indicates support for RSVP refresh reduction 1689 (RFC2961)."; 1690 } 1692 feature refresh-reduction-extended { 1693 description 1694 "Indicates support for RSVP refresh reduction 1695 (RFC2961)."; 1696 } 1698 feature per-interface-statistics { 1699 description 1700 "Indicates support for per interface statistics"; 1701 } 1703 grouping graceful-restart-extended_config { 1704 description 1705 "Configuration parameters relating to RSVP 1706 Graceful-Restart"; 1707 leaf restart-time { 1708 type uint32; 1709 units seconds; 1710 description 1711 "Graceful restart time (seconds)."; 1712 reference 1713 "RFC 5495: Description of the Resource 1714 Reservation Protocol - Traffic-Engineered 1715 (RSVP-TE) Graceful Restart Procedures"; 1716 } 1717 leaf recovery-time { 1718 type uint32; 1719 description 1720 "RSVP state recovery time"; 1721 } 1722 } 1724 grouping authentication-extended_config { 1725 description 1726 "Configuration parameters relating to RSVP 1727 authentication"; 1728 leaf lifetime { 1729 type uint32 { 1730 range "30..86400"; 1731 } 1732 description 1733 "Life time for each security association"; 1734 reference 1735 "RFC 2747: RSVP Cryptographic 1736 Authentication"; 1737 } 1738 leaf window-size { 1739 type uint32 { 1740 range "1..64"; 1741 } 1742 description 1743 "Window-size to limit number of out-of-order 1744 messages."; 1745 reference 1746 "RFC 2747: RSVP Cryptographic 1747 Authentication"; 1748 } 1749 leaf challenge { 1750 type empty; 1751 description 1752 "Enable challenge messages."; 1753 reference 1754 "RFC 2747: RSVP Cryptographic 1755 Authentication"; 1756 } 1757 leaf retransmits { 1758 type uint32 { 1759 range "1..10000"; 1760 } 1761 description 1762 "Number of retransmits when messages are 1763 dropped."; 1764 reference 1765 "RFC 2747: RSVP Cryptographic 1766 Authentication"; 1767 } 1768 leaf key-chain { 1769 type string { 1770 length "1..32"; 1771 } 1772 description 1773 "Key chain name to authenticate RSVP 1774 signaling messages."; 1775 reference 1776 "RFC 2747: RSVP Cryptographic 1777 Authentication"; 1778 } 1779 } 1781 grouping rsvp-hellos-extended_config { 1782 description 1783 "Configuration parameters relating to RSVP 1784 hellos"; 1785 leaf interface-based { 1786 type empty; 1787 description "Enable interface-based 1788 Hello adjacency if present."; 1789 } 1790 leaf hello-interval { 1791 type uint32; 1792 units milliseconds; 1793 description 1794 "Configure interval between successive Hello 1795 messages in milliseconds."; 1796 reference 1797 "RFC 3209: RSVP-TE: Extensions to RSVP for 1798 LSP Tunnels. 1799 RFC 5495: Description of the Resource 1800 Reservation Protocol - Traffic-Engineered 1801 (RSVP-TE) Graceful Restart Procedures"; 1802 } 1803 leaf hello-misses { 1804 type uint32 { 1805 range "1..10"; 1806 } 1807 description 1808 "Configure max number of consecutive missed 1809 Hello messages."; 1810 reference 1811 "RFC 3209: RSVP-TE: Extensions to RSVP for 1812 LSP Tunnels RFC 5495: Description of the 1813 Resource Reservation Protocol - Traffic- 1814 Engineered (RSVP-TE) Graceful Restart 1815 Procedures"; 1817 } 1818 } 1820 grouping signaling-parameters-extended_config { 1821 description 1822 "Configuration parameters relating to RSVP 1823 signaling"; 1824 leaf refresh-interval { 1825 type uint32; 1826 description 1827 "Set interval between successive refreshes"; 1828 } 1829 leaf refresh-misses { 1830 type uint32; 1831 description 1832 "Set max number of consecutive missed 1833 messages for state expiry"; 1834 } 1835 leaf checksum { 1836 type uint32; 1837 description 1838 "Enable RSVP message checksum computation"; 1839 } 1840 leaf patherr-state-removal { 1841 type empty; 1842 description 1843 "State-Removal flag in Path Error message 1844 if present."; 1845 } 1846 } 1848 grouping refresh-reduction-extended_config { 1849 description 1850 "Configuration parameters relating to RSVP 1851 refresh reduction"; 1853 leaf bundle-message-max-size { 1854 type uint32 { 1855 range "512..65000"; 1856 } 1857 description 1858 "Configure maximum size (bytes) of a 1859 single RSVP Bundle message."; 1860 } 1861 leaf reliable-ack-hold-time { 1862 type uint32; 1863 units milliseconds; 1864 description 1865 "Configure hold time in milliseconds for 1866 sending RSVP ACK message(s)."; 1867 } 1868 leaf reliable-ack-max-size { 1869 type uint32; 1870 description 1871 "Configure max size of a single RSVP ACK 1872 message."; 1873 } 1874 leaf reliable-retransmit-time { 1875 type uint32; 1876 units milliseconds; 1877 description 1878 "Configure min delay in milliseconds to 1879 wait for an ACK before a retransmit."; 1880 } 1881 leaf reliable-srefresh { 1882 type empty; 1883 description 1884 "Configure use of reliable messaging for 1885 summary refresh if present."; 1886 } 1887 leaf summary-max-size { 1888 type uint32 { 1889 range "20..65000"; 1890 } 1891 description 1892 "Configure max size (bytes) of a single 1893 RSVP summary refresh message."; 1894 } 1895 } 1897 grouping statistics-packets-extended_state { 1898 description 1899 "Packet statistics."; 1900 leaf discontinuity-time { 1901 type yang:date-and-time; 1902 description 1903 "The time on the most recent occasion at which any one 1904 or more of the statistic counters suffered a 1905 discontinuity. If no such discontinuities have occurred 1906 since the last re-initialization of the local 1907 management subsystem, then this node contains the time 1908 the local management subsystem re-initialized itself."; 1909 } 1910 leaf tx-dropped { 1911 type yang:counter32; 1912 description 1913 "Packet tx dropped count"; 1914 } 1916 leaf rx-dropped { 1917 type yang:counter32; 1918 description 1919 "Packet rx dropped count"; 1920 } 1922 leaf tx-error { 1923 type yang:counter32; 1924 description 1925 "Packet tx error count"; 1926 } 1928 leaf rx-error { 1929 type yang:counter32; 1930 description 1931 "Packet rx error count"; 1932 } 1933 } 1935 grouping statistics-protocol-extended_state { 1936 description 1937 "RSVP protocol statistics."; 1938 } 1940 grouping statistics-errors-extended_state { 1941 description 1942 "Error statistics."; 1943 } 1945 grouping statistics-extended_state { 1946 description "RSVP statistic attributes."; 1947 uses statistics-packets-extended_state; 1948 uses statistics-protocol-extended_state; 1949 uses statistics-errors-extended_state; 1950 } 1952 /** 1953 * RSVP extensions augmentations 1954 */ 1956 /* RSVP globals graceful restart*/ 1958 augment "/rt:routing/rt:control-plane-protocols/" + 1959 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 1960 "rsvp:config/rsvp:graceful-restart" { 1962 description 1963 "RSVP globals configuration extensions"; 1964 uses graceful-restart-extended_config; 1965 } 1966 augment "/rt:routing/rt:control-plane-protocols/" + 1967 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 1968 "rsvp:state/rsvp:graceful-restart" { 1969 description 1970 "RSVP globals state extensions"; 1971 uses graceful-restart-extended_config; 1972 } 1974 /* RSVP statistics augmentation */ 1975 augment "/rt:routing/rt:control-plane-protocols/" + 1976 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 1977 "rsvp:state/rsvp:packets-stats" { 1978 description 1979 "RSVP packet stats extensions"; 1980 uses statistics-packets-extended_state; 1981 } 1982 augment "/rt:routing/rt:control-plane-protocols/" + 1983 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 1984 "rsvp:state/rsvp:protocol-stats" { 1985 description 1986 "RSVP protocol message stats extensions"; 1987 uses statistics-protocol-extended_state; 1988 } 1989 augment "/rt:routing/rt:control-plane-protocols/" + 1990 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 1991 "rsvp:state/rsvp:errors-stats" { 1992 description 1993 "RSVP errors stats extensions"; 1994 uses statistics-errors-extended_state; 1995 } 1997 /** 1998 * RSVP all interfaces extensions 1999 */ 2001 /* RSVP interface signaling extensions */ 2002 augment "/rt:routing/rt:control-plane-protocols/" 2003 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2004 + "rsvp:config" { 2005 description 2006 "RSVP signaling all interfaces configuration extensions"; 2007 uses signaling-parameters-extended_config; 2008 } 2009 augment "/rt:routing/rt:control-plane-protocols/" 2010 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2011 + "rsvp:state" { 2012 description 2013 "RSVP signaling all interfaces state extensions"; 2014 uses signaling-parameters-extended_config; 2015 } 2017 /* RSVP refresh reduction extension */ 2018 augment "/rt:routing/rt:control-plane-protocols/" 2019 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2020 + "rsvp:config/rsvp:refresh-reduction" { 2021 description 2022 "RSVP refresh-reduction all interface configuration 2023 extensions"; 2024 uses refresh-reduction-extended_config; 2025 } 2026 augment "/rt:routing/rt:control-plane-protocols/" 2027 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2028 + "rsvp:state/rsvp:refresh-reduction" { 2029 description 2030 "RSVP refresh-reduction all interfaces state extensions"; 2031 uses refresh-reduction-extended_config; 2032 } 2034 /* RSVP hellos extension */ 2035 augment "/rt:routing/rt:control-plane-protocols/" 2036 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2037 + "rsvp:config/rsvp:rsvp-hellos" { 2038 description 2039 "RSVP hello all interfaces configuration extensions"; 2040 uses rsvp-hellos-extended_config; 2041 } 2042 augment "/rt:routing/rt:control-plane-protocols/" 2043 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2044 + "rsvp:state/rsvp:rsvp-hellos" { 2045 description 2046 "RSVP hello all interfaces state extensions"; 2047 uses rsvp-hellos-extended_config; 2048 } 2050 /* RSVP authentication extension */ 2051 augment "/rt:routing/rt:control-plane-protocols/" 2052 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2053 + "rsvp:config/rsvp:authentication" { 2054 description 2055 "RSVP authentication all interfaces configuration extensions"; 2056 uses authentication-extended_config; 2057 } 2058 augment "/rt:routing/rt:control-plane-protocols/" 2059 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2060 + "rsvp:state/rsvp:authentication" { 2061 description 2062 "RSVP authentication all interfaces state extensions"; 2063 uses authentication-extended_config; 2064 } 2066 /** 2067 * RSVP interface extensions 2068 */ 2070 /* RSVP interface signaling extensions */ 2071 augment "/rt:routing/rt:control-plane-protocols/" 2072 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2073 "rsvp:interface/rsvp:config" { 2074 description 2075 "RSVP signaling interface configuration extensions"; 2076 uses signaling-parameters-extended_config; 2077 } 2078 augment "/rt:routing/rt:control-plane-protocols/" 2079 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2080 "rsvp:interface/rsvp:state" { 2081 description 2082 "RSVP signaling interface state extensions"; 2083 uses signaling-parameters-extended_config; 2084 } 2086 /* RSVP refresh reduction extension */ 2087 augment "/rt:routing/rt:control-plane-protocols/" 2088 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2089 "rsvp:interface/rsvp:config/rsvp:refresh-reduction" { 2090 description 2091 "RSVP refresh-reduction interface configuration extensions"; 2092 uses refresh-reduction-extended_config; 2093 } 2094 augment "/rt:routing/rt:control-plane-protocols/" 2095 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2096 "rsvp:interface/rsvp:state/rsvp:refresh-reduction" { 2097 description 2098 "RSVP refresh-reduction interface state extensions"; 2099 uses refresh-reduction-extended_config; 2100 } 2102 /* RSVP hellos extension */ 2103 augment "/rt:routing/rt:control-plane-protocols/" 2104 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2105 "rsvp:interface/rsvp:config/rsvp:rsvp-hellos" { 2107 description 2108 "RSVP hello interface configuration extensions"; 2109 uses rsvp-hellos-extended_config; 2110 } 2111 augment "/rt:routing/rt:control-plane-protocols/" 2112 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2113 "rsvp:interface/rsvp:state/rsvp:rsvp-hellos" { 2114 description 2115 "RSVP hello interface state extensions"; 2116 uses rsvp-hellos-extended_config; 2117 } 2119 /* RSVP authentication extension */ 2120 augment "/rt:routing/rt:control-plane-protocols/" 2121 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2122 "rsvp:interface/rsvp:config/rsvp:authentication" { 2123 description 2124 "RSVP authentication interface configuration extensions"; 2125 uses authentication-extended_config; 2126 } 2127 augment "/rt:routing/rt:control-plane-protocols/" 2128 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2129 "rsvp:interface/rsvp:state/rsvp:authentication" { 2130 description 2131 "RSVP authentication interface state extensions"; 2132 uses authentication-extended_config; 2133 } 2134 } 2136 2138 Figure 4: RSVP extended YANG module 2140 3.3. RSVP-TE Generic YANG Model 2142 This section contains the augmentation of the RSVP base YANG model 2143 for signalling Traffic-Engineering (RSVP-TE) Label Switched Paths 2144 (LSPs). New module is introduced that augment the RSVP-TE generic 2145 module to cover data items that are technology agnostic. 2147 This model imports and augments the base RSVP YANG model (presented 2148 in Section 3.1.3). It also imports and augments the TE YANG model 2149 defined in [I-D.ietf-teas-yang-te] to enable configuration of RSVP-TE 2150 attributes on TE tunnels. 2152 The following subsections provide overview of the parts of the RSVP- 2153 TE generic model pertaining to configuration and state data. 2155 3.3.1. Configuration and State Data 2157 There are three types of configuration and state data nodes in this 2158 module: 2160 o those augmenting or extending the base RSVP module 2162 o those augmenting or extending the base TE generic module 2164 o those that are specific to the RSVP-TE module 2166 Below is a YANG tree representation for data items defined in the 2167 RSVP-TE generic module: 2169 module: ietf-rsvp-te 2170 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 2171 /rsvp:rsvp/rsvp:globals: 2172 +--rw global-soft-preemption! 2173 +--rw config 2174 | +--rw soft-preemption-timeout? uint16 2175 +--rw state 2176 +--rw soft-preemption-timeout? uint16 2177 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 2178 /rsvp:rsvp/rsvp:interfaces: 2179 +--rw rsvp-te-interface-attributes 2180 +--rw config 2181 +--ro state 2182 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 2183 /rsvp:rsvp/rsvp:interfaces/rsvp:interface: 2184 +--rw rsvp-te-interface-attributes 2185 +--rw config 2186 +--ro state 2187 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 2188 /rsvp:rsvp/rsvp:sessions: 2189 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 2190 /rsvp:rsvp/rsvp:neighbors: 2191 augment /te:te/te:tunnels/te:tunnel: 2192 +--rw config 2193 | +--rw lsp-signaled-name? string 2194 | +--rw local-recording-desired? boolean 2195 | +--rw se-style-desired? boolean 2196 | +--rw path-reevaluation-request? boolean 2197 | +--rw soft-preemption-desired? boolean 2198 | +--rw lsp-rerouting? enumeration 2199 | +--rw lsp-integrety-required? boolean 2200 | +--rw lsp-contiguous? boolean 2201 | +--rw lsp-stitching-desired? boolean 2202 | +--rw lsp-preplanned? boolean 2203 | +--rw lsp-oob-mapping? boolean 2204 +--ro state 2205 +--ro lsp-signaled-name? string 2206 +--ro local-recording-desired? boolean 2207 +--ro se-style-desired? boolean 2208 +--ro path-reevaluation-request? boolean 2209 +--ro soft-preemption-desired? boolean 2210 +--ro lsp-rerouting? enumeration 2211 +--ro lsp-integrety-required? boolean 2212 +--ro lsp-contiguous? boolean 2213 +--ro lsp-stitching-desired? boolean 2214 +--ro lsp-preplanned? boolean 2215 +--ro lsp-oob-mapping? boolean 2216 augment /te:te/te:lsps-state/te:lsp: 2217 +--ro lsp-signaled-name? string 2218 +--ro local-recording-desired? boolean 2219 +--ro se-style-desired? boolean 2220 +--ro path-reevaluation-request? boolean 2221 +--ro soft-preemption-desired? boolean 2222 +--ro lsp-rerouting? enumeration 2223 +--ro lsp-integrety-required? boolean 2224 +--ro lsp-contiguous? boolean 2225 +--ro lsp-stitching-desired? boolean 2226 +--ro lsp-preplanned? boolean 2227 +--ro lsp-oob-mapping? boolean 2228 +--ro explicit-route-object 2229 | +--ro incoming-explicit-route-subobjects* [subobject-index] 2230 | | +--ro subobject-index uint32 2231 | | +--ro (type)? 2232 | | +--:(ipv4-address) 2233 | | | +--ro v4-address? inet:ipv4-address 2234 | | | +--ro v4-prefix-length? uint8 2235 | | | +--ro v4-loose? boolean 2236 | | +--:(ipv6-address) 2237 | | | +--ro v6-address? inet:ipv6-address 2238 | | | +--ro v6-prefix-length? uint8 2239 | | | +--ro v6-loose? boolean 2240 | | +--:(as-number) 2241 | | | +--ro as-number? uint16 2242 | | +--:(unnumbered-link) 2243 | | | +--ro router-id? inet:ip-address 2244 | | | +--ro interface-id? uint32 2245 | | +--:(label) 2246 | | +--ro value? uint32 2247 | +--ro outgoing-explicit-route-subobjects* [subobject-index] 2248 | +--ro subobject-index uint32 2249 | +--ro (type)? 2250 | +--:(ipv4-address) 2251 | | +--ro v4-address? inet:ipv4-address 2252 | | +--ro v4-prefix-length? uint8 2253 | | +--ro v4-loose? boolean 2254 | +--:(ipv6-address) 2255 | | +--ro v6-address? inet:ipv6-address 2256 | | +--ro v6-prefix-length? uint8 2257 | | +--ro v6-loose? boolean 2258 | +--:(as-number) 2259 | | +--ro as-number? uint16 2260 | +--:(unnumbered-link) 2261 | | +--ro router-id? inet:ip-address 2262 | | +--ro interface-id? uint32 2263 | +--:(label) 2264 | +--ro value? uint32 2265 +--ro record-route-object 2266 +--ro path-record-route-subobjects* [subobject-index] 2267 | +--ro subobject-index uint32 2268 | +--ro (type)? 2269 | +--:(ipv4-address) 2270 | | +--ro v4-address? inet:ipv4-address 2271 | | +--ro v4-prefix-length? uint8 2272 | | +--ro v4-flags? uint8 2273 | +--:(ipv6-address) 2274 | | +--ro v6-address? inet:ipv6-address 2275 | | +--ro v6-prefix-length? uint8 2276 | | +--ro v6-flags? uint8 2277 | +--:(unnumbered-link) 2278 | | +--ro router-id? inet:ip-address 2279 | | +--ro interface-id? uint32 2280 | +--:(label) 2281 | +--ro value? uint32 2282 | +--ro flags? uint8 2283 +--ro resv-record-route-subobjects* [subobject-index] 2284 +--ro subobject-index uint32 2285 +--ro (type)? 2286 +--:(ipv4-address) 2287 | +--ro v4-address? inet:ipv4-address 2288 | +--ro v4-prefix-length? uint8 2289 | +--ro v4-flags? uint8 2290 +--:(ipv6-address) 2291 | +--ro v6-address? inet:ipv6-address 2292 | +--ro v6-prefix-length? uint8 2293 | +--ro v6-flags? uint8 2294 +--:(unnumbered-link) 2295 | +--ro router-id? inet:ip-address 2296 | +--ro interface-id? uint32 2297 +--:(label) 2298 +--ro value? uint32 2299 +--ro flags? uint8 2300 augment /te:te/te-dev:interfaces/te-dev:interface: 2302 Figure 5: RSVP-TE YANG Tree representation 2304 3.3.2. RPC and Notification Data 2306 TBD. 2308 3.3.3. YANG Module 2310 file "ietf-rsvp-te@2016-10-29.yang" 2312 module ietf-rsvp-extended { 2314 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended"; 2316 prefix "rsvp-ext"; 2318 import ietf-rsvp { 2319 prefix "rsvp"; 2320 } 2322 import ietf-routing { 2323 prefix "rt"; 2324 } 2326 import ietf-yang-types { 2327 prefix "yang"; 2328 } 2330 organization 2331 "IETF Traffic Engineering Architecture and Signaling (TEAS) 2332 Working Group"; 2334 contact 2335 "WG Web: 2336 WG List: 2338 WG Chair: Lou Berger 2339 2341 WG Chair: Vishnu Pavan Beeram 2342 2344 Editor: Vishnu Pavan Beeram 2345 2347 Editor: Tarek Saad 2348 2350 Editor: Rakesh Gandhi 2351 2353 Editor: Himanshu Shah 2354 2356 Editor: Xufeng Liu 2357 2359 Editor: Xia Chen 2360 2362 Editor: Raqib Jones 2363 2365 Editor: Bin Wen 2366 "; 2368 description 2369 "This module contains the Extended RSVP YANG data model."; 2371 revision "2016-10-29" { 2372 description "Latest revision of RSVP extended yang module."; 2373 reference "RFC2205"; 2374 } 2376 /* RSVP features */ 2377 feature authentication { 2378 description 2379 "Indicates support for RSVP authentication"; 2380 } 2382 feature error-statistics { 2383 description 2384 "Indicates support for error statistics"; 2385 } 2387 feature global-statistics { 2388 description 2389 "Indicates support for global statistics"; 2390 } 2392 feature graceful-restart { 2393 description 2394 "Indicates support for RSVP graceful restart"; 2396 } 2398 feature hellos { 2399 description 2400 "Indicates support for RSVP hellos (RFC3209)."; 2401 } 2403 feature notify { 2404 description 2405 "Indicates support for RSVP notify message (RFC3473)."; 2406 } 2408 feature refresh-reduction { 2409 description 2410 "Indicates support for RSVP refresh reduction 2411 (RFC2961)."; 2412 } 2414 feature refresh-reduction-extended { 2415 description 2416 "Indicates support for RSVP refresh reduction 2417 (RFC2961)."; 2418 } 2420 feature per-interface-statistics { 2421 description 2422 "Indicates support for per interface statistics"; 2423 } 2425 grouping graceful-restart-extended_config { 2426 description 2427 "Configuration parameters relating to RSVP 2428 Graceful-Restart"; 2429 leaf restart-time { 2430 type uint32; 2431 units seconds; 2432 description 2433 "Graceful restart time (seconds)."; 2434 reference 2435 "RFC 5495: Description of the Resource 2436 Reservation Protocol - Traffic-Engineered 2437 (RSVP-TE) Graceful Restart Procedures"; 2438 } 2439 leaf recovery-time { 2440 type uint32; 2441 description 2442 "RSVP state recovery time"; 2443 } 2445 } 2447 grouping authentication-extended_config { 2448 description 2449 "Configuration parameters relating to RSVP 2450 authentication"; 2451 leaf lifetime { 2452 type uint32 { 2453 range "30..86400"; 2454 } 2455 description 2456 "Life time for each security association"; 2457 reference 2458 "RFC 2747: RSVP Cryptographic 2459 Authentication"; 2460 } 2461 leaf window-size { 2462 type uint32 { 2463 range "1..64"; 2464 } 2465 description 2466 "Window-size to limit number of out-of-order 2467 messages."; 2468 reference 2469 "RFC 2747: RSVP Cryptographic 2470 Authentication"; 2471 } 2472 leaf challenge { 2473 type empty; 2474 description 2475 "Enable challenge messages."; 2476 reference 2477 "RFC 2747: RSVP Cryptographic 2478 Authentication"; 2479 } 2480 leaf retransmits { 2481 type uint32 { 2482 range "1..10000"; 2483 } 2484 description 2485 "Number of retransmits when messages are 2486 dropped."; 2487 reference 2488 "RFC 2747: RSVP Cryptographic 2489 Authentication"; 2490 } 2491 leaf key-chain { 2492 type string { 2493 length "1..32"; 2494 } 2495 description 2496 "Key chain name to authenticate RSVP 2497 signaling messages."; 2498 reference 2499 "RFC 2747: RSVP Cryptographic 2500 Authentication"; 2501 } 2502 } 2504 grouping rsvp-hellos-extended_config { 2505 description 2506 "Configuration parameters relating to RSVP 2507 hellos"; 2508 leaf interface-based { 2509 type empty; 2510 description "Enable interface-based 2511 Hello adjacency if present."; 2512 } 2513 leaf hello-interval { 2514 type uint32; 2515 units milliseconds; 2516 description 2517 "Configure interval between successive Hello 2518 messages in milliseconds."; 2519 reference 2520 "RFC 3209: RSVP-TE: Extensions to RSVP for 2521 LSP Tunnels. 2522 RFC 5495: Description of the Resource 2523 Reservation Protocol - Traffic-Engineered 2524 (RSVP-TE) Graceful Restart Procedures"; 2525 } 2526 leaf hello-misses { 2527 type uint32 { 2528 range "1..10"; 2529 } 2530 description 2531 "Configure max number of consecutive missed 2532 Hello messages."; 2533 reference 2534 "RFC 3209: RSVP-TE: Extensions to RSVP for 2535 LSP Tunnels RFC 5495: Description of the 2536 Resource Reservation Protocol - Traffic- 2537 Engineered (RSVP-TE) Graceful Restart 2538 Procedures"; 2539 } 2540 } 2541 grouping signaling-parameters-extended_config { 2542 description 2543 "Configuration parameters relating to RSVP 2544 signaling"; 2545 leaf refresh-interval { 2546 type uint32; 2547 description 2548 "Set interval between successive refreshes"; 2549 } 2550 leaf refresh-misses { 2551 type uint32; 2552 description 2553 "Set max number of consecutive missed 2554 messages for state expiry"; 2555 } 2556 leaf checksum { 2557 type uint32; 2558 description 2559 "Enable RSVP message checksum computation"; 2560 } 2561 leaf patherr-state-removal { 2562 type empty; 2563 description 2564 "State-Removal flag in Path Error message 2565 if present."; 2566 } 2567 } 2569 grouping refresh-reduction-extended_config { 2570 description 2571 "Configuration parameters relating to RSVP 2572 refresh reduction"; 2574 leaf bundle-message-max-size { 2575 type uint32 { 2576 range "512..65000"; 2577 } 2578 description 2579 "Configure maximum size (bytes) of a 2580 single RSVP Bundle message."; 2581 } 2582 leaf reliable-ack-hold-time { 2583 type uint32; 2584 units milliseconds; 2585 description 2586 "Configure hold time in milliseconds for 2587 sending RSVP ACK message(s)."; 2588 } 2589 leaf reliable-ack-max-size { 2590 type uint32; 2591 description 2592 "Configure max size of a single RSVP ACK 2593 message."; 2594 } 2595 leaf reliable-retransmit-time { 2596 type uint32; 2597 units milliseconds; 2598 description 2599 "Configure min delay in milliseconds to 2600 wait for an ACK before a retransmit."; 2601 } 2602 leaf reliable-srefresh { 2603 type empty; 2604 description 2605 "Configure use of reliable messaging for 2606 summary refresh if present."; 2607 } 2608 leaf summary-max-size { 2609 type uint32 { 2610 range "20..65000"; 2611 } 2612 description 2613 "Configure max size (bytes) of a single 2614 RSVP summary refresh message."; 2615 } 2616 } 2618 grouping statistics-packets-extended_state { 2619 description 2620 "Packet statistics."; 2621 leaf discontinuity-time { 2622 type yang:date-and-time; 2623 description 2624 "The time on the most recent occasion at which any one 2625 or more of the statistic counters suffered a 2626 discontinuity. If no such discontinuities have occurred 2627 since the last re-initialization of the local 2628 management subsystem, then this node contains the time 2629 the local management subsystem re-initialized itself."; 2630 } 2631 leaf tx-dropped { 2632 type yang:counter32; 2633 description 2634 "Packet tx dropped count"; 2635 } 2636 leaf rx-dropped { 2637 type yang:counter32; 2638 description 2639 "Packet rx dropped count"; 2640 } 2642 leaf tx-error { 2643 type yang:counter32; 2644 description 2645 "Packet tx error count"; 2646 } 2648 leaf rx-error { 2649 type yang:counter32; 2650 description 2651 "Packet rx error count"; 2652 } 2653 } 2655 grouping statistics-protocol-extended_state { 2656 description 2657 "RSVP protocol statistics."; 2658 } 2660 grouping statistics-errors-extended_state { 2661 description 2662 "Error statistics."; 2663 } 2665 grouping statistics-extended_state { 2666 description "RSVP statistic attributes."; 2667 uses statistics-packets-extended_state; 2668 uses statistics-protocol-extended_state; 2669 uses statistics-errors-extended_state; 2670 } 2672 /** 2673 * RSVP extensions augmentations 2674 */ 2676 /* RSVP globals graceful restart*/ 2678 augment "/rt:routing/rt:control-plane-protocols/" + 2679 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 2680 "rsvp:config/rsvp:graceful-restart" { 2681 description 2682 "RSVP globals configuration extensions"; 2683 uses graceful-restart-extended_config; 2685 } 2686 augment "/rt:routing/rt:control-plane-protocols/" + 2687 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 2688 "rsvp:state/rsvp:graceful-restart" { 2689 description 2690 "RSVP globals state extensions"; 2691 uses graceful-restart-extended_config; 2692 } 2694 /* RSVP statistics augmentation */ 2695 augment "/rt:routing/rt:control-plane-protocols/" + 2696 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 2697 "rsvp:state/rsvp:packets-stats" { 2698 description 2699 "RSVP packet stats extensions"; 2700 uses statistics-packets-extended_state; 2701 } 2702 augment "/rt:routing/rt:control-plane-protocols/" + 2703 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 2704 "rsvp:state/rsvp:protocol-stats" { 2705 description 2706 "RSVP protocol message stats extensions"; 2707 uses statistics-protocol-extended_state; 2708 } 2709 augment "/rt:routing/rt:control-plane-protocols/" + 2710 "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + 2711 "rsvp:state/rsvp:errors-stats" { 2712 description 2713 "RSVP errors stats extensions"; 2714 uses statistics-errors-extended_state; 2715 } 2717 /** 2718 * RSVP all interfaces extensions 2719 */ 2721 /* RSVP interface signaling extensions */ 2722 augment "/rt:routing/rt:control-plane-protocols/" 2723 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2724 + "rsvp:config" { 2725 description 2726 "RSVP signaling all interfaces configuration extensions"; 2727 uses signaling-parameters-extended_config; 2728 } 2729 augment "/rt:routing/rt:control-plane-protocols/" 2730 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2731 + "rsvp:state" { 2732 description 2733 "RSVP signaling all interfaces state extensions"; 2734 uses signaling-parameters-extended_config; 2735 } 2737 /* RSVP refresh reduction extension */ 2738 augment "/rt:routing/rt:control-plane-protocols/" 2739 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2740 + "rsvp:config/rsvp:refresh-reduction" { 2741 description 2742 "RSVP refresh-reduction all interface configuration 2743 extensions"; 2744 uses refresh-reduction-extended_config; 2745 } 2746 augment "/rt:routing/rt:control-plane-protocols/" 2747 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2748 + "rsvp:state/rsvp:refresh-reduction" { 2749 description 2750 "RSVP refresh-reduction all interfaces state extensions"; 2751 uses refresh-reduction-extended_config; 2752 } 2754 /* RSVP hellos extension */ 2755 augment "/rt:routing/rt:control-plane-protocols/" 2756 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2757 + "rsvp:config/rsvp:rsvp-hellos" { 2758 description 2759 "RSVP hello all interfaces configuration extensions"; 2760 uses rsvp-hellos-extended_config; 2761 } 2762 augment "/rt:routing/rt:control-plane-protocols/" 2763 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2764 + "rsvp:state/rsvp:rsvp-hellos" { 2765 description 2766 "RSVP hello all interfaces state extensions"; 2767 uses rsvp-hellos-extended_config; 2768 } 2770 /* RSVP authentication extension */ 2771 augment "/rt:routing/rt:control-plane-protocols/" 2772 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2773 + "rsvp:config/rsvp:authentication" { 2774 description 2775 "RSVP authentication all interfaces configuration extensions"; 2776 uses authentication-extended_config; 2777 } 2778 augment "/rt:routing/rt:control-plane-protocols/" 2779 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2780 + "rsvp:state/rsvp:authentication" { 2782 description 2783 "RSVP authentication all interfaces state extensions"; 2784 uses authentication-extended_config; 2785 } 2787 /** 2788 * RSVP interface extensions 2789 */ 2791 /* RSVP interface signaling extensions */ 2792 augment "/rt:routing/rt:control-plane-protocols/" 2793 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2794 "rsvp:interface/rsvp:config" { 2795 description 2796 "RSVP signaling interface configuration extensions"; 2797 uses signaling-parameters-extended_config; 2798 } 2799 augment "/rt:routing/rt:control-plane-protocols/" 2800 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2801 "rsvp:interface/rsvp:state" { 2802 description 2803 "RSVP signaling interface state extensions"; 2804 uses signaling-parameters-extended_config; 2805 } 2807 /* RSVP refresh reduction extension */ 2808 augment "/rt:routing/rt:control-plane-protocols/" 2809 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2810 "rsvp:interface/rsvp:config/rsvp:refresh-reduction" { 2811 description 2812 "RSVP refresh-reduction interface configuration extensions"; 2813 uses refresh-reduction-extended_config; 2814 } 2815 augment "/rt:routing/rt:control-plane-protocols/" 2816 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2817 "rsvp:interface/rsvp:state/rsvp:refresh-reduction" { 2818 description 2819 "RSVP refresh-reduction interface state extensions"; 2820 uses refresh-reduction-extended_config; 2821 } 2823 /* RSVP hellos extension */ 2824 augment "/rt:routing/rt:control-plane-protocols/" 2825 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2826 "rsvp:interface/rsvp:config/rsvp:rsvp-hellos" { 2827 description 2828 "RSVP hello interface configuration extensions"; 2829 uses rsvp-hellos-extended_config; 2831 } 2832 augment "/rt:routing/rt:control-plane-protocols/" 2833 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2834 "rsvp:interface/rsvp:state/rsvp:rsvp-hellos" { 2835 description 2836 "RSVP hello interface state extensions"; 2837 uses rsvp-hellos-extended_config; 2838 } 2840 /* RSVP authentication extension */ 2841 augment "/rt:routing/rt:control-plane-protocols/" 2842 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2843 "rsvp:interface/rsvp:config/rsvp:authentication" { 2844 description 2845 "RSVP authentication interface configuration extensions"; 2846 uses authentication-extended_config; 2847 } 2848 augment "/rt:routing/rt:control-plane-protocols/" 2849 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 2850 "rsvp:interface/rsvp:state/rsvp:authentication" { 2851 description 2852 "RSVP authentication interface state extensions"; 2853 uses authentication-extended_config; 2854 } 2855 } 2857 2859 3.4. RSVP-TE MPLS Model 2861 This section describes the MPLS RSVP-TE YANG module that augments the 2862 RSVP-TE generic module to signal MPLS LSPs. RSVP-TE YANG modules for 2863 other dataplane technologies (e.g. OTN or WDM) will be defined in 2864 separate modules and in other drafts. 2866 The following subsections describe the configuration and state data . 2867 pertaining to RSVP-TE MPLS YANG data model. 2869 3.4.1. Configuration and State Data 2871 The following are possible types of configuration and state data 2872 nodes in this module: 2874 o those augmenting or extending the generic RSVP-TE module 2876 o those augmenting or extending the base TE generic module 2878 o those that are specific to the RSVP-TE MPLS module 2879 Below is a YANG tree representation for data items defined in the 2880 RSVP-TE MPLS module: 2882 module: ietf-rsvp-te-mpls 2883 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol 2884 /rsvp:rsvp: 2885 +--rw config 2886 | +--rw rsvp-frr-local-revert! 2887 | +--rw rsvp-frr-local-revert-delay? uint32 2888 +--ro state 2889 +--ro rsvp-frr-local-revert! 2890 +--ro rsvp-frr-local-revert-delay? uint32 2891 augment /rt:routing/rt:control-plane-protocols/ 2892 rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces: 2893 augment /rt:routing/rt:control-plane-protocols/ 2894 rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:interface: 2895 augment /rt:routing/rt:control-plane-protocols/ 2896 rt:control-plane-protocol/rsvp:rsvp/rsvp:sessions: 2897 augment /rt:routing/rt:control-plane-protocols/ 2898 rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors: 2899 augment /te:te/te:tunnels/te:tunnel: 2900 +--rw config 2901 | +--rw static-bandwidth? uint32 2902 | +--rw auto-bandwidth 2903 | | +--rw enabled? boolean 2904 | | +--rw min-bw? uint32 2905 | | +--rw max-bw? uint32 2906 | | +--rw adjust-interval? uint32 2907 | | +--rw adjust-threshold? uint32 2908 | | +--rw overflow 2909 | | | +--rw enabled? boolean 2910 | | | +--rw overflow-threshold? uint32 2911 | | | +--rw trigger-event-count? uint16 2912 | | +--rw underflow 2913 | | +--rw enabled? boolean 2914 | | +--rw underflow-threshold? uint32 2915 | | +--rw trigger-event-count? uint16 2916 | +--rw local-protection-desired? empty 2917 | +--rw bandwidth-protection-desired? empty 2918 | +--rw node-protection-desired? empty 2919 | +--rw non-php-desired? empty 2920 | +--rw entropy-label-cap? empty 2921 | +--rw oam-mep-entities-desired? empty 2922 | +--rw oam-mip-entities-desired? empty 2923 +--rw state 2924 +--rw static-bandwidth? uint32 2925 +--rw auto-bandwidth 2926 | +--rw enabled? boolean 2927 | +--rw min-bw? uint32 2928 | +--rw max-bw? uint32 2929 | +--rw adjust-interval? uint32 2930 | +--rw adjust-threshold? uint32 2931 | +--rw overflow 2932 | | +--rw enabled? boolean 2933 | | +--rw overflow-threshold? uint32 2934 | | +--rw trigger-event-count? uint16 2935 | +--rw underflow 2936 | +--rw enabled? boolean 2937 | +--rw underflow-threshold? uint32 2938 | +--rw trigger-event-count? uint16 2939 +--rw local-protection-desired? empty 2940 +--rw bandwidth-protection-desired? empty 2941 +--rw node-protection-desired? empty 2942 +--rw non-php-desired? empty 2943 +--rw entropy-label-cap? empty 2944 +--rw oam-mep-entities-desired? empty 2945 +--rw oam-mip-entities-desired? empty 2946 augment /te:te/te:lsps-state/te:lsp: 2947 +--ro static-bandwidth? uint32 2948 +--ro auto-bandwidth 2949 | +--ro enabled? boolean 2950 | +--ro min-bw? uint32 2951 | +--ro max-bw? uint32 2952 | +--ro adjust-interval? uint32 2953 | +--ro adjust-threshold? uint32 2954 | +--ro overflow 2955 | | +--ro enabled? boolean 2956 | | +--ro overflow-threshold? uint32 2957 | | +--ro trigger-event-count? uint16 2958 | +--ro underflow 2959 | +--ro enabled? boolean 2960 | +--ro underflow-threshold? uint32 2961 | +--ro trigger-event-count? uint16 2962 +--ro local-protection-desired? empty 2963 +--ro bandwidth-protection-desired? empty 2964 +--ro node-protection-desired? empty 2965 +--ro non-php-desired? empty 2966 +--ro entropy-label-cap? empty 2967 +--ro oam-mep-entities-desired? empty 2968 +--ro oam-mip-entities-desired? empty 2969 +--ro backup-info 2970 +--ro backup-tunnel-name? string 2971 +--ro backup-frr-on? uint8 2972 +--ro backup-protected-lsp-num? uint32 2973 augment /te:te/te-dev:interfaces/te-dev:interface: 2974 +--rw config 2975 | +--rw (bandwidth-value)? 2976 | | +--:(absolute) 2977 | | | +--rw absolute-value? uint32 2978 | | +--:(precentage) 2979 | | +--rw percent-value? uint32 2980 | +--rw (bc-model-type)? 2981 | +--:(bc-model-rdm) 2982 | | +--rw bc-model-rdm 2983 | | +--rw bandwidth-mpls-constraints 2984 | | +--rw maximum-reservable? uint32 2985 | | +--rw bc-value* uint32 2986 | +--:(bc-model-mam) 2987 | | +--rw bc-model-mam 2988 | | +--rw bandwidth-mpls-constraints 2989 | | +--rw maximum-reservable? uint32 2990 | | +--rw bc-value* uint32 2991 | +--:(bc-model-mar) 2992 | +--rw bc-model-mar 2993 | +--rw bandwidth-mpls-constraints 2994 | +--rw maximum-reservable? uint32 2995 | +--rw bc-value* uint32 2996 +--ro state 2997 | +--ro (bandwidth-value)? 2998 | | +--:(absolute) 2999 | | | +--ro absolute-value? uint32 3000 | | +--:(precentage) 3001 | | +--ro percent-value? uint32 3002 | +--ro (bc-model-type)? 3003 | | +--:(bc-model-rdm) 3004 | | | +--ro bc-model-rdm 3005 | | | +--ro bandwidth-mpls-constraints 3006 | | | +--ro maximum-reservable? uint32 3007 | | | +--ro bc-value* uint32 3008 | | +--:(bc-model-mam) 3009 | | | +--ro bc-model-mam 3010 | | | +--ro bandwidth-mpls-constraints 3011 | | | +--ro maximum-reservable? uint32 3012 | | | +--ro bc-value* uint32 3013 | | +--:(bc-model-mar) 3014 | | +--ro bc-model-mar 3015 | | +--ro bandwidth-mpls-constraints 3016 | | +--ro maximum-reservable? uint32 3017 | | +--ro bc-value* uint32 3018 | +--ro interface-softpreemption-state 3019 | | +--ro soft-preempted-bandwidth? uint32 3020 | | +--ro lsps* 3021 [source destination tunnel-id lsp-id extended-tunnel-id] 3022 | | +--ro source -> /te:te/lsps-state/lsp/source 3023 | | +--ro destination -> /te:te/lsps-state/lsp/destination 3024 | | +--ro tunnel-id -> /te:te/lsps-state/lsp/tunnel-id 3025 | | +--ro lsp-id -> /te:te/lsps-state/lsp/lsp-id 3026 | | +--ro extended-tunnel-id 3027 -> /te:te/lsps-state/lsp/extended-tunnel-id 3028 | | +--ro type? -> /te:te/lsps-state/lsp/type 3029 | +--ro over-subscribed-bandwidth? uint32 3030 +--rw rsvp-te-frr-backups {te-types:frr-te}? 3031 +--rw config 3032 | +--rw backup-bandwidth? uint32 3033 | +--rw backup-bandwidth-classtype? uint32 3034 | +--rw (type)? 3035 | +--:(static-tunnel) 3036 | | +--rw static-backups* [tunnel-name] 3037 | | +--rw tunnel-name string 3038 | +--:(auto-tunnel) 3039 | +--rw auto-backup-protection? identityref 3040 | +--rw auto-backup-path-computation? identityref 3041 +--ro state 3042 +--ro backup-bandwidth? uint32 3043 +--ro backup-bandwidth-classtype? uint32 3044 +--ro (type)? 3045 +--:(static-tunnel) 3046 | +--ro static-backups* [tunnel-name] 3047 | +--ro tunnel-name string 3048 +--:(auto-tunnel) 3049 +--ro auto-backup-protection? identityref 3051 Figure 6: MPLS RSVP-TE YANG Tree representation 3053 3.4.2. RPC and Notification Data 3055 TBD. 3057 3.4.3. YANG Module 3059 file "ietf-rsvp-te-mpls@2016-10-29.yang" 3061 module ietf-rsvp-te-mpls { 3063 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls"; 3065 prefix "rsvp-te-mpls"; 3067 import ietf-rsvp { 3068 prefix "rsvp"; 3069 } 3070 import ietf-routing { 3071 prefix "rt"; 3072 } 3074 import ietf-te-mpls-types { 3075 prefix "te-mpls-types"; 3076 } 3078 import ietf-te-types { 3079 prefix "te-types"; 3080 } 3082 import ietf-te { 3083 prefix "te"; 3084 } 3086 import ietf-te-device { 3087 prefix "te-dev"; 3088 } 3090 organization 3091 "IETF Traffic Engineering Architecture and Signaling (TEAS) 3092 Working Group"; 3094 contact 3095 "WG Web: 3096 WG List: 3098 WG Chair: Lou Berger 3099 3101 WG Chair: Vishnu Pavan Beeram 3102 3104 Editor: Vishnu Pavan Beeram 3105 3107 Editor: Tarek Saad 3108 3110 Editor: Rakesh Gandhi 3111 3113 Editor: Himanshu Shah 3114 3116 Editor: Xufeng Liu 3117 3119 Editor: Xia Chen 3120 3122 Editor: Raqib Jones 3123 3125 Editor: Bin Wen 3126 "; 3128 description 3129 "Latest update to MPLS RSVP-TE YANG data model."; 3131 revision "2016-10-29" { 3132 description "Update to MPLS RSVP-TE YANG initial revision."; 3133 reference "RFC3209, RFC6511, RFC6790, RFC7260, RFC4859, RFC4090"; 3134 } 3136 /* RSVP-TE MPLS LSPs groupings */ 3137 grouping lsp-attributes-flags-mpls_config { 3138 description 3139 "Configuration parameters relating to RSVP-TE MPLS LSP 3140 attribute flags"; 3141 leaf non-php-desired { 3142 type empty; 3143 description 3144 "Non-PHP is desired"; 3145 reference "RFC6511"; 3146 } 3147 leaf entropy-label-cap { 3148 type empty; 3149 description "Entropy label capability"; 3150 reference "RFC6790"; 3151 } 3152 leaf oam-mep-entities-desired { 3153 type empty; 3154 description "OAM MEP entities desired"; 3155 reference "RFC7260"; 3156 } 3157 leaf oam-mip-entities-desired { 3158 type empty; 3159 description "OAM MIP entities desired"; 3160 reference "RFC7260"; 3161 } 3162 } 3164 grouping lsp-session-attributes-obj-flags-mpls_config { 3165 description 3166 "Configuration parameters relating to RSVP-TE MPLS LSP 3167 session attribute flags"; 3168 reference 3169 "RFC4859: Registry for RSVP-TE Session Flags"; 3170 leaf local-protection-desired { 3171 type empty; 3172 description "Fastreroute local protection is desired."; 3173 reference 3174 "RFC4859: Registry for RSVP-TE Session Flags"; 3175 } 3176 leaf bandwidth-protection-desired { 3177 type empty; 3178 description 3179 "Request FRR bandwidth protection on LSRs if 3180 present."; 3181 reference "RFC4090"; 3182 } 3183 leaf node-protection-desired { 3184 type empty; 3185 description 3186 "Request FRR node protection on LSRs if 3187 present."; 3188 reference "RFC4090"; 3189 } 3190 } 3192 grouping lsp-overflow_config { 3193 description "configuration for mpls lsp bandwidth 3194 overflow adjustment"; 3196 leaf enabled { 3197 type boolean; 3198 default false; 3199 description "enables mpls lsp bandwidth overflow 3200 adjustment on the lsp"; 3201 } 3203 leaf overflow-threshold { 3204 type uint32; 3205 description "bandwidth percentage change to trigger 3206 an overflow event"; 3208 } 3210 leaf trigger-event-count { 3211 type uint16; 3212 description "number of consecutive overflow sample 3213 events needed to trigger an overflow adjustment"; 3214 } 3216 } 3218 grouping lsp-underflow_config { 3219 description 3220 "configuration for mpls lsp bandwidth 3221 underflow adjustment"; 3223 leaf enabled { 3224 type boolean; 3225 default false; 3226 description "enables bandwidth underflow 3227 adjustment on the lsp"; 3228 } 3230 leaf underflow-threshold { 3231 type uint32; 3232 description "bandwidth percentage change to trigger 3233 and underflow event"; 3234 } 3236 leaf trigger-event-count { 3237 type uint16; 3238 description "number of consecutive underflow sample 3239 events needed to trigger an underflow adjustment"; 3240 } 3241 } 3243 grouping lsp-auto-bandwidth_config { 3244 description 3245 "Auto-Bandwidth grouping"; 3246 container auto-bandwidth { 3247 description "configure auto-bandwidth operation in 3248 which devices automatically adjust bandwidth to meet 3249 requirements"; 3251 leaf enabled { 3252 type boolean; 3253 default false; 3254 description "enables mpls auto-bandwidth on the 3255 lsp"; 3256 } 3258 leaf min-bw { 3259 type uint32; 3260 description "set the minimum bandwidth in Mbps for an 3261 auto-bandwidth LSP"; 3262 } 3263 leaf max-bw { 3264 type uint32; 3265 description "set the maximum bandwidth in Mbps for an 3266 auto-bandwidth LSP"; 3267 } 3269 leaf adjust-interval { 3270 type uint32; 3271 description "time in seconds between adjustments to 3272 LSP bandwidth"; 3273 } 3275 leaf adjust-threshold { 3276 type uint32; 3277 description "percentage difference between the LSP's 3278 specified bandwidth and its current bandwidth 3279 allocation -- if the difference is greater than the 3280 specified percentage, auto-bandwidth adjustment is 3281 triggered"; 3282 } 3284 container overflow { 3285 description "configuration of MPLS overflow bandwidth 3286 adjustement for the LSP"; 3287 uses lsp-overflow_config; 3288 } 3290 container underflow { 3291 description "configuration of MPLS underflow bandwidth 3292 adjustement for the LSP"; 3293 uses lsp-underflow_config; 3294 } 3295 } 3296 } 3298 grouping lsp-bandwidth_config { 3299 description 3300 "LSP bandwidth grouping"; 3301 leaf static-bandwidth { 3302 type uint32; 3303 description 3304 "Static bandwidth, e.g., using 3305 offline calculation"; 3306 } 3307 uses lsp-auto-bandwidth_config; 3308 } 3310 grouping tunnel-properties-mpls { 3311 description 3312 "Top level grouping for LSP properties."; 3313 container config { 3314 description 3315 "Configuration parameters for tunnel RSVP-TE 3316 properties"; 3317 uses lsp-bandwidth_config; 3318 uses lsp-session-attributes-obj-flags-mpls_config; 3319 uses lsp-attributes-flags-mpls_config; 3320 } 3321 container state { 3322 description 3323 "State parameters for tunnel RSVP-TE 3324 properties"; 3325 uses lsp-bandwidth_config; 3326 uses lsp-session-attributes-obj-flags-mpls_config; 3327 uses lsp-attributes-flags-mpls_config; 3328 } 3329 } 3331 grouping lsp-properties-mpls { 3332 description 3333 "Top level grouping for LSP properties."; 3334 uses lsp-bandwidth_config; 3335 uses lsp-session-attributes-obj-flags-mpls_config; 3336 uses lsp-attributes-flags-mpls_config; 3337 } 3338 /* End of RSVP-TE MPLS LSPs groupings */ 3340 /* MPLS RSVP-TE interface groupings */ 3341 grouping rsvp-te-interface_state { 3342 description 3343 "The RSVP-TE interface state grouping"; 3344 leaf over-subscribed-bandwidth { 3345 type uint32; 3346 description 3347 "The amount of over-subscribed bandwidth on 3348 the interface"; 3349 } 3350 } 3352 grouping rsvp-te-interface-softpreemption_state { 3353 description 3354 "The RSVP-TE interface preeemptions state grouping"; 3355 container interface-softpreemption-state { 3356 description 3357 "The RSVP-TE interface preeemptions state grouping"; 3358 leaf soft-preempted-bandwidth { 3359 type uint32; 3360 description 3361 "The amount of soft-preempted bandwidth on 3362 this interface"; 3363 } 3364 list lsps { 3365 key 3366 "source destination tunnel-id lsp-id "+ 3367 "extended-tunnel-id"; 3368 description 3369 "List of LSPs that are soft-preempted"; 3370 leaf source { 3371 type leafref { 3372 path "/te:te/te:lsps-state/te:lsp/"+ 3373 "te:source"; 3374 } 3375 description 3376 "Tunnel sender address extracted from 3377 SENDER_TEMPLATE object"; 3378 reference "RFC3209"; 3379 } 3380 leaf destination { 3381 type leafref { 3382 path "/te:te/te:lsps-state/te:lsp/"+ 3383 "te:destination"; 3384 } 3385 description 3386 "Tunnel endpoint address extracted from 3387 SESSION object"; 3388 reference "RFC3209"; 3389 } 3390 leaf tunnel-id { 3391 type leafref { 3392 path "/te:te/te:lsps-state/te:lsp/"+ 3393 "te:tunnel-id"; 3394 } 3395 description 3396 "Tunnel identifier used in the SESSION 3397 that remains constant over the life 3398 of the tunnel."; 3399 reference "RFC3209"; 3400 } 3401 leaf lsp-id { 3402 type leafref { 3403 path "/te:te/te:lsps-state/te:lsp/"+ 3404 "te:lsp-id"; 3405 } 3406 description 3407 "Identifier used in the SENDER_TEMPLATE 3408 and the FILTER_SPEC that can be changed 3409 to allow a sender to share resources with 3410 itself."; 3411 reference "RFC3209"; 3412 } 3413 leaf extended-tunnel-id { 3414 type leafref { 3415 path "/te:te/te:lsps-state/te:lsp/"+ 3416 "te:extended-tunnel-id"; 3417 } 3418 description 3419 "Extended Tunnel ID of the LSP."; 3420 reference "RFC3209"; 3421 } 3422 leaf type { 3423 type leafref { 3424 path "/te:te/te:lsps-state/te:lsp/"+ 3425 "te:type"; 3426 } 3427 description "LSP type P2P or P2MP"; 3428 } 3429 } 3430 } 3431 } 3432 /* End of RSVP-TE interface groupings */ 3434 /* RSVP-TE FRR groupings */ 3435 grouping rsvp-te-frr-backups_config { 3436 description 3437 "Top level container for RSVP-TE FRR backup parameters"; 3438 leaf backup-bandwidth { 3439 type uint32; 3440 description 3441 "Maximum bandwidth this facility backup 3442 is allowed to protect"; 3443 } 3444 leaf backup-bandwidth-classtype { 3445 type uint32; 3446 description 3447 "Type of primary LSP bandwidth that the 3448 backup is allowed to protect."; 3449 } 3450 choice type { 3451 description 3452 "FRR backup tunnel type"; 3453 case static-tunnel { 3454 list static-backups { 3455 key "tunnel-name"; 3456 description 3457 "List of static backup tunnels that 3458 protect the RSVP-TE interface."; 3459 leaf tunnel-name { 3460 type string; 3461 description "FRR Backup tunnel"; 3462 } 3463 } 3464 } 3465 case auto-tunnel { 3466 leaf auto-backup-protection { 3467 type identityref { 3468 base te-mpls-types:backup-protection-type; 3469 } 3470 default 3471 te-mpls-types:backup-protection-node-link; 3472 description 3473 "Describes whether the backup should offer 3474 protection against link, node, or either"; 3475 } 3476 leaf auto-backup-path-computation { 3477 type identityref { 3478 base 3479 te-types:path-computation-srlg-type; 3480 } 3481 description 3482 "FRR backup computation type"; 3483 } 3484 } 3485 } 3486 } 3488 grouping rsvp-te-frr-backups { 3489 description 3490 "Top level grouping for RSVP-TE FRR backup properties."; 3491 container rsvp-te-frr-backups { 3492 if-feature te-types:frr-te; 3493 description 3494 "Top level container for RSVP-TE FRR backup 3495 properties."; 3496 container config { 3497 description 3498 "Configuration parameters for interface RSVP-TE 3499 FRR backup properties"; 3500 uses rsvp-te-frr-backups_config; 3501 } 3502 container state { 3503 config false; 3504 description 3505 "State parameters for interface RSVP-TE 3506 FRR backup properties"; 3507 uses rsvp-te-frr-backups_config; 3508 } 3509 } 3510 } 3512 grouping lps-backup-info_state { 3513 description "Backup/bypass LSP related information"; 3514 container backup-info { 3515 description 3516 "backup information"; 3518 leaf backup-tunnel-name { 3519 type string; 3520 description 3521 "If an LSP has an FRR backup LSP that can protect it, 3522 this field identifies the tunnel name of the backup LSP. 3523 Otherwise, this field is empty."; 3524 } 3526 leaf backup-frr-on { 3527 type uint8; 3528 description 3529 "Whether currently this backup is carrying traffic"; 3530 } 3532 leaf backup-protected-lsp-num { 3533 type uint32; 3534 description 3535 "Number of LSPs protected by this backup"; 3536 } 3537 } 3538 } 3540 grouping rsvp-frr-local-revert_config { 3541 description "RSVP-TE FRR local revertive grouping"; 3542 container rsvp-frr-local-revert { 3543 presence "Enable RSVP FRR local revertive recovery 3544 mode."; 3545 description 3546 "RSVP-TE FRR local revertive container"; 3547 leaf rsvp-frr-local-revert-delay { 3548 type uint32; 3549 description 3550 "Time to wait after primary link is restored 3551 before node attempts local revertive 3552 procedures."; 3553 } 3554 } 3555 } 3557 /*** End of RSVP-TE FRR backup information ***/ 3559 grouping globals-properties { 3560 description 3561 "Top level grouping for globals properties"; 3562 container config { 3563 description 3564 "Configuration parameters relating to 3565 global MPLS RSVP-TE properties"; 3566 uses rsvp-frr-local-revert_config; 3567 } 3568 container state { 3569 config false; 3570 description 3571 "State parameters relating to 3572 global MPLS RSVP-TE properties"; 3573 uses rsvp-frr-local-revert_config; 3574 } 3575 } 3577 /* RSVP-TE global propeerties */ 3578 augment "/rt:routing/rt:control-plane-protocols/" 3579 + "rt:control-plane-protocol/rsvp:rsvp" { 3580 description 3581 "RSVP-TE augmentation to RSVP globals"; 3582 uses globals-properties; 3583 } 3585 grouping rsvp-te-interface-attributes-mpls { 3586 description 3587 "Top level grouping for MPLS RSVP-TE interface 3588 properties."; 3589 container config { 3590 description 3591 "Configuration parameters relating to RSVP-TE 3592 bandwidth"; 3593 uses te-mpls-types:bandwidth-mpls-reservable; 3594 } 3595 container state { 3596 config false; 3597 description 3598 "State information associated with RSVP-TE 3599 bandwidth"; 3600 uses te-mpls-types:bandwidth-mpls-reservable; 3601 uses rsvp-te-interface-softpreemption_state; 3602 uses rsvp-te-interface_state; 3603 } 3604 } 3606 /* Linkage to the base RSVP all interfaces */ 3607 augment "/rt:routing/rt:control-plane-protocols/" 3608 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { 3609 description 3610 "Augmentations for RSVP-TE MPLS all interfaces properties"; 3611 /* To be added */ 3612 } 3614 /* Linkage to per RSVP interface */ 3615 augment "/rt:routing/rt:control-plane-protocols/" 3616 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + 3617 "rsvp:interface" { 3618 description 3619 "Augmentations for RSVP-TE MPLS per interface properties"; 3620 /* To be added */ 3621 } 3623 /* add augmentation for sessions neighbors */ 3624 augment "/rt:routing/rt:control-plane-protocols/" 3625 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:sessions" { 3626 description 3627 "Augmentations for RSVP-TE MPLS sessions"; 3628 /* To be added */ 3629 } 3631 augment "/rt:routing/rt:control-plane-protocols/" 3632 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" { 3633 description 3634 "Augmentations for RSVP-TE MPLS neighbors properties"; 3635 /* To be added */ 3636 } 3638 /** 3639 * Augmentation to TE generic module 3640 */ 3641 augment "/te:te/te:tunnels/te:tunnel" { 3642 description 3643 "Augmentations for RSVP-TE MPLS TE tunnel properties"; 3644 uses tunnel-properties-mpls; 3645 } 3646 augment "/te:te/te:lsps-state/te:lsp" { 3647 description 3648 "RSVP-TE MPLS LSP state properties"; 3649 uses lsp-properties-mpls; 3650 uses lps-backup-info_state; 3651 } 3653 augment "/te:te/te-dev:interfaces/te-dev:interface" { 3654 description 3655 "RSVP reservable bandwidth configuration properties"; 3656 uses rsvp-te-interface-attributes-mpls; 3657 uses rsvp-te-frr-backups; 3658 } 3659 } 3661 3663 4. IANA Considerations 3665 This document registers the following URIs in the IETF XML registry 3666 [RFC3688]. Following the format in [RFC3688], the following 3667 registration is requested to be made. 3669 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp XML: N/A, the requested 3670 URI is an XML namespace. 3672 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-te XML: N/A, the requested 3673 URI is an XML namespace. 3675 This document registers a YANG module in the YANG Module Names 3676 registry [RFC6020]. 3678 name: ietf-rsvp namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp 3679 prefix: ietf-rsvp reference: RFC3209 3681 name: ietf-rsvp-te namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp- 3682 te prefix: ietf-rsvp-te reference: RFC3209 3684 5. Security Considerations 3686 The YANG module defined in this memo is designed to be accessed via 3687 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 3688 secure transport layer and the mandatory-to-implement secure 3689 transport is SSH [RFC6242]. The NETCONF access control model 3690 [RFC6536] provides means to restrict access for particular NETCONF 3692 users to a pre-configured subset of all available NETCONF protocol 3693 operations and content. 3695 There are a number of data nodes defined in the YANG module which are 3696 writable/creatable/deletable (i.e., config true, which is the 3697 default). These data nodes may be considered sensitive or vulnerable 3698 in some network environments. Write operations (e.g., ) 3699 to these data nodes without proper protection can have a negative 3700 effect on network operations. 3702 6. Acknowledgement 3704 The authors would like to thank Lou Berger for reviewing and 3705 providing valuable feedback on this document. 3707 7. References 3709 7.1. Normative References 3711 [I-D.ietf-netmod-routing-cfg] 3712 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 3713 Management", draft-ietf-netmod-routing-cfg-24 (work in 3714 progress), October 2016. 3716 [I-D.ietf-teas-yang-te] 3717 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., 3718 Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data 3719 Model for Traffic Engineering Tunnels and Interfaces", 3720 draft-ietf-teas-yang-te-04 (work in progress), July 2016. 3722 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3723 Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ 3724 RFC2119, March 1997, 3725 . 3727 [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. 3728 Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 3729 Functional Specification", RFC 2205, DOI 10.17487/RFC2205, 3730 September 1997, . 3732 [RFC2747] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic 3733 Authentication", RFC 2747, DOI 10.17487/RFC2747, January 3734 2000, . 3736 [RFC2961] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F., 3737 and S. Molendini, "RSVP Refresh Overhead Reduction 3738 Extensions", RFC 2961, DOI 10.17487/RFC2961, April 2001, 3739 . 3741 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 3742 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 3743 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 3744 . 3746 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 3747 Switching (GMPLS) Signaling Resource ReserVation Protocol- 3748 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, DOI 3749 10.17487/RFC3473, January 2003, 3750 . 3752 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 3753 DOI 10.17487/RFC3688, January 2004, 3754 . 3756 [RFC5063] Satyanarayana, A., Ed. and R. Rahman, Ed., "Extensions to 3757 GMPLS Resource Reservation Protocol (RSVP) Graceful 3758 Restart", RFC 5063, DOI 10.17487/RFC5063, October 2007, 3759 . 3761 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 3762 the Network Configuration Protocol (NETCONF)", RFC 6020, 3763 DOI 10.17487/RFC6020, October 2010, 3764 . 3766 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 3767 and A. Bierman, Ed., "Network Configuration Protocol 3768 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 3769 . 3771 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 3772 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 3773 . 3775 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 3776 Protocol (NETCONF) Access Control Model", RFC 6536, DOI 3777 10.17487/RFC6536, March 2012, 3778 . 3780 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 3781 6991, DOI 10.17487/RFC6991, July 2013, 3782 . 3784 7.2. Informative References 3786 [I-D.openconfig-mpls-consolidated-model] 3787 George, J., Fang, L., eric.osborne@level3.com, e., and R. 3788 Shakir, "MPLS / TE Model for Service Provider Networks", 3789 draft-openconfig-mpls-consolidated-model-02 (work in 3790 progress), October 2015. 3792 [I-D.openconfig-netmod-opstate] 3793 Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling 3794 of Operational State Data in YANG", draft-openconfig- 3795 netmod-opstate-01 (work in progress), July 2015. 3797 Authors' Addresses 3799 Vishnu Pavan Beeram 3800 Juniper Networks 3802 Email: vbeeram@juniper.net 3804 Tarek Saad (editor) 3805 Cisco Systems Inc 3807 Email: tsaad@cisco.com 3809 Rakesh Gandhi 3810 Cisco Systems Inc 3812 Email: rgandhi@cisco.com 3814 Xufeng Liu 3815 Ericsson 3817 Email: xliu@kuatrotech.com 3819 Himanshu Shah 3820 Ciena 3822 Email: hshah@ciena.com 3824 Xia Chen 3825 Huawei Technologies 3827 Email: jescia.chenxia@huawei.com 3828 Raqib Jones 3829 Brocade 3831 Email: raqib@Brocade.com 3833 Bin Wen 3834 Comcast 3836 Email: Bin_Wen@cable.comcast.com