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/ |