idnits 2.17.1 draft-ietf-teas-yang-rsvp-00.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 710 has weird spacing: '...ination ine...' == Line 1094 has weird spacing: '...gnaling param...' == Line 2449 has weird spacing: '...nnel-id lea...' == (2 more instances...) -- The document date (September 17, 2015) is 3143 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. 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-19 == Outdated reference: A later version (-02) exists of draft-saad-teas-yang-te-01 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) == Outdated reference: A later version (-02) exists of draft-openconfig-mpls-consolidated-model-00 == Outdated reference: A later version (-01) exists of draft-openconfig-netmod-opstate-00 Summary: 1 error (**), 0 flaws (~~), 11 warnings (==), 2 comments (--). 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 5 Expires: March 20, 2016 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 September 17, 2015 19 A YANG Data Model for Resource Reservation Protocol (RSVP) 20 draft-ietf-teas-yang-rsvp-00 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 January 7, 2016. 49 Copyright Notice 51 Copyright (c) 2015 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 . . . . . . . . . . . . . . . . . . . . . . . 6 76 2.2. Feature Set . . . . . . . . . . . . . . . . . . . . . . . 7 77 2.3. Configuration Inheritance . . . . . . . . . . . . . . . . 7 78 2.4. Vendor Configuration Models . . . . . . . . . . . . . . . 8 79 3. Model Organization . . . . . . . . . . . . . . . . . . . . . 8 80 4. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . . . 8 81 4.1. Configuration and State Data . . . . . . . . . . . . . . 10 82 4.1.1. Interface Data . . . . . . . . . . . . . . . . . . . 11 83 4.1.2. Session Data . . . . . . . . . . . . . . . . . . . . 16 84 4.1.3. Neighbor Data . . . . . . . . . . . . . . . . . . . . 16 85 4.2. RPC and Notification Data . . . . . . . . . . . . . . . . 17 86 4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 17 87 5. RSVP-TE Generic YANG Model . . . . . . . . . . . . . . . . . 39 88 5.1. Configuration and State Data . . . . . . . . . . . . . . 40 89 5.2. RPC and Notification Data . . . . . . . . . . . . . . . . 43 90 5.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 43 91 6. RSVP-TE MPLS Packet Model . . . . . . . . . . . . . . . . . . 50 92 6.1. Configuration and State Data . . . . . . . . . . . . . . 51 93 6.2. RPC and Notification Data . . . . . . . . . . . . . . . . 53 94 6.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 53 95 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 62 96 8. Security Considerations . . . . . . . . . . . . . . . . . . . 63 97 9. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 63 98 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 63 99 10.1. Normative References . . . . . . . . . . . . . . . . . . 63 100 10.2. Informative References . . . . . . . . . . . . . . . . . 65 101 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 65 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 packet (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 packet RSVP-TE protocols. The 185 current revision of this draft covers configuration and state data, 186 but 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 246 The base model discussed in this section covers base RSVP [RFC2205], 247 and enhancements that pertain to the base protocol operation. RSVP- 248 TE [RFC3209] and other traffic-engineering specific enhancements have 249 been deliberately left out of this model to enable users to configure 250 just the base RSVP protocol features in scenarios where traffic- 251 engineering is not enabled/required. The generic and packet specific 252 RSVP traffic-engineering model is an augmentation to the RSVP base 253 model and is discussed in this revision of the document the packet 254 RSVP-TE model is presented in Section 5. 256 Currently, the RSVP-TE module is presented as part of this draft, and 257 is mostly packet centric. It is expected that the RSVP-TE YANG model 258 will move to a separate document in the next revision. 260 TE basic +---------+ ^: import 261 module | ietf-te | o: augment 262 +---------+ 263 | o 264 | | 265 v | 266 +--------------+ 267 RSVP-TE module | ietf-rsvp-te |o . . . 268 +--------------+ \ 269 ^ | \ 270 | o +-------------------+ 271 +-----------+ | ietf-rsvp-otn-te | 272 RSVP module | ietf-rsvp | +-------------------+ 273 +-----------+ RSVP-TE with OTN 274 extensions 275 (shown for illustration 276 not in this document) 278 Figure 1: Relationship of RSVP and RSVP-TE modules with other 279 protocol modules 281 2.2. Feature Set 283 The model in this revision of the document does not aim to be feature 284 complete. The primary intent is to cover a set of standard generic 285 features (listed below) that are commonly in use. 287 o Authentication ([RFC2747]) 289 o Refresh Reduction ([RFC2961]) 291 o Hellos ([RFC3209]) 293 o Graceful Restart ([RFC3473], [RFC5063]) 295 2.3. Configuration Inheritance 297 The defined data model supports configuration inheritance for 298 neighbors, and interfaces. Data elements defined in the main 299 container (e.g. the container that encompasses the list of 300 interfaces, or neighbors) are assumed to apply equally to all 301 elements of the list, unless overridden explicitly for a certain 302 element (e.g. interface). Vendors are expected to augment the above 303 container(s) to provide the list of inheritance command for their 304 implementations. 306 2.4. Vendor Configuration Models 308 There two main popular types of routing protocol configuration that 309 vendors may support: 311 o protocol centric - all the protocol related configuration is 312 contained within the protocol itself. Configuration belonging to 313 multiple instances of the protocol running in different routing- 314 instances (e.g. VRFs) are contained under the default routing 315 instance [I-D.ietf-netmod-routing-cfg]: 317 o VRF centric - all the protocol related configuration for a 318 routing- instance is contained within this routing-instance. 320 On-going discussions within the IETF community have converged on 321 adopting the VRF centric approach. The proposed model in this 322 document adheres to this conclusion. 324 3. Model Organization 326 This document defines three YANG data models that cover the RSVP 327 base, RSVP-TE generic, and RSVP-TE MPLS packet data that cover the 328 configuration, state, RPCs, and notifications properties. The 329 relationship between the different modules is depicted in Figure 1. 331 data pertaining to the configuration and operation of parameters 332 applicable globally, per interface, neighbor or session. 334 4. RSVP Base YANG Model 336 This section describes the RSVP base YANG data model. It covers base 337 RSVP protocol data defined by RSVP [RFC2205], and enhancements that 338 pertain to the base protocol operation. 340 The container "rsvp" is the top level container in this data model. 341 The presence of this container is expected to enable RSVP protocol 342 functionality. 344 The approach described in [I-D.openconfig-netmod-opstate] allows for 345 modeling the intended and respective applied and derived state. The 346 TE state data in this model falls into one of the following 347 categpries: 349 o State corresponding to applied configuration 351 o State corrsponding to derived state, counters, stats, etc. 353 Data for such state is contained under the respective "state" sub- 354 container of the intended object (e.g. interface) as shown in 355 Figure 2. 357 module: ietf-rsvp 358 +--rw rsvp! 359 +--rw globals 360 +-- rw config 361 <> 362 . 363 +-- ro state 364 <> 365 <> 366 . 367 . 368 +--rw interfaces 369 +-- rw config 370 <> 371 . 372 +-- ro state 373 <> 374 <> 375 . 376 . 377 +--rw neighbors 378 +-- rw config 379 <> 380 . 381 +-- ro state 382 <> 383 <> 384 . 385 . 386 +--rw sessions 387 +-- rw config 388 <> 389 . 390 +-- ro state 391 <> 392 <> 393 . 394 rpcs: 395 +--x global-rpc 396 +--x interfaces-rpc 397 +--x neighbors-rpc 398 +--x sessions-rpc 399 notifications: 400 +--n global-notif 401 +--n interfaces-notif 402 +--n neighbors-notif 403 +--n sessions-notif 405 Figure 2: RSVP highlevel model view 407 The following subsections provide overview of the parts of the model 408 pertaining to configuration and state data. 410 4.1. Configuration and State Data 412 ### Global Data 414 This branch of the data model covers global configuration and states 415 that control RSVP protocol behavior. 417 module: ietf-rsvp 418 +--rw rsvp! 419 +--rw globals 420 | +--rw config 421 | +--ro state 422 | | +--ro statistics 423 | | +--ro discontinuity-time? yang:date-and-time 424 | | +--ro packet 425 | | | +--ro sent? yang:counter32 426 | | | +--ro rcvd? yang:counter32 427 | | | +--ro tx-dropped? yang:counter32 428 | | | +--ro rx-dropped? yang:counter32 429 | | | +--ro tx-error? yang:counter32 430 | | | +--ro rx-error? yang:counter32 431 | | +--ro protocol 432 | | | +--ro ack-sent? yang:counter32 433 | | | +--ro ack-rcvd? yang:counter32 434 | | | +--ro bundle-sent? yang:counter32 435 | | | +--ro bundle-rcvd? yang:counter32 436 | | | +--ro hello-sent? yang:counter32 437 | | | +--ro hello-rcvd? yang:counter32 438 | | | +--ro integrity-challenge-sent? yang:counter32 439 | | | +--ro integrity-challenge-rcvd? yang:counter32 440 | | | +--ro integrity-response-sent? yang:counter32 441 | | | +--ro integrity-response-rcvd? yang:counter32 442 | | | +--ro notify-sent? yang:counter32 443 | | | +--ro notify-rcvd? yang:counter32 444 | | | +--ro path-sent? yang:counter32 445 | | | +--ro path-rcvd? yang:counter32 446 | | | +--ro path-err-sent? yang:counter32 447 | | | +--ro path-err-rcvd? yang:counter32 448 | | | +--ro path-tear-sent? yang:counter32 449 | | | +--ro path-tear-rcvd? yang:counter32 450 | | | +--ro resv-sent? yang:counter32 451 | | | +--ro resv-rcvd? yang:counter32 452 | | | +--ro resv-confirm-sent? yang:counter32 453 | | | +--ro resv-confirm-rcvd? yang:counter32 454 | | | +--ro resv-err-sent? yang:counter32 455 | | | +--ro resv-err-rcvd? yang:counter32 456 | | | +--ro resv-tear-sent? yang:counter32 457 | | | +--ro resv-tear-rcvd? yang:counter32 458 | | | +--ro summary-refresh-sent? yang:counter32 459 | | | +--ro summary-refresh-rcvd? yang:counter32 460 | | | +--ro unknown-recv? yang:counter32 461 | | +--ro error 462 | | +--ro authentication? yang:counter64 463 | | +--ro checksum? yang:counter64 464 | | +--ro packet-len? yang:counter64 465 | +--rw graceful-restart! {graceful-restart}? 466 | +--rw config 467 | | +--rw restart-time? uint32 468 | | +--rw recovery-time? uint32 469 | +--ro state 470 | +--ro restart-time? uint32 471 | +--ro recovery-time? uint32 473 4.1.1. Interface Data 475 This branch of the data model covers configuration and state elements 476 relevant to one or all RSVP interfaces. Any data configuration 477 applied at the "interfaces" container level are equally applicable to 478 all interfaces - unless overridden by explicit configuration under a 479 specific interface. 481 module: ietf-rsvp 482 +--rw rsvp! 483 +--rw interfaces 484 | +--rw config 485 | +--ro state 486 | | +--ro statistics 487 | | +--ro discontinuity-time? yang:date-and-time 488 | | +--ro packet 489 | | | +--ro sent? yang:counter32 490 | | | +--ro rcvd? yang:counter32 491 | | | +--ro tx-dropped? yang:counter32 492 | | | +--ro rx-dropped? yang:counter32 493 | | | +--ro tx-error? yang:counter32 494 | | | +--ro rx-error? yang:counter32 495 | | +--ro protocol 496 | | | +--ro ack-sent? yang:counter32 497 | | | +--ro ack-rcvd? yang:counter32 498 | | | +--ro bundle-sent? yang:counter32 499 | | | +--ro bundle-rcvd? yang:counter32 500 | | | +--ro hello-sent? yang:counter32 501 | | | +--ro hello-rcvd? yang:counter32 502 | | | +--ro integrity-challenge-sent? yang:counter32 503 | | | +--ro integrity-challenge-rcvd? yang:counter32 504 | | | +--ro integrity-response-sent? yang:counter32 505 | | | +--ro integrity-response-rcvd? yang:counter32 506 | | | +--ro notify-sent? yang:counter32 507 | | | +--ro notify-rcvd? yang:counter32 508 | | | +--ro path-sent? yang:counter32 509 | | | +--ro path-rcvd? yang:counter32 510 | | | +--ro path-err-sent? yang:counter32 511 | | | +--ro path-err-rcvd? yang:counter32 512 | | | +--ro path-tear-sent? yang:counter32 513 | | | +--ro path-tear-rcvd? yang:counter32 514 | | | +--ro resv-sent? yang:counter32 515 | | | +--ro resv-rcvd? yang:counter32 516 | | | +--ro resv-confirm-sent? yang:counter32 517 | | | +--ro resv-confirm-rcvd? yang:counter32 518 | | | +--ro resv-err-sent? yang:counter32 519 | | | +--ro resv-err-rcvd? yang:counter32 520 | | | +--ro resv-tear-sent? yang:counter32 521 | | | +--ro resv-tear-rcvd? yang:counter32 522 | | | +--ro summary-refresh-sent? yang:counter32 523 | | | +--ro summary-refresh-rcvd? yang:counter32 524 | | | +--ro unknown-recv? yang:counter32 525 | | +--ro error 526 | | +--ro authentication? yang:counter64 527 | | +--ro checksum? yang:counter64 528 | | +--ro packet-len? yang:counter64 529 | +--rw signaling-parameters 530 | | +--rw config 531 | | | +--rw refresh-interval? uint32 532 | | | +--rw refresh-misses? uint32 533 | | | +--rw checksum? uint32 534 | | | +--rw patherr-state-removal? empty 535 | | +--ro state 536 | | +--ro refresh-interval? uint32 537 | | +--ro refresh-misses? uint32 538 | | +--ro checksum? uint32 539 | | +--ro patherr-state-removal? empty 540 | +--rw refresh-reduction {refresh-reduction}? 541 | | +--rw config 542 | | | +--rw bundle-message-max-size? uint32 543 | | | +--rw disable? empty 544 | | | +--rw reliable-ack-hold-time? uint32 545 | | | +--rw reliable-ack-max-size? uint32 546 | | | +--rw reliable-retransmit-time? uint32 547 | | | +--rw reliable-srefresh? empty 548 | | | +--rw summary-max-size? uint32 549 | | +--ro state 550 | | +--ro bundle-message-max-size? uint32 551 | | +--ro disable? empty 552 | | +--ro reliable-ack-hold-time? uint32 553 | | +--ro reliable-ack-max-size? uint32 554 | | +--ro reliable-retransmit-time? uint32 555 | | +--ro reliable-srefresh? empty 556 | | +--ro summary-max-size? uint32 557 | +--rw rsvp-hellos {hellos}? 558 | | +--rw config 559 | | | +--rw interface-based? empty 560 | | | +--rw hello-interval? uint32 561 | | | +--rw hello-misses? uint32 562 | | +--ro state 563 | | +--ro interface-based? empty 564 | | +--ro hello-interval? uint32 565 | | +--ro hello-misses? uint32 566 | +--rw authentication {authentication}? 567 | | +--rw config 568 | | | +--rw lifetime? uint32 569 | | | +--rw window-size? uint32 570 | | | +--rw challenge? empty 571 | | | +--rw retransmits? uint32 572 | | | +--rw (authentication-type)? 573 | | | +--:(string) 574 | | | | +--rw password? string 575 | | | | +--rw algorithm? identityref 576 | | | +--:(key-chain) 577 | | | +--rw key-chain? string 578 | | +--ro state 579 | | +--ro lifetime? uint32 580 | | +--ro window-size? uint32 581 | | +--ro challenge? empty 582 | | +--ro retransmits? uint32 583 | | +--ro (authentication-type)? 584 | | +--:(string) 585 | | | +--ro password? string 586 | | | +--ro algorithm? identityref 587 | | +--:(key-chain) 588 | | +--ro key-chain? string 589 | +--rw interface* [interface] 590 | +--rw interface if:interface-ref 591 | +--rw config 592 | +--ro state 593 | | +--ro statistics 594 | | +--ro discontinuity-time? yang:date-and-time 595 | | +--ro packet 596 | | | +--ro sent? yang:counter32 597 | | | +--ro rcvd? yang:counter32 598 | | | +--ro tx-dropped? yang:counter32 599 | | | +--ro rx-dropped? yang:counter32 600 | | | +--ro tx-error? yang:counter32 601 | | | +--ro rx-error? yang:counter32 602 | | +--ro protocol 603 | | | +--ro ack-sent? yang:counter32 604 | | | +--ro ack-rcvd? yang:counter32 605 | | | +--ro bundle-sent? yang:counter32 606 | | | +--ro bundle-rcvd? yang:counter32 607 | | | +--ro hello-sent? yang:counter32 608 | | | +--ro hello-rcvd? yang:counter32 609 | | | +--ro integrity-challenge-sent? yang:counter32 610 | | | +--ro integrity-challenge-rcvd? yang:counter32 611 | | | +--ro integrity-response-sent? yang:counter32 612 | | | +--ro integrity-response-rcvd? yang:counter32 613 | | | +--ro notify-sent? yang:counter32 614 | | | +--ro notify-rcvd? yang:counter32 615 | | | +--ro path-sent? yang:counter32 616 | | | +--ro path-rcvd? yang:counter32 617 | | | +--ro path-err-sent? yang:counter32 618 | | | +--ro path-err-rcvd? yang:counter32 619 | | | +--ro path-tear-sent? yang:counter32 620 | | | +--ro path-tear-rcvd? yang:counter32 621 | | | +--ro resv-sent? yang:counter32 622 | | | +--ro resv-rcvd? yang:counter32 623 | | | +--ro resv-confirm-sent? yang:counter32 624 | | | +--ro resv-confirm-rcvd? yang:counter32 625 | | | +--ro resv-err-sent? yang:counter32 626 | | | +--ro resv-err-rcvd? yang:counter32 627 | | | +--ro resv-tear-sent? yang:counter32 628 | | | +--ro resv-tear-rcvd? yang:counter32 629 | | | +--ro summary-refresh-sent? yang:counter32 630 | | | +--ro summary-refresh-rcvd? yang:counter32 631 | | | +--ro unknown-recv? yang:counter32 632 | | +--ro error 633 | | +--ro authentication? yang:counter64 634 | | +--ro checksum? yang:counter64 635 | | +--ro packet-len? yang:counter64 636 | +--rw signaling-parameters 637 | | +--rw config 638 | | | +--rw refresh-interval? uint32 639 | | | +--rw refresh-misses? uint32 640 | | | +--rw checksum? uint32 641 | | | +--rw patherr-state-removal? empty 642 | | +--ro state 643 | | +--ro refresh-interval? uint32 644 | | +--ro refresh-misses? uint32 645 | | +--ro checksum? uint32 646 | | +--ro patherr-state-removal? empty 647 | +--rw refresh-reduction {refresh-reduction}? 648 | | +--rw config 649 | | | +--rw bundle-message-max-size? uint32 650 | | | +--rw disable? empty 651 | | | +--rw reliable-ack-hold-time? uint32 652 | | | +--rw reliable-ack-max-size? uint32 653 | | | +--rw reliable-retransmit-time? uint32 654 | | | +--rw reliable-srefresh? empty 655 | | | +--rw summary-max-size? uint32 656 | | +--ro state 657 | | +--ro bundle-message-max-size? uint32 658 | | +--ro disable? empty 659 | | +--ro reliable-ack-hold-time? uint32 660 | | +--ro reliable-ack-max-size? uint32 661 | | +--ro reliable-retransmit-time? uint32 662 | | +--ro reliable-srefresh? empty 663 | | +--ro summary-max-size? uint32 664 | +--rw rsvp-hellos {hellos}? 665 | | +--rw config 666 | | | +--rw interface-based? empty 667 | | | +--rw hello-interval? uint32 668 | | | +--rw hello-misses? uint32 669 | | +--ro state 670 | | +--ro interface-based? empty 671 | | +--ro hello-interval? uint32 672 | | +--ro hello-misses? uint32 673 | +--rw authentication {authentication}? 674 | +--rw config 675 | | +--rw lifetime? uint32 676 | | +--rw window-size? uint32 677 | | +--rw challenge? empty 678 | | +--rw retransmits? uint32 679 | | +--rw (authentication-type)? 680 | | +--:(string) 681 | | | +--rw password? string 682 | | | +--rw algorithm? identityref 683 | | +--:(key-chain) 684 | | +--rw key-chain? string 685 | +--ro state 686 | +--ro lifetime? uint32 687 | +--ro window-size? uint32 688 | +--ro challenge? empty 689 | +--ro retransmits? uint32 690 | +--ro (authentication-type)? 691 | +--:(string) 692 | | +--ro password? string 693 | | +--ro algorithm? identityref 694 | +--:(key-chain) 695 | +--ro key-chain? string 697 4.1.2. Session Data 699 This branch of the data model covers configuration of elements 700 relevant to RSVP neighbors. This would be discussed in detail in 701 future revisions. 703 module: ietf-rsvp 704 +--rw rsvp! 705 +--rw sessions 706 | +--rw session* [src_port dst_port source destination] 707 | +--rw src_port uint16 708 | +--rw dst_port uint16 709 | +--rw source inet:ip-address 710 | +--rw destination inet:ip-address 711 | +--rw config 712 | +--ro state 714 4.1.3. Neighbor Data 716 This branch of the data model covers configuration of elements 717 relevant to RSVP sessions. This would be discussed in detail in 718 future revisions. 720 module: ietf-rsvp 721 +--rw rsvp! 722 +--rw neighbors 723 +--rw neighbor* [address] 724 +--rw address inet:ip-address 725 +--rw neighbor-attributes 726 +--rw config 727 +--ro state 728 +--ro epoch? uint32 729 +--ro expiry-time? uint32 730 +--ro graceful-restart 731 | +--ro enabled? boolean 732 | +--ro local-restart-time? uint32 733 | +--ro local-recovery-time? uint32 734 | +--ro nbr-restart-time? uint32 735 | +--ro nbr-recovery-time? uint32 736 | +--ro helper-mode 737 | +--ro helper-mode? boolean 738 | +--ro max-helper-restart-time? uint32 739 | +--ro max-helper-recovery-time? uint32 740 | +--ro nbr-restart-ttd? uint32 741 | +--ro nbr-recovery-ttd? uint32 742 +--ro hello-status? enumeration {hellos}? 743 +--ro interface? if:interface-ref 744 +--ro neighbor-state? enumeration 745 +--ro psb-count? uint32 746 +--ro rsb-count? uint32 747 +--ro refresh-reduction-capable? boolean 748 +--ro restart-count? uint32 749 +--ro restart-time? yang:date-and-time 751 4.2. RPC and Notification Data 753 TBD. 755 4.3. YANG Module 757 file "ietf-rsvp@2015-07-06.yang" 758 module ietf-rsvp { 760 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp"; 762 /* Replace with IANA when assigned */ 763 prefix "rsvp"; 765 /* import ietf-inet-types { prefix inet; } */ 766 import ietf-interfaces { 767 prefix "if"; 769 } 771 import ietf-inet-types { 772 prefix inet; 773 } 775 import ietf-yang-types { 776 prefix "yang"; 777 } 779 organization 780 "IETF TEAS Working Group"; 782 contact "TBA"; 784 description 785 "This module contains the RSVP YANG data model."; 787 revision 2015-07-06 { 788 description "Latest revision of RSVP yang module."; 789 reference "RFC2205"; 790 } 792 identity hash-algorithm { 793 description 794 "Base identity for message-digest algorithm"; 795 } 797 identity MD5 { 798 base hash-algorithm; 799 description 800 "MD5 hash algorithm"; 801 reference "RFC1321"; 802 } 804 identity SHA-1 { 805 base hash-algorithm; 806 description 807 "SHA-1 hash algorithm"; 808 reference "NIST, FIPS PUB 180-1: Secure Hash Standard"; 809 } 811 /* RSVP features */ 812 feature authentication { 813 description 814 "Indicates support for RSVP authentication"; 815 } 816 feature error-statistics { 817 description 818 "Indicates support for error statistics"; 819 } 821 feature global-statistics { 822 description 823 "Indicates support for global statistics"; 824 } 826 feature graceful-restart { 827 description 828 "Indicates support for RSVP graceful restart"; 829 } 831 feature hellos { 832 description 833 "Indicates support for RSVP hellos (RFC3209)."; 834 } 836 feature notify { 837 description 838 "Indicates support for RSVP notify message (RFC3473)."; 839 } 841 feature refresh-reduction { 842 description 843 "Indicates support for RSVP refresh reduction 844 (RFC2961)."; 845 } 847 feature per-interface-statistics { 848 description 849 "Indicates support for per interface statistics"; 850 } 852 grouping graceful-restart_config { 853 description 854 "Configuration parameters relating to RSVP 855 Graceful-Restart"; 856 leaf restart-time { 857 type uint32; 858 description 859 "Graceful restart time (seconds)."; 860 reference 861 "RFC 5495: Description of the Resource 862 Reservation Protocol - Traffic-Engineered 863 (RSVP-TE) Graceful Restart Procedures"; 865 } 866 leaf recovery-time { 867 type uint32; 868 description 869 "RSVP state recovery time"; 870 } 871 } 873 grouping graceful-restart { 874 description 875 "Top level grouping for RSVP graceful-restart 876 parameters"; 877 container graceful-restart { 878 if-feature graceful-restart; 879 presence "Enable RSVP graceful restart on the node."; 880 description 881 "Top level container for RSVP graceful-restart"; 882 container config { 883 description 884 "Configuration parameters relating to 885 graceful-restart"; 886 uses graceful-restart_config; 887 } 888 container state { 889 config false; 890 description 891 "State information associated with RSVP 892 graceful-restart"; 893 uses graceful-restart_config; 894 } 895 } 896 } 898 grouping authentication_config { 899 description 900 "Configuration parameters relating to RSVP 901 authentication"; 902 leaf lifetime { 903 type uint32 { 904 range "30..86400"; 905 } 906 description 907 "Life time for each security association"; 908 reference 909 "RFC 2747: RSVP Cryptographic 910 Authentication"; 911 } 912 leaf window-size { 913 type uint32 { 914 range "1..64"; 915 } 916 description 917 "Window-size to limit number of out-of-order 918 messages."; 919 reference 920 "RFC 2747: RSVP Cryptographic 921 Authentication"; 922 } 923 leaf challenge { 924 type empty; 925 description 926 "Enable challenge messages."; 927 reference 928 "RFC 2747: RSVP Cryptographic 929 Authentication"; 930 } 931 leaf retransmits { 932 type uint32 { 933 range "1..10000"; 934 } 935 description 936 "Number of retransmits when messages are 937 dropped."; 938 reference 939 "RFC 2747: RSVP Cryptographic 940 Authentication"; 941 } 942 choice authentication-type { 943 description 944 "RSVP authentication choices"; 945 case string { 946 leaf password { 947 type string; 948 description 949 "An authentication key string"; 950 } 951 leaf algorithm { 952 type identityref { 953 base hash-algorithm; 954 } 955 description 956 "Cryptographic hash algorithm"; 957 } 958 } 959 case key-chain { 960 description 961 "Configure RSVP authentication."; 962 leaf key-chain { 963 type string { 964 length "1..32"; 965 } 966 description 967 "Key chain name to authenticate RSVP 968 signaling messages."; 969 reference 970 "RFC 2747: RSVP Cryptographic 971 Authentication"; 972 } 973 } 974 } 975 } 977 grouping authentication { 978 description 979 "Top level grouping for RSVP authentication parameters"; 980 container authentication { 981 if-feature authentication; 982 description 983 "Top level container for RSVP authentication 984 parameters"; 985 container config { 986 description 987 "Configuration parameters relating to 988 RSVP authentication"; 989 uses authentication_config; 990 } 991 container state { 992 config false; 993 description 994 "State information associated with RSVP 995 authentication"; 996 uses authentication_config; 997 } 998 } 999 } 1001 grouping rsvp-hellos_config { 1002 description 1003 "Configuration parameters relating to RSVP 1004 hellos"; 1005 leaf interface-based { 1006 type empty; 1007 description "Enable interface-based 1008 Hello adjacency if present."; 1010 } 1011 leaf hello-interval { 1012 type uint32 { 1013 range "3000..30000"; 1014 } 1015 description 1016 "Configure interval between successive Hello 1017 messages in milliseconds."; 1018 reference 1019 "RFC 3209: RSVP-TE: Extensions to RSVP for 1020 LSP Tunnels. 1021 RFC 5495: Description of the Resource 1022 Reservation Protocol - Traffic-Engineered 1023 (RSVP-TE) Graceful Restart Procedures"; 1024 } 1025 leaf hello-misses { 1026 type uint32 { 1027 range "1..10"; 1028 } 1029 description 1030 "Configure max number of consecutive missed 1031 Hello messages."; 1032 reference 1033 "RFC 3209: RSVP-TE: Extensions to RSVP for 1034 LSP Tunnels RFC 5495: Description of the 1035 Resource Reservation Protocol - Traffic- 1036 Engineered (RSVP-TE) Graceful Restart 1037 Procedures"; 1038 } 1039 } 1041 grouping rsvp-hellos { 1042 description 1043 "Top level grouping for RSVP hellos parameters"; 1044 container rsvp-hellos { 1045 if-feature hellos; 1046 description 1047 "Top level container for RSVP hello parameters"; 1048 container config { 1049 description 1050 "Configuration parameters relating to 1051 RSVP hellos"; 1052 uses rsvp-hellos_config; 1053 } 1054 container state { 1055 config false; 1056 description 1057 "State information associated with RSVP 1058 hellos"; 1059 uses rsvp-hellos_config; 1060 } 1061 } 1062 } 1064 grouping signaling-parameters_config { 1065 description 1066 "Configuration parameters relating to RSVP 1067 signaling"; 1068 leaf refresh-interval { 1069 type uint32; 1070 description 1071 "Set interval between successive refreshes"; 1072 } 1073 leaf refresh-misses { 1074 type uint32; 1075 description 1076 "Set max number of consecutive missed 1077 messages for state expiry"; 1078 } 1079 leaf checksum { 1080 type uint32; 1081 description 1082 "Enable RSVP message checksum computation"; 1083 } 1084 leaf patherr-state-removal { 1085 type empty; 1086 description 1087 "State-Removal flag in Path Error message 1088 if present."; 1089 } 1090 } 1092 grouping signaling-parameters { 1093 description 1094 "Top level grouping for RSVP signaling parameters"; 1095 container signaling-parameters { 1096 description 1097 "Top level container for RSVP signaling parameters"; 1098 container config { 1099 description 1100 "Configuration parameters relating to 1101 RSVP signaling parameters"; 1102 uses signaling-parameters_config; 1103 } 1104 container state { 1105 config false; 1106 description 1107 "State information associated with RSVP 1108 signaling parameters"; 1109 uses signaling-parameters_config; 1110 } 1111 } 1112 } 1114 grouping interface-attributes { 1115 description 1116 "Top level grouping for RSVP interface properties"; 1117 container config { 1118 description 1119 "Configuration parameters relating to 1120 RSVP interface parameters"; 1121 } 1122 container state { 1123 config false; 1124 description 1125 "State information associated with RSVP 1126 interface parameters"; 1127 uses statistics_state { 1128 if-feature per-interface-statistics; 1129 } 1130 } 1131 } 1133 grouping refresh-reduction_config { 1134 description 1135 "Configuration parameters relating to RSVP 1136 refresh reduction"; 1137 leaf bundle-message-max-size { 1138 type uint32 { 1139 range "512..65000"; 1140 } 1141 description 1142 "Configure maximum size (bytes) of a 1143 single RSVP Bundle message."; 1144 } 1145 leaf disable { 1146 type empty; 1147 description 1148 "Disable refresh reduction if present."; 1149 } 1150 leaf reliable-ack-hold-time { 1151 type uint32 { 1152 range "100..5000"; 1153 } 1154 description 1155 "Configure hold time in milliseconds for 1156 sending RSVP ACK message(s)."; 1157 } 1158 leaf reliable-ack-max-size { 1159 type uint32 { 1160 range "20..65000"; 1161 } 1162 description 1163 "Configure max size of a single RSVP ACK 1164 message."; 1165 } 1166 leaf reliable-retransmit-time { 1167 type uint32 { 1168 range "100..10000"; 1169 } 1170 description 1171 "Configure min delay in milliseconds to 1172 wait for an ACK before a retransmit."; 1173 } 1174 leaf reliable-srefresh { 1175 type empty; 1176 description 1177 "Configure use of reliable messaging for 1178 summary refresh if present."; 1179 } 1180 leaf summary-max-size { 1181 type uint32 { 1182 range "20..65000"; 1183 } 1184 description 1185 "Configure max size (bytes) of a single 1186 RSVP summary refresh message."; 1187 } 1188 } 1190 grouping refresh-reduction { 1191 description 1192 "Top level grouping for RSVP refresh reduction 1193 parameters"; 1194 container refresh-reduction { 1195 if-feature refresh-reduction; 1196 description 1197 "Top level container for RSVP refresh reduction 1198 parameters"; 1199 container config { 1200 description 1201 "Configuration parameters relating to 1202 RSVP refresh reduction"; 1203 uses refresh-reduction_config; 1204 } 1205 container state { 1206 config false; 1207 description 1208 "State information associated with RSVP 1209 refresh reduction"; 1210 uses refresh-reduction_config; 1211 } 1212 } 1213 } 1215 grouping neighbor-derived_state { 1216 description 1217 "Derived state at neighbor level."; 1219 leaf epoch { 1220 type uint32; 1221 description 1222 "Neighbor epoch."; 1223 } 1225 leaf expiry-time { 1226 type uint32; 1227 units seconds; 1228 description 1229 "Neighbor expiry time after which the neighbor state 1230 is purged if no states associated with it"; 1231 } 1233 container graceful-restart { 1234 description 1235 "Graceful restart information."; 1237 leaf enabled { 1238 type boolean; 1239 description 1240 "'true' if graceful restart is enabled for the 1241 neighbor."; 1242 } 1244 leaf local-restart-time { 1245 type uint32; 1246 units seconds; 1247 description 1248 "Local node restart time"; 1249 } 1250 leaf local-recovery-time { 1251 type uint32; 1252 units seconds; 1253 description 1254 "Local node recover time"; 1255 } 1257 leaf nbr-restart-time { 1258 type uint32; 1259 units seconds; 1260 description 1261 "Neighbor restart time"; 1262 } 1264 leaf nbr-recovery-time { 1265 type uint32; 1266 units seconds; 1267 description 1268 "Neighbor recover time"; 1269 } 1271 container helper-mode { 1272 description 1273 "Helper mode information "; 1275 leaf helper-mode { 1276 type boolean; 1277 description 1278 "'true' if helper mode is enabled."; 1279 } 1281 leaf max-helper-restart-time { 1282 type uint32; 1283 units seconds; 1284 description 1285 "The time the router or switch waits after it 1286 discovers that a neighboring router has gone down 1287 before it declares the neighbor down"; 1288 } 1290 leaf max-helper-recovery-time { 1291 type uint32; 1292 units seconds; 1293 description 1294 "The amount of time the router retains the state of its 1295 RSVP neighbors while they undergo a graceful restart"; 1296 } 1297 leaf nbr-restart-ttd { 1298 type uint32; 1299 units seconds; 1300 description 1301 "Number of seconds remaining for neighbor to send 1302 Hello message after restart."; 1303 } 1305 leaf nbr-recovery-ttd { 1306 type uint32; 1307 units seconds; 1308 description 1309 "Number of seconds remaining for neighbor to 1310 refresh."; 1311 } 1312 } // helper-mode 1313 } // graceful-restart 1315 leaf hello-status { 1316 if-feature hellos; 1317 type enumeration { 1318 enum "enabled" { 1319 description 1320 "Enabled"; 1321 } 1322 enum "disabled" { 1323 description 1324 "Disabled"; 1325 } 1326 enum "restarting" { 1327 description 1328 "Restarting"; 1329 } 1330 } 1331 description 1332 "Hello status"; 1333 } 1335 leaf interface { 1336 type if:interface-ref; 1337 description 1338 "Interface to this neighbor."; 1339 } 1341 leaf neighbor-state { 1342 type enumeration { 1343 enum "up" { 1344 description 1345 "up"; 1346 } 1347 enum "down" { 1348 description 1349 "down"; 1350 } 1351 enum "hello-disable" { 1352 description 1353 "hello-disable"; 1354 } 1355 enum "restarting" { 1356 description 1357 "restarting"; 1358 } 1359 } 1360 description 1361 "Neighbor state"; 1362 } 1364 leaf psb-count { 1365 type uint32; 1366 description 1367 "Number of PSB state currently referencing the 1368 neighbor."; 1369 } 1371 leaf rsb-count { 1372 type uint32; 1373 description 1374 "Number of RSB state currently referencing the 1375 neighbor."; 1376 } 1378 leaf refresh-reduction-capable { 1379 if-feature refresh-reduction; 1380 type boolean; 1381 description 1382 "Whether neighbor is refresh reduction capable."; 1383 } 1385 leaf restart-count { 1386 type uint32; 1387 description 1388 "Number of times this neighbor restart"; 1389 } 1391 leaf restart-time { 1392 type yang:date-and-time; 1393 description 1394 "Last restart time of the neighbor"; 1395 } 1396 } // neighbor-derived_state 1398 grouping statistics_state { 1399 description "RSVP statistic attributes."; 1400 container statistics { 1401 description 1402 "RSVP statistics"; 1404 leaf discontinuity-time { 1405 type yang:date-and-time; 1406 description 1407 "The time on the most recent occasion at which any one 1408 or more of the statistic counters suffered a 1409 discontinuity. If no such discontinuities have occurred 1410 since the last re-initialization of the local 1411 management subsystem, then this node contains the time 1412 the local management subsystem re-initialized itself."; 1413 } 1415 container packet { 1416 description 1417 "Packet statistics."; 1418 leaf sent { 1419 type yang:counter32; 1420 description 1421 "Packet sent count"; 1422 } 1424 leaf rcvd { 1425 type yang:counter32; 1426 description 1427 "Packet received count"; 1428 } 1430 leaf tx-dropped { 1431 type yang:counter32; 1432 description 1433 "Packet tx dropped count"; 1434 } 1436 leaf rx-dropped { 1437 type yang:counter32; 1438 description 1439 "Packet rx dropped count"; 1440 } 1441 leaf tx-error { 1442 type yang:counter32; 1443 description 1444 "Packet tx error count"; 1445 } 1447 leaf rx-error { 1448 type yang:counter32; 1449 description 1450 "Packet rx error count"; 1451 } 1452 } 1454 container protocol { 1455 description 1456 "RSVP protocol statistics."; 1457 leaf ack-sent { 1458 if-feature refresh-reduction; 1459 type yang:counter32; 1460 description 1461 "Hello sent count"; 1462 } 1464 leaf ack-rcvd { 1465 if-feature refresh-reduction; 1466 type yang:counter32; 1467 description 1468 "Hello received count"; 1469 } 1471 leaf bundle-sent { 1472 if-feature refresh-reduction; 1473 type yang:counter32; 1474 description 1475 "Bundle sent count"; 1476 } 1478 leaf bundle-rcvd { 1479 if-feature refresh-reduction; 1480 type yang:counter32; 1481 description 1482 "Bundle received count"; 1483 } 1485 leaf hello-sent { 1486 if-feature hellos; 1487 type yang:counter32; 1488 description 1489 "Hello sent count"; 1490 } 1492 leaf hello-rcvd { 1493 if-feature hellos; 1494 type yang:counter32; 1495 description 1496 "Hello received count"; 1497 } 1499 leaf integrity-challenge-sent { 1500 if-feature authentication; 1501 type yang:counter32; 1502 description 1503 "Integrity Challenge sent count"; 1504 } 1506 leaf integrity-challenge-rcvd { 1507 if-feature authentication; 1508 type yang:counter32; 1509 description 1510 "Integrity Challenge received count"; 1511 } 1513 leaf integrity-response-sent { 1514 if-feature authentication; 1515 type yang:counter32; 1516 description 1517 "Integrity Response sent count"; 1518 } 1520 leaf integrity-response-rcvd { 1521 if-feature authentication; 1522 type yang:counter32; 1523 description 1524 "Integrity Response received count"; 1525 } 1527 leaf notify-sent { 1528 if-feature refresh-reduction; 1529 type yang:counter32; 1530 description 1531 "Notify sent count"; 1532 } 1534 leaf notify-rcvd { 1535 if-feature refresh-reduction; 1536 type yang:counter32; 1537 description 1538 "Notify received count"; 1539 } 1541 leaf path-sent { 1542 type yang:counter32; 1543 description 1544 "Path sent count"; 1545 } 1547 leaf path-rcvd { 1548 type yang:counter32; 1549 description 1550 "Path received count"; 1551 } 1553 leaf path-err-sent { 1554 type yang:counter32; 1555 description 1556 "Path error sent count"; 1557 } 1559 leaf path-err-rcvd { 1560 type yang:counter32; 1561 description 1562 "Path error received count"; 1563 } 1565 leaf path-tear-sent { 1566 type yang:counter32; 1567 description 1568 "Path tear sent count"; 1569 } 1571 leaf path-tear-rcvd { 1572 type yang:counter32; 1573 description 1574 "Path tear received count"; 1575 } 1577 leaf resv-sent { 1578 type yang:counter32; 1579 description 1580 "Resv sent count"; 1581 } 1583 leaf resv-rcvd { 1584 type yang:counter32; 1585 description 1586 "Resv received count"; 1587 } 1589 leaf resv-confirm-sent { 1590 type yang:counter32; 1591 description 1592 "Confirm sent count"; 1593 } 1595 leaf resv-confirm-rcvd { 1596 type yang:counter32; 1597 description 1598 "Confirm received count"; 1599 } 1601 leaf resv-err-sent { 1602 type yang:counter32; 1603 description 1604 "Resv error sent count"; 1605 } 1607 leaf resv-err-rcvd { 1608 type yang:counter32; 1609 description 1610 "Resv error received count"; 1611 } 1613 leaf resv-tear-sent { 1614 type yang:counter32; 1615 description 1616 "Resv tear sent count"; 1617 } 1619 leaf resv-tear-rcvd { 1620 type yang:counter32; 1621 description 1622 "Resv tear received count"; 1623 } 1625 leaf summary-refresh-sent { 1626 if-feature refresh-reduction; 1627 type yang:counter32; 1628 description 1629 "Summary refresh sent count"; 1630 } 1632 leaf summary-refresh-rcvd { 1633 if-feature refresh-reduction; 1634 type yang:counter32; 1635 description 1636 "Summary refresh received count"; 1637 } 1639 leaf unknown-recv { 1640 type yang:counter32; 1641 description 1642 "Unknown packet received count"; 1643 } 1644 } // rsvp 1646 container error { 1647 description 1648 "Error statistics."; 1650 leaf authentication { 1651 type yang:counter64; 1652 description 1653 "The total number of packets received with an 1654 authentication failure."; 1655 } 1657 leaf checksum { 1658 type yang:counter64; 1659 description 1660 "The total number of packets received with an invalid 1661 checksum value."; 1662 } 1664 leaf packet-len { 1665 type yang:counter64; 1666 description 1667 "The total number of packets received with an invalid 1668 packet length."; 1669 } 1670 } // error 1671 } // statistics 1672 } // statistics_state 1674 grouping global-attributes { 1675 description 1676 "Top level grouping for RSVP global properties"; 1677 container config { 1678 description 1679 "Configuration globals properties"; 1680 } 1681 container state { 1682 config false; 1683 description 1684 "State information associated with RSVP 1685 global properties"; 1686 uses statistics_state { 1687 if-feature global-statistics; 1688 } 1689 } 1690 } 1692 grouping session-attributes { 1693 description 1694 "Top level grouping for RSVP session properties"; 1695 container config { 1696 description 1697 "Configuration for session properties"; 1698 } 1699 container state { 1700 config false; 1701 description 1702 "State information associated with RSVP 1703 session properties"; 1704 } 1705 } 1707 grouping neighbor-attributes { 1708 description 1709 "Top level grouping for RSVP neighbor properties"; 1710 container neighbor-attributes { 1711 description 1712 "Top level container for RSVP neighbor properties"; 1713 container config { 1714 description 1715 "Configuration for neighbor properties"; 1716 } 1717 container state { 1718 config false; 1719 description 1720 "State information associated with RSVP 1721 neighbor properties"; 1722 uses neighbor-derived_state; 1723 } 1724 } 1725 } 1727 container rsvp { 1728 presence "Enable RSVP feature"; 1729 description "RSVP feature container"; 1730 container globals { 1731 description "RSVP global properties."; 1732 uses global-attributes; 1733 uses graceful-restart; 1734 } 1736 container interfaces { 1737 description 1738 "RSVP interfaces container"; 1739 uses interface-attributes; 1740 uses signaling-parameters; 1741 uses refresh-reduction; 1742 uses rsvp-hellos; 1743 uses authentication; 1745 list interface { 1746 key "interface"; 1747 description 1748 "RSVP interfaces."; 1749 leaf interface { 1750 type if:interface-ref; 1751 description 1752 "RSVP interface."; 1753 } 1754 uses interface-attributes; 1755 uses signaling-parameters; 1756 uses refresh-reduction; 1757 uses rsvp-hellos; 1758 uses authentication; 1759 } 1760 } 1762 container sessions { 1763 description 1764 "RSVP sessions container"; 1765 list session { 1766 key "src_port dst_port source destination"; 1767 description 1768 "List of RSVP sessions"; 1769 leaf src_port { 1770 type uint16; 1771 description "RSVP source port"; 1772 reference "RFC2205"; 1773 } 1774 leaf dst_port { 1775 type uint16; 1776 description "RSVP destination port"; 1777 reference "RFC2205"; 1778 } 1779 leaf source { 1780 type inet:ip-address; 1781 description "RSVP source address"; 1782 reference "RFC2205"; 1783 } 1784 leaf destination { 1785 type inet:ip-address; 1786 description "RSVP destination address"; 1787 reference "RFC2205"; 1788 } 1789 uses session-attributes; 1790 } 1791 } 1793 container neighbors { 1794 description 1795 "RSVP neighbors container"; 1796 list neighbor { 1797 key "address"; 1798 description 1799 "List of RSVP neighbors"; 1800 leaf address { 1801 type inet:ip-address; 1802 description 1803 "Neighbor address"; 1804 } 1805 uses neighbor-attributes; 1806 } 1807 } 1808 } 1809 } 1810 1812 5. RSVP-TE Generic YANG Model 1814 This section contains the augmentation of the RSVP base YANG model 1815 for signalling Traffic-Engineering (RSVP-TE) Label Switched Paths 1816 (LSPs). New module is introduced that augment the RSVP-TE generic 1817 module to cover data items that are technology agnostic. 1819 This model imports and augments the base RSVP YANG model (presented 1820 in Section 4.3). It also imports and augments the TE YANG model 1821 defined in [I-D.saad-teas-yang-te] to enable configuration of RSVP-TE 1822 attributes on TE tunnels. 1824 The following subsections provide overview of the parts of the RSVP- 1825 TE generic model pertaining to configuration and state data. 1827 5.1. Configuration and State Data 1829 There are three types of configuration and state data nodes in this 1830 module: 1832 o those augmenting or extending the base RSVP module 1834 o those augmenting or extending the base TE generic module 1836 o those that are specific to the RSVP-TE module 1838 Below is a YANG tree representation for data items defined in the 1839 RSVP-TE generic module: 1841 module: ietf-rsvp-te 1842 augment /rsvp:rsvp/rsvp:globals: 1843 augment /rsvp:rsvp/rsvp:interfaces: 1844 augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface: 1845 augment /rsvp:rsvp/rsvp:sessions: 1846 augment /rsvp:rsvp/rsvp:neighbors: 1847 augment /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel: 1848 +--rw config 1849 | +--rw lsp-source? inet:ip-address 1850 | +--rw lsp-signaled-name? string 1851 | +--rw lsp-priority-setup? uint8 1852 | +--rw lsp-priority-hold? uint8 1853 | +--rw local-recording-desired? empty 1854 | +--rw se-style-desired? empty 1855 | +--rw path-reevaluation-request? empty 1856 | +--rw soft-preemption-desired? empty 1857 | +--rw end-to-end-routing? empty 1858 | +--rw boundary-rerouting? empty 1859 | +--rw segment-based-rerouting? empty 1860 | +--rw lsp-integrety-required? empty 1861 | +--rw contiguous-lsp? empty 1862 | +--rw lsp-stitching-desired? empty 1863 | +--rw preplanned-lsp? empty 1864 | +--rw oob-mapping? empty 1865 +--ro state 1866 +--ro lsp-source? inet:ip-address 1867 +--ro lsp-signaled-name? string 1868 +--ro lsp-priority-setup? uint8 1869 +--ro lsp-priority-hold? uint8 1870 +--ro local-recording-desired? empty 1871 +--ro se-style-desired? empty 1872 +--ro path-reevaluation-request? empty 1873 +--ro soft-preemption-desired? empty 1874 +--ro end-to-end-routing? empty 1875 +--ro boundary-rerouting? empty 1876 +--ro segment-based-rerouting? empty 1877 +--ro lsp-integrety-required? empty 1878 +--ro contiguous-lsp? empty 1879 +--ro lsp-stitching-desired? empty 1880 +--ro preplanned-lsp? empty 1881 +--ro oob-mapping? empty 1882 augment /ietf-te:te/ietf-te:interfaces/ietf-te:interface: 1883 augment /ietf-te:te/ietf-te:lsps-state/ietf-te:lsp: 1884 +--ro lsp-source? inet:ip-address 1885 +--ro lsp-signaled-name? string 1886 +--ro lsp-priority-setup? uint8 1887 +--ro lsp-priority-hold? uint8 1888 +--ro local-recording-desired? empty 1889 +--ro se-style-desired? empty 1890 +--ro path-reevaluation-request? empty 1891 +--ro soft-preemption-desired? empty 1892 +--ro end-to-end-routing? empty 1893 +--ro boundary-rerouting? empty 1894 +--ro segment-based-rerouting? empty 1895 +--ro lsp-integrety-required? empty 1896 +--ro contiguous-lsp? empty 1897 +--ro lsp-stitching-desired? empty 1898 +--ro preplanned-lsp? empty 1899 +--ro oob-mapping? empty 1900 +--ro incoming-explicit-route 1901 | +--ro explicit-route-subobjects* [subobject-index] 1902 | +--ro subobject-index uint32 1903 | +--ro (type)? 1904 | +--:(ipv4-address) 1905 | | +--ro v4-address? inet:ipv4-address 1906 | | +--ro v4-prefix-length? uint8 1907 | | +--ro v4-loose? boolean 1908 | +--:(ipv6-address) 1909 | | +--ro v6-address? inet:ipv6-address 1910 | | +--ro v6-prefix-length? uint8 1911 | | +--ro v6-loose? boolean 1912 | +--:(as-number) 1913 | | +--ro as-number? uint16 1914 | +--:(unnumbered-link) 1915 | | +--ro router-id? inet:ip-address 1916 | | +--ro interface-id? uint32 1917 | +--:(label) 1918 | +--ro value? uint32 1919 +--ro outgoing-explicit-route 1920 | +--ro explicit-route-subobjects* [subobject-index] 1921 | +--ro subobject-index uint32 1922 | +--ro (type)? 1923 | +--:(ipv4-address) 1924 | | +--ro v4-address? inet:ipv4-address 1925 | | +--ro v4-prefix-length? uint8 1926 | | +--ro v4-loose? boolean 1927 | +--:(ipv6-address) 1928 | | +--ro v6-address? inet:ipv6-address 1929 | | +--ro v6-prefix-length? uint8 1930 | | +--ro v6-loose? boolean 1931 | +--:(as-number) 1932 | | +--ro as-number? uint16 1933 | +--:(unnumbered-link) 1934 | | +--ro router-id? inet:ip-address 1935 | | +--ro interface-id? uint32 1936 | +--:(label) 1937 | +--ro value? uint32 1938 +--ro path-record-route 1939 | +--ro record-route-subobjects* [subobject-index] 1940 | +--ro subobject-index uint32 1941 | +--ro (type)? 1942 | +--:(ipv4-address) 1943 | | +--ro v4-address? inet:ipv4-address 1944 | | +--ro v4-prefix-length? uint8 1945 | | +--ro v4-flags? uint8 1946 | +--:(ipv6-address) 1947 | | +--ro v6-address? inet:ipv6-address 1948 | | +--ro v6-prefix-length? uint8 1949 | | +--ro v6-flags? uint8 1950 | +--:(label) 1951 | +--ro value? uint32 1952 | +--ro flags? uint8 1953 +--ro resv-record-route 1954 +--ro record-route-subobjects* [subobject-index] 1955 +--ro subobject-index uint32 1956 +--ro (type)? 1957 +--:(ipv4-address) 1958 | +--ro v4-address? inet:ipv4-address 1959 | +--ro v4-prefix-length? uint8 1960 | +--ro v4-flags? uint8 1961 +--:(ipv6-address) 1962 | +--ro v6-address? inet:ipv6-address 1963 | +--ro v6-prefix-length? uint8 1964 | +--ro v6-flags? uint8 1965 +--:(label) 1966 +--ro value? uint32 1967 +--ro flags? uint8 1969 5.2. RPC and Notification Data 1971 TBD. 1973 5.3. YANG Module 1975 file "ietf-rsvp-te@2015-07-06.yang" 1976 module ietf-rsvp-te { 1978 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te"; 1980 prefix "rsvp-te"; 1982 import ietf-rsvp { 1983 prefix rsvp; 1984 } 1986 import ietf-te { 1987 prefix ietf-te; 1988 } 1990 import ietf-inet-types { 1991 prefix inet; 1992 } 1994 /* Import TE generic types */ 1995 import ietf-te-types { 1996 prefix ietf-te-types; 1997 } 1999 organization 2000 "IETF TEAS Working Group"; 2002 contact "TBA"; 2004 description 2005 "This module contains the RSVP YANG generic data model."; 2007 revision 2015-07-06 { 2008 description "Latest revision to RSVP-TE generic YANG module"; 2009 reference "RFC3209"; 2010 } 2012 /** 2013 * RSVP-TE LSPs groupings. 2014 */ 2016 grouping lsp-record-route-information_state { 2017 description "recorded route information grouping"; 2018 container path-record-route { 2019 when "../origin-type != 'ingress'" { 2020 description "Applicable on non-ingress LSPs only"; 2021 } 2022 description "RSVP Path recorded route information"; 2023 list record-route-subobjects { 2024 key "subobject-index"; 2025 description ""; 2026 leaf subobject-index { 2027 type uint32; 2028 description "RRO subobject index"; 2029 } 2030 uses ietf-te-types:record-route-subobject; 2031 } 2032 } 2033 container resv-record-route { 2034 when "../origin-type != 'egress'" { 2035 description "Applicable on non-egress LSPs only"; 2036 } 2037 description "RSVP Resv recorded route information"; 2038 list record-route-subobjects { 2039 key "subobject-index"; 2040 description ""; 2041 leaf subobject-index { 2042 type uint32; 2043 description "RRO subobject index"; 2044 } 2045 uses ietf-te-types:record-route-subobject; 2046 } 2047 } 2048 } 2050 grouping lsp-explicit-route-information_state { 2051 description "RSVP-TE LSP explicit-route information"; 2052 container incoming-explicit-route { 2053 when "../origin-type != 'ingress'" { 2054 description "Applicable on non-ingress LSPs only"; 2055 } 2056 description "Incoming explicit route information"; 2057 list explicit-route-subobjects { 2058 key "subobject-index"; 2059 description ""; 2060 leaf subobject-index { 2061 type uint32; 2062 description "ERO subobject index"; 2063 } 2064 uses ietf-te-types:explicit-route-subobject; 2066 } 2067 } 2068 container outgoing-explicit-route { 2069 when "../origin-type != 'egress'" { 2070 description "Applicable on non-egress LSPs only"; 2071 } 2072 description "Outgoing explicit route information"; 2073 list explicit-route-subobjects { 2074 key "subobject-index"; 2075 description ""; 2076 leaf subobject-index { 2077 type uint32; 2078 description "ERO subobject index"; 2079 } 2080 uses ietf-te-types:explicit-route-subobject; 2081 } 2082 } 2083 } 2085 grouping lsp-attributes-flags_config { 2086 description 2087 "Configuration parameters relating to RSVP-TE LSP 2088 attribute flags"; 2089 leaf end-to-end-routing { 2090 type empty; 2091 description 2092 "End-to-end routing desired"; 2093 reference "RFC4920, RFC5420"; 2094 } 2095 leaf boundary-rerouting { 2096 type empty; 2097 description 2098 "Boundary rerouting desired"; 2099 reference "RFC4920, RFC5420"; 2100 } 2101 leaf segment-based-rerouting { 2102 type empty; 2103 description 2104 "Segment-based rerouting desired"; 2105 reference "RFC4920, RFC5420"; 2106 } 2107 leaf lsp-integrety-required { 2108 type empty; 2109 description "LSP integrity desired"; 2110 reference "RFC4875"; 2111 } 2112 leaf contiguous-lsp { 2113 type empty; 2114 description "Contiguous LSP"; 2115 reference "RFC5151"; 2116 } 2117 leaf lsp-stitching-desired { 2118 type empty; 2119 description "Stiticed LSP"; 2120 reference "RFC5150"; 2121 } 2122 leaf preplanned-lsp { 2123 type empty; 2124 description "Preplanned LSP"; 2125 reference "RFC6001"; 2126 } 2127 leaf oob-mapping { 2128 type empty; 2129 description 2130 "Mapping is done out-of-band"; 2131 reference "RFC6511"; 2132 } 2133 } 2135 grouping lsp-session-attributes-obj-flags_config { 2136 description 2137 "Configuration parameters relating to RSVP-TE LSP 2138 session attribute flags"; 2139 reference 2140 "RFC4859: Registry for RSVP-TE Session Flags"; 2141 leaf local-recording-desired { 2142 type empty; 2143 description "Path recording is desired."; 2144 reference "RFC3209"; 2145 } 2146 leaf se-style-desired { 2147 type empty; 2148 description "SE Style desired"; 2149 reference "RFC3209"; 2150 } 2151 leaf path-reevaluation-request { 2152 type empty; 2153 description "Path re-evaluation request"; 2154 reference "RFC4736"; 2155 } 2156 leaf soft-preemption-desired { 2157 type empty; 2158 description "Soft-preemption is desired"; 2159 reference "RFC5712"; 2160 } 2161 } 2162 grouping lsp-properties_config { 2163 description 2164 "Configuration parameters relating to RSVP-TE LSP 2165 session attribute flags"; 2166 leaf lsp-source { 2167 type inet:ip-address; 2168 description 2169 "LSP source address."; 2170 } 2171 leaf lsp-signaled-name { 2172 type string; 2173 description 2174 "Sets the session name to use in the session 2175 attribute object."; 2176 } 2177 leaf lsp-priority-setup { 2178 type uint8 { 2179 range "0..7"; 2180 } 2181 description 2182 "RSVP session attributes setup priority"; 2183 } 2184 leaf lsp-priority-hold { 2185 type uint8 { 2186 range "0..7"; 2187 } 2188 description 2189 "RSVP session attributes hold priority"; 2190 } 2191 uses lsp-session-attributes-obj-flags_config; 2192 uses lsp-attributes-flags_config; 2193 } 2195 grouping tunnel-properties { 2196 description 2197 "Top level grouping for LSP properties."; 2198 container config { 2199 description 2200 "Configuration parameters relating to 2201 LSP properties"; 2202 uses lsp-properties_config; 2203 } 2204 container state { 2205 config false; 2206 description 2207 "State information associated with LSP 2208 properties"; 2209 uses lsp-properties_config; 2211 } 2212 } 2213 /*** End of RSVP-TE LSP groupings ***/ 2215 /** 2216 * RSVP-TE generic global properties. 2217 */ 2219 grouping global-soft-preemption_config { 2220 description 2221 "Configuration for global RSVP-TE soft preemption"; 2222 leaf soft-preemption-timeout { 2223 type uint16 { 2224 range 0..300; 2225 } 2226 default 0; 2227 description 2228 "Timeout value for soft preemption to revert 2229 to hard preemption"; 2230 } 2231 } 2233 grouping global-soft-preemption { 2234 description 2235 "Top level group for RSVP-TE soft-preemption"; 2236 container global-soft-preemption { 2237 presence "Enables soft preemption on a node."; 2238 description 2239 "Top level container for RSVP-TE soft-preemption"; 2240 container config { 2241 description 2242 "Configuration parameters relating to RSVP 2243 soft preemption support"; 2244 uses global-soft-preemption_config; 2245 } 2246 container state { 2247 description "State parameters relating to RSVP 2248 soft preemption support"; 2249 uses global-soft-preemption_config; 2250 } 2251 } 2252 } 2253 /*** End of RSVP-TE generic global properties. ***/ 2255 /** 2256 * RSVP-TE interface generic groupings. 2257 */ 2259 grouping rsvp-te-interface-attributes { 2260 description 2261 "Top level grouping for RSVP-TE interface properties."; 2262 container rsvp-te-interface-attributes { 2263 description 2264 "Top level container for RSVP-TE interface 2265 properties"; 2266 container config { 2267 description 2268 "Configuration parameters relating to RSVP-TE 2269 bandwidth"; 2270 } 2271 container state { 2272 config false; 2273 description 2274 "State information associated with RSVP-TE 2275 bandwidth"; 2276 } 2277 } 2278 } 2279 /*** End of RSVP-TE generic groupings ***/ 2281 /* RSVP-TE global properties */ 2282 augment "/rsvp:rsvp/rsvp:globals" { 2283 description 2284 "RSVP-TE augmentation to RSVP globals"; 2285 } 2287 /* Linkage to the base RSVP all links */ 2288 augment "/rsvp:rsvp/rsvp:interfaces" { 2289 description 2290 "RSVP-TE generic data augmentation pertaining to interfaces"; 2291 /* To be added */ 2292 } 2294 /* Linkage to per RSVP interface */ 2295 augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface" { 2296 description 2297 "RSVP-TE generic data augmentation pertaining to specific 2298 interface"; 2299 /* To be added */ 2300 } 2302 /* add augmentation for sessions neighbors */ 2303 augment "/rsvp:rsvp/rsvp:sessions" { 2304 description 2305 "RSVP-TE generic data augmentation pertaining to session"; 2307 /* To be added */ 2308 } 2310 augment "/rsvp:rsvp/rsvp:neighbors" { 2311 description 2312 "RSVP-TE generic data augmentation pertaining to neighbors"; 2313 /* To be added */ 2314 } 2316 /** 2317 * RSVP-TE generic augmentations of generic TE model. 2318 */ 2320 augment "/ietf-te:te/ietf-te:tunnels/ietf-te:tunnel" { 2321 description 2322 "RSVP-TE generic data augmentation pertaining to TE tunnels"; 2323 uses tunnel-properties; 2324 } 2326 augment "/ietf-te:te/ietf-te:interfaces/ietf-te:interface" { 2327 description 2328 "RSVP-TE generic data augmentation pertaining to specific TE 2329 interface"; 2330 } 2332 augment "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp" { 2333 description 2334 "RSVP-TE generic data augmentation pertaining to specific TE 2335 LSP"; 2336 uses lsp-properties_config; 2337 uses lsp-explicit-route-information_state; 2338 uses lsp-record-route-information_state; 2339 } 2340 } 2341 2343 6. RSVP-TE MPLS Packet Model 2345 This section describes the MPLS packet RSVP-TE YANG module that 2346 augments the RSVP-TE generic module to signal packet MPLS LSPs. 2347 RSVP-TE YANG modules for other dataplane technologies (e.g. OTN or 2348 WDM) will be defined in separate modules and in other drafts. 2350 The following subsections describe the configuration and state data . 2351 pertaining to RSVP-TE packet MPLS YANG data model. 2353 6.1. Configuration and State Data 2355 The following are possible types of configuration and state data 2356 nodes in this module: 2358 o those augmenting or extending the generic RSVP-TE module 2360 o those augmenting or extending the base TE generic module 2362 o those that are specific to the RSVP-TE packet module 2364 Below is a YANG tree representation for data items defined in the 2365 RSVP-TE packet MPLS module: 2367 module: ietf-rsvp-te-psc 2368 augment /rsvp:rsvp/rsvp:globals: 2369 +--rw config 2370 | +--rw rsvp-frr-local-revert! 2371 | +--rw rsvp-frr-local-revert-delay? uint32 2372 +--ro state 2373 +--ro rsvp-frr-local-revert! 2374 +--ro rsvp-frr-local-revert-delay? uint32 2375 augment /rsvp:rsvp/rsvp:interfaces: 2376 augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface: 2377 augment /rsvp:rsvp/rsvp:sessions: 2378 augment /rsvp:rsvp/rsvp:neighbors: 2379 augment /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel: 2380 +--rw config 2381 | +--rw local-protection-desired? empty 2382 | +--rw bandwidth-protection-desired? empty 2383 | +--rw node-protection-desired? empty 2384 | +--rw non-php-desired? empty 2385 | +--rw entropy-label-cap? empty 2386 | +--rw oam-mep-entities-desired? empty 2387 | +--rw oam-mip-entities-desired? empty 2388 +--ro state 2389 +--ro local-protection-desired? empty 2390 +--ro bandwidth-protection-desired? empty 2391 +--ro node-protection-desired? empty 2392 +--ro non-php-desired? empty 2393 +--ro entropy-label-cap? empty 2394 +--ro oam-mep-entities-desired? empty 2395 +--ro oam-mip-entities-desired? empty 2396 augment /ietf-te:te/ietf-te:interfaces/ietf-te:interface: 2397 +--rw config 2398 | +--rw (bandwidth-value)? 2399 | | +--:(absolute) 2400 | | | +--rw absolute-value? uint32 2401 | | +--:(precentage) 2402 | | +--rw percent-value? uint32 2403 | +--rw (bc-model-type)? 2404 | +--:(bc-model-rdm) 2405 | | +--rw bc-model-rdm 2406 | | +--rw bandwidth-psc-constraints 2407 | | +--rw maximum-reservable? uint32 2408 | | +--rw bc-value* uint32 2409 | +--:(bc-model-mam) 2410 | | +--rw bc-model-mam 2411 | | +--rw bandwidth-psc-constraints 2412 | | +--rw maximum-reservable? uint32 2413 | | +--rw bc-value* uint32 2414 | +--:(bc-model-mar) 2415 | +--rw bc-model-mar 2416 | +--rw bandwidth-psc-constraints 2417 | +--rw maximum-reservable? uint32 2418 | +--rw bc-value* uint32 2419 +--ro state 2420 | +--ro (bandwidth-value)? 2421 | | +--:(absolute) 2422 | | | +--ro absolute-value? uint32 2423 | | +--:(precentage) 2424 | | +--ro percent-value? uint32 2425 | +--ro (bc-model-type)? 2426 | | +--:(bc-model-rdm) 2427 | | | +--ro bc-model-rdm 2428 | | | +--ro bandwidth-psc-constraints 2429 | | | +--ro maximum-reservable? uint32 2430 | | | +--ro bc-value* uint32 2431 | | +--:(bc-model-mam) 2432 | | | +--ro bc-model-mam 2433 | | | +--ro bandwidth-psc-constraints 2434 | | | +--ro maximum-reservable? uint32 2435 | | | +--ro bc-value* uint32 2436 | | +--:(bc-model-mar) 2437 | | +--ro bc-model-mar 2438 | | +--ro bandwidth-psc-constraints 2439 | | +--ro maximum-reservable? uint32 2440 | | +--ro bc-value* uint32 2441 | +--ro interface-softpreemption-state 2442 | | +--ro soft-preempted-bandwidth? uint32 2443 | | +--ro lsps* [source destination tunnel-id lsp-id 2444 extended-tunnel-id] 2445 | | +--ro source leafref 2446 | | +--ro destination leafref 2447 | | +--ro tunnel-id leafref 2448 | | +--ro lsp-id leafref 2449 | | +--ro extended-tunnel-id leafref 2450 | | +--ro type? leafref 2451 | +--ro over-subscribed-bandwidth? uint32 2452 +--rw rsvp-te-frr-backups {ietf-te-types:frr-te}? 2453 +--rw config 2454 | +--rw backup-bandwidth? uint32 2455 | +--rw backup-bandwidth-classtype? uint32 2456 | +--rw (type)? 2457 | +--:(static-tunnel) 2458 | | +--rw static-backups* [tunnel-name] 2459 | | +--rw tunnel-name string 2460 | +--:(auto-tunnel) 2461 | +--rw auto-backup-protection? identityref 2462 | +--rw auto-backup-path-computation? identityref 2463 +--ro state 2464 +--ro backup-bandwidth? uint32 2465 +--ro backup-bandwidth-classtype? uint32 2466 +--ro (type)? 2467 +--:(static-tunnel) 2468 | +--ro static-backups* [tunnel-name] 2469 | +--ro tunnel-name string 2470 +--:(auto-tunnel) 2471 +--ro auto-backup-protection? identityref 2472 +--ro auto-backup-path-computation? identityref 2473 augment /ietf-te:te/ietf-te:lsps-state/ietf-te:lsp: 2474 +--ro local-protection-desired? empty 2475 +--ro bandwidth-protection-desired? empty 2476 +--ro node-protection-desired? empty 2477 +--ro non-php-desired? empty 2478 +--ro entropy-label-cap? empty 2479 +--ro oam-mep-entities-desired? empty 2480 +--ro oam-mip-entities-desired? empty 2481 +--ro backup-info 2482 +--ro backup-tunnel-name? string 2483 +--ro backup-frr-on? uint8 2484 +--ro backup-protected-lsp-num? uint32 2486 6.2. RPC and Notification Data 2488 TBD. 2490 6.3. YANG Module 2492 file "ietf-rsvp-te-psc@2015-07-06.yang" 2493 module ietf-rsvp-te-psc { 2495 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-psc"; 2496 prefix "rsvp-te-psc"; 2498 import ietf-rsvp { 2499 prefix rsvp; 2500 } 2502 import ietf-te { 2503 prefix ietf-te; 2504 } 2506 import ietf-te-psc-types { 2507 prefix ietf-te-psc-types; 2508 } 2510 import ietf-te-types { 2511 prefix ietf-te-types; 2512 } 2514 organization 2515 "IETF TEAS Working Group"; 2517 contact "TBA"; 2519 description 2520 "Latest update to RSVP-TE packet YANG data model."; 2522 revision 2015-07-06 { 2523 description "Update to RSVP-TE packet YANG initial revision."; 2524 reference "RFC3209, RFC6511, RFC6790, RFC7260, RFC4859, RFC4090"; 2525 } 2527 /* RSVP-TE LSPs packet groupings */ 2528 grouping lsp-attributes-flags-psc_config { 2529 description 2530 "Configuration parameters relating to RSVP-TE LSP 2531 packet attribute flags"; 2532 leaf non-php-desired { 2533 type empty; 2534 description 2535 "Non-PHP is desired"; 2536 reference "RFC6511"; 2537 } 2538 leaf entropy-label-cap { 2539 type empty; 2540 description "Entropy label capability"; 2541 reference "RFC6790"; 2542 } 2543 leaf oam-mep-entities-desired { 2544 type empty; 2545 description "OAM MEP entities desired"; 2546 reference "RFC7260"; 2547 } 2548 leaf oam-mip-entities-desired { 2549 type empty; 2550 description "OAM MIP entities desired"; 2551 reference "RFC7260"; 2552 } 2553 } 2555 grouping lsp-session-attributes-obj-flags-psc_config { 2556 description 2557 "Configuration parameters relating to RSVP-TE LSP 2558 packet session attribute flags"; 2559 reference 2560 "RFC4859: Registry for RSVP-TE Session Flags"; 2561 leaf local-protection-desired { 2562 type empty; 2563 description "Fastreroute local protection is desired."; 2564 reference 2565 "RFC4859: Registry for RSVP-TE Session Flags"; 2566 } 2567 leaf bandwidth-protection-desired { 2568 type empty; 2569 description 2570 "Request FRR bandwidth protection on LSRs if 2571 present."; 2572 reference "RFC4090"; 2573 } 2574 leaf node-protection-desired { 2575 type empty; 2576 description 2577 "Request FRR node protection on LSRs if 2578 present."; 2579 reference "RFC4090"; 2580 } 2581 } 2583 grouping lsp-properties-psc { 2584 description 2585 "Top level grouping for LSP properties."; 2586 container config { 2587 description 2588 "Configuration parameters relating to 2589 LSP properties"; 2590 uses lsp-session-attributes-obj-flags-psc_config; 2591 uses lsp-attributes-flags-psc_config; 2593 } 2594 container state { 2595 config false; 2596 description 2597 "State information associated with LSP 2598 properties"; 2599 uses lsp-session-attributes-obj-flags-psc_config; 2600 uses lsp-attributes-flags-psc_config; 2601 } 2602 } 2603 /* End of RSVP-TE LSPs packet groupings */ 2605 /* RSVP-TE packet interface groupings */ 2606 grouping rsvp-te-interface_state { 2607 description 2608 "The RSVP-TE interface state grouping"; 2609 leaf over-subscribed-bandwidth { 2610 type uint32; 2611 description 2612 "The amount of over-subscribed bandwidth on 2613 the interface"; 2614 } 2615 } 2617 grouping rsvp-te-interface-softpreemption_state { 2618 description 2619 "The RSVP-TE interface preeemptions state grouping"; 2620 container interface-softpreemption-state { 2621 description 2622 "The RSVP-TE interface preeemptions state grouping"; 2623 leaf soft-preempted-bandwidth { 2624 type uint32; 2625 description 2626 "The amount of soft-preempted bandwidth on 2627 this interface"; 2628 } 2629 list lsps { 2630 key 2631 "source destination tunnel-id lsp-id "+ 2632 "extended-tunnel-id"; 2633 description 2634 "List of LSPs that are soft-preempted"; 2635 leaf source { 2636 type leafref { 2637 path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ 2638 "ietf-te:source"; 2639 } 2640 description 2641 "Tunnel sender address extracted from 2642 SENDER_TEMPLATE object"; 2643 reference "RFC3209"; 2644 } 2645 leaf destination { 2646 type leafref { 2647 path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ 2648 "ietf-te:destination"; 2649 } 2650 description 2651 "Tunnel endpoint address extracted from 2652 SESSION object"; 2653 reference "RFC3209"; 2654 } 2655 leaf tunnel-id { 2656 type leafref { 2657 path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ 2658 "ietf-te:tunnel-id"; 2659 } 2660 description 2661 "Tunnel identifier used in the SESSION 2662 that remains constant over the life 2663 of the tunnel."; 2664 reference "RFC3209"; 2665 } 2666 leaf lsp-id { 2667 type leafref { 2668 path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ 2669 "ietf-te:lsp-id"; 2670 } 2671 description 2672 "Identifier used in the SENDER_TEMPLATE 2673 and the FILTER_SPEC that can be changed 2674 to allow a sender to share resources with 2675 itself."; 2676 reference "RFC3209"; 2677 } 2678 leaf extended-tunnel-id { 2679 type leafref { 2680 path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ 2681 "ietf-te:extended-tunnel-id"; 2682 } 2683 description 2684 "Extended Tunnel ID of the LSP."; 2685 reference "RFC3209"; 2686 } 2687 leaf type { 2688 type leafref { 2689 path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ 2690 "ietf-te:type"; 2691 } 2692 description "LSP type P2P or P2MP"; 2693 } 2694 } 2695 } 2696 } 2697 /* End of RSVP-TE interface groupings */ 2699 /* RSVP-TE FRR groupings */ 2700 grouping rsvp-te-frr-backups_config { 2701 description 2702 "Top level container for RSVP-TE FRR backup parameters"; 2703 leaf backup-bandwidth { 2704 type uint32; 2705 description 2706 "Maximum bandwidth this facility backup 2707 is allowed to protect"; 2708 } 2709 leaf backup-bandwidth-classtype { 2710 type uint32; 2711 description 2712 "Type of primary LSP bandwidth that the 2713 backup is allowed to protect."; 2714 } 2715 choice type { 2716 description 2717 "FRR backup tunnel type"; 2718 case static-tunnel { 2719 list static-backups { 2720 key "tunnel-name"; 2721 description 2722 "List of static backup tunnels that 2723 protect the RSVP-TE interface."; 2724 leaf tunnel-name { 2725 type string; 2726 description "FRR Backup tunnel"; 2727 } 2728 } 2729 } 2730 case auto-tunnel { 2731 leaf auto-backup-protection { 2732 type identityref { 2733 base ietf-te-psc-types:backup-protection-type; 2734 } 2735 default 2736 ietf-te-psc-types:backup-protection-node-link; 2738 description 2739 "Describes whether the backup should offer 2740 protection against link, node, or either"; 2741 } 2742 leaf auto-backup-path-computation { 2743 type identityref { 2744 base 2745 ietf-te-types:path-computation-srlg-type; 2746 } 2747 description 2748 "FRR backup computation type"; 2749 } 2750 } 2751 } 2752 } 2754 grouping rsvp-te-frr-backups { 2755 description 2756 "Top level grouping for RSVP-TE FRR backup properties."; 2757 container rsvp-te-frr-backups { 2758 if-feature ietf-te-types:frr-te; 2759 description 2760 "Top level container for RSVP-TE FRR backup 2761 properties."; 2762 container config { 2763 description 2764 "Configuration parameters for interface RSVP-TE 2765 FRR backup properties"; 2766 uses rsvp-te-frr-backups_config; 2767 } 2768 container state { 2769 config false; 2770 description 2771 "State parameters for interface RSVP-TE 2772 FRR backup properties"; 2773 uses rsvp-te-frr-backups_config; 2774 } 2775 } 2776 } 2778 grouping lps-backup-info_state { 2779 description "Backup/bypass LSP related information"; 2780 container backup-info { 2781 description 2782 "backup information"; 2784 leaf backup-tunnel-name { 2785 type string; 2786 description 2787 "If an LSP has an FRR backup LSP that can protect it, 2788 this field identifies the tunnel name of the backup LSP. 2789 Otherwise, this field is empty."; 2790 } 2792 leaf backup-frr-on { 2793 type uint8; 2794 description 2795 "Whether currently this backup is carrying traffic"; 2796 } 2798 leaf backup-protected-lsp-num { 2799 type uint32; 2800 description 2801 "Number of LSPs protected by this backup"; 2802 } 2803 } 2804 } 2806 grouping rsvp-frr-local-revert_config { 2807 description "RSVP-TE FRR local revertive grouping"; 2808 container rsvp-frr-local-revert { 2809 presence "Enable RSVP FRR local revertive recovery 2810 mode."; 2811 description 2812 "RSVP-TE global properties container"; 2813 leaf rsvp-frr-local-revert-delay { 2814 type uint32; 2815 description 2816 "Time to wait after primary link is restored 2817 before node attempts local revertive 2818 procedures."; 2819 } 2820 } 2821 } 2823 /*** End of RSVP-TE FRR backup information ***/ 2825 grouping globals-properties { 2826 description 2827 "Top level grouping for globals properties"; 2828 container config { 2829 description 2830 "Configuration parameters relating to 2831 global RVP-TE packet properties"; 2832 uses rsvp-frr-local-revert_config; 2833 } 2834 container state { 2835 config false; 2836 description 2837 "State parameters relating to 2838 global RVP-TE packet properties"; 2839 uses rsvp-frr-local-revert_config; 2840 } 2841 } 2843 /* RSVP-TE global propeerties */ 2844 augment "/rsvp:rsvp/rsvp:globals" { 2845 description 2846 "RSVP-TE augmentation to RSVP globals"; 2847 uses globals-properties; 2848 } 2850 grouping rsvp-te-interface-attributes-psc { 2851 description 2852 "Top level grouping for RSVP-TE packet interface 2853 properties."; 2854 container config { 2855 description 2856 "Configuration parameters relating to RSVP-TE 2857 bandwidth"; 2858 uses ietf-te-psc-types:bandwidth-psc-reservable; 2859 } 2860 container state { 2861 config false; 2862 description 2863 "State information associated with RSVP-TE 2864 bandwidth"; 2865 uses ietf-te-psc-types:bandwidth-psc-reservable; 2866 uses rsvp-te-interface-softpreemption_state; 2867 uses rsvp-te-interface_state; 2868 } 2869 } 2871 /* Linkage to the base RSVP all links */ 2872 augment "/rsvp:rsvp/rsvp:interfaces" { 2873 description "TBD"; 2874 /* To be added */ 2875 } 2877 /* Linkage to per RSVP link */ 2878 augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface" { 2879 description "TBD"; 2880 /* To be added */ 2881 } 2882 /* add augmentation for sessions neighbors */ 2883 augment "/rsvp:rsvp/rsvp:sessions" { 2884 description "TBD"; 2885 /* To be added */ 2886 } 2888 augment "/rsvp:rsvp/rsvp:neighbors" { 2889 description "TBD"; 2890 /* To be added */ 2891 } 2893 /** 2894 * Augmentation to TE generic module 2895 */ 2896 augment "/ietf-te:te/ietf-te:tunnels/ietf-te:tunnel" { 2897 description "TBD"; 2898 uses lsp-properties-psc; 2899 } 2901 augment "/ietf-te:te/ietf-te:interfaces/ietf-te:interface" { 2902 description 2903 "RSVP reservable bandwidth configuration properties"; 2904 uses rsvp-te-interface-attributes-psc; 2905 uses rsvp-te-frr-backups; 2906 } 2908 augment "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp" { 2909 description 2910 "RSVP-TE LSP state properties"; 2911 uses lsp-session-attributes-obj-flags-psc_config; 2912 uses lsp-attributes-flags-psc_config; 2913 uses lps-backup-info_state; 2914 } 2915 } 2916 2918 7. IANA Considerations 2920 This document registers the following URIs in the IETF XML registry 2921 [RFC3688]. Following the format in [RFC3688], the following 2922 registration is requested to be made. 2924 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp XML: N/A, the requested 2925 URI is an XML namespace. 2927 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-te XML: N/A, the requested 2928 URI is an XML namespace. 2930 This document registers a YANG module in the YANG Module Names 2931 registry [RFC6020]. 2933 name: ietf-rsvp namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp 2934 prefix: ietf-rsvp reference: RFC3209 2936 name: ietf-rsvp-te namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp- 2937 te prefix: ietf-rsvp-te reference: RFC3209 2939 8. Security Considerations 2941 The YANG module defined in this memo is designed to be accessed via 2942 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 2943 secure transport layer and the mandatory-to-implement secure 2944 transport is SSH [RFC6242]. The NETCONF access control model 2945 [RFC6536] provides means to restrict access for particular NETCONF 2947 users to a pre-configured subset of all available NETCONF protocol 2948 operations and content. 2950 There are a number of data nodes defined in the YANG module which are 2951 writable/creatable/deletable (i.e., config true, which is the 2952 default). These data nodes may be considered sensitive or vulnerable 2953 in some network environments. Write operations (e.g., ) 2954 to these data nodes without proper protection can have a negative 2955 effect on network operations. 2957 9. Acknowledgement 2959 The authors would like to thank Lou Berger for reviewing and 2960 providing valuable feedback on this document. 2962 10. References 2964 10.1. Normative References 2966 [I-D.ietf-netmod-routing-cfg] 2967 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 2968 Management", draft-ietf-netmod-routing-cfg-19 (work in 2969 progress), May 2015. 2971 [I-D.saad-teas-yang-te] 2972 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, 2973 X., and R. Jones, "A YANG Data Model for Traffic 2974 Engineering Tunnels and Interfaces", draft-saad-teas-yang- 2975 te-01 (work in progress), March 2015. 2977 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2978 Requirement Levels", BCP 14, RFC 2119, March 1997. 2980 [RFC2205] Braden, B., Zhang, L., Berson, S., Herzog, S., and S. 2981 Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 2982 Functional Specification", RFC 2205, September 1997. 2984 [RFC2747] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic 2985 Authentication", RFC 2747, January 2000. 2987 [RFC2961] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F., 2988 and S. Molendini, "RSVP Refresh Overhead Reduction 2989 Extensions", RFC 2961, April 2001. 2991 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 2992 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 2993 Tunnels", RFC 3209, December 2001. 2995 [RFC3473] Berger, L., "Generalized Multi-Protocol Label Switching 2996 (GMPLS) Signaling Resource ReserVation Protocol-Traffic 2997 Engineering (RSVP-TE) Extensions", RFC 3473, January 2003. 2999 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 3000 January 2004. 3002 [RFC5063] Satyanarayana, A. and R. Rahman, "Extensions to GMPLS 3003 Resource Reservation Protocol (RSVP) Graceful Restart", 3004 RFC 5063, October 2007. 3006 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 3007 Network Configuration Protocol (NETCONF)", RFC 6020, 3008 October 2010. 3010 [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. 3011 Bierman, "Network Configuration Protocol (NETCONF)", RFC 3012 6241, June 2011. 3014 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 3015 Shell (SSH)", RFC 6242, June 2011. 3017 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 3018 Protocol (NETCONF) Access Control Model", RFC 6536, March 3019 2012. 3021 [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, 3022 July 2013. 3024 10.2. Informative References 3026 [I-D.openconfig-mpls-consolidated-model] 3027 George, J., Fang, L., eric.osborne@level3.com, e., and R. 3028 Shakir, "MPLS / TE Model for Service Provider Networks", 3029 draft-openconfig-mpls-consolidated-model-00 (work in 3030 progress), March 2015. 3032 [I-D.openconfig-netmod-opstate] 3033 Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling 3034 of Operational State Data in YANG", draft-openconfig- 3035 netmod-opstate-00 (work in progress), March 2015. 3037 Authors' Addresses 3039 Vishnu Pavan Beeram 3040 Juniper Networks 3042 Email: vbeeram@juniper.net 3044 Tarek Saad 3045 Cisco Systems Inc 3047 Email: tsaad@cisco.com 3049 Rakesh Gandhi 3050 Cisco Systems Inc 3052 Email: rgandhi@cisco.com 3054 Xufeng Liu 3055 Ericsson 3057 Email: xufeng.liu@ericsson.com 3059 Himanshu Shah 3060 Ciena 3062 Email: tsaad@cisco.com 3063 Xia Chen 3064 Huawei Technologies 3066 Email: jescia.chenxia@huawei.com 3068 Raqib Jones 3069 Brocade 3071 Email: raqib@Brocade.com 3073 Bin Wen 3074 Comcast 3076 Email: Bin_Wen@cable.comcast.com