idnits 2.17.1 draft-ietf-teas-yang-rsvp-13.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 294 has weird spacing: '...on-port ine...' == Line 501 has weird spacing: '...ce-name lea...' == Line 511 has weird spacing: '...on-port ine...' == Line 514 has weird spacing: '...ce-name lea...' == Line 522 has weird spacing: '...ce-name lea...' == (1 more instance...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (July 13, 2020) is 1382 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 (-09) exists of draft-ietf-teas-yang-rsvp-te-08 Summary: 0 errors (**), 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 T. Saad 4 Intended status: Standards Track Juniper Networks 5 Expires: January 14, 2021 R. Gandhi 6 Cisco Systems, Inc. 7 X. Liu 8 Volta Networks 9 I. Bryskin 10 Individual 11 July 13, 2020 13 A YANG Data Model for Resource Reservation Protocol (RSVP) 14 draft-ietf-teas-yang-rsvp-13 16 Abstract 18 This document defines a YANG data model for the configuration and 19 management of RSVP Protocol. The model covers the building blocks of 20 the RSVP protocol that can be augmented and used by other RSVP 21 extension models such as RSVP extensions to Traffic-Engineering 22 (RSVP-TE). The model covers the configuration, operational state, 23 remote procedure calls, and event notifications data. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on January 14, 2021. 42 Copyright Notice 44 Copyright (c) 2020 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (https://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 60 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 61 1.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 3 62 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 63 2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 3 64 2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 4 65 2.2. Design Considerations . . . . . . . . . . . . . . . . . . 4 66 2.3. Model Notifications . . . . . . . . . . . . . . . . . . . 5 67 2.4. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 5 68 2.4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 7 69 2.4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 12 70 2.5. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 33 71 2.5.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 33 72 2.5.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 35 73 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45 74 4. Security Considerations . . . . . . . . . . . . . . . . . . . 46 75 5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 47 76 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 47 77 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 47 78 7.1. Normative References . . . . . . . . . . . . . . . . . . 47 79 7.2. Informative References . . . . . . . . . . . . . . . . . 50 80 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 82 1. Introduction 84 YANG [RFC6020] is a data definition language that was introduced to 85 define the contents of a conceptual data store that allows networked 86 devices to be managed using NETCONF [RFC6241]. YANG is proving 87 relevant beyond its initial confines, as bindings to other interfaces 88 (e.g. ReST) and encoding other than XML (e.g. JSON) are being 89 defined. Furthermore, YANG data models can be used as the basis of 90 implementation for other interfaces, such as CLI and programmatic 91 APIs. 93 This document defines a YANG data model that can be used to configure 94 and manage the RSVP protocol [RFC2205]. This model covers RSVP 95 protocol building blocks that can be augmented and used by other RSVP 96 extension models- such as for signaling RSVP-TE MPLS (or other 97 technology specific) Label Switched Paths (LSP)s. 99 1.1. Terminology 101 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 102 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 103 "OPTIONAL" in this document are to be interpreted as described in BCP 104 14 [RFC2119] [RFC8174] when, and only when, they appear in all 105 capitals, as shown here. 107 The terminology for describing YANG data models is found in 108 [RFC7950]. 110 1.2. Model Tree Diagram 112 A full tree diagram of the module(s) defined in this document is 113 given in subsequent sections as per the syntax defined in [RFC8340]. 115 1.3. Prefixes in Data Node Names 117 In this document, names of data nodes and other data model objects 118 are prefixed using the standard prefix associated with the 119 corresponding YANG imported modules, as shown in Table 1. 121 +-----------+--------------------+-----------+ 122 | Prefix | YANG module | Reference | 123 +-----------+--------------------+-----------+ 124 | yang | ietf-yang-types | [RFC6991] | 125 | inet | ietf-inet-types | [RFC6991] | 126 | rt-type | ietf-routing-types | XX | 127 | key-chain | ietf-key-chain | XX | 128 +---------+----------------------+-----------+ 130 Table 1: Prefixes and corresponding YANG modules 132 2. Model Overview 134 The RSVP base YANG module augments the "control-plane-protocol" list 135 in ietf-routing [RFC8349] module with specific RSVP parameters in an 136 "rsvp" container. It also defines an extension identity "rsvp" of 137 base "rt:routing-protocol" to identify the RSVP protocol. 139 The augmentation of the RSVP model by other models (e.g. RSVP-TE for 140 MPLS or other technologies) are outside the scope of this document 141 and are discussed in separate document(s), e.g. 142 [I-D.ietf-teas-yang-rsvp-te]. 144 2.1. Module(s) Relationship 146 This document divides the RSVP model into two modules: base and 147 extended RSVP modules. Some RSVP features are categorized as core to 148 the function of the protocol and are supported by most vendors 149 claiming the support for RSVP protocol. Such features configuration 150 and state are grouped in the RSVP base module. 152 Other extended RSVP features are categorized as either optional or 153 providing ability to better tune the basic functionality of the RSVP 154 protocol. The support for extended RSVP features by all vendors is 155 considered optional. Such features are grouped in a separate RSVP 156 extended module. 158 The relationship between the base and extended RSVP YANG model and 159 the IETF routing YANG model is shown in Figure 1. 161 +--------------+ 162 Routing | ietf-routing | 163 +--------------+ 164 o 165 | 166 +-----------+ 167 RSVP module | ietf-rsvp | 168 +-----------+ 169 o 170 | o: augment relationship 171 RSVP extended | 172 module +--------------------+ 173 | ietf-rsvp-extended | 174 +--------------------+ 176 Figure 1: Relationship of RSVP and RSVP extended modules with other 177 protocol modules 179 2.2. Design Considerations 181 The RSVP base model does not aim to be feature complete. The primary 182 intent is to cover a set of standard core features that are commonly 183 in use. For example: 185 o Authentication ([RFC2747]) 187 o Refresh Reduction ([RFC2961]) 189 o Hellos ([RFC3209]) 191 o Graceful Restart ([RFC3473], [RFC5063]) 192 The extended RSVP YANG model covers the configuration for optional 193 features that are not must for basic RSVP protocol operation. 195 The defined data model supports configuration inheritance for 196 neighbors, and interfaces. Data elements defined in the main 197 container (e.g. the container that encompasses the list of 198 interfaces, or neighbors) are assumed to apply equally to all 199 elements of the list, unless overridden explicitly for a certain 200 element (e.g. interface). Vendors are expected to augment the above 201 container(s) to provide the list of inheritance command for their 202 implementations. 204 2.3. Model Notifications 206 Notifications data modeling is key in any defined data model. 208 [RFC8639] and [RFC8641] define a subscription and push mechanism for 209 YANG datastores. This mechanism currently allows the user to: 211 o Subscribe notifications on a per client basis 213 o Specify subtree filters or xpath filters so that only interested 214 contents will be sent. 216 o Specify either periodic or on-demand notifications. 218 2.4. RSVP Base YANG Model 220 The RSVP base YANG data model defines the container "rsvp" as the top 221 level container in this data model. The presence of this container 222 enables the RSVP protocol functionality. 224 The derived state data is contained in "read-only" nodes directly 225 under the intended object as shown in Figure 2. 227 module: ietf-rsvp 228 +--rw rsvp! 229 +--rw globals 230 . 231 . 232 +--rw interfaces 233 . 234 +-- ro <> 235 . 236 . 237 +--rw neighbors 238 . 239 +-- ro <> 240 . 241 . 242 +--rw sessions 243 . 244 +-- ro <> 245 . 246 rpcs: 247 +--x clear-session 248 +--x clear-neighbor 250 Figure 2: RSVP high-level tree model view 252 Configuration and state data are grouped to those applicable on per 253 node (global), per interface, per neighbor, or per session. 255 Global Data: 257 The global data cover the configuration and state that is 258 applicable the RSVP protocol behavior. 260 Interface Data: 262 The interface data configuration and state model relevant 263 attributes applicable to one or all RSVP interfaces. Any data or 264 state at the "interfaces" container level is equally applicable to 265 all interfaces - unless overridden by explicit configuration or 266 state under a specific interface. 268 Neighbor Data: 270 The neighbor data cover configuration and state relevant to RSVP 271 neighbors. Neighbors can be dynamically discovered using RSVP 272 signaling or explicitly configured. 274 Session Data: 276 The sessions data branch covers configuration and state relevant 277 to RSVP sessions. This is usually derived state that is result of 278 signaling. This model defines attributes related to IP RSVP 279 sessions as defined in [RFC2205]. 281 2.4.1. Tree Diagram 283 Figure 3 shows the YANG tree representation for configuration and 284 state data that is augmenting the RSVP basic module: 286 module: ietf-rsvp 287 augment /rt:routing/rt:control-plane-protocols 288 /rt:control-plane-protocol: 289 +--rw rsvp! 290 +--rw globals 291 | +--rw sessions 292 | | +--ro session-ip* 293 | | [destination protocol-id destination-port] 294 | | +--ro destination-port inet:port-number 295 | | +--ro protocol-id uint8 296 | | +--ro source? inet:ip-address 297 | | +--ro destination inet:ip-address 298 | | +--ro session-name? string 299 | | +--ro session-status? enumeration 300 | | +--ro session-type? identityref 301 | | +--ro psbs 302 | | | +--ro psb* [] 303 | | | +--ro source-port? inet:port-number 304 | | | +--ro expires-in? uint32 305 | | +--ro rsbs 306 | | +--ro rsb* [] 307 | | +--ro source-port? inet:port-number 308 | | +--ro reservation-style? identityref 309 | | +--ro expires-in? uint32 310 | +--ro statistics 311 | | +--ro messages 312 | | | +--ro ack-sent? yang:counter64 313 | | | +--ro ack-received? yang:counter64 314 | | | +--ro bundle-sent? yang:counter64 315 | | | +--ro bundle-received? yang:counter64 316 | | | +--ro hello-sent? yang:counter64 317 | | | +--ro hello-received? yang:counter64 318 | | | +--ro integrity-challenge-sent? yang:counter64 319 | | | +--ro integrity-challenge-received? yang:counter64 320 | | | +--ro integrity-response-sent? yang:counter64 321 | | | +--ro integrity-response-received? yang:counter64 322 | | | +--ro notify-sent? yang:counter64 323 | | | +--ro notify-received? yang:counter64 324 | | | +--ro path-sent? yang:counter64 325 | | | +--ro path-received? yang:counter64 326 | | | +--ro path-err-sent? yang:counter64 327 | | | +--ro path-err-received? yang:counter64 328 | | | +--ro path-tear-sent? yang:counter64 329 | | | +--ro path-tear-received? yang:counter64 330 | | | +--ro resv-sent? yang:counter64 331 | | | +--ro resv-received? yang:counter64 332 | | | +--ro resv-confirm-sent? yang:counter64 333 | | | +--ro resv-confirm-received? yang:counter64 334 | | | +--ro resv-err-sent? yang:counter64 335 | | | +--ro resv-err-received? yang:counter64 336 | | | +--ro resv-tear-sent? yang:counter64 337 | | | +--ro resv-tear-received? yang:counter64 338 | | | +--ro summary-refresh-sent? yang:counter64 339 | | | +--ro summary-refresh-received? yang:counter64 340 | | | +--ro unknown-messages-received? yang:counter64 341 | | +--ro packets 342 | | | +--ro sent? yang:counter64 343 | | | +--ro received? yang:counter64 344 | | +--ro errors 345 | | +--ro authenticate? yang:counter64 346 | | +--ro checksum? yang:counter64 347 | | +--ro packet-length? yang:counter64 348 | +--rw graceful-restart 349 | +--rw enabled? boolean 350 +--rw interfaces 351 | +--rw refresh-reduction 352 | | +--rw enabled? boolean 353 | +--rw hellos 354 | | +--rw enabled? boolean 355 | +--rw authentication 356 | | +--rw enabled? boolean 357 | | +--rw authentication-key? string 358 | | +--rw crypto-algorithm identityref 359 | +--ro statistics 360 | | +--ro messages 361 | | | +--ro ack-sent? yang:counter64 362 | | | +--ro ack-received? yang:counter64 363 | | | +--ro bundle-sent? yang:counter64 364 | | | +--ro bundle-received? yang:counter64 365 | | | +--ro hello-sent? yang:counter64 366 | | | +--ro hello-received? yang:counter64 367 | | | +--ro integrity-challenge-sent? yang:counter64 368 | | | +--ro integrity-challenge-received? yang:counter64 369 | | | +--ro integrity-response-sent? yang:counter64 370 | | | +--ro integrity-response-received? yang:counter64 371 | | | +--ro notify-sent? yang:counter64 372 | | | +--ro notify-received? yang:counter64 373 | | | +--ro path-sent? yang:counter64 374 | | | +--ro path-received? yang:counter64 375 | | | +--ro path-err-sent? yang:counter64 376 | | | +--ro path-err-received? yang:counter64 377 | | | +--ro path-tear-sent? yang:counter64 378 | | | +--ro path-tear-received? yang:counter64 379 | | | +--ro resv-sent? yang:counter64 380 | | | +--ro resv-received? yang:counter64 381 | | | +--ro resv-confirm-sent? yang:counter64 382 | | | +--ro resv-confirm-received? yang:counter64 383 | | | +--ro resv-err-sent? yang:counter64 384 | | | +--ro resv-err-received? yang:counter64 385 | | | +--ro resv-tear-sent? yang:counter64 386 | | | +--ro resv-tear-received? yang:counter64 387 | | | +--ro summary-refresh-sent? yang:counter64 388 | | | +--ro summary-refresh-received? yang:counter64 389 | | | +--ro unknown-messages-received? yang:counter64 390 | | +--ro packets 391 | | | +--ro sent? yang:counter64 392 | | | +--ro received? yang:counter64 393 | | +--ro errors 394 | | +--ro authenticate? yang:counter64 395 | | +--ro checksum? yang:counter64 396 | | +--ro packet-length? yang:counter64 397 | +--rw interface* [interface] 398 | +--rw interface if:interface-ref 399 | +--rw refresh-reduction 400 | | +--rw enabled? boolean 401 | +--rw hellos 402 | | +--rw enabled? boolean 403 | +--rw authentication 404 | | +--rw enabled? boolean 405 | | +--rw authentication-key? string 406 | | +--rw crypto-algorithm identityref 407 | +--ro statistics 408 | +--ro messages 409 | | +--ro ack-sent? 410 | | | yang:counter64 411 | | +--ro ack-received? 412 | | | yang:counter64 413 | | +--ro bundle-sent? 414 | | | yang:counter64 415 | | +--ro bundle-received? 416 | | | yang:counter64 417 | | +--ro hello-sent? 418 | | | yang:counter64 419 | | +--ro hello-received? 420 | | | yang:counter64 421 | | +--ro integrity-challenge-sent? 422 | | | yang:counter64 423 | | +--ro integrity-challenge-received? 424 | | | yang:counter64 425 | | +--ro integrity-response-sent? 426 | | | yang:counter64 427 | | +--ro integrity-response-received? 428 | | | yang:counter64 429 | | +--ro notify-sent? 430 | | | yang:counter64 431 | | +--ro notify-received? 432 | | | yang:counter64 433 | | +--ro path-sent? 434 | | | yang:counter64 435 | | +--ro path-received? 436 | | | yang:counter64 437 | | +--ro path-err-sent? 438 | | | yang:counter64 439 | | +--ro path-err-received? 440 | | | yang:counter64 441 | | +--ro path-tear-sent? 442 | | | yang:counter64 443 | | +--ro path-tear-received? 444 | | | yang:counter64 445 | | +--ro resv-sent? 446 | | | yang:counter64 447 | | +--ro resv-received? 448 | | | yang:counter64 449 | | +--ro resv-confirm-sent? 450 | | | yang:counter64 451 | | +--ro resv-confirm-received? 452 | | | yang:counter64 453 | | +--ro resv-err-sent? 454 | | | yang:counter64 455 | | +--ro resv-err-received? 456 | | | yang:counter64 457 | | +--ro resv-tear-sent? 458 | | | yang:counter64 459 | | +--ro resv-tear-received? 460 | | | yang:counter64 461 | | +--ro summary-refresh-sent? 462 | | | yang:counter64 463 | | +--ro summary-refresh-received? 464 | | | yang:counter64 465 | | +--ro unknown-messages-received? 466 | | yang:counter64 467 | +--ro packets 468 | | +--ro sent? yang:counter64 469 | | +--ro received? yang:counter64 470 | +--ro errors 471 | +--ro authenticate? yang:counter64 472 | +--ro checksum? yang:counter64 473 | +--ro packet-length? yang:counter64 474 +--rw neighbors 475 +--rw neighbor* [address] 476 +--rw address inet:ip-address 477 +--rw epoch? uint32 478 +--rw expiry-time? uint32 479 +--rw graceful-restart 480 | +--rw enabled? boolean 481 | +--rw local-restart-time? uint32 482 | +--rw local-recovery-time? uint32 483 | +--rw neighbor-restart-time? uint32 484 | +--rw neighbor-recovery-time? uint32 485 | +--rw helper-mode 486 | +--rw enabled? boolean 487 | +--rw max-helper-restart-time? uint32 488 | +--rw max-helper-recovery-time? uint32 489 | +--rw neighbor-restart-time-remaining? uint32 490 | +--rw neighbor-recovery-time-remaining? uint32 491 +--rw hello-status? enumeration 492 +--rw interface? if:interface-ref 493 +--rw neighbor-status? enumeration 494 +--rw refresh-reduction-capable? boolean 495 +--rw restart-count? yang:counter32 496 +--rw restart-time? yang:date-and-time 498 rpcs: 499 +---x clear-session 500 | +---w input 501 | +---w routing-protocol-instance-name leafref 502 | +---w (filter-type) 503 | +--:(match-all) 504 | | +---w all empty 505 | +--:(match-one) 506 | +---w session-info 507 | +---w (session-type) 508 | +--:(rsvp-session-ip) 509 | +---w destination leafref 510 | +---w protocol-id uint8 511 | +---w destination-port inet:ip-address 512 +---x clear-neighbor 513 | +---w input 514 | +---w routing-protocol-instance-name leafref 515 | +---w (filter-type) 516 | +--:(match-all) 517 | | +---w all empty 518 | +--:(match-one) 519 | +---w neighbor-address leafref 520 +---x clear-authentication 521 +---w input 522 +---w routing-protocol-instance-name leafref 523 +---w (filter-type) 524 +--:(match-all) 525 | +---w all empty 526 +--:(match-one-interface) 527 +---w interface? if:interface-ref 529 Figure 3: RSVP model tree diagram 531 2.4.2. YANG Module 533 The ietf-rsvp module imports from the following modules: 535 o ietf-interfaces defined in [RFC8343] 537 o ietf-yang-types and ietf-inet-types defined in [RFC6991] 539 o ietf-routing defined in [RFC8349] 541 o ietf-key-chain defined in [RFC8177] 543 file "ietf-rsvp@2020-01-13.yang" 544 module ietf-rsvp { 545 yang-version 1.1; 546 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp"; 548 /* Replace with IANA when assigned */ 550 prefix rsvp; 552 import ietf-interfaces { 553 prefix if; 554 reference 555 "RFC8343: A YANG Data Model for Interface Management"; 556 } 557 import ietf-inet-types { 558 prefix inet; 559 reference 560 "RFC6991: Common YANG Data Types"; 561 } 562 import ietf-yang-types { 563 prefix yang; 564 reference 565 "RFC6991: Common YANG Data Types"; 566 } 567 import ietf-routing { 568 prefix rt; 569 reference 570 "RFC8349: A YANG Data Model for Routing Management 571 (NMDA Version)"; 572 } 573 import ietf-key-chain { 574 prefix key-chain; 575 reference 576 "RFC8177: YANG Data Model for Key Chains"; 577 } 579 organization 580 "IETF Traffic Engineering Architecture and Signaling (TEAS) 581 Working Group"; 582 contact 583 "WG Web: 584 WG List: 586 Editor: Vishnu Pavan Beeram 587 589 Editor: Tarek Saad 590 592 Editor: Rakesh Gandhi 593 595 Editor: Xufeng Liu 596 598 Editor: Igor Bryskin 599 "; 600 description 601 "This module contains the RSVP YANG data model. 602 The model fully conforms to the Network Management Datastore 603 Architecture (NMDA). 605 Copyright (c) 2019 IETF Trust and the persons 606 identified as authors of the code. All rights reserved. 608 Redistribution and use in source and binary forms, with or 609 without modification, is permitted pursuant to, and subject 610 to the license terms contained in, the Simplified BSD License 611 set forth in Section 4.c of the IETF Trust's Legal Provisions 612 Relating to IETF Documents 613 (https://trustee.ietf.org/license-info). 614 This version of this YANG module is part of RFC XXXX; see 615 the RFC itself for full legal notices."; 617 // RFC Ed.: replace XXXX with actual RFC number and remove this 618 // note. 619 // RFC Ed.: update the date below with the date of RFC publication 620 // and remove this note. 622 revision 2020-01-13 { 623 description 624 "A YANG Data Model for Resource Reservation Protocol"; 625 reference 626 "RFCXXXX: A YANG Data Model for Resource Reservation Protocol 627 (RSVP)"; 628 } 630 identity rsvp { 631 base rt:routing-protocol; 632 description 633 "RSVP protocol"; 634 } 636 identity rsvp-session-type { 637 description 638 "Base RSVP session type"; 639 } 641 identity rsvp-session-ip { 642 base rsvp-session-type; 643 description 644 "RSVP IP session type"; 645 } 647 identity reservation-style { 648 description 649 "Base identity for reservation style"; 650 } 652 identity reservation-wildcard-filter { 653 base reservation-style; 654 description 655 "Wildcard-Filter (WF) Style"; 656 reference 657 "RFC2205"; 659 } 661 identity reservation-fixed-filter { 662 base reservation-style; 663 description 664 "Fixed-Filter (FF) Style"; 665 reference 666 "RFC2205"; 667 } 669 identity reservation-shared-explicit { 670 base reservation-style; 671 description 672 "Shared Explicit (SE) Style"; 673 reference 674 "RFC2205"; 675 } 677 grouping graceful-restart-config { 678 description 679 "Base configuration parameters relating to RSVP 680 Graceful-Restart"; 681 leaf enabled { 682 type boolean; 683 description 684 "'true' if RSVP Graceful Restart is enabled. 685 'false' if RSVP Graceful Restart is disabled."; 686 } 687 } 689 grouping graceful-restart { 690 description 691 "RSVP graceful restart parameters grouping"; 692 container graceful-restart { 693 description 694 "RSVP graceful restart parameters container"; 695 uses graceful-restart-config; 696 } 697 } 699 grouping refresh-reduction-config { 700 description 701 "Configuration parameters relating to RSVP 702 refresh reduction"; 703 leaf enabled { 704 type boolean; 705 description 706 "'true' if RSVP Refresh Reduction is enabled. 708 'false' if RSVP Refresh Reduction is disabled."; 709 } 710 } 712 grouping refresh-reduction { 713 description 714 "Top level grouping for RSVP refresh reduction 715 parameters"; 716 container refresh-reduction { 717 description 718 "Top level container for RSVP refresh reduction 719 parameters"; 720 uses refresh-reduction-config; 721 } 722 } 724 grouping authentication-config { 725 description 726 "Configuration parameters relating to RSVP 727 authentication"; 728 leaf enabled { 729 type boolean; 730 description 731 "'true' if RSVP Authentication is enabled. 732 'false' if RSVP Authentication is disabled."; 733 } 734 leaf authentication-key { 735 type string; 736 description 737 "An authentication key string"; 738 reference 739 "RFC 2747: RSVP Cryptographic Authentication"; 740 } 741 leaf crypto-algorithm { 742 type identityref { 743 base key-chain:crypto-algorithm; 744 } 745 mandatory true; 746 description 747 "Cryptographic algorithm associated with key."; 748 } 749 } 751 grouping authentication { 752 description 753 "Top level grouping for RSVP authentication parameters"; 754 container authentication { 755 description 756 "Top level container for RSVP authentication 757 parameters"; 758 uses authentication-config; 759 } 760 } 762 grouping hellos-config { 763 description 764 "Configuration parameters relating to RSVP 765 hellos"; 766 leaf enabled { 767 type boolean; 768 description 769 "'true' if RSVP Hello is enabled. 770 'false' if RSVP Hello is disabled."; 771 } 772 } 774 grouping hellos { 775 description 776 "Top level grouping for RSVP hellos parameters"; 777 container hellos { 778 description 779 "Top level container for RSVP hello parameters"; 780 uses hellos-config; 781 } 782 } 784 grouping signaling-parameters-config { 785 description 786 "Configuration parameters relating to RSVP 787 signaling"; 788 } 790 grouping signaling-parameters { 791 description 792 "Top level grouping for RSVP signaling parameters"; 793 uses signaling-parameters-config; 794 } 796 grouping session-attributes { 797 description 798 "Top level grouping for RSVP session properties"; 799 leaf destination-port { 800 type inet:port-number; 801 description 802 "RSVP destination port"; 803 reference 804 "RFC2205"; 805 } 806 leaf protocol-id { 807 type uint8; 808 description 809 "The IP protocol ID."; 810 reference 811 "RFC2205, section 3.2"; 812 } 813 leaf source { 814 type inet:ip-address; 815 description 816 "RSVP source address"; 817 reference 818 "RFC2205"; 819 } 820 leaf destination { 821 type inet:ip-address; 822 description 823 "RSVP destination address"; 824 reference 825 "RFC2205"; 826 } 827 leaf session-name { 828 type string; 829 description 830 "The signaled name of this RSVP session."; 831 } 832 leaf session-status { 833 type enumeration { 834 enum up { 835 description 836 "RSVP session is up"; 837 } 838 enum down { 839 description 840 "RSVP session is down"; 841 } 842 } 843 description 844 "Enumeration of RSVP session states"; 845 } 846 leaf session-type { 847 type identityref { 848 base rsvp-session-type; 849 } 850 description 851 "RSVP session type"; 853 } 854 container psbs { 855 description 856 "Path State Block container"; 857 list psb { 858 description 859 "List of path state blocks"; 860 leaf source-port { 861 type inet:port-number; 862 description 863 "RSVP source port"; 864 reference 865 "RFC2205"; 866 } 867 leaf expires-in { 868 type uint32; 869 units "seconds"; 870 description 871 "Time to reservation expiry (in seconds)"; 872 } 873 } 874 } 875 container rsbs { 876 description 877 "Reservation State Block container"; 878 list rsb { 879 description 880 "List of reservation state blocks"; 881 leaf source-port { 882 type inet:port-number; 883 description 884 "RSVP source port"; 885 reference 886 "RFC2205"; 887 } 888 leaf reservation-style { 889 type identityref { 890 base reservation-style; 891 } 892 description 893 "RSVP reservation style"; 894 } 895 leaf expires-in { 896 type uint32; 897 units "seconds"; 898 description 899 "Time to reservation expiry (in seconds)"; 900 } 902 } 903 } 904 } 906 grouping neighbor-attributes { 907 description 908 "Top level grouping for RSVP neighbor properties"; 909 leaf address { 910 type inet:ip-address; 911 description 912 "Address of RSVP neighbor"; 913 } 914 leaf epoch { 915 type uint32; 916 description 917 "Neighbor epoch."; 918 } 919 leaf expiry-time { 920 type uint32; 921 units "seconds"; 922 description 923 "Neighbor expiry time after which the neighbor state 924 is purged if no states associated with it"; 925 } 926 container graceful-restart { 927 description 928 "Graceful restart information."; 929 leaf enabled { 930 type boolean; 931 description 932 "'true' if graceful restart is enabled for the neighbor."; 933 } 934 leaf local-restart-time { 935 type uint32; 936 units "seconds"; 937 description 938 "Local node restart time"; 939 } 940 leaf local-recovery-time { 941 type uint32; 942 units "seconds"; 943 description 944 "Local node recover time"; 945 } 946 leaf neighbor-restart-time { 947 type uint32; 948 units "seconds"; 949 description 950 "Neighbor restart time"; 951 } 952 leaf neighbor-recovery-time { 953 type uint32; 954 units "seconds"; 955 description 956 "Neighbor recover time"; 957 } 958 container helper-mode { 959 description 960 "Helper mode information "; 961 leaf enabled { 962 type boolean; 963 description 964 "'true' if helper mode is enabled."; 965 } 966 leaf max-helper-restart-time { 967 type uint32; 968 units "seconds"; 969 description 970 "The time the router or switch waits after it 971 discovers that a neighboring router has gone down 972 before it declares the neighbor down"; 973 } 974 leaf max-helper-recovery-time { 975 type uint32; 976 units "seconds"; 977 description 978 "The amount of time the router retains the state of its 979 RSVP neighbors while they undergo a graceful restart"; 980 } 981 leaf neighbor-restart-time-remaining { 982 type uint32; 983 units "seconds"; 984 description 985 "Number of seconds remaining for neighbor to send 986 Hello message after restart."; 987 } 988 leaf neighbor-recovery-time-remaining { 989 type uint32; 990 units "seconds"; 991 description 992 "Number of seconds remaining for neighbor to 993 refresh."; 994 } 995 } 996 // helper-mode 997 } 998 // graceful-restart 999 leaf hello-status { 1000 type enumeration { 1001 enum enabled { 1002 description 1003 "Enabled"; 1004 } 1005 enum disabled { 1006 description 1007 "Disabled"; 1008 } 1009 enum restarting { 1010 description 1011 "Restarting"; 1012 } 1013 } 1014 description 1015 "Hello status"; 1016 } 1017 leaf interface { 1018 type if:interface-ref; 1019 description 1020 "Interface where RSVP neighbor was detected"; 1021 } 1022 leaf neighbor-status { 1023 type enumeration { 1024 enum up { 1025 description 1026 "up"; 1027 } 1028 enum down { 1029 description 1030 "down"; 1031 } 1032 enum hello-disable { 1033 description 1034 "hello-disable"; 1035 } 1036 enum restarting { 1037 description 1038 "restarting"; 1039 } 1040 } 1041 description 1042 "Neighbor state"; 1043 } 1044 leaf refresh-reduction-capable { 1045 type boolean; 1046 description 1047 "enables all RSVP refresh reduction message 1048 bundling, RSVP message ID, reliable message delivery 1049 and summary refresh"; 1050 reference 1051 "RFC 2961 RSVP Refresh Overhead Reduction 1052 Extensions"; 1053 } 1054 leaf restart-count { 1055 type yang:counter32; 1056 description 1057 "Number of times this neighbor restart"; 1058 } 1059 leaf restart-time { 1060 type yang:date-and-time; 1061 description 1062 "Last restart time of the neighbor"; 1063 } 1064 } 1066 grouping packet-statistics { 1067 description 1068 "Packet statistics grouping"; 1069 container packets { 1070 description 1071 "Packet statistics container"; 1072 leaf sent { 1073 type yang:counter64; 1074 description 1075 "Packet sent count"; 1076 } 1077 leaf received { 1078 type yang:counter64; 1079 description 1080 "Packet received count"; 1081 } 1082 } 1083 } 1085 grouping message-statistics { 1086 description 1087 "RSVP protocol statistics grouping"; 1088 container messages { 1089 description 1090 "RSVP protocol statistics container"; 1091 leaf ack-sent { 1092 type yang:counter64; 1093 description 1094 "Hello sent count"; 1095 } 1096 leaf ack-received { 1097 type yang:counter64; 1098 description 1099 "Hello received count"; 1100 } 1101 leaf bundle-sent { 1102 type yang:counter64; 1103 description 1104 "Bundle sent count"; 1105 } 1106 leaf bundle-received { 1107 type yang:counter64; 1108 description 1109 "Bundle received count"; 1110 } 1111 leaf hello-sent { 1112 type yang:counter64; 1113 description 1114 "Hello sent count"; 1115 } 1116 leaf hello-received { 1117 type yang:counter64; 1118 description 1119 "Hello received count"; 1120 } 1121 leaf integrity-challenge-sent { 1122 type yang:counter64; 1123 description 1124 "Integrity Challenge sent count"; 1125 } 1126 leaf integrity-challenge-received { 1127 type yang:counter64; 1128 description 1129 "Integrity Challenge received count"; 1130 } 1131 leaf integrity-response-sent { 1132 type yang:counter64; 1133 description 1134 "Integrity Response sent count"; 1135 } 1136 leaf integrity-response-received { 1137 type yang:counter64; 1138 description 1139 "Integrity Response received count"; 1140 } 1141 leaf notify-sent { 1142 type yang:counter64; 1143 description 1144 "Notify sent count"; 1145 } 1146 leaf notify-received { 1147 type yang:counter64; 1148 description 1149 "Notify received count"; 1150 } 1151 leaf path-sent { 1152 type yang:counter64; 1153 description 1154 "Path sent count"; 1155 } 1156 leaf path-received { 1157 type yang:counter64; 1158 description 1159 "Path received count"; 1160 } 1161 leaf path-err-sent { 1162 type yang:counter64; 1163 description 1164 "Path error sent count"; 1165 } 1166 leaf path-err-received { 1167 type yang:counter64; 1168 description 1169 "Path error received count"; 1170 } 1171 leaf path-tear-sent { 1172 type yang:counter64; 1173 description 1174 "Path tear sent count"; 1175 } 1176 leaf path-tear-received { 1177 type yang:counter64; 1178 description 1179 "Path tear received count"; 1180 } 1181 leaf resv-sent { 1182 type yang:counter64; 1183 description 1184 "Resv sent count"; 1185 } 1186 leaf resv-received { 1187 type yang:counter64; 1188 description 1189 "Resv received count"; 1191 } 1192 leaf resv-confirm-sent { 1193 type yang:counter64; 1194 description 1195 "Confirm sent count"; 1196 } 1197 leaf resv-confirm-received { 1198 type yang:counter64; 1199 description 1200 "Confirm received count"; 1201 } 1202 leaf resv-err-sent { 1203 type yang:counter64; 1204 description 1205 "Resv error sent count"; 1206 } 1207 leaf resv-err-received { 1208 type yang:counter64; 1209 description 1210 "Resv error received count"; 1211 } 1212 leaf resv-tear-sent { 1213 type yang:counter64; 1214 description 1215 "Resv tear sent count"; 1216 } 1217 leaf resv-tear-received { 1218 type yang:counter64; 1219 description 1220 "Resv tear received count"; 1221 } 1222 leaf summary-refresh-sent { 1223 type yang:counter64; 1224 description 1225 "Summary refresh sent count"; 1226 } 1227 leaf summary-refresh-received { 1228 type yang:counter64; 1229 description 1230 "Summary refresh received count"; 1231 } 1232 leaf unknown-messages-received { 1233 type yang:counter64; 1234 description 1235 "Unknown packet received count"; 1236 } 1237 } 1238 } 1239 grouping errors-statistics { 1240 description 1241 "Error statistics grouping"; 1242 container errors { 1243 description 1244 "Error statistics container"; 1245 leaf authenticate { 1246 type yang:counter64; 1247 description 1248 "The total number of packets received with an 1249 authentication failure."; 1250 } 1251 leaf checksum { 1252 type yang:counter64; 1253 description 1254 "The total number of packets received with an invalid 1255 checksum value."; 1256 } 1257 leaf packet-length { 1258 type yang:counter64; 1259 description 1260 "The total number of packets received with an invalid 1261 packet length."; 1262 } 1263 } 1264 } 1266 grouping statistics { 1267 description 1268 "RSVP statistic attributes."; 1269 container statistics { 1270 config false; 1271 description 1272 "RSVP statistics container"; 1273 uses message-statistics; 1274 uses packet-statistics; 1275 uses errors-statistics; 1276 } 1277 } 1279 grouping global-attributes { 1280 description 1281 "Top level grouping for RSVP global properties"; 1282 container sessions { 1283 description 1284 "RSVP sessions container"; 1285 list session-ip { 1286 key "destination protocol-id destination-port"; 1287 config false; 1288 description 1289 "List of RSVP sessions"; 1290 uses session-attributes; 1291 } 1292 } 1293 uses statistics; 1294 } 1296 grouping intf-attributes { 1297 description 1298 "Top level grouping for RSVP interface properties"; 1299 uses signaling-parameters; 1300 uses refresh-reduction; 1301 uses hellos; 1302 uses authentication; 1303 uses statistics; 1304 } 1306 augment "/rt:routing/rt:control-plane-protocols/" 1307 + "rt:control-plane-protocol" { 1308 when "rt:type = 'rsvp:rsvp'" { 1309 description 1310 "This augment is only valid when routing protocol 1311 instance type is RSVP."; 1312 } 1313 description 1314 "RSVP protocol augmentation"; 1315 container rsvp { 1316 presence "Enable RSVP feature"; 1317 description 1318 "RSVP feature container"; 1319 container globals { 1320 description 1321 "RSVP global properties."; 1322 uses global-attributes; 1323 uses graceful-restart; 1324 } 1325 container interfaces { 1326 description 1327 "RSVP interfaces container"; 1328 uses intf-attributes; 1329 list interface { 1330 key "interface"; 1331 description 1332 "RSVP interfaces."; 1333 leaf interface { 1334 type if:interface-ref; 1335 description 1336 "RSVP interface."; 1337 } 1338 uses intf-attributes; 1339 } 1340 } 1341 container neighbors { 1342 description 1343 "RSVP neighbors container"; 1344 list neighbor { 1345 key "address"; 1346 description 1347 "List of RSVP neighbors"; 1348 uses neighbor-attributes; 1349 } 1350 } 1351 } 1352 } 1354 grouping session-ref { 1355 description 1356 "Session reference information"; 1357 leaf destination { 1358 type leafref { 1359 path "/rt:routing/rt:control-plane-protocols" 1360 + "/rt:control-plane-protocol/rsvp:rsvp/rsvp:globals" 1361 + "/rsvp:sessions/rsvp:session-ip/destination"; 1362 } 1363 mandatory true; 1364 description 1365 "RSVP session"; 1366 } 1367 leaf protocol-id { 1368 type uint8; 1369 mandatory true; 1370 description 1371 "The RSVP session protocol ID"; 1372 } 1373 leaf destination-port { 1374 type inet:ip-address; 1375 mandatory true; 1376 description 1377 "The RSVP session destination port"; 1378 } 1379 } 1381 rpc clear-session { 1382 description 1383 "Clears RSVP sessions RPC"; 1384 input { 1385 leaf routing-protocol-instance-name { 1386 type leafref { 1387 path "/rt:routing/rt:control-plane-protocols/" 1388 + "rt:control-plane-protocol/rt:name"; 1389 } 1390 mandatory true; 1391 description 1392 "Name of the RSVP protocol instance whose session 1393 is being cleared. 1395 If the corresponding RSVP instance doesn't exist, 1396 then the operation will fail with an error-tag of 1397 'data-missing' and an error-app-tag of 1398 'routing-protocol-instance-not-found'."; 1399 } 1400 choice filter-type { 1401 mandatory true; 1402 description 1403 "Filter choice"; 1404 case match-all { 1405 leaf all { 1406 type empty; 1407 mandatory true; 1408 description 1409 "Match all RSVP sessions"; 1410 } 1411 } 1412 case match-one { 1413 container session-info { 1414 description 1415 "Specifies the specific session to invoke operation on"; 1416 choice session-type { 1417 mandatory true; 1418 description 1419 "RSVP session type"; 1420 case rsvp-session-ip { 1421 uses session-ref; 1422 } 1423 } 1424 } 1425 } 1426 } 1427 } 1428 } 1430 rpc clear-neighbor { 1431 description 1432 "RPC to clear the RSVP Hello session to a neighbor"; 1433 input { 1434 leaf routing-protocol-instance-name { 1435 type leafref { 1436 path "/rt:routing/rt:control-plane-protocols/" 1437 + "rt:control-plane-protocol/rt:name"; 1438 } 1439 mandatory true; 1440 description 1441 "Name of the RSVP protocol instance whose session 1442 is being cleared. 1444 If the corresponding RSVP instance doesn't exist, 1445 then the operation will fail with an error-tag of 1446 'data-missing' and an error-app-tag of 1447 'routing-protocol-instance-not-found'."; 1448 } 1449 choice filter-type { 1450 mandatory true; 1451 description 1452 "Filter choice"; 1453 case match-all { 1454 leaf all { 1455 type empty; 1456 mandatory true; 1457 description 1458 "Match all RSVP neighbor sessions"; 1459 } 1460 } 1461 case match-one { 1462 leaf neighbor-address { 1463 type leafref { 1464 path "/rt:routing/rt:control-plane-protocols" 1465 + "/rt:control-plane-protocol/rsvp:rsvp" 1466 + "/rsvp:neighbors/rsvp:neighbor/address"; 1467 } 1468 mandatory true; 1469 description 1470 "Match specific RSVP neighbor session"; 1471 } 1472 } 1473 } 1474 } 1475 } 1477 rpc clear-authentication { 1478 description 1479 "Clears RSVP Security Association (SA) before the 1480 lifetime expires."; 1481 input { 1482 leaf routing-protocol-instance-name { 1483 type leafref { 1484 path "/rt:routing/rt:control-plane-protocols/" 1485 + "rt:control-plane-protocol/rt:name"; 1486 } 1487 mandatory true; 1488 description 1489 "Name of the RSVP protocol instance whose session 1490 is being cleared. 1492 If the corresponding RSVP instance doesn't exist, 1493 then the operation will fail with an error-tag of 1494 'data-missing' and an error-app-tag of 1495 'routing-protocol-instance-not-found'."; 1496 } 1497 choice filter-type { 1498 mandatory true; 1499 description 1500 "Filter choice"; 1501 case match-all { 1502 leaf all { 1503 type empty; 1504 mandatory true; 1505 description 1506 "Match all RSVP security associations"; 1507 } 1508 } 1509 case match-one-interface { 1510 leaf interface { 1511 type if:interface-ref; 1512 description 1513 "Interface where RSVP security association(s) to be 1514 detected"; 1515 } 1516 } 1517 } 1518 } 1519 } 1520 } 1521 1523 2.5. RSVP Extended YANG Model 1525 The RSVP extended YANG model covers non-core RSVP feature(s). It 1526 also covers feature(s) that are not necessarily supported by all 1527 vendors, and hence, can be guarded with "if-feature" checks. 1529 2.5.1. Tree Diagram 1531 Figure 4 shows the YANG tree representation for configuration and 1532 state data that is augmenting the RSVP extended module: 1534 module: ietf-rsvp-extended 1535 augment /rt:routing/rt:control-plane-protocols 1536 /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals 1537 /rsvp:graceful-restart: 1538 +--rw restart-time? uint32 1539 +--rw recovery-time? uint32 1540 augment /rt:routing/rt:control-plane-protocols 1541 /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals 1542 /rsvp:statistics/rsvp:packets: 1543 +--ro discontinuity-time? yang:date-and-time 1544 +--ro out-dropped? yang:counter64 1545 +--ro in-dropped? yang:counter64 1546 +--ro out-errors? yang:counter64 1547 +--ro in-errors? yang:counter64 1548 augment /rt:routing/rt:control-plane-protocols 1549 /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals 1550 /rsvp:statistics/rsvp:messages: 1551 augment /rt:routing/rt:control-plane-protocols 1552 /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals 1553 /rsvp:statistics/rsvp:errors: 1554 augment /rt:routing/rt:control-plane-protocols 1555 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces: 1556 +--rw refresh-interval? uint32 1557 +--rw refresh-misses? uint32 1558 +--rw checksum? boolean 1559 +--rw patherr-state-removal? empty 1560 augment /rt:routing/rt:control-plane-protocols 1561 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 1562 /rsvp:refresh-reduction: 1563 +--rw bundle-message-max-size? uint32 1564 +--rw reliable-ack-hold-time? uint32 1565 +--rw reliable-ack-max-size? uint32 1566 +--rw reliable-retransmit-time? uint32 1567 +--rw reliable-srefresh? empty 1568 +--rw summary-max-size? uint32 1569 augment /rt:routing/rt:control-plane-protocols 1570 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 1571 /rsvp:hellos: 1572 +--rw interface-based? empty 1573 +--rw hello-interval? uint32 1574 +--rw hello-misses? uint32 1575 augment /rt:routing/rt:control-plane-protocols 1576 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 1577 /rsvp:authentication: 1578 +--rw lifetime? uint32 1579 +--rw window-size? uint32 1580 +--rw challenge? empty 1581 +--rw retransmits? uint32 1582 +--rw key-chain? key-chain:key-chain-ref 1583 augment /rt:routing/rt:control-plane-protocols 1584 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 1585 /rsvp:interface: 1586 +--rw refresh-interval? uint32 1587 +--rw refresh-misses? uint32 1588 +--rw checksum? boolean 1589 +--rw patherr-state-removal? empty 1590 augment /rt:routing/rt:control-plane-protocols 1591 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 1592 /rsvp:interface/rsvp:refresh-reduction: 1593 +--rw bundle-message-max-size? uint32 1594 +--rw reliable-ack-hold-time? uint32 1595 +--rw reliable-ack-max-size? uint32 1596 +--rw reliable-retransmit-time? uint32 1597 +--rw reliable-srefresh? empty 1598 +--rw summary-max-size? uint32 1599 augment /rt:routing/rt:control-plane-protocols 1600 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 1601 /rsvp:interface/rsvp:hellos: 1602 +--rw interface-based? empty 1603 +--rw hello-interval? uint32 1604 +--rw hello-misses? uint32 1605 augment /rt:routing/rt:control-plane-protocols 1606 /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces 1607 /rsvp:interface/rsvp:authentication: 1608 +--rw lifetime? uint32 1609 +--rw window-size? uint32 1610 +--rw challenge? empty 1611 +--rw retransmits? uint32 1612 +--rw key-chain? key-chain:key-chain-ref 1614 Figure 4: RSVP extended model tree diagram 1616 2.5.2. YANG Module 1618 The ietf-rsvp-extended module imports from the following modules: 1620 o ietf-rsvp defined in this document 1622 o ietf-routing defined in [RFC8349] 1624 o ietf-yang-types and ietf-inet-types defined in [RFC6991] 1626 o ietf-key-chain defined in [RFC8177] 1628 Figure 5 shows the RSVP extended YANG module: 1630 file "ietf-rsvp-extended@2019-07-04.yang" 1631 module ietf-rsvp-extended { 1632 yang-version 1.1; 1633 namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended"; 1634 prefix rsvp-ext; 1636 import ietf-rsvp { 1637 prefix rsvp; 1638 reference 1639 "RFCXXXX: A YANG Data Model for Resource Reservation Protocol 1640 (RSVP)"; 1641 } 1642 import ietf-routing { 1643 prefix rt; 1644 reference 1645 "RFC8349: A YANG Data Model for Routing Management 1646 (NMDA Version)"; 1647 } 1648 import ietf-yang-types { 1649 prefix yang; 1650 reference 1651 "RFC6991: Common YANG Data Types"; 1652 } 1653 import ietf-key-chain { 1654 prefix key-chain; 1655 reference 1656 "RFC8177: YANG Data Model for Key Chains"; 1657 } 1659 organization 1660 "IETF Traffic Engineering Architecture and Signaling (TEAS) 1661 Working Group"; 1662 contact 1663 "WG Web: 1664 WG List: 1666 Editor: Vishnu Pavan Beeram 1667 1669 Editor: Tarek Saad 1670 1672 Editor: Rakesh Gandhi 1673 1675 Editor: Xufeng Liu 1676 1678 Editor: Igor Bryskin 1679 "; 1680 description 1681 "This module contains the Extended RSVP YANG data model. 1682 The model fully conforms to the Network Management Datastore 1683 Architecture (NMDA). 1685 Copyright (c) 2019 IETF Trust and the persons 1686 identified as authors of the code. All rights reserved. 1688 Redistribution and use in source and binary forms, with or 1689 without modification, is permitted pursuant to, and subject 1690 to the license terms contained in, the Simplified BSD License 1691 set forth in Section 4.c of the IETF Trust's Legal Provisions 1692 Relating to IETF Documents 1693 (https://trustee.ietf.org/license-info). 1694 This version of this YANG module is part of RFC XXXX; see 1695 the RFC itself for full legal notices."; 1697 // RFC Ed.: replace XXXX with actual RFC number and remove this 1698 // note. 1699 // RFC Ed.: update the date below with the date of RFC publication 1700 // and remove this note. 1702 revision 2019-07-04 { 1703 description 1704 "A YANG Data Model for Extended Resource Reservation 1705 Protocol"; 1706 reference 1707 "RFCXXXX: A YANG Data Model for Resource Reservation Protocol 1708 (RSVP)"; 1709 } 1711 /* RSVP features */ 1712 feature authentication { 1713 description 1714 "Indicates support for RSVP authentication"; 1715 } 1717 feature error-statistics { 1718 description 1719 "Indicates support for error statistics"; 1720 } 1722 feature global-statistics { 1723 description 1724 "Indicates support for global statistics"; 1725 } 1727 feature graceful-restart { 1728 description 1729 "Indicates support for RSVP graceful restart"; 1730 } 1732 feature hellos { 1733 description 1734 "Indicates support for RSVP hellos (RFC3209)."; 1735 } 1737 feature notify { 1738 description 1739 "Indicates support for RSVP notify message (RFC3473)."; 1740 } 1742 feature refresh-reduction { 1743 description 1744 "Indicates support for RSVP refresh reduction (RFC2961)."; 1745 } 1747 feature refresh-reduction-extended { 1748 description 1749 "Indicates support for RSVP refresh reduction (RFC2961)."; 1750 } 1752 feature per-interface-statistics { 1753 description 1754 "Indicates support for per interface statistics"; 1755 } 1757 grouping graceful-restart-extended-config { 1758 description 1759 "Configuration parameters relating to RSVP 1760 Graceful-Restart"; 1761 leaf restart-time { 1762 type uint32; 1763 units "seconds"; 1764 description 1765 "Graceful restart time (seconds)."; 1766 reference 1767 "RFC 5495: Description of the Resource 1768 Reservation Protocol - Traffic-Engineered 1769 (RSVP-TE) Graceful Restart Procedures"; 1770 } 1771 leaf recovery-time { 1772 type uint32; 1773 units "seconds"; 1774 description 1775 "RSVP state recovery time"; 1776 } 1777 } 1779 grouping authentication-extended-config { 1780 description 1781 "Configuration parameters relating to RSVP 1782 authentication"; 1783 leaf lifetime { 1784 type uint32 { 1785 range "30..86400"; 1786 } 1787 units "seconds"; 1788 description 1789 "Life time for each security association"; 1790 reference 1791 "RFC 2747: RSVP Cryptographic 1792 Authentication"; 1793 } 1794 leaf window-size { 1795 type uint32 { 1796 range "1..64"; 1797 } 1798 description 1799 "Window-size to limit number of out-of-order 1800 messages."; 1801 reference 1802 "RFC 2747: RSVP Cryptographic 1803 Authentication"; 1804 } 1805 leaf challenge { 1806 type empty; 1807 description 1808 "Enable challenge messages."; 1809 reference 1810 "RFC 2747: RSVP Cryptographic 1811 Authentication"; 1812 } 1813 leaf retransmits { 1814 type uint32 { 1815 range "1..10000"; 1816 } 1817 description 1818 "Number of retransmits when messages are 1819 dropped."; 1820 reference 1821 "RFC 2747: RSVP Cryptographic 1822 Authentication"; 1823 } 1824 leaf key-chain { 1825 type key-chain:key-chain-ref; 1826 description 1827 "Key chain name to authenticate RSVP 1828 signaling messages."; 1829 reference 1830 "RFC 2747: RSVP Cryptographic Authentication"; 1831 } 1832 } 1834 grouping hellos-extended-config { 1835 description 1836 "Configuration parameters relating to RSVP 1837 hellos"; 1838 leaf interface-based { 1839 type empty; 1840 description 1841 "Enable interface-based Hello adjacency if present."; 1842 } 1843 leaf hello-interval { 1844 type uint32; 1845 units "milliseconds"; 1846 description 1847 "Configure interval between successive Hello 1848 messages in milliseconds."; 1849 reference 1850 "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels. 1851 RFC 5495: Description of the Resource 1852 Reservation Protocol - Traffic-Engineered 1853 (RSVP-TE) Graceful Restart Procedures"; 1854 } 1855 leaf hello-misses { 1856 type uint32 { 1857 range "1..10"; 1858 } 1859 description 1860 "Configure max number of consecutive missed 1861 Hello messages."; 1862 reference 1863 "RFC 3209: RSVP-TE: Extensions to RSVP for 1864 LSP Tunnels RFC 5495: Description of the 1865 Resource Reservation Protocol - Traffic- 1866 Engineered (RSVP-TE) Graceful Restart 1867 Procedures"; 1868 } 1869 } 1871 grouping signaling-parameters-extended-config { 1872 description 1873 "Configuration parameters relating to RSVP 1874 signaling"; 1875 leaf refresh-interval { 1876 type uint32; 1877 description 1878 "Set interval between successive refreshes"; 1879 } 1880 leaf refresh-misses { 1881 type uint32; 1882 description 1883 "Set max number of consecutive missed 1884 messages for state expiry"; 1885 } 1886 leaf checksum { 1887 type boolean; 1888 description 1889 "Enable RSVP message checksum computation"; 1890 } 1891 leaf patherr-state-removal { 1892 type empty; 1893 description 1894 "State-Removal flag in Path Error message 1895 if present."; 1896 } 1897 } 1899 grouping refresh-reduction-extended-config { 1900 description 1901 "Configuration parameters relating to RSVP 1902 refresh reduction"; 1903 leaf bundle-message-max-size { 1904 type uint32 { 1905 range "512..65000"; 1906 } 1907 description 1908 "Configure maximum size (bytes) of a 1909 single RSVP Bundle message."; 1910 } 1911 leaf reliable-ack-hold-time { 1912 type uint32; 1913 units "milliseconds"; 1914 description 1915 "Configure hold time in milliseconds for 1916 sending RSVP ACK message(s)."; 1917 } 1918 leaf reliable-ack-max-size { 1919 type uint32; 1920 description 1921 "Configure max size of a single RSVP ACK 1922 message."; 1923 } 1924 leaf reliable-retransmit-time { 1925 type uint32; 1926 units "milliseconds"; 1927 description 1928 "Configure min delay in milliseconds to 1929 wait for an ACK before a retransmit."; 1930 } 1931 leaf reliable-srefresh { 1932 type empty; 1933 description 1934 "Configure use of reliable messaging for 1935 summary refresh if present."; 1936 } 1937 leaf summary-max-size { 1938 type uint32 { 1939 range "20..65000"; 1940 } 1941 description 1942 "Configure max size (bytes) of a single 1943 RSVP summary refresh message."; 1944 } 1945 } 1947 grouping packets-extended-statistics { 1948 description 1949 "Packet statistics."; 1950 leaf discontinuity-time { 1951 type yang:date-and-time; 1952 description 1953 "The time on the most recent occasion at which any one 1954 or more of the statistic counters suffered a 1955 discontinuity. If no such discontinuities have occurred 1956 since the last re-initialization of the local 1957 management subsystem, then this node contains the time 1958 the local management subsystem re-initialized itself."; 1959 } 1960 leaf out-dropped { 1961 type yang:counter64; 1962 description 1963 "Out packet drop count"; 1964 } 1965 leaf in-dropped { 1966 type yang:counter64; 1967 description 1968 "In packet drop count"; 1969 } 1970 leaf out-errors { 1971 type yang:counter64; 1972 description 1973 "Out packet errors count"; 1974 } 1975 leaf in-errors { 1976 type yang:counter64; 1977 description 1978 "In packet rx errors count"; 1979 } 1980 } 1982 grouping messages-extended-statistics { 1983 description 1984 "RSVP protocol statistics."; 1985 } 1987 grouping errors-extended-statistics { 1988 description 1989 "Error statistics."; 1990 } 1992 /** 1993 * RSVP extensions augmentations 1994 */ 1995 /* RSVP globals graceful restart*/ 1997 augment "/rt:routing/rt:control-plane-protocols/" 1998 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 1999 + "rsvp:graceful-restart" { 2001 description 2002 "RSVP globals configuration extensions"; 2003 uses graceful-restart-extended-config; 2004 } 2006 /* RSVP statistics augmentation */ 2008 augment "/rt:routing/rt:control-plane-protocols/" 2009 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 2010 + "rsvp:statistics/rsvp:packets" { 2011 description 2012 "RSVP packet stats extensions"; 2013 uses packets-extended-statistics; 2014 } 2016 augment "/rt:routing/rt:control-plane-protocols/" 2017 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 2018 + "rsvp:statistics/rsvp:messages" { 2019 description 2020 "RSVP protocol message stats extensions"; 2021 uses messages-extended-statistics; 2022 } 2024 augment "/rt:routing/rt:control-plane-protocols/" 2025 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" 2026 + "rsvp:statistics/rsvp:errors" { 2027 description 2028 "RSVP errors stats extensions"; 2029 uses errors-extended-statistics; 2030 } 2032 /** 2033 * RSVP all interfaces extensions 2034 */ 2035 /* RSVP interface signaling extensions */ 2037 augment "/rt:routing/rt:control-plane-protocols/" 2038 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { 2039 description 2040 "RSVP signaling all interfaces configuration extensions"; 2041 uses signaling-parameters-extended-config; 2042 } 2044 /* RSVP refresh reduction extension */ 2046 augment "/rt:routing/rt:control-plane-protocols/" 2047 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2048 + "rsvp:refresh-reduction" { 2050 description 2051 "RSVP refresh-reduction all interface configuration 2052 extensions"; 2053 uses refresh-reduction-extended-config; 2054 } 2056 /* RSVP hellos extension */ 2058 augment "/rt:routing/rt:control-plane-protocols/" 2059 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2060 + "rsvp:hellos" { 2061 description 2062 "RSVP hello all interfaces configuration extensions"; 2063 uses hellos-extended-config; 2064 } 2066 /* RSVP authentication extension */ 2068 augment "/rt:routing/rt:control-plane-protocols/" 2069 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2070 + "rsvp:authentication" { 2071 description 2072 "RSVP authentication all interfaces configuration extensions"; 2073 uses authentication-extended-config; 2074 } 2076 /** 2077 * RSVP interface extensions 2078 */ 2079 /* RSVP interface signaling extensions */ 2081 augment "/rt:routing/rt:control-plane-protocols/" 2082 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2083 + "rsvp:interface" { 2084 description 2085 "RSVP signaling interface configuration extensions"; 2086 uses signaling-parameters-extended-config; 2087 } 2089 /* RSVP refresh reduction extension */ 2091 augment "/rt:routing/rt:control-plane-protocols/" 2092 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2093 + "rsvp:interface/rsvp:refresh-reduction" { 2094 description 2095 "RSVP refresh-reduction interface configuration extensions"; 2096 uses refresh-reduction-extended-config; 2097 } 2098 /* RSVP hellos extension */ 2100 augment "/rt:routing/rt:control-plane-protocols/" 2101 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2102 + "rsvp:interface/rsvp:hellos" { 2103 description 2104 "RSVP hello interface configuration extensions"; 2105 uses hellos-extended-config; 2106 } 2108 /* RSVP authentication extension */ 2110 augment "/rt:routing/rt:control-plane-protocols/" 2111 + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" 2112 + "rsvp:interface/rsvp:authentication" { 2113 description 2114 "RSVP authentication interface configuration extensions"; 2115 uses authentication-extended-config; 2116 } 2117 } 2118 2120 Figure 5: RSVP extended YANG module 2122 3. IANA Considerations 2124 This document registers the following URIs in the IETF XML registry 2125 [RFC3688]. Following the format in [RFC3688], the following 2126 registration is requested to be made. 2128 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp 2129 XML: N/A, the requested URI is an XML namespace. 2131 URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended 2132 XML: N/A, the requested URI is an XML namespace. 2134 This document registers two YANG modules in the YANG Module Names 2135 registry [RFC6020]. 2137 name: ietf-rsvp 2138 namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp 2139 prefix: ietf-rsvp 2140 reference: RFCXXXX 2142 name: ietf-rsvp-extended 2143 namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended 2144 prefix: ietf-rsvp-extendeed 2145 reference: RFCXXXX 2147 4. Security Considerations 2149 The YANG module specified in this document defines a schema for data 2150 that is designed to be accessed via network management protocols such 2151 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 2152 is the secure transport layer, and the mandatory-to-implement secure 2153 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 2154 is HTTPS, and the mandatory-to-implement secure transport is TLS 2155 [RFC8446]. 2157 The Network Configuration Access Control Model (NACM) [RFC8341] 2158 provides the means to restrict access for particular NETCONF or 2159 RESTCONF users to a preconfigured subset of all available NETCONF or 2160 RESTCONF protocol operations and content. 2162 There are a number of data nodes defined in the YANG module which are 2163 writable/creatable/deletable (i.e., config true, which is the 2164 default). These data nodes may be considered sensitive or vulnerable 2165 in some network environments. Write operations (e.g., ) 2166 to these data nodes without proper protection can have a negative 2167 effect on network operations. 2169 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 2170 rsvp: 2172 The presence of this container enables the RSVP protocol 2173 functionality on a device. It alsocontrols the configuration 2174 settings on data nodes pertaining to RSVP sessions, interfaces and 2175 neighbors. All of which are considered sensitive and if access to 2176 either of these is compromised, it can result in temporary network 2177 outages or be employed to mount DoS attacks. 2179 For RSVP authentication, the configuration supported is via the 2180 specification of key-chains [RFC8177] or the direct specification of 2181 key and authentication algorithm, and hence security considerations 2182 of [RFC8177] are inherited. This includes the considerations with 2183 respect to the local storage and handling of authentication keys. 2185 Some of the RPC operations defined in this YANG module may be 2186 considered sensitive or vulnerable in some network environments. It 2187 is thus important to control access to these operations. The RSVP 2188 YANG module support the "clear-session" and "clear-neighbor" RPCs. 2189 If access to either of these is compromised, they can result in 2190 temporary network outages be employed to mount DoS attacks. 2192 The security considerations spelled out in the YANG 1.1 specification 2193 [RFC7950] apply for this document as well. 2195 5. Acknowledgement 2197 The authors would like to thank Lou Berger for reviewing and 2198 providing valuable feedback on this document. 2200 6. Contributors 2202 Himanshu Shah 2203 Ciena 2205 Email: hshah@ciena.com 2207 Xia Chen 2208 Huawei Technologies 2210 Email: jescia.chenxia@huawei.com 2212 Raqib Jones 2213 Brocade 2215 Email: raqib@Brocade.com 2217 Bin Wen 2218 Comcast 2220 Email: Bin_Wen@cable.comcast.com 2222 7. References 2224 7.1. Normative References 2226 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2227 Requirement Levels", BCP 14, RFC 2119, 2228 DOI 10.17487/RFC2119, March 1997, 2229 . 2231 [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. 2232 Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 2233 Functional Specification", RFC 2205, DOI 10.17487/RFC2205, 2234 September 1997, . 2236 [RFC2747] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic 2237 Authentication", RFC 2747, DOI 10.17487/RFC2747, January 2238 2000, . 2240 [RFC2961] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F., 2241 and S. Molendini, "RSVP Refresh Overhead Reduction 2242 Extensions", RFC 2961, DOI 10.17487/RFC2961, April 2001, 2243 . 2245 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 2246 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 2247 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 2248 . 2250 [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label 2251 Switching (GMPLS) Signaling Resource ReserVation Protocol- 2252 Traffic Engineering (RSVP-TE) Extensions", RFC 3473, 2253 DOI 10.17487/RFC3473, January 2003, 2254 . 2256 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 2257 DOI 10.17487/RFC3688, January 2004, 2258 . 2260 [RFC5063] Satyanarayana, A., Ed. and R. Rahman, Ed., "Extensions to 2261 GMPLS Resource Reservation Protocol (RSVP) Graceful 2262 Restart", RFC 5063, DOI 10.17487/RFC5063, October 2007, 2263 . 2265 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 2266 the Network Configuration Protocol (NETCONF)", RFC 6020, 2267 DOI 10.17487/RFC6020, October 2010, 2268 . 2270 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2271 and A. Bierman, Ed., "Network Configuration Protocol 2272 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2273 . 2275 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 2276 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 2277 . 2279 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 2280 RFC 6991, DOI 10.17487/RFC6991, July 2013, 2281 . 2283 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 2284 RFC 7950, DOI 10.17487/RFC7950, August 2016, 2285 . 2287 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 2288 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 2289 . 2291 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2292 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2293 May 2017, . 2295 [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. 2296 Zhang, "YANG Data Model for Key Chains", RFC 8177, 2297 DOI 10.17487/RFC8177, June 2017, 2298 . 2300 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 2301 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 2302 . 2304 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 2305 Access Control Model", STD 91, RFC 8341, 2306 DOI 10.17487/RFC8341, March 2018, 2307 . 2309 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface 2310 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, 2311 . 2313 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 2314 Routing Management (NMDA Version)", RFC 8349, 2315 DOI 10.17487/RFC8349, March 2018, 2316 . 2318 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 2319 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 2320 . 2322 [RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, 2323 E., and A. Tripathy, "Subscription to YANG Notifications", 2324 RFC 8639, DOI 10.17487/RFC8639, September 2019, 2325 . 2327 [RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications 2328 for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641, 2329 September 2019, . 2331 7.2. Informative References 2333 [I-D.ietf-teas-yang-rsvp-te] 2334 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 2335 and H. Shah, "A YANG Data Model for RSVP-TE Protocol", 2336 draft-ietf-teas-yang-rsvp-te-08 (work in progress), March 2337 2020. 2339 Authors' Addresses 2341 Vishnu Pavan Beeram 2342 Juniper Networks 2344 Email: vbeeram@juniper.net 2346 Tarek Saad 2347 Juniper Networks 2349 Email: tsaad@juniper.net 2351 Rakesh Gandhi 2352 Cisco Systems, Inc. 2354 Email: rgandhi@cisco.com 2356 Xufeng Liu 2357 Volta Networks 2359 Email: xufeng.liu.ietf@gmail.com 2361 Igor Bryskin 2362 Individual 2364 Email: i_bryskin@yahoo.com