draft-ietf-teas-yang-rsvp-13.txt   draft-ietf-teas-yang-rsvp-14.txt 
TEAS Working Group V. Beeram TEAS Working Group V. Beeram
Internet-Draft T. Saad Internet-Draft T. Saad
Intended status: Standards Track Juniper Networks Intended status: Standards Track Juniper Networks
Expires: January 14, 2021 R. Gandhi Expires: January 28, 2021 R. Gandhi
Cisco Systems, Inc. Cisco Systems, Inc.
X. Liu X. Liu
Volta Networks Volta Networks
I. Bryskin I. Bryskin
Individual Individual
July 13, 2020 July 27, 2020
A YANG Data Model for Resource Reservation Protocol (RSVP) A YANG Data Model for Resource Reservation Protocol (RSVP)
draft-ietf-teas-yang-rsvp-13 draft-ietf-teas-yang-rsvp-14
Abstract Abstract
This document defines a YANG data model for the configuration and This document defines a YANG data model for the configuration and
management of RSVP Protocol. The model covers the building blocks of management of RSVP Protocol. The model covers the building blocks of
the RSVP protocol that can be augmented and used by other RSVP the RSVP protocol that can be augmented and used by other RSVP
extension models such as RSVP extensions to Traffic-Engineering extension models such as RSVP extensions to Traffic-Engineering
(RSVP-TE). The model covers the configuration, operational state, (RSVP-TE). The model is divided into base and extended modules that
remote procedure calls, and event notifications data. cover data for configuration, operational state, remote procedure
calls, and event notifications.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 14, 2021. This Internet-Draft will expire on January 28, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
1.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 3 2.1. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3
1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 2.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 4
2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 3 3. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 4 3.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 4
2.2. Design Considerations . . . . . . . . . . . . . . . . . . 4 3.2. Design Considerations . . . . . . . . . . . . . . . . . . 5
2.3. Model Notifications . . . . . . . . . . . . . . . . . . . 5 3.3. Model Notifications . . . . . . . . . . . . . . . . . . . 6
2.4. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 5 4. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . . . 6
2.4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 7 4.1. Module Structure . . . . . . . . . . . . . . . . . . . . 6
2.4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 12 4.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 8
2.5. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 33 4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 33 5. RSVP Extended YANG Model . . . . . . . . . . . . . . . . . . 34
2.5.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 35 5.1. Module Structure . . . . . . . . . . . . . . . . . . . . 34
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45 5.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 34
4. Security Considerations . . . . . . . . . . . . . . . . . . . 46 5.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 36
5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 47 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 47 7. Security Considerations . . . . . . . . . . . . . . . . . . . 45
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 47 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 46
7.1. Normative References . . . . . . . . . . . . . . . . . . 47 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 46
7.2. Informative References . . . . . . . . . . . . . . . . . 50 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 47
10.1. Normative References . . . . . . . . . . . . . . . . . . 47
10.2. Informative References . . . . . . . . . . . . . . . . . 49
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50
1. Introduction 1. Introduction
YANG [RFC6020] is a data definition language that was introduced to YANG [RFC6020] and [RFC7950] is a data modeling language that was
define the contents of a conceptual data store that allows networked introduced to define the contents of a conceptual data store that
devices to be managed using NETCONF [RFC6241]. YANG is proving allows networked devices to be managed using NETCONF [RFC6241]. YANG
relevant beyond its initial confines, as bindings to other interfaces has proved relevant beyond its initial confines, as bindings to other
(e.g. ReST) and encoding other than XML (e.g. JSON) are being interfaces (e.g. RESTCONF [RFC8040]) and encoding other than XML
defined. Furthermore, YANG data models can be used as the basis of (e.g. JSON) are being defined. Furthermore, YANG data models can be
implementation for other interfaces, such as CLI and programmatic used as the basis of implementation for other interfaces, such as CLI
APIs. and programmatic APIs.
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage the RSVP protocol [RFC2205]. This model covers RSVP and manage the RSVP protocol [RFC2205]. The model is separated into
protocol building blocks that can be augmented and used by other RSVP two modules: a base and RSVP extended YANG modules. The RSVP base
extension models- such as for signaling RSVP-TE MPLS (or other YANG module models the data that is core to the function of the RSVP
technology specific) Label Switched Paths (LSP)s. protocol and MUST be supported by vendors that support RSVP protocol
[RFC2205]. The RSVP extended module models data that is either
optional or provides ability to tune basic RSVP protocol
functionality. The support for RSVP extended
features by all vendors is considered optional.
1.1. Terminology The RSVP YANG model provides the building blocks needed to allow
augmentation by other models that extend the RSVP protocol- such as
using RSVP extensions to signal Label Switched Paths (LSPs) as
defined in [RFC3209].
The YANG module(s) defined in this document are compatible with the
Network Management Datastore Architecture (NMDA) [RFC7950].
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
The terminology for describing YANG data models is found in The terminology for describing YANG data models is found in
[RFC7950]. [RFC7950].
1.2. Model Tree Diagram 2.1. Prefixes in Data Node Names
A full tree diagram of the module(s) defined in this document is
given in subsequent sections as per the syntax defined in [RFC8340].
1.3. Prefixes in Data Node Names
In this document, names of data nodes and other data model objects In this document, names of data nodes and other data model objects
are prefixed using the standard prefix associated with the are prefixed using the standard prefix associated with the
corresponding YANG imported modules, as shown in Table 1. corresponding YANG imported modules, as shown in Table 1.
+-----------+--------------------+-----------+ +-----------+--------------------+-----------+
| Prefix | YANG module | Reference | | Prefix | YANG module | Reference |
+-----------+--------------------+-----------+ +-----------+--------------------+-----------+
| yang | ietf-yang-types | [RFC6991] | | yang | ietf-yang-types | [RFC6991] |
| inet | ietf-inet-types | [RFC6991] | | | | |
| rt-type | ietf-routing-types | XX | | inet | ietf-inet-types | [RFC6991] |
| key-chain | ietf-key-chain | XX | | | | |
+---------+----------------------+-----------+ | rt-types | ietf-routing-types | [RFC8294] |
| | | |
| key-chain | ietf-key-chain | [RFC8177] |
+-----------+--------------------+-----------+
Table 1: Prefixes and corresponding YANG modules Table 1: Prefixes and corresponding YANG modules
2. Model Overview 2.2. Model Tree Diagram
A full tree diagram of the module(s) defined in this document is
given in subsequent sections as per the syntax defined in [RFC8340].
3. Model Overview
The RSVP base YANG module augments the "control-plane-protocol" list The RSVP base YANG module augments the "control-plane-protocol" list
in ietf-routing [RFC8349] module with specific RSVP parameters in an in ietf-routing [RFC8349] module with specific RSVP parameters in an
"rsvp" container. It also defines an extension identity "rsvp" of "rsvp" container. It also defines an extension identity "rsvp" of
base "rt:routing-protocol" to identify the RSVP protocol. base "rt:routing-protocol" to identify the RSVP protocol.
The augmentation of the RSVP model by other models (e.g. RSVP-TE for The augmentation of the RSVP model by other models (e.g. YANG models
MPLS or other technologies) are outside the scope of this document that support RSVP Traffic Engineering (TE) extensions for signaling
Label Switched Paths (LSPs)) are outside the scope of this document
and are discussed in separate document(s), e.g. and are discussed in separate document(s), e.g.
[I-D.ietf-teas-yang-rsvp-te]. [I-D.ietf-teas-yang-rsvp-te].
2.1. Module(s) Relationship 3.1. Module(s) Relationship
This document divides the RSVP model into two modules: base and This document divides the RSVP model into two modules: base and RSVP
extended RSVP modules. Some RSVP features are categorized as core to extended modules. Some RSVP data are categorized as core to the
the function of the protocol and are supported by most vendors function of the protocol and MUST be supported by vendors claiming
claiming the support for RSVP protocol. Such features configuration the support for RSVP protocol [RFC2205]. Such configuration and
and state are grouped in the RSVP base module. state data are grouped in the RSVP base module.
Other extended RSVP features are categorized as either optional or Other RSVP extended features are categorized as either optional or
providing ability to better tune the basic functionality of the RSVP providing ability to better tune the basic functionality of the RSVP
protocol. The support for extended RSVP features by all vendors is protocol. The support for RSVP extended features by all vendors is
considered optional. Such features are grouped in a separate RSVP considered optional. Such features are grouped in a separate RSVP
extended module. extended module.
The relationship between the base and extended RSVP YANG model and The relationship between the base and RSVP extended YANG modules and
the IETF routing YANG model is shown in Figure 1. the IETF routing YANG model is shown in Figure 1.
+--------------+ +--------------+
Routing | ietf-routing | Routing | ietf-routing |
+--------------+ +--------------+
o o
| |
+-----------+ +-----------+
RSVP module | ietf-rsvp | RSVP module | ietf-rsvp |
+-----------+ +-----------+
o o
| o: augment relationship | o: augment relationship
RSVP extended | RSVP extended |
module +--------------------+ module +--------------------+
| ietf-rsvp-extended | | ietf-rsvp-extended |
+--------------------+ +--------------------+
Figure 1: Relationship of RSVP and RSVP extended modules with other Figure 1: Relationship of RSVP and RSVP extended modules with other
protocol modules protocol modules
2.2. Design Considerations 3.2. Design Considerations
The RSVP base model does not aim to be feature complete. The primary The RSVP base model does not aim to be feature complete. The primary
intent is to cover a set of standard core features that are commonly intent is to cover a set of standard core features that are commonly
in use. For example: in use. For example:
o Authentication ([RFC2747]) o Authentication ([RFC2747])
o Refresh Reduction ([RFC2961]) o Refresh Reduction ([RFC2961])
o Hellos ([RFC3209]) o Hellos ([RFC3209])
o Graceful Restart ([RFC3473], [RFC5063]) o Graceful Restart ([RFC3473], [RFC5063])
The extended RSVP YANG model covers the configuration for optional
The RSVP extended YANG module covers the configuration for optional
features that are not must for basic RSVP protocol operation. features that are not must for basic RSVP protocol operation.
The defined data model supports configuration inheritance for The defined data model supports configuration inheritance for
neighbors, and interfaces. Data elements defined in the main neighbors, and interfaces. Data nodes defined under the main
container (e.g. the container that encompasses the list of container (e.g. the container that encompasses the list of
interfaces, or neighbors) are assumed to apply equally to all interfaces, or neighbors) are assumed to apply equally to all
elements of the list, unless overridden explicitly for a certain elements of the list, unless overridden explicitly for a certain
element (e.g. interface). Vendors are expected to augment the above element (e.g. interface). Vendors are expected to augment the above
container(s) to provide the list of inheritance command for their container(s) to provide the list of inheritance command for their
implementations. implementations.
2.3. Model Notifications 3.3. Model Notifications
Notifications data modeling is key in any defined data model. Notifications data modeling is key in any defined data model.
[RFC8639] and [RFC8641] define a subscription and push mechanism for [RFC8639] and [RFC8641] define a subscription and push mechanism for
YANG datastores. This mechanism currently allows the user to: YANG datastores. This mechanism currently allows the user to:
o Subscribe notifications on a per client basis o Subscribe notifications on a per client basis
o Specify subtree filters or xpath filters so that only interested o Specify subtree filters or xpath filters so that only interested
contents will be sent. contents will be sent.
o Specify either periodic or on-demand notifications. o Specify either periodic or on-demand notifications.
2.4. RSVP Base YANG Model 4. RSVP Base YANG Model
The RSVP base module defines the main building blocks for modeling
the RSVP protocol and augments the IETF routing module.
4.1. Module Structure
The RSVP base YANG data model defines the container "rsvp" as the top The RSVP base YANG data model defines the container "rsvp" as the top
level container in this data model. The presence of this container level container in this data model. The presence of this container
enables the RSVP protocol functionality. enables the RSVP protocol functionality.
The derived state data is contained in "read-only" nodes directly The derived state data is contained in "read-only" nodes directly
under the intended object as shown in Figure 2. under the intended object as shown in Figure 2.
module: ietf-rsvp module: ietf-rsvp
+--rw rsvp! +--rw rsvp!
+--rw globals +--rw globals
. .
. .
+--rw interfaces +--rw interfaces
. .
+-- ro <<derived state associated with interfaces>> +-- ro <<derived state associated with interfaces>>
. .
. .
+--rw neighbors +--rw neighbors
. .
+-- ro <<derived state associated with the tunnel>> +-- ro <<derived state associated with the LSP Tunnel>>
. .
. .
+--rw sessions +--rw sessions
. .
+-- ro <<derived state associated with the tunnel>> +-- ro <<derived state associated with the LSP Tunnel>>
. .
rpcs: rpcs:
+--x clear-session +--x clear-session
+--x clear-neighbor +--x clear-neighbor
+--x clear-authentication
Figure 2: RSVP high-level tree model view Figure 2: RSVP high-level tree model view
Configuration and state data are grouped to those applicable on per Configuration and state data are grouped to those applicable on per
node (global), per interface, per neighbor, or per session. node (global), per interface, per neighbor, or per session.
Global Data: 'globals':
The global data cover the configuration and state that is The globals container includes configuration and state data that
applicable the RSVP protocol behavior. is applicable globally and affects the RSVP protocol behavior.
Interface Data: 'interfaces':
The interface data configuration and state model relevant The 'interfaces' container includes a list of RSVP enabled
attributes applicable to one or all RSVP interfaces. Any data or interfaces. It also includes configuration and state data that
state at the "interfaces" container level is equally applicable to are applicable to all interfaces. An entry in the interfaces list
all interfaces - unless overridden by explicit configuration or MAY carry its own configuration or state data. Any data or state
state under a specific interface. under the "interfaces" container level is equally applicable to
all interfaces unless it is explicitly overridden by configuration
or state under a specific interface.
Neighbor Data: 'neighbors' :
The neighbor data cover configuration and state relevant to RSVP The 'neighbors' container includes a list of RSVP neighbors. An
neighbors. Neighbors can be dynamically discovered using RSVP entry in the RSVP neighbor list MAY carry its own configuration
signaling or explicitly configured. and state relevant to the specific RSVP neighbor. RSVP neighbors
can be dynamically discovered using RSVP signaling or explicitly
configured.
Session Data: 'sessions':
The sessions data branch covers configuration and state relevant The 'sessions' container includes a list RSVP sessions. An entry
to RSVP sessions. This is usually derived state that is result of in the RSVP session list MAY carry its own configuration and state
signaling. This model defines attributes related to IP RSVP relevant to a specific RSVP session. RSVP sessions are usually
sessions as defined in [RFC2205]. derived state that are created as result of signaling. This model
defines attributes related to IP RSVP sessions as defined in
[RFC2205].
2.4.1. Tree Diagram 4.2. Tree Diagram
Figure 3 shows the YANG tree representation for configuration and Figure 3 shows the YANG tree representation for configuration and
state data that is augmenting the RSVP basic module: state data that is augmenting the RSVP base module:
module: ietf-rsvp module: ietf-rsvp
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol: /rt:control-plane-protocol:
+--rw rsvp! +--rw rsvp!
+--rw globals +--rw globals
| +--rw sessions | +--rw sessions
| | +--ro session-ip* | | +--ro session-ip*
| | [destination protocol-id destination-port] | | [destination protocol-id destination-port]
| | +--ro destination-port inet:port-number | | +--ro destination-port inet:port-number
skipping to change at page 12, line 21 skipping to change at page 13, line 29
+---w input +---w input
+---w routing-protocol-instance-name leafref +---w routing-protocol-instance-name leafref
+---w (filter-type) +---w (filter-type)
+--:(match-all) +--:(match-all)
| +---w all empty | +---w all empty
+--:(match-one-interface) +--:(match-one-interface)
+---w interface? if:interface-ref +---w interface? if:interface-ref
Figure 3: RSVP model tree diagram Figure 3: RSVP model tree diagram
2.4.2. YANG Module 4.3. YANG Module
The ietf-rsvp module imports from the following modules: The ietf-rsvp module imports from the following modules:
o ietf-interfaces defined in [RFC8343] o ietf-interfaces defined in [RFC8343]
o ietf-yang-types and ietf-inet-types defined in [RFC6991] o ietf-yang-types and ietf-inet-types defined in [RFC6991]
o ietf-routing defined in [RFC8349] o ietf-routing defined in [RFC8349]
o ietf-key-chain defined in [RFC8177] o ietf-key-chain defined in [RFC8177]
<CODE BEGINS> file "ietf-rsvp@2020-01-13.yang" This module references the following documents: [RFC2205], [RFC2747],
and [RFC2961].
<CODE BEGINS> file "ietf-rsvp@2020-07-24.yang"
module ietf-rsvp { module ietf-rsvp {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp";
/* Replace with IANA when assigned */ /* Replace with IANA when assigned */
prefix rsvp; prefix rsvp;
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
reference reference
"RFC8343: A YANG Data Model for Interface Management"; "RFC8343: A YANG Data Model for Interface Management";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference reference
"RFC6991: Common YANG Data Types"; "RFC6991: Common YANG Data Types";
} }
skipping to change at page 13, line 20 skipping to change at page 14, line 30
prefix rt; prefix rt;
reference reference
"RFC8349: A YANG Data Model for Routing Management "RFC8349: A YANG Data Model for Routing Management
(NMDA Version)"; (NMDA Version)";
} }
import ietf-key-chain { import ietf-key-chain {
prefix key-chain; prefix key-chain;
reference reference
"RFC8177: YANG Data Model for Key Chains"; "RFC8177: YANG Data Model for Key Chains";
} }
import ietf-netconf-acm {
prefix nacm;
reference
"RFC8341: Network Configuration Access Control Model";
}
organization organization
"IETF Traffic Engineering Architecture and Signaling (TEAS) "IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group"; Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/teas/> "WG Web: <http://tools.ietf.org/wg/teas/>
WG List: <mailto:teas@ietf.org> WG List: <mailto:teas@ietf.org>
Editor: Vishnu Pavan Beeram Editor: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net> <mailto:vbeeram@juniper.net>
skipping to change at page 14, line 16 skipping to change at page 15, line 30
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note. // note.
// RFC Ed.: update the date below with the date of RFC publication // RFC Ed.: update the date below with the date of RFC publication
// and remove this note. // and remove this note.
revision 2020-01-13 { revision 2020-07-24 {
description description
"A YANG Data Model for Resource Reservation Protocol"; "Initial version.";
reference reference
"RFCXXXX: A YANG Data Model for Resource Reservation Protocol "RFCXXXX: A YANG Data Model for Resource Reservation Protocol
(RSVP)"; (RSVP)";
} }
identity rsvp { identity rsvp {
base rt:routing-protocol; base rt:routing-protocol;
description description
"RSVP protocol"; "RSVP protocol";
} }
skipping to change at page 14, line 43 skipping to change at page 16, line 9
} }
identity rsvp-session-ip { identity rsvp-session-ip {
base rsvp-session-type; base rsvp-session-type;
description description
"RSVP IP session type"; "RSVP IP session type";
} }
identity reservation-style { identity reservation-style {
description description
"Base identity for reservation style"; "Base identity for reservation style.";
} }
identity reservation-wildcard-filter { identity reservation-wildcard-filter {
base reservation-style; base reservation-style;
description description
"Wildcard-Filter (WF) Style"; "Wildcard-Filter (WF) Style.";
reference reference
"RFC2205"; "RFC2205";
} }
identity reservation-fixed-filter { identity reservation-fixed-filter {
base reservation-style; base reservation-style;
description description
"Fixed-Filter (FF) Style"; "Fixed-Filter (FF) Style.";
reference reference
"RFC2205"; "RFC2205";
} }
identity reservation-shared-explicit { identity reservation-shared-explicit {
base reservation-style; base reservation-style;
description description
"Shared Explicit (SE) Style"; "Shared Explicit (SE) Style.";
reference reference
"RFC2205"; "RFC2205";
} }
grouping graceful-restart-config { grouping graceful-restart-config {
description description
"Base configuration parameters relating to RSVP "Base configuration parameters relating to RSVP
Graceful-Restart"; Graceful-Restart.";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if RSVP Graceful Restart is enabled. "'true' if RSVP Graceful Restart is enabled.
'false' if RSVP Graceful Restart is disabled."; 'false' if RSVP Graceful Restart is disabled.";
} }
} }
grouping graceful-restart { grouping graceful-restart {
description description
"RSVP graceful restart parameters grouping"; "RSVP graceful restart parameters grouping.";
container graceful-restart { container graceful-restart {
description description
"RSVP graceful restart parameters container"; "RSVP graceful restart parameters container.";
uses graceful-restart-config; uses graceful-restart-config;
} }
} }
grouping refresh-reduction-config { grouping refresh-reduction-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters related to RSVP refresh reduction.";
refresh reduction";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if RSVP Refresh Reduction is enabled. "'true' if RSVP Refresh Reduction is enabled.
'false' if RSVP Refresh Reduction is disabled."; 'false' if RSVP Refresh Reduction is disabled.";
} }
} }
grouping refresh-reduction { grouping refresh-reduction {
description description
"Top level grouping for RSVP refresh reduction "Top level grouping for RSVP refresh reduction parameters.";
parameters";
container refresh-reduction { container refresh-reduction {
description description
"Top level container for RSVP refresh reduction "Top level container for RSVP refresh reduction parameters.";
parameters";
uses refresh-reduction-config; uses refresh-reduction-config;
} }
} }
grouping authentication-config { grouping authentication-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP authentication";
authentication";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if RSVP Authentication is enabled. "'true' if RSVP Authentication is enabled.
'false' if RSVP Authentication is disabled."; 'false' if RSVP Authentication is disabled.";
} }
leaf authentication-key { leaf authentication-key {
type string; type string;
description description
"An authentication key string"; "An authentication key string.";
reference reference
"RFC 2747: RSVP Cryptographic Authentication"; "RFC2747: RSVP Cryptographic Authentication";
} }
leaf crypto-algorithm { leaf crypto-algorithm {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
mandatory true; mandatory true;
description description
"Cryptographic algorithm associated with key."; "Cryptographic algorithm associated with key.";
} }
} }
grouping authentication { grouping authentication {
description description
"Top level grouping for RSVP authentication parameters"; "Top level grouping for RSVP authentication parameters.";
container authentication { container authentication {
description description
"Top level container for RSVP authentication "Top level container for RSVP authentication parameters.";
parameters";
uses authentication-config; uses authentication-config;
} }
} }
grouping hellos-config { grouping hellos-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP hellos.";
hellos";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if RSVP Hello is enabled. "'true' if RSVP Hello is enabled.
'false' if RSVP Hello is disabled."; 'false' if RSVP Hello is disabled.";
} }
} }
grouping hellos { grouping hellos {
description description
"Top level grouping for RSVP hellos parameters"; "Top level grouping for RSVP hellos parameters.";
container hellos { container hellos {
description description
"Top level container for RSVP hello parameters"; "Top level container for RSVP hello parameters.";
uses hellos-config; uses hellos-config;
} }
} }
grouping signaling-parameters-config { grouping signaling-parameters-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP signaling.";
signaling";
} }
grouping signaling-parameters { grouping signaling-parameters {
description description
"Top level grouping for RSVP signaling parameters"; "Top level grouping for RSVP signaling parameters.";
uses signaling-parameters-config; uses signaling-parameters-config;
} }
grouping session-attributes { grouping session-attributes {
description description
"Top level grouping for RSVP session properties"; "Top level grouping for RSVP session properties.";
leaf destination-port { leaf destination-port {
type inet:port-number; type inet:port-number;
description description
"RSVP destination port"; "RSVP destination port.";
reference reference
"RFC2205"; "RFC2205";
} }
leaf protocol-id { leaf protocol-id {
type uint8; type uint8;
description description
"The IP protocol ID."; "The IP protocol ID.";
reference reference
"RFC2205, section 3.2"; "RFC2205, section 3.2";
} }
leaf source { leaf source {
type inet:ip-address; type inet:ip-address;
description description
"RSVP source address"; "RSVP source address.";
reference reference
"RFC2205"; "RFC2205";
} }
leaf destination { leaf destination {
type inet:ip-address; type inet:ip-address;
description description
"RSVP destination address"; "RSVP destination address.";
reference reference
"RFC2205"; "RFC2205";
} }
leaf session-name { leaf session-name {
type string; type string;
description description
"The signaled name of this RSVP session."; "The signaled name of this RSVP session.";
} }
leaf session-status { leaf session-status {
type enumeration { type enumeration {
enum up { enum up {
description description
"RSVP session is up"; "RSVP session is up.";
} }
enum down { enum down {
description description
"RSVP session is down"; "RSVP session is down.";
} }
} }
description description
"Enumeration of RSVP session states"; "Enumeration of RSVP session states.";
} }
leaf session-type { leaf session-type {
type identityref { type identityref {
base rsvp-session-type; base rsvp-session-type;
} }
description description
"RSVP session type"; "RSVP session type.";
} }
container psbs { container psbs {
description description
"Path State Block container"; "Path State Block (PSB) container.";
list psb { list psb {
description description
"List of path state blocks"; "List of Path State Blocks.";
leaf source-port { leaf source-port {
type inet:port-number; type inet:port-number;
description description
"RSVP source port"; "RSVP source port.";
reference reference
"RFC2205"; "RFC2205";
} }
leaf expires-in { leaf expires-in {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Time to reservation expiry (in seconds)"; "Time to expiry (in seconds).";
} }
} }
} }
container rsbs { container rsbs {
description description
"Reservation State Block container"; "Reservation State Block (RSB) container.";
list rsb { list rsb {
description description
"List of reservation state blocks"; "List of Reservation State Blocks.";
leaf source-port { leaf source-port {
type inet:port-number; type inet:port-number;
description description
"RSVP source port"; "RSVP source port.";
reference reference
"RFC2205"; "RFC2205";
} }
leaf reservation-style { leaf reservation-style {
type identityref { type identityref {
base reservation-style; base reservation-style;
} }
description description
"RSVP reservation style"; "RSVP reservation style.";
} }
leaf expires-in { leaf expires-in {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Time to reservation expiry (in seconds)"; "Time to expiry (in seconds).";
} }
} }
} }
} }
grouping neighbor-attributes { grouping neighbor-attributes {
description description
"Top level grouping for RSVP neighbor properties"; "Top level grouping for RSVP neighbor properties.";
leaf address { leaf address {
type inet:ip-address; type inet:ip-address;
description description
"Address of RSVP neighbor"; "Address of the RSVP neighbor.";
} }
leaf epoch { leaf epoch {
type uint32; type uint32;
description description
"Neighbor epoch."; "Neighbor epoch.";
} }
leaf expiry-time { leaf expiry-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Neighbor expiry time after which the neighbor state "Neighbor expiry time after which the neighbor state is
is purged if no states associated with it"; purged if no states associated with it.";
} }
container graceful-restart { container graceful-restart {
description description
"Graceful restart information."; "Graceful restart information.";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if graceful restart is enabled for the neighbor."; "'true' if graceful restart is enabled for the neighbor.";
} }
leaf local-restart-time { leaf local-restart-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Local node restart time"; "Local node restart time.";
} }
leaf local-recovery-time { leaf local-recovery-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Local node recover time"; "Local node recover time.";
} }
leaf neighbor-restart-time { leaf neighbor-restart-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Neighbor restart time"; "Neighbor restart time.";
} }
leaf neighbor-recovery-time { leaf neighbor-recovery-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Neighbor recover time"; "Neighbor recovery time.";
} }
container helper-mode { container helper-mode {
description description
"Helper mode information "; "Helper mode information.";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if helper mode is enabled."; "'true' if helper mode is enabled.";
} }
leaf max-helper-restart-time { leaf max-helper-restart-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"The time the router or switch waits after it "The time the router or switch waits after it discovers
discovers that a neighboring router has gone down that a neighboring router has gone down before it
before it declares the neighbor down"; declares the neighbor down.";
} }
leaf max-helper-recovery-time { leaf max-helper-recovery-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"The amount of time the router retains the state of its "The amount of time the router retains the state of its
RSVP neighbors while they undergo a graceful restart"; RSVP neighbors while they undergo a graceful restart.";
} }
leaf neighbor-restart-time-remaining { leaf neighbor-restart-time-remaining {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Number of seconds remaining for neighbor to send "Number of seconds remaining for neighbor to send Hello
Hello message after restart."; message after restart.";
} }
leaf neighbor-recovery-time-remaining { leaf neighbor-recovery-time-remaining {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Number of seconds remaining for neighbor to "Number of seconds remaining for neighbor to refresh.";
refresh.";
} }
} }
// helper-mode // helper-mode
} }
// graceful-restart // graceful-restart
leaf hello-status { leaf hello-status {
type enumeration { type enumeration {
enum enabled { enum enabled {
description description
"Enabled"; "RSVP Hellos enabled.";
} }
enum disabled { enum disabled {
description description
"Disabled"; "RSVP Hellos disabled.";
} }
enum restarting { enum restarting {
description description
"Restarting"; "RSVP restarting.";
} }
} }
description description
"Hello status"; "RSVP Hello status.";
} }
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"Interface where RSVP neighbor was detected"; "Interface where RSVP neighbor was detected.";
} }
leaf neighbor-status { leaf neighbor-status {
type enumeration { type enumeration {
enum up { enum up {
description description
"up"; "Neighbor state up.";
} }
enum down { enum down {
description description
"down"; "Neighbor state down.";
} }
enum hello-disable { enum hello-disable {
description description
"hello-disable"; "RSVP Hellos disabled.";
} }
enum restarting { enum restarting {
description description
"restarting"; "RSVP neighbor restarting.";
} }
} }
description description
"Neighbor state"; "RSVP neighbor state.";
} }
leaf refresh-reduction-capable { leaf refresh-reduction-capable {
type boolean; type boolean;
description description
"enables all RSVP refresh reduction message "Enables all RSVP refresh reduction message bundling, RSVP
bundling, RSVP message ID, reliable message delivery message ID, reliable message delivery and summary refresh.";
and summary refresh";
reference reference
"RFC 2961 RSVP Refresh Overhead Reduction "RFC2961 RSVP Refresh Overhead Reduction Extensions";
Extensions";
} }
leaf restart-count { leaf restart-count {
type yang:counter32; type yang:counter32;
description description
"Number of times this neighbor restart"; "Number of times this RSVP neighbor has restarted.";
} }
leaf restart-time { leaf restart-time {
type yang:date-and-time; type yang:date-and-time;
description description
"Last restart time of the neighbor"; "Last restart time of the RSVP neighbor.";
} }
} }
grouping packet-statistics { grouping packet-statistics {
description description
"Packet statistics grouping"; "Packet statistics grouping.";
container packets { container packets {
description description
"Packet statistics container"; "Packet statistics container.";
leaf sent { leaf sent {
type yang:counter64; type yang:counter64;
description description
"Packet sent count"; "RSVP packet sent count.";
} }
leaf received { leaf received {
type yang:counter64; type yang:counter64;
description description
"Packet received count"; "RSVP packet received count.";
} }
} }
} }
grouping message-statistics { grouping message-statistics {
description description
"RSVP protocol statistics grouping"; "RSVP protocol statistics grouping.";
container messages { container messages {
description description
"RSVP protocol statistics container"; "RSVP protocol statistics container.";
leaf ack-sent { leaf ack-sent {
type yang:counter64; type yang:counter64;
description description
"Hello sent count"; "RSVP Hello sent count.";
} }
leaf ack-received { leaf ack-received {
type yang:counter64; type yang:counter64;
description description
"Hello received count"; "RSVP Hello received count.";
} }
leaf bundle-sent { leaf bundle-sent {
type yang:counter64; type yang:counter64;
description description
"Bundle sent count"; "RSVP Bundle message sent count.";
} }
leaf bundle-received { leaf bundle-received {
type yang:counter64; type yang:counter64;
description description
"Bundle received count"; "RSVP Bundle message received count.";
} }
leaf hello-sent { leaf hello-sent {
type yang:counter64; type yang:counter64;
description description
"Hello sent count"; "RSVP Hello message sent count.";
} }
leaf hello-received { leaf hello-received {
type yang:counter64; type yang:counter64;
description description
"Hello received count"; "RSVP Hello message received count.";
} }
leaf integrity-challenge-sent { leaf integrity-challenge-sent {
type yang:counter64; type yang:counter64;
description description
"Integrity Challenge sent count"; "RSVP Integrity Challenge message sent count.";
} }
leaf integrity-challenge-received { leaf integrity-challenge-received {
type yang:counter64; type yang:counter64;
description description
"Integrity Challenge received count"; "RSVP Integrity Challenge message received count.";
} }
leaf integrity-response-sent { leaf integrity-response-sent {
type yang:counter64; type yang:counter64;
description description
"Integrity Response sent count"; "RSVP Integrity Response message sent count.";
} }
leaf integrity-response-received { leaf integrity-response-received {
type yang:counter64; type yang:counter64;
description description
"Integrity Response received count"; "RSVP Integrity Response message received count.";
} }
leaf notify-sent { leaf notify-sent {
type yang:counter64; type yang:counter64;
description description
"Notify sent count"; "RSVP Notify message sent count.";
} }
leaf notify-received { leaf notify-received {
type yang:counter64; type yang:counter64;
description description
"Notify received count"; "RSVP Notify message received count.";
} }
leaf path-sent { leaf path-sent {
type yang:counter64; type yang:counter64;
description description
"Path sent count"; "RSVP Path message sent count.";
} }
leaf path-received { leaf path-received {
type yang:counter64; type yang:counter64;
description description
"Path received count"; "RSVP Path message received count.";
} }
leaf path-err-sent { leaf path-err-sent {
type yang:counter64; type yang:counter64;
description description
"Path error sent count"; "RSVP Path error message sent count.";
} }
leaf path-err-received { leaf path-err-received {
type yang:counter64; type yang:counter64;
description description
"Path error received count"; "RSVP Path error message received count.";
} }
leaf path-tear-sent { leaf path-tear-sent {
type yang:counter64; type yang:counter64;
description description
"Path tear sent count"; "RSVP Path tear message sent count.";
} }
leaf path-tear-received { leaf path-tear-received {
type yang:counter64; type yang:counter64;
description description
"Path tear received count"; "RSVP Path tear message received count.";
} }
leaf resv-sent { leaf resv-sent {
type yang:counter64; type yang:counter64;
description description
"Resv sent count"; "RSVP Resv message sent count.";
} }
leaf resv-received { leaf resv-received {
type yang:counter64; type yang:counter64;
description description
"Resv received count"; "RSVP Resv message received count.";
} }
leaf resv-confirm-sent { leaf resv-confirm-sent {
type yang:counter64; type yang:counter64;
description description
"Confirm sent count"; "RSVP Confirm message sent count.";
} }
leaf resv-confirm-received { leaf resv-confirm-received {
type yang:counter64; type yang:counter64;
description description
"Confirm received count"; "RSVP Confirm message received count.";
} }
leaf resv-err-sent { leaf resv-err-sent {
type yang:counter64; type yang:counter64;
description description
"Resv error sent count"; "RSVP Resv error message sent count.";
} }
leaf resv-err-received { leaf resv-err-received {
type yang:counter64; type yang:counter64;
description description
"Resv error received count"; "RSVP Resv error message received count.";
} }
leaf resv-tear-sent { leaf resv-tear-sent {
type yang:counter64; type yang:counter64;
description description
"Resv tear sent count"; "RSVP Resv tear message sent count.";
} }
leaf resv-tear-received { leaf resv-tear-received {
type yang:counter64; type yang:counter64;
description description
"Resv tear received count"; "RSVP Resv tear message received count.";
} }
leaf summary-refresh-sent { leaf summary-refresh-sent {
type yang:counter64; type yang:counter64;
description description
"Summary refresh sent count"; "RSVP Summary refresh message sent count.";
} }
leaf summary-refresh-received { leaf summary-refresh-received {
type yang:counter64; type yang:counter64;
description description
"Summary refresh received count"; "RSVP Summary refresh message received count.";
} }
leaf unknown-messages-received { leaf unknown-messages-received {
type yang:counter64; type yang:counter64;
description description
"Unknown packet received count"; "Unknown messages received count.";
} }
} }
} }
grouping errors-statistics { grouping errors-statistics {
description description
"Error statistics grouping"; "Error statistics grouping.";
container errors { container errors {
description description
"Error statistics container"; "Error statistics container.";
leaf authenticate { leaf authenticate {
type yang:counter64; type yang:counter64;
description description
"The total number of packets received with an "The total number of RSVP packets received with an
authentication failure."; authentication failure.";
} }
leaf checksum { leaf checksum {
type yang:counter64; type yang:counter64;
description description
"The total number of packets received with an invalid "The total number of RSVP packets received with an invalid
checksum value."; checksum value.";
} }
leaf packet-length { leaf packet-length {
type yang:counter64; type yang:counter64;
description description
"The total number of packets received with an invalid "The total number of packets received with an invalid
packet length."; packet length.";
} }
} }
} }
grouping statistics { grouping statistics {
description description
"RSVP statistic attributes."; "RSVP statistic attributes.";
container statistics { container statistics {
config false; config false;
description description
"RSVP statistics container"; "RSVP statistics container.";
uses message-statistics; uses message-statistics;
uses packet-statistics; uses packet-statistics;
uses errors-statistics; uses errors-statistics;
} }
} }
grouping global-attributes { grouping global-attributes {
description description
"Top level grouping for RSVP global properties"; "Top level grouping for RSVP global properties.";
container sessions { container sessions {
description description
"RSVP sessions container"; "RSVP sessions container.";
list session-ip { list session-ip {
key "destination protocol-id destination-port"; key "destination protocol-id destination-port";
config false; config false;
description description
"List of RSVP sessions"; "List of RSVP sessions.";
uses session-attributes; uses session-attributes;
} }
} }
uses statistics; uses statistics;
} }
grouping intf-attributes { grouping intf-attributes {
description description
"Top level grouping for RSVP interface properties"; "Top level grouping for RSVP interface properties.";
uses signaling-parameters; uses signaling-parameters;
uses refresh-reduction; uses refresh-reduction;
uses hellos; uses hellos;
uses authentication; uses authentication;
uses statistics; uses statistics;
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "rt:type = 'rsvp:rsvp'" { when "rt:type = 'rsvp:rsvp'" {
description description
"This augment is only valid when routing protocol "This augment is only valid when routing protocol instance
instance type is RSVP."; type is RSVP.";
} }
description description
"RSVP protocol augmentation"; "RSVP protocol augmentation.";
container rsvp { container rsvp {
presence "Enable RSVP feature"; presence "Enable RSVP feature";
description description
"RSVP feature container"; "RSVP feature container";
container globals { container globals {
description description
"RSVP global properties."; "RSVP global properties.";
uses global-attributes; uses global-attributes;
uses graceful-restart; uses graceful-restart;
} }
container interfaces { container interfaces {
description description
"RSVP interfaces container"; "RSVP interfaces container.";
uses intf-attributes; uses intf-attributes;
list interface { list interface {
key "interface"; key "interface";
description description
"RSVP interfaces."; "RSVP interfaces.";
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"RSVP interface."; "RSVP interface.";
} }
skipping to change at page 29, line 34 skipping to change at page 30, line 39
description description
"Session reference information"; "Session reference information";
leaf destination { leaf destination {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols" path "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/rsvp:rsvp/rsvp:globals" + "/rt:control-plane-protocol/rsvp:rsvp/rsvp:globals"
+ "/rsvp:sessions/rsvp:session-ip/destination"; + "/rsvp:sessions/rsvp:session-ip/destination";
} }
mandatory true; mandatory true;
description description
"RSVP session"; "The RSVP session destination.";
} }
leaf protocol-id { leaf protocol-id {
type uint8; type uint8;
mandatory true; mandatory true;
description description
"The RSVP session protocol ID"; "The RSVP session protocol ID.";
} }
leaf destination-port { leaf destination-port {
type inet:ip-address; type inet:ip-address;
mandatory true; mandatory true;
description description
"The RSVP session destination port"; "The RSVP session destination port.";
} }
} }
rpc clear-session { rpc clear-session {
nacm:default-deny-all;
description description
"Clears RSVP sessions RPC"; "Clears RSVP sessions RPC";
input { input {
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory true; mandatory true;
description description
skipping to change at page 30, line 30 skipping to change at page 31, line 37
} }
choice filter-type { choice filter-type {
mandatory true; mandatory true;
description description
"Filter choice"; "Filter choice";
case match-all { case match-all {
leaf all { leaf all {
type empty; type empty;
mandatory true; mandatory true;
description description
"Match all RSVP sessions"; "Match all RSVP sessions.";
} }
} }
case match-one { case match-one {
container session-info { container session-info {
description description
"Specifies the specific session to invoke operation on"; "Specifies the specific session to invoke operation on";
choice session-type { choice session-type {
mandatory true; mandatory true;
description description
"RSVP session type"; "The RSVP session type.";
case rsvp-session-ip { case rsvp-session-ip {
uses session-ref; uses session-ref;
} }
} }
} }
} }
} }
} }
} }
rpc clear-neighbor { rpc clear-neighbor {
nacm:default-deny-all;
description description
"RPC to clear the RSVP Hello session to a neighbor"; "RPC to clear the RSVP Hello session to a neighbor.";
input { input {
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory true; mandatory true;
description description
"Name of the RSVP protocol instance whose session "Name of the RSVP protocol instance whose session
is being cleared. is being cleared.
If the corresponding RSVP instance doesn't exist, If the corresponding RSVP instance doesn't exist,
then the operation will fail with an error-tag of then the operation will fail with an error-tag of
'data-missing' and an error-app-tag of 'data-missing' and an error-app-tag of
'routing-protocol-instance-not-found'."; 'routing-protocol-instance-not-found'.";
} }
choice filter-type { choice filter-type {
mandatory true; mandatory true;
description description
"Filter choice"; "The Filter choice.";
case match-all { case match-all {
leaf all { leaf all {
type empty; type empty;
mandatory true; mandatory true;
description description
"Match all RSVP neighbor sessions"; "Match all RSVP neighbor sessions.";
} }
} }
case match-one { case match-one {
leaf neighbor-address { leaf neighbor-address {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols" path "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/rsvp:rsvp" + "/rt:control-plane-protocol/rsvp:rsvp"
+ "/rsvp:neighbors/rsvp:neighbor/address"; + "/rsvp:neighbors/rsvp:neighbor/address";
} }
mandatory true; mandatory true;
description description
"Match specific RSVP neighbor session"; "Match the specific RSVP neighbor session.";
} }
} }
} }
} }
} }
rpc clear-authentication { rpc clear-authentication {
nacm:default-deny-all;
description description
"Clears RSVP Security Association (SA) before the "Clears the RSVP Security Association (SA) before the
lifetime expires."; lifetime expires.";
input { input {
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory true; mandatory true;
description description
"Name of the RSVP protocol instance whose session "Name of the RSVP protocol instance whose session
skipping to change at page 32, line 31 skipping to change at page 33, line 40
} }
choice filter-type { choice filter-type {
mandatory true; mandatory true;
description description
"Filter choice"; "Filter choice";
case match-all { case match-all {
leaf all { leaf all {
type empty; type empty;
mandatory true; mandatory true;
description description
"Match all RSVP security associations"; "Match all RSVP security associations.";
} }
} }
case match-one-interface { case match-one-interface {
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"Interface where RSVP security association(s) to be "Interface where RSVP security association(s) to be
detected"; detected.";
} }
} }
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
2.5. RSVP Extended YANG Model 5. RSVP Extended YANG Model
The RSVP extended YANG model covers non-core RSVP feature(s). It The RSVP extended module augments the RSVP base module with
also covers feature(s) that are not necessarily supported by all additional and optional feature data.
vendors, and hence, can be guarded with "if-feature" checks.
2.5.1. Tree Diagram 5.1. Module Structure
The RSVP extended YANG module covers non-core RSVP feature(s). It
also covers feature(s) that MAY be supported vendors claiming support
for RSVP protocol.
5.2. Tree Diagram
Figure 4 shows the YANG tree representation for configuration and Figure 4 shows the YANG tree representation for configuration and
state data that is augmenting the RSVP extended module: state data that is augmenting the RSVP extended module:
module: ietf-rsvp-extended module: ietf-rsvp-extended
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/rsvp:rsvp/rsvp:globals /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals
/rsvp:graceful-restart: /rsvp:graceful-restart:
+--rw restart-time? uint32 +--rw restart-time? uint32
+--rw recovery-time? uint32 +--rw recovery-time? uint32
skipping to change at page 34, line 47 skipping to change at page 36, line 8
+--rw hello-misses? uint32 +--rw hello-misses? uint32
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
/rsvp:interface/rsvp:authentication: /rsvp:interface/rsvp:authentication:
+--rw lifetime? uint32 +--rw lifetime? uint32
+--rw window-size? uint32 +--rw window-size? uint32
+--rw challenge? empty +--rw challenge? empty
+--rw retransmits? uint32 +--rw retransmits? uint32
+--rw key-chain? key-chain:key-chain-ref +--rw key-chain? key-chain:key-chain-ref
Figure 4: RSVP extended model tree diagram Figure 4: RSVP extended module tree diagram
2.5.2. YANG Module 5.3. YANG Module
The ietf-rsvp-extended module imports from the following modules: The ietf-rsvp-extended module imports from the following modules:
o ietf-rsvp defined in this document o ietf-rsvp defined in this document
o ietf-routing defined in [RFC8349] o ietf-routing defined in [RFC8349]
o ietf-yang-types and ietf-inet-types defined in [RFC6991] o ietf-yang-types and ietf-inet-types defined in [RFC6991]
o ietf-key-chain defined in [RFC8177] o ietf-key-chain defined in [RFC8177]
Figure 5 shows the RSVP extended YANG module: Figure 5 shows the RSVP extended YANG module:
<CODE BEGINS> file "ietf-rsvp-extended@2019-07-04.yang" This module references the following documents: [RFC2747], [RFC3209],
and [RFC5495].
<CODE BEGINS> file "ietf-rsvp-extended@2020-07-24.yang"
module ietf-rsvp-extended { module ietf-rsvp-extended {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended";
prefix rsvp-ext; prefix rsvp-ext;
import ietf-rsvp { import ietf-rsvp {
prefix rsvp; prefix rsvp;
reference reference
"RFCXXXX: A YANG Data Model for Resource Reservation Protocol "RFCXXXX: A YANG Data Model for Resource Reservation Protocol
(RSVP)"; (RSVP)";
skipping to change at page 36, line 42 skipping to change at page 37, line 51
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note. // note.
// RFC Ed.: update the date below with the date of RFC publication // RFC Ed.: update the date below with the date of RFC publication
// and remove this note. // and remove this note.
revision 2019-07-04 { revision 2020-07-24 {
description description
"A YANG Data Model for Extended Resource Reservation "Initial version.";
Protocol";
reference reference
"RFCXXXX: A YANG Data Model for Resource Reservation Protocol "RFCXXXX: A YANG Data Model for Resource Reservation Protocol
(RSVP)"; (RSVP)";
} }
/* RSVP features */
feature authentication {
description
"Indicates support for RSVP authentication";
}
feature error-statistics {
description
"Indicates support for error statistics";
}
feature global-statistics {
description
"Indicates support for global statistics";
}
feature graceful-restart {
description
"Indicates support for RSVP graceful restart";
}
feature hellos {
description
"Indicates support for RSVP hellos (RFC3209).";
}
feature notify {
description
"Indicates support for RSVP notify message (RFC3473).";
}
feature refresh-reduction {
description
"Indicates support for RSVP refresh reduction (RFC2961).";
}
feature refresh-reduction-extended {
description
"Indicates support for RSVP refresh reduction (RFC2961).";
}
feature per-interface-statistics {
description
"Indicates support for per interface statistics";
}
grouping graceful-restart-extended-config { grouping graceful-restart-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP Graceful-Restart.";
Graceful-Restart";
leaf restart-time { leaf restart-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"Graceful restart time (seconds)."; "Graceful restart time (seconds).";
reference reference
"RFC 5495: Description of the Resource "RFC5495: Description of the Resource Reservation Protocol -
Reservation Protocol - Traffic-Engineered Traffic-Engineered (RSVP-TE) Graceful Restart Procedures.";
(RSVP-TE) Graceful Restart Procedures";
} }
leaf recovery-time { leaf recovery-time {
type uint32; type uint32;
units "seconds"; units "seconds";
description description
"RSVP state recovery time"; "RSVP state recovery time.";
} }
} }
grouping authentication-extended-config { grouping authentication-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP authentication.";
authentication";
leaf lifetime { leaf lifetime {
type uint32 { type uint32 {
range "30..86400"; range "30..86400";
} }
units "seconds"; units "seconds";
description description
"Life time for each security association"; "Life time for each security association.";
reference reference
"RFC 2747: RSVP Cryptographic "RFC2747: RSVP Cryptographic Authentication";
Authentication";
} }
leaf window-size { leaf window-size {
type uint32 { type uint32 {
range "1..64"; range "1..64";
} }
description description
"Window-size to limit number of out-of-order "Window-size to limit number of out-of-order messages.";
messages.";
reference reference
"RFC 2747: RSVP Cryptographic "RFC2747: RSVP Cryptographic Authentication";
Authentication";
} }
leaf challenge { leaf challenge {
type empty; type empty;
description description
"Enable challenge messages."; "Enable challenge messages.";
reference reference
"RFC 2747: RSVP Cryptographic "RFC2747: RSVP Cryptographic Authentication";
Authentication";
} }
leaf retransmits { leaf retransmits {
type uint32 { type uint32 {
range "1..10000"; range "1..10000";
} }
description description
"Number of retransmits when messages are "Number of retransmits when messages are
dropped."; dropped.";
reference reference
"RFC 2747: RSVP Cryptographic "RFC2747: RSVP Cryptographic
Authentication"; Authentication";
} }
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Key chain name to authenticate RSVP "Key chain name to authenticate RSVP
signaling messages."; signaling messages.";
reference reference
"RFC 2747: RSVP Cryptographic Authentication"; "RFC2747: RSVP Cryptographic Authentication";
} }
} }
grouping hellos-extended-config { grouping hellos-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
hellos"; hellos";
leaf interface-based { leaf interface-based {
type empty; type empty;
description description
"Enable interface-based Hello adjacency if present."; "Enable interface-based Hello adjacency if present.";
} }
leaf hello-interval { leaf hello-interval {
type uint32; type uint32;
units "milliseconds"; units "milliseconds";
description description
"Configure interval between successive Hello "Configure interval between successive Hello messages in
messages in milliseconds."; milliseconds.";
reference reference
"RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels. "RFC3209: RSVP-TE: Extensions to RSVP for LSP Tunnels.
RFC 5495: Description of the Resource RFC5495: Description of the Resource Reservation Protocol -
Reservation Protocol - Traffic-Engineered Traffic-Engineered (RSVP-TE) Graceful Restart Procedures.";
(RSVP-TE) Graceful Restart Procedures";
} }
leaf hello-misses { leaf hello-misses {
type uint32 { type uint32 {
range "1..10"; range "1..10";
} }
description description
"Configure max number of consecutive missed "Configure max number of consecutive missed Hello messages.";
Hello messages.";
reference reference
"RFC 3209: RSVP-TE: Extensions to RSVP for "RFC3209: RSVP-TE: Extensions to RSVP for LSP Tunnels.
LSP Tunnels RFC 5495: Description of the RFC5495: Description of the Resource Reservation Protocol -
Resource Reservation Protocol - Traffic- Traffic- Engineered (RSVP-TE) Graceful Restart Procedures.";
Engineered (RSVP-TE) Graceful Restart
Procedures";
} }
} }
grouping signaling-parameters-extended-config { grouping signaling-parameters-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP signaling";
signaling";
leaf refresh-interval { leaf refresh-interval {
type uint32; type uint32;
description description
"Set interval between successive refreshes"; "Set interval between successive refreshes";
} }
leaf refresh-misses { leaf refresh-misses {
type uint32; type uint32;
description description
"Set max number of consecutive missed "Set max number of consecutive missed messages for state
messages for state expiry"; expiry";
} }
leaf checksum { leaf checksum {
type boolean; type boolean;
description description
"Enable RSVP message checksum computation"; "Enable RSVP message checksum computation";
} }
leaf patherr-state-removal { leaf patherr-state-removal {
type empty; type empty;
description description
"State-Removal flag in Path Error message "State-Removal flag in Path Error message if present.";
if present.";
} }
} }
grouping refresh-reduction-extended-config { grouping refresh-reduction-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP refresh reduction.";
refresh reduction";
leaf bundle-message-max-size { leaf bundle-message-max-size {
type uint32 { type uint32 {
range "512..65000"; range "512..65000";
} }
description description
"Configure maximum size (bytes) of a "Configure maximum size (bytes) of a single RSVP Bundle
single RSVP Bundle message."; message.";
} }
leaf reliable-ack-hold-time { leaf reliable-ack-hold-time {
type uint32; type uint32;
units "milliseconds"; units "milliseconds";
description description
"Configure hold time in milliseconds for "Configure hold time in milliseconds for sending RSVP ACK
sending RSVP ACK message(s)."; message(s).";
} }
leaf reliable-ack-max-size { leaf reliable-ack-max-size {
type uint32; type uint32;
description description
"Configure max size of a single RSVP ACK "Configure max size of a single RSVP ACK message.";
message.";
} }
leaf reliable-retransmit-time { leaf reliable-retransmit-time {
type uint32; type uint32;
units "milliseconds"; units "milliseconds";
description description
"Configure min delay in milliseconds to "Configure min delay in milliseconds to wait for an ACK
wait for an ACK before a retransmit."; before a retransmit.";
} }
leaf reliable-srefresh { leaf reliable-srefresh {
type empty; type empty;
description description
"Configure use of reliable messaging for "Configure use of reliable messaging for summary refresh if
summary refresh if present."; present.";
} }
leaf summary-max-size { leaf summary-max-size {
type uint32 { type uint32 {
range "20..65000"; range "20..65000";
} }
description description
"Configure max size (bytes) of a single "Configure max size (bytes) of a single RSVP summary refresh
RSVP summary refresh message."; message.";
} }
} }
grouping packets-extended-statistics { grouping packets-extended-statistics {
description description
"Packet statistics."; "Packet statistics.";
leaf discontinuity-time { leaf discontinuity-time {
type yang:date-and-time; type yang:date-and-time;
description description
"The time on the most recent occasion at which any one "The time on the most recent occasion at which any one or
or more of the statistic counters suffered a more of the statistic counters suffered a discontinuity.
discontinuity. If no such discontinuities have occurred If no such discontinuities have occurred since the last
since the last re-initialization of the local re-initialization of the local management subsystem, then
management subsystem, then this node contains the time this node contains the time the local management subsystem
the local management subsystem re-initialized itself."; re-initialized itself.";
} }
leaf out-dropped { leaf out-dropped {
type yang:counter64; type yang:counter64;
description description
"Out packet drop count"; "Out RSVP packet drop count.";
} }
leaf in-dropped { leaf in-dropped {
type yang:counter64; type yang:counter64;
description description
"In packet drop count"; "In RSVP packet drop count.";
} }
leaf out-errors { leaf out-errors {
type yang:counter64; type yang:counter64;
description description
"Out packet errors count"; "Out RSVP packet errors count.";
} }
leaf in-errors { leaf in-errors {
type yang:counter64; type yang:counter64;
description description
"In packet rx errors count"; "In RSVP packet rx errors count.";
} }
} }
grouping messages-extended-statistics {
description
"RSVP protocol statistics.";
}
grouping errors-extended-statistics {
description
"Error statistics.";
}
/** /**
* RSVP extensions augmentations * RSVP extensions augmentations
*/ */
/* RSVP globals graceful restart*/ /* RSVP globals graceful restart*/
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "rsvp:graceful-restart" { + "rsvp:graceful-restart" {
description description
"RSVP globals configuration extensions"; "RSVP globals configuration extensions";
uses graceful-restart-extended-config; uses graceful-restart-extended-config;
} }
/* RSVP statistics augmentation */ /* RSVP statistics augmentation */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "rsvp:statistics/rsvp:packets" { + "rsvp:statistics/rsvp:packets" {
skipping to change at page 43, line 19 skipping to change at page 43, line 4
/* RSVP statistics augmentation */ /* RSVP statistics augmentation */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "rsvp:statistics/rsvp:packets" { + "rsvp:statistics/rsvp:packets" {
description description
"RSVP packet stats extensions"; "RSVP packet stats extensions";
uses packets-extended-statistics; uses packets-extended-statistics;
} }
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "rsvp:statistics/rsvp:messages" {
description
"RSVP protocol message stats extensions";
uses messages-extended-statistics;
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "rsvp:statistics/rsvp:errors" {
description
"RSVP errors stats extensions";
uses errors-extended-statistics;
}
/** /**
* RSVP all interfaces extensions * RSVP all interfaces extensions
*/ */
/* RSVP interface signaling extensions */ /* RSVP interface signaling extensions */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" {
description description
"RSVP signaling all interfaces configuration extensions"; "RSVP signaling all interfaces configuration extensions";
uses signaling-parameters-extended-config; uses signaling-parameters-extended-config;
skipping to change at page 45, line 28 skipping to change at page 44, line 46
+ "rsvp:interface/rsvp:authentication" { + "rsvp:interface/rsvp:authentication" {
description description
"RSVP authentication interface configuration extensions"; "RSVP authentication interface configuration extensions";
uses authentication-extended-config; uses authentication-extended-config;
} }
} }
<CODE ENDS> <CODE ENDS>
Figure 5: RSVP extended YANG module Figure 5: RSVP extended YANG module
3. IANA Considerations 6. IANA Considerations
This document registers the following URIs in the IETF XML registry This document registers the following URIs in the IETF XML registry
[RFC3688]. Following the format in [RFC3688], the following [RFC3688]. Following the format in [RFC3688], the following
registration is requested to be made. registration is requested to be made.
URI: urn:ietf:params:xml:ns:yang:ietf-rsvp URI: urn:ietf:params:xml:ns:yang:ietf-rsvp
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace. XML: N/A, the requested URI is an XML namespace.
URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended
Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace. XML: N/A, the requested URI is an XML namespace.
This document registers two YANG modules in the YANG Module Names This document registers two YANG modules in the YANG Module Names
registry [RFC6020]. registry [RFC6020].
name: ietf-rsvp name: ietf-rsvp
namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp
prefix: ietf-rsvp prefix: rsvp
reference: RFCXXXX reference: RFCXXXX
name: ietf-rsvp-extended name: ietf-rsvp-extended
namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended
prefix: ietf-rsvp-extendeed prefix: rsvp-extendeed
reference: RFCXXXX reference: RFCXXXX
4. Security Considerations 7. Security Considerations
The YANG module specified in this document defines a schema for data The YANG module specified in this document defines a schema for data
that is designed to be accessed via network management protocols such that is designed to be accessed via network management protocols such
as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
is HTTPS, and the mandatory-to-implement secure transport is TLS is HTTPS, and the mandatory-to-implement secure transport is TLS
[RFC8446]. [RFC8446].
The Network Configuration Access Control Model (NACM) [RFC8341] The Network Configuration Access Control Model (NACM) [RFC8341]
provides the means to restrict access for particular NETCONF or provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content. RESTCONF protocol operations and content.
There are a number of data nodes defined in the YANG module which are There are a number of data nodes defined in the YANG module(s)
writable/creatable/deletable (i.e., config true, which is the defined in this document that are writable/creatable/deletable (i.e.,
default). These data nodes may be considered sensitive or vulnerable config true, which is the default). These data nodes may be
in some network environments. Write operations (e.g., <edit-config>) considered sensitive or vulnerable in some network environments.
to these data nodes without proper protection can have a negative Write operations (e.g., <edit-config>) to these data nodes without
effect on network operations. proper protection can have a negative effect on network operations.
These are the subtrees and data nodes and their sensitivity/
vulnerability:
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/
rsvp: rsvp:rsvp/ /rsvp:globals /rsvp:interfaces /rsvp:sessions
All of which are considered sensitive and if access to either of
these is compromised, it can result in temporary network outages
or be employed to mount DoS attacks.
The presence of this container enables the RSVP protocol Some of the readable data nodes in this YANG module may be considered
functionality on a device. It alsocontrols the configuration sensitive or vulnerable in some network environments. It is thus
settings on data nodes pertaining to RSVP sessions, interfaces and important to control read access (e.g., via get, get-config, or
neighbors. All of which are considered sensitive and if access to notification) to these data nodes. These are the subtrees and data
either of these is compromised, it can result in temporary network nodes and their sensitivity/vulnerability:
outages or be employed to mount DoS attacks.
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/
rsvp:rsvp/ /rsvp:globals /rsvp:interfaces /rsvp:sessions
Additional information from these state data nodes can be inferred
with respect to the network topology, and device location and
subsequently be used to mount other attacks in the network.
For RSVP authentication, the configuration supported is via the For RSVP authentication, the configuration supported is via the
specification of key-chains [RFC8177] or the direct specification of specification of key-chains [RFC8177] or the direct specification of
key and authentication algorithm, and hence security considerations key and authentication algorithm, and hence security considerations
of [RFC8177] are inherited. This includes the considerations with of [RFC8177] are inherited. This includes the considerations with
respect to the local storage and handling of authentication keys. respect to the local storage and handling of authentication keys.
Some of the RPC operations defined in this YANG module may be Some of the RPC operations defined in this YANG module may be
considered sensitive or vulnerable in some network environments. It considered sensitive or vulnerable in some network environments. It
is thus important to control access to these operations. The RSVP is thus important to control access to these operations. The RSVP
YANG module support the "clear-session" and "clear-neighbor" RPCs. YANG module support the "clear-session" and "clear-neighbor" RPCs.
If access to either of these is compromised, they can result in If access to either of these is compromised, they can result in
temporary network outages be employed to mount DoS attacks. temporary network outages be employed to mount DoS attacks.
The security considerations spelled out in the YANG 1.1 specification The security considerations spelled out in the YANG 1.1 specification
[RFC7950] apply for this document as well. [RFC7950] apply for this document as well.
5. Acknowledgement 8. Acknowledgement
The authors would like to thank Lou Berger for reviewing and
providing valuable feedback on this document.
6. Contributors The authors would like to thank Tom Petch for reviewing and providing
useful feedback about the document. The authors would also like to
thank Lou Berger for reviewing and providing valuable feedback on
this document.
9. Contributors
Himanshu Shah Himanshu Shah
Ciena Ciena
Email: hshah@ciena.com Email: hshah@ciena.com
Xia Chen Xia Chen
Huawei Technologies Huawei Technologies
Email: jescia.chenxia@huawei.com Email: jescia.chenxia@huawei.com
Raqib Jones Raqib Jones
Brocade Brocade
Email: raqib@Brocade.com Email: raqib@Brocade.com
Bin Wen Bin Wen
Comcast Comcast
Email: Bin_Wen@cable.comcast.com Email: Bin_Wen@cable.comcast.com
7. References 10. References
7.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, DOI 10.17487/RFC2205,
September 1997, <https://www.rfc-editor.org/info/rfc2205>.
[RFC2747] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic
Authentication", RFC 2747, DOI 10.17487/RFC2747, January
2000, <https://www.rfc-editor.org/info/rfc2747>.
[RFC2961] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F.,
and S. Molendini, "RSVP Refresh Overhead Reduction
Extensions", RFC 2961, DOI 10.17487/RFC2961, April 2001,
<https://www.rfc-editor.org/info/rfc2961>.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
<https://www.rfc-editor.org/info/rfc3209>.
[RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Resource ReserVation Protocol-
Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
DOI 10.17487/RFC3473, January 2003,
<https://www.rfc-editor.org/info/rfc3473>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC5063] Satyanarayana, A., Ed. and R. Rahman, Ed., "Extensions to
GMPLS Resource Reservation Protocol (RSVP) Graceful
Restart", RFC 5063, DOI 10.17487/RFC5063, October 2007,
<https://www.rfc-editor.org/info/rfc5063>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, DOI 10.17487/RFC6020, October 2010,
<https://www.rfc-editor.org/info/rfc6020>. <https://www.rfc-editor.org/info/rfc6020>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
skipping to change at page 49, line 22 skipping to change at page 48, line 30
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J. [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
Zhang, "YANG Data Model for Key Chains", RFC 8177, Zhang, "YANG Data Model for Key Chains", RFC 8177,
DOI 10.17487/RFC8177, June 2017, DOI 10.17487/RFC8177, June 2017,
<https://www.rfc-editor.org/info/rfc8177>. <https://www.rfc-editor.org/info/rfc8177>.
[RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
"Common YANG Data Types for the Routing Area", RFC 8294,
DOI 10.17487/RFC8294, December 2017,
<https://www.rfc-editor.org/info/rfc8294>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
Access Control Model", STD 91, RFC 8341, Access Control Model", STD 91, RFC 8341,
DOI 10.17487/RFC8341, March 2018, DOI 10.17487/RFC8341, March 2018,
<https://www.rfc-editor.org/info/rfc8341>. <https://www.rfc-editor.org/info/rfc8341>.
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
skipping to change at page 50, line 5 skipping to change at page 49, line 18
[RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard, [RFC8639] Voit, E., Clemm, A., Gonzalez Prieto, A., Nilsen-Nygaard,
E., and A. Tripathy, "Subscription to YANG Notifications", E., and A. Tripathy, "Subscription to YANG Notifications",
RFC 8639, DOI 10.17487/RFC8639, September 2019, RFC 8639, DOI 10.17487/RFC8639, September 2019,
<https://www.rfc-editor.org/info/rfc8639>. <https://www.rfc-editor.org/info/rfc8639>.
[RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications [RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications
for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641, for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641,
September 2019, <https://www.rfc-editor.org/info/rfc8641>. September 2019, <https://www.rfc-editor.org/info/rfc8641>.
7.2. Informative References 10.2. Informative References
[I-D.ietf-teas-yang-rsvp-te] [I-D.ietf-teas-yang-rsvp-te]
Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I.,
and H. Shah, "A YANG Data Model for RSVP-TE Protocol", and H. Shah, "A YANG Data Model for RSVP-TE Protocol",
draft-ietf-teas-yang-rsvp-te-08 (work in progress), March draft-ietf-teas-yang-rsvp-te-08 (work in progress), March
2020. 2020.
[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, DOI 10.17487/RFC2205,
September 1997, <https://www.rfc-editor.org/info/rfc2205>.
[RFC2747] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic
Authentication", RFC 2747, DOI 10.17487/RFC2747, January
2000, <https://www.rfc-editor.org/info/rfc2747>.
[RFC2961] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F.,
and S. Molendini, "RSVP Refresh Overhead Reduction
Extensions", RFC 2961, DOI 10.17487/RFC2961, April 2001,
<https://www.rfc-editor.org/info/rfc2961>.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
<https://www.rfc-editor.org/info/rfc3209>.
[RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Resource ReserVation Protocol-
Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
DOI 10.17487/RFC3473, January 2003,
<https://www.rfc-editor.org/info/rfc3473>.
[RFC5063] Satyanarayana, A., Ed. and R. Rahman, Ed., "Extensions to
GMPLS Resource Reservation Protocol (RSVP) Graceful
Restart", RFC 5063, DOI 10.17487/RFC5063, October 2007,
<https://www.rfc-editor.org/info/rfc5063>.
[RFC5495] Li, D., Gao, J., Satyanarayana, A., and S. Bardalai,
"Description of the Resource Reservation Protocol -
Traffic-Engineered (RSVP-TE) Graceful Restart Procedures",
RFC 5495, DOI 10.17487/RFC5495, March 2009,
<https://www.rfc-editor.org/info/rfc5495>.
Authors' Addresses Authors' Addresses
Vishnu Pavan Beeram Vishnu Pavan Beeram
Juniper Networks Juniper Networks
Email: vbeeram@juniper.net Email: vbeeram@juniper.net
Tarek Saad Tarek Saad
Juniper Networks Juniper Networks
 End of changes. 237 change blocks. 
444 lines changed or deleted 424 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/