draft-ietf-teas-yang-rsvp-01.txt | draft-ietf-teas-yang-rsvp-02.txt | |||
---|---|---|---|---|
TEAS Working Group V. Beeram | TEAS Working Group V. Beeram | |||
Internet-Draft Juniper Networks | Internet-Draft Juniper Networks | |||
Intended status: Standards Track T. Saad | Intended status: Standards Track T. Saad, Ed. | |||
Expires: April 18, 2016 R. Gandhi | Expires: September 21, 2016 R. Gandhi | |||
Cisco Systems Inc | Cisco Systems Inc | |||
X. Liu | X. Liu | |||
Ericsson | Ericsson | |||
H. Shah | H. Shah | |||
Ciena | Ciena | |||
X. Chen | X. Chen | |||
Huawei Technologies | Huawei Technologies | |||
R. Jones | R. Jones | |||
Brocade | Brocade | |||
B. Wen | B. Wen | |||
Comcast | Comcast | |||
October 16, 2015 | March 20, 2016 | |||
A YANG Data Model for Resource Reservation Protocol (RSVP) | A YANG Data Model for Resource Reservation Protocol (RSVP) | |||
draft-ietf-teas-yang-rsvp-01 | draft-ietf-teas-yang-rsvp-02 | |||
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 defines generic RSVP protocol | management of RSVP Protocol. The model defines generic RSVP protocol | |||
building blocks that can be augmented and used by other RSVP | building blocks that can be augmented and used by other RSVP | |||
extension models such as RVSP extensions to Traffic-Engineering | extension models such as RVSP extensions to Traffic-Engineering | |||
(RSVP-TE). The model covers the RSVP protocol configuration, | (RSVP-TE). The model covers the RSVP protocol configuration, | |||
operational state, remote procedural calls, and event notifications | operational state, remote procedural calls, and event notifications | |||
data. | data. | |||
skipping to change at page 1, line 48 ¶ | skipping to change at page 1, line 48 ¶ | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 April 18, 2016. | This Internet-Draft will expire on September 21, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
skipping to change at page 2, line 34 ¶ | skipping to change at page 2, line 34 ¶ | |||
1.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 | 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 | |||
1.4. Open Issues and Next Steps . . . . . . . . . . . . . . . 5 | 1.4. Open Issues and Next Steps . . . . . . . . . . . . . . . 5 | |||
1.4.1. Module Hierarchy . . . . . . . . . . . . . . . . . . 5 | 1.4.1. Module Hierarchy . . . . . . . . . . . . . . . . . . 5 | |||
1.4.2. Model Data Organization . . . . . . . . . . . . . . . 5 | 1.4.2. Model Data Organization . . . . . . . . . . . . . . . 5 | |||
1.4.3. State Data . . . . . . . . . . . . . . . . . . . . . 5 | 1.4.3. State Data . . . . . . . . . . . . . . . . . . . . . 5 | |||
2. Design Considerations . . . . . . . . . . . . . . . . . . . . 6 | 2. Design Considerations . . . . . . . . . . . . . . . . . . . . 6 | |||
2.1. Base Model(s) . . . . . . . . . . . . . . . . . . . . . . 6 | 2.1. Base Model(s) . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.2. Extended Model(s) . . . . . . . . . . . . . . . . . . . . 7 | 2.2. Extended Model(s) . . . . . . . . . . . . . . . . . . . . 7 | |||
2.3. Configuration Inheritance . . . . . . . . . . . . . . . . 7 | 2.3. Configuration Inheritance . . . . . . . . . . . . . . . . 7 | |||
2.4. Vendor Configuration Models . . . . . . . . . . . . . . . 8 | 2.4. Routing Instance Support . . . . . . . . . . . . . . . . 8 | |||
3. Model Organization . . . . . . . . . . . . . . . . . . . . . 8 | 3. Model Organization . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.1. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 8 | 3.1. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 8 | |||
3.1.1. Configuration and State Data . . . . . . . . . . . . 10 | 3.1.1. Configuration and State Data . . . . . . . . . . . . 10 | |||
3.1.2. RPC and Notification Data . . . . . . . . . . . . . . 15 | 3.1.2. RPC and Notification Data . . . . . . . . . . . . . . 15 | |||
3.1.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 15 | 3.1.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 15 | |||
3.2. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 31 | 3.2. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 32 | |||
3.2.1. Configuration and State Data . . . . . . . . . . . . 31 | 3.2.1. Configuration and State Data . . . . . . . . . . . . 32 | |||
3.2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 34 | 3.2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 35 | |||
3.3. RSVP-TE Generic YANG Model . . . . . . . . . . . . . . . 44 | 3.3. RSVP-TE Generic YANG Model . . . . . . . . . . . . . . . 46 | |||
3.3.1. Configuration and State Data . . . . . . . . . . . . 44 | 3.3.1. Configuration and State Data . . . . . . . . . . . . 46 | |||
3.3.2. RPC and Notification Data . . . . . . . . . . . . . . 47 | 3.3.2. RPC and Notification Data . . . . . . . . . . . . . . 49 | |||
3.3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 47 | 3.3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 49 | |||
3.4. RSVP-TE MPLS Packet Model . . . . . . . . . . . . . . . . 55 | 3.4. RSVP-TE MPLS Model . . . . . . . . . . . . . . . . . . . 57 | |||
3.4.1. Configuration and State Data . . . . . . . . . . . . 55 | 3.4.1. Configuration and State Data . . . . . . . . . . . . 57 | |||
3.4.2. RPC and Notification Data . . . . . . . . . . . . . . 59 | 3.4.2. RPC and Notification Data . . . . . . . . . . . . . . 61 | |||
3.4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 59 | 3.4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 61 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 70 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 74 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 71 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 74 | |||
6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 71 | 6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 74 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 71 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 75 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 71 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 75 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 73 | 7.2. Informative References . . . . . . . . . . . . . . . . . 76 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 73 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 76 | |||
1. Introduction | 1. Introduction | |||
YANG [RFC6020] is a data definition language that was introduced to | YANG [RFC6020] is a data definition language that was introduced to | |||
define the contents of a conceptual data store that allows networked | define the contents of a conceptual data store that allows networked | |||
devices to be managed using NETCONF [RFC6241]. YANG is proving | devices to be managed using NETCONF [RFC6241]. YANG is proving | |||
relevant beyond its initial confines, as bindings to other interfaces | relevant beyond its initial confines, as bindings to other interfaces | |||
(e.g. ReST) and encoding other than XML (e.g. JSON) are being | (e.g. ReST) and encoding other than XML (e.g. JSON) are being | |||
defined. Furthermore, YANG data models can be used as the basis of | defined. Furthermore, YANG data models can be used as the basis of | |||
implementation for other interface, such as CLI and programmatic | implementation for other interface, such as CLI and programmatic | |||
APIs. | 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. This model covers generic protocol | and manage the RSVP protocol. This model covers generic protocol | |||
building blocks that can be augmented and used by other RSVP | building blocks that can be augmented and used by other RSVP | |||
extension models- such as extensions for signaling RSVP-TE packet (or | extension models- such as extensions for signaling RSVP-TE MPLS (or | |||
other technology specific) Label Switched Paths (LSP)s. | other technology specific) Label Switched Paths (LSP)s. | |||
1.1. Terminology | 1.1. Terminology | |||
In this document, the key words "MUST", "MUST NOT", "REQUIRED", | In this document, the key words "MUST", "MUST NOT", "REQUIRED", | |||
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", | "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", | |||
and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 | and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 | |||
[RFC2119]. | [RFC2119]. | |||
1.2. Tree Diagram | 1.2. Tree Diagram | |||
skipping to change at page 5, line 8 ¶ | skipping to change at page 5, line 8 ¶ | |||
+--------+-----------------+-----------+ | +--------+-----------------+-----------+ | |||
| yang | ietf-yang-types | [RFC6991] | | | yang | ietf-yang-types | [RFC6991] | | |||
| inet | ietf-inet-types | [RFC6991] | | | inet | ietf-inet-types | [RFC6991] | | |||
+--------+-----------------+-----------+ | +--------+-----------------+-----------+ | |||
Table 1: Prefixes and corresponding YANG modules | Table 1: Prefixes and corresponding YANG modules | |||
1.4. Open Issues and Next Steps | 1.4. Open Issues and Next Steps | |||
This document covers YANG models for data pertaining to the base | This document covers YANG models for data pertaining to the base | |||
RSVP, the generic RSVP-TE, and the packet RSVP-TE protocols. The | RSVP, the generic RSVP-TE, and the MPLS RSVP-TE. The current | |||
current revision of this draft covers configuration and state data, | revision of this draft covers configuration and state data, but | |||
but future revisions are expected to cover data for RPCs, and | future revisions are expected to cover data for RPCs, and | |||
notifications. | notifications. | |||
1.4.1. Module Hierarchy | 1.4.1. Module Hierarchy | |||
During discussions, some of the RSVP features were debated whether | During discussions, some of the RSVP features were debated whether | |||
they should be present in the base RSVP model or in extension RSVP | they should be present in the base RSVP model or in extension RSVP | |||
model (e.g. RSVP-TE model) especially that some features were | model (e.g. RSVP-TE model) especially that some features were | |||
defined in RSVP extension drafts for GMPLS or RSVP-TE states. For | defined in RSVP extension drafts for GMPLS or RSVP-TE states. For | |||
example, the RSVP Hello extensions defined in [RFC3209] with | example, the RSVP Hello extensions defined in [RFC3209] with | |||
extensions to RSVP for TE states. However, RSVP Hellos extension can | extensions to RSVP for TE states. However, RSVP Hellos extension can | |||
skipping to change at page 6, line 28 ¶ | skipping to change at page 6, line 28 ¶ | |||
2.1. Base Model(s) | 2.1. Base Model(s) | |||
The base RSVP model covers core features with the minimal set of | The base RSVP model covers core features with the minimal set of | |||
configuration parameters needed to operate them. Additional core | configuration parameters needed to operate them. Additional core | |||
RSVP parameter configuration(s) as well as extended RSVP feature(s) | RSVP parameter configuration(s) as well as extended RSVP feature(s) | |||
are covered in a separate RSVP extended model. | are covered in a separate RSVP extended model. | |||
The RSVP-TE [RFC3209] and other traffic-engineering specific | The RSVP-TE [RFC3209] and other traffic-engineering specific | |||
enhancements are also addressed in separate module(s). The generic | enhancements are also addressed in separate module(s). The generic | |||
and packet specific RSVP traffic-engineering models are augmentations | and MPLS RSVP traffic-engineering models are augmentations to the | |||
to the RSVP base model and are discussed in this revision of the | RSVP base model and are discussed in this revision of the document in | |||
document in Section 3.3. | Section 3.3. | |||
Currently, the RSVP-TE module is presented as part of this draft, and | Currently, the RSVP-TE module is presented as part of this draft, and | |||
is mostly packet centric. It is expected that the RSVP-TE YANG model | is mostly packet centric. It is expected that the RSVP-TE YANG model | |||
will move to a separate document in the next revision. | will move to a separate document in the next revision. | |||
TE basic +---------+ ^: import | TE basic +---------+ ^: import | |||
module | ietf-te | o: augment | module | ietf-te | o: augment | |||
+---------+ | +---------+ | |||
| o | | o | |||
| | | | | | |||
skipping to change at page 8, line 9 ¶ | skipping to change at page 8, line 9 ¶ | |||
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 elements defined in 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.4. Vendor Configuration Models | 2.4. Routing Instance Support | |||
There two main popular types of routing protocol configuration that | There two main popular types of routing protocol configuration that | |||
vendors may support: | vendors may support: | |||
o protocol centric - all the protocol related configuration is | o protocol centric - all the protocol related configuration is | |||
contained within the protocol itself. Configuration belonging to | contained within the protocol itself. Configuration belonging to | |||
multiple instances of the protocol running in different routing- | multiple instances of the protocol running in different routing- | |||
instances (e.g. VRFs) are contained under the default routing | instances (e.g. VRFs) are contained under the default routing | |||
instance [I-D.ietf-netmod-routing-cfg]: | instance [I-D.ietf-netmod-routing-cfg]: | |||
o VRF centric - all the protocol related configuration for a | o VRF centric - all the protocol related configuration for a | |||
routing- instance is contained within this routing-instance. | routing- instance is contained within this routing-instance. | |||
On-going discussions within the IETF community have converged on | On-going discussions within the IETF community have converged on | |||
adopting the VRF centric approach. The proposed model in this | adopting the VRF centric approach. The proposed model in this | |||
document adheres to this conclusion. | document adheres to this conclusion. | |||
3. Model Organization | 3. Model Organization | |||
This document defines YANG data models for RSVP base, RSVP extended, | This document defines YANG data models for RSVP base, RSVP extended, | |||
RSVP-TE generic, and RSVP-TE packet MPLS configuration, state, | RSVP-TE generic, and RSVP-TE MPLS configuration, state, notification | |||
notification and RPCs. The relationship between the different | and RPCs. The relationship between the different modules is depicted | |||
modules is depicted in Figure 1. | in Figure 1. | |||
3.1. RSVP Base YANG Model | 3.1. RSVP Base YANG Model | |||
This section describes the RSVP base YANG data model. It covers base | This section describes the RSVP base YANG data model. It covers base | |||
RSVP protocol data defined by RSVP [RFC2205], and enhancements that | RSVP protocol data defined by RSVP [RFC2205], and enhancements that | |||
pertain to the base protocol operation. | pertain to the base protocol operation. | |||
The container "rsvp" is the top level container in this data model. | The container "rsvp" is the top level container in this data model. | |||
The presence of this container is expected to enable RSVP protocol | The presence of this container is expected to enable RSVP protocol | |||
functionality. | functionality. | |||
skipping to change at page 11, line 6 ¶ | skipping to change at page 11, line 6 ¶ | |||
pertaining to configuration and state data. | pertaining to configuration and state data. | |||
3.1.1. Configuration and State Data | 3.1.1. Configuration and State Data | |||
3.1.1.1. Global Data | 3.1.1.1. Global Data | |||
This branch of the data model covers global configuration and states | This branch of the data model covers global configuration and states | |||
that control RSVP protocol behavior. | that control RSVP protocol behavior. | |||
module: ietf-rsvp | module: ietf-rsvp | |||
augment /rt:routing/rt:routing-protocols/rt:routing-protocol: | ||||
+--rw rsvp! | +--rw rsvp! | |||
+--rw globals | +--rw globals | |||
| +--rw config | | +--rw config | |||
| | +--rw graceful-restart | | | +--rw graceful-restart | |||
| | +--rw enabled? boolean | | | +--rw enabled? boolean | |||
| +--ro state | | +--ro state | |||
| +--ro graceful-restart | | +--ro graceful-restart | |||
| | +--ro enabled? boolean | | | +--ro enabled? boolean | |||
| +--ro packets-stats | | +--ro packets-stats | |||
| | +--ro sent? yang:counter32 | | | +--ro sent? yang:counter32 | |||
skipping to change at page 12, line 13 ¶ | skipping to change at page 12, line 13 ¶ | |||
| +--ro packet-len? yang:counter64 | | +--ro packet-len? yang:counter64 | |||
3.1.1.2. Interface Data | 3.1.1.2. Interface Data | |||
This branch of the data model covers configuration and state elements | This branch of the data model covers configuration and state elements | |||
relevant to one or all RSVP interfaces. Any data configuration | relevant to one or all RSVP interfaces. Any data configuration | |||
applied at the "interfaces" container level are equally applicable to | applied at the "interfaces" container level are equally applicable to | |||
all interfaces - unless overridden by explicit configuration under a | all interfaces - unless overridden by explicit configuration under a | |||
specific interface. | specific interface. | |||
module: ietf-rsvp | ||||
+--rw rsvp! | ||||
+--rw interfaces | +--rw interfaces | |||
| +--rw config | | +--rw config | |||
| | +--rw refresh-reduction | | | +--rw refresh-reduction | |||
| | | +--rw enabled? boolean | | | | +--rw enabled? boolean | |||
| | +--rw rsvp-hellos | | | +--rw rsvp-hellos | |||
| | | +--rw enabled? boolean | | | | +--rw enabled? boolean | |||
| | +--rw authentication | | | +--rw authentication | |||
| | +--rw enabled? boolean | | | +--rw enabled? boolean | |||
| | +--rw password? string | | | +--rw password? string | |||
| | +--rw algorithm? identityref | | | +--rw algorithm? identityref | |||
skipping to change at page 15, line 48 ¶ | skipping to change at page 15, line 42 ¶ | |||
+--ro refresh-reduction-capable? boolean | +--ro refresh-reduction-capable? boolean | |||
+--ro restart-count? uint32 | +--ro restart-count? uint32 | |||
+--ro restart-time? yang:date-and-time | +--ro restart-time? yang:date-and-time | |||
3.1.2. RPC and Notification Data | 3.1.2. RPC and Notification Data | |||
TBD. | TBD. | |||
3.1.3. YANG Module | 3.1.3. YANG Module | |||
<CODE BEGINS> file "ietf-rsvp@2015-10-16.yang" | <CODE BEGINS> file "ietf-rsvp@2016-03-20.yang" | |||
module ietf-rsvp { | module ietf-rsvp { | |||
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"; | |||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
} | } | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix "yang"; | prefix "yang"; | |||
} | } | |||
import ietf-routing { | ||||
prefix "rt"; | ||||
} | ||||
organization | organization | |||
"IETF TEAS Working Group"; | "IETF Traffic Engineering Architecture and Signaling (TEAS) | |||
Working Group"; | ||||
contact "TBA"; | contact | |||
"WG Web: <http://tools.ietf.org/wg/teas/> | ||||
WG List: <mailto:teas@ietf.org> | ||||
WG Chair: Lou Berger | ||||
<mailto:lberger@labn.net> | ||||
WG Chair: Vishnu Pavan Beeram | ||||
<mailto:vbeeram@juniper.net> | ||||
Editor: Vishnu Pavan Beeram | ||||
<mailto:vbeeram@juniper.net> | ||||
Editor: Tarek Saad | ||||
<mailto:tsaad@cisco.com> | ||||
Editor: Rakesh Gandhi | ||||
<mailto:rgandhi@cisco.com> | ||||
Editor: Himanshu Shah | ||||
<mailto:hshah@ciena.com> | ||||
Editor: Xufeng Liu | ||||
<mailto:xufeng.liu@ericsson.com> | ||||
Editor: Xia Chen | ||||
<mailto:jescia.chenxia@huawei.com> | ||||
Editor: Raqib Jones | ||||
<mailto:raqib@Brocade.com> | ||||
Editor: Bin Wen | ||||
<mailto:Bin_Wen@cable.comcast.com>"; | ||||
description | description | |||
"This module contains the RSVP YANG data model."; | "This module contains the RSVP YANG data model."; | |||
revision 2015-10-16 { | revision 2016-03-20 { | |||
description "Latest revision of RSVP yang module."; | description "Latest revision of RSVP yang module."; | |||
reference "RFC2205"; | reference "RFC2205"; | |||
} | } | |||
identity rsvp { | ||||
base "rt:routing-protocol"; | ||||
description "RSVP protocol"; | ||||
} | ||||
identity hash-algorithm { | identity hash-algorithm { | |||
description | description | |||
"Base identity for message-digest algorithm"; | "Base identity for message-digest algorithm"; | |||
} | } | |||
identity MD5 { | identity MD5 { | |||
base hash-algorithm; | base hash-algorithm; | |||
description | description | |||
"MD5 hash algorithm"; | "MD5 hash algorithm"; | |||
reference "RFC1321"; | reference "RFC1321"; | |||
skipping to change at page 17, line 29 ¶ | skipping to change at page 18, line 17 ¶ | |||
container graceful-restart { | container graceful-restart { | |||
description | description | |||
"Top level container for RSVP graceful-restart"; | "Top level container for RSVP graceful-restart"; | |||
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 relating 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 Authenticaiton is enabled. | "'true' if RSVP Authenticaiton is enabled. | |||
'false' if RSVP Authenticaiton is disabled."; | 'false' if RSVP Authenticaiton is disabled."; | |||
} | } | |||
leaf password { | leaf password { | |||
type string; | type string; | |||
description | description | |||
"An authentication key string"; | "An authentication key string"; | |||
skipping to change at page 18, line 33 ¶ | skipping to change at page 19, line 21 ¶ | |||
"Cryptographic hash algorithm"; | "Cryptographic hash algorithm"; | |||
} | } | |||
} | } | |||
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 rsvp-hellos_config { | grouping rsvp-hellos_config { | |||
description | description | |||
"Configuration parameters relating to RSVP | "Configuration parameters relating to RSVP | |||
hellos"; | hellos"; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
skipping to change at page 19, line 16 ¶ | skipping to change at page 20, line 4 ¶ | |||
description | description | |||
"Top level container for RSVP hello parameters"; | "Top level container for RSVP hello parameters"; | |||
uses rsvp-hellos_config; | uses rsvp-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"; | |||
container config { | container config { | |||
description | description | |||
"Configuration for session properties"; | "Configuration for session properties"; | |||
} | } | |||
skipping to change at page 29, line 42 ¶ | skipping to change at page 30, line 32 ¶ | |||
"State information associated with RSVP | "State information associated with RSVP | |||
interface parameters"; | interface parameters"; | |||
uses signaling-parameters; | uses signaling-parameters; | |||
uses refresh-reduction; | uses refresh-reduction; | |||
uses rsvp-hellos; | uses rsvp-hellos; | |||
uses authentication; | uses authentication; | |||
uses statistics_state; | uses statistics_state; | |||
} | } | |||
} | } | |||
container rsvp { | augment "/rt:routing/rt:routing-protocols/" | |||
presence "Enable RSVP feature"; | + "rt:routing-protocol" { | |||
description "RSVP feature container"; | when "rt:type = 'rsvp:rsvp'" { | |||
container globals { | description | |||
description "RSVP global properties."; | "This augment is only valid when routing protocol | |||
uses global-attributes; | instance type is RSVP."; | |||
} | } | |||
description | ||||
"RSVP protocol augmentation"; | ||||
container rsvp { | ||||
presence "Enable RSVP feature"; | ||||
description "RSVP feature container"; | ||||
container globals { | ||||
description "RSVP global properties."; | ||||
uses global-attributes; | ||||
} | ||||
container interfaces { | container interfaces { | |||
description | ||||
"RSVP interfaces container"; | ||||
uses intf-attributes; | ||||
list interface { | ||||
key "interface"; | ||||
description | description | |||
"RSVP interfaces."; | "RSVP interfaces container"; | |||
leaf interface { | uses intf-attributes; | |||
type if:interface-ref; | list interface { | |||
key "interface"; | ||||
description | description | |||
"RSVP interface."; | "RSVP interfaces."; | |||
leaf interface { | ||||
type if:interface-ref; | ||||
description | ||||
"RSVP interface."; | ||||
} | ||||
uses intf-attributes; | ||||
} | } | |||
uses intf-attributes; | ||||
} | } | |||
} | ||||
container sessions { | container sessions { | |||
description | ||||
"RSVP sessions container"; | ||||
list session { | ||||
key "dst_port source destination"; | ||||
description | description | |||
"List of RSVP sessions"; | "RSVP sessions container"; | |||
leaf dst_port { | list session { | |||
type uint16; | key "dst_port source destination"; | |||
description "RSVP destination port"; | description | |||
reference "RFC2205"; | "List of RSVP sessions"; | |||
} | leaf dst_port { | |||
leaf source { | type uint16; | |||
type inet:ip-address; | description "RSVP destination port"; | |||
description "RSVP source address"; | reference "RFC2205"; | |||
reference "RFC2205"; | } | |||
} | leaf source { | |||
leaf destination { | type inet:ip-address; | |||
type inet:ip-address; | description "RSVP source address"; | |||
description "RSVP destination address"; | reference "RFC2205"; | |||
reference "RFC2205"; | } | |||
leaf destination { | ||||
type inet:ip-address; | ||||
description "RSVP destination address"; | ||||
reference "RFC2205"; | ||||
} | ||||
uses session-attributes; | ||||
} | } | |||
uses session-attributes; | ||||
} | } | |||
} | ||||
container neighbors { | container neighbors { | |||
description | ||||
"RSVP neighbors container"; | ||||
list neighbor { | ||||
key "address"; | ||||
description | description | |||
"List of RSVP neighbors"; | "RSVP neighbors container"; | |||
leaf address { | list neighbor { | |||
type inet:ip-address; | key "address"; | |||
description | description | |||
"Neighbor address"; | "List of RSVP neighbors"; | |||
leaf address { | ||||
type inet:ip-address; | ||||
description | ||||
"Neighbor address"; | ||||
} | ||||
uses neighbor-attributes; | ||||
} | } | |||
uses neighbor-attributes; | ||||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
3.2. RSVP Extended YANG Model | 3.2. RSVP Extended YANG Model | |||
The RSVP extended YANG model covers optional configuration(s) for | The RSVP extended YANG model covers optional configuration(s) for | |||
RSVP core feature(s). It also covers non-core RSVP feature(s) that | RSVP core feature(s). It also covers non-core RSVP feature(s) that | |||
are negotiated with "if-feature" checks. | are negotiated with "if-feature" checks. | |||
3.2.1. Configuration and State Data | 3.2.1. Configuration and State Data | |||
skipping to change at page 31, line 29 ¶ | skipping to change at page 32, line 26 ¶ | |||
The RSVP extended YANG model covers optional configuration(s) for | The RSVP extended YANG model covers optional configuration(s) for | |||
RSVP core feature(s). It also covers non-core RSVP feature(s) that | RSVP core feature(s). It also covers non-core RSVP feature(s) that | |||
are negotiated with "if-feature" checks. | are negotiated with "if-feature" checks. | |||
3.2.1. Configuration and State Data | 3.2.1. Configuration and State Data | |||
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 basic module: | |||
module: ietf-rsvp-extended | module: ietf-rsvp-extended | |||
augment /rsvp:rsvp/rsvp:globals/rsvp:config/ | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
rsvp:graceful-restart: | rsvp:globals/rsvp:config/rsvp:graceful-restart: | |||
+--rw restart-time? uint32 | +--rw restart-time? uint32 | |||
+--rw recovery-time? uint32 | +--rw recovery-time? uint32 | |||
augment /rsvp:rsvp/rsvp:globals/rsvp:state/ | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
rsvp:graceful-restart: | rsvp:globals/rsvp:state/rsvp:graceful-restart: | |||
+--ro restart-time? uint32 | +--ro restart-time? uint32 | |||
+--ro recovery-time? uint32 | +--ro recovery-time? uint32 | |||
augment /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:packets-stats: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--ro discontinuity-time? yang:date-and-time | rsvp:globals/rsvp:state/rsvp:packets-stats: | |||
+--ro tx-dropped? yang:counter32 | +--ro discontinuity-time? yang:date-and-time | |||
+--ro rx-dropped? yang:counter32 | +--ro tx-dropped? yang:counter32 | |||
+--ro tx-error? yang:counter32 | +--ro rx-dropped? yang:counter32 | |||
+--ro rx-error? yang:counter32 | +--ro tx-error? yang:counter32 | |||
augment /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:protocol-stats: | +--ro rx-error? yang:counter32 | |||
augment /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:errors-stats: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:config: | rsvp:globals/rsvp:state/rsvp:protocol-stats: | |||
+--rw refresh-interval? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw refresh-misses? uint32 | rsvp:globals/rsvp:state/rsvp:errors-stats: | |||
+--rw checksum? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw patherr-state-removal? empty | rsvp:interfaces/rsvp:config: | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:state: | +--rw refresh-interval? uint32 | |||
+--rw refresh-misses? uint32 | ||||
+--rw checksum? uint32 | ||||
+--rw patherr-state-removal? empty | ||||
+--ro refresh-interval? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--ro refresh-misses? uint32 | rsvp:interfaces/rsvp:state: | |||
+--ro checksum? uint32 | +--ro refresh-interval? uint32 | |||
+--ro patherr-state-removal? empty | +--ro refresh-misses? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:config/ | +--ro checksum? uint32 | |||
rsvp:refresh-reduction: | +--ro patherr-state-removal? empty | |||
+--rw bundle-message-max-size? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw reliable-ack-hold-time? uint32 | rsvp:interfaces/rsvp:config/rsvp:refresh-reduction: | |||
+--rw reliable-ack-max-size? uint32 | +--rw bundle-message-max-size? uint32 | |||
+--rw reliable-retransmit-time? uint32 | +--rw reliable-ack-hold-time? uint32 | |||
+--rw reliable-srefresh? empty | +--rw reliable-ack-max-size? uint32 | |||
+--rw summary-max-size? uint32 | +--rw reliable-retransmit-time? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:refresh-reduction: | +--rw reliable-srefresh? empty | |||
+--ro bundle-message-max-size? uint32 | +--rw summary-max-size? uint32 | |||
+--ro reliable-ack-hold-time? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--ro reliable-ack-max-size? uint32 | rsvp:interfaces/rsvp:state/rsvp:refresh-reduction: | |||
+--ro reliable-retransmit-time? uint32 | +--ro bundle-message-max-size? uint32 | |||
+--ro reliable-srefresh? empty | +--ro reliable-ack-hold-time? uint32 | |||
+--ro summary-max-size? uint32 | +--ro reliable-ack-max-size? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:rsvp-hellos: | +--ro reliable-retransmit-time? uint32 | |||
+--rw interface-based? empty | +--ro reliable-srefresh? empty | |||
+--rw hello-interval? uint32 | +--ro summary-max-size? uint32 | |||
+--rw hello-misses? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:rsvp-hellos: | rsvp:interfaces/rsvp:config/rsvp:rsvp-hellos: | |||
+--ro interface-based? empty | +--rw interface-based? empty | |||
+--ro hello-interval? uint32 | +--rw hello-interval? uint32 | |||
+--ro hello-misses? uint32 | +--rw hello-misses? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:authentication: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw lifetime? uint32 | rsvp:interfaces/rsvp:state/rsvp:rsvp-hellos: | |||
+--rw window-size? uint32 | +--ro interface-based? empty | |||
+--rw challenge? empty | +--ro hello-interval? uint32 | |||
+--rw retransmits? uint32 | +--ro hello-misses? uint32 | |||
+--rw key-chain? string | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:authentication: | rsvp:interfaces/rsvp:config/rsvp:authentication: | |||
+--ro lifetime? uint32 | +--rw lifetime? uint32 | |||
+--ro window-size? uint32 | +--rw window-size? uint32 | |||
+--ro challenge? empty | +--rw challenge? empty | |||
+--ro retransmits? uint32 | +--rw retransmits? uint32 | |||
+--ro key-chain? string | +--rw key-chain? string | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw refresh-interval? uint32 | rsvp:interfaces/rsvp:state/rsvp:authentication: | |||
+--rw refresh-misses? uint32 | +--ro lifetime? uint32 | |||
+--rw checksum? uint32 | +--ro window-size? uint32 | |||
+--rw patherr-state-removal? empty | +--ro challenge? empty | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state: | +--ro retransmits? uint32 | |||
+--ro refresh-interval? uint32 | +--ro key-chain? string | |||
+--ro refresh-misses? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--ro checksum? uint32 | rsvp:interfaces/rsvp:interface/rsvp:config: | |||
+--ro patherr-state-removal? empty | ||||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/ | +--rw refresh-interval? uint32 | |||
rsvp:refresh-reduction: | +--rw refresh-misses? uint32 | |||
+--rw bundle-message-max-size? uint32 | +--rw checksum? uint32 | |||
+--rw reliable-ack-hold-time? uint32 | +--rw patherr-state-removal? empty | |||
+--rw reliable-ack-max-size? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw reliable-retransmit-time? uint32 | rsvp:interfaces/rsvp:interface/rsvp:state: | |||
+--rw reliable-srefresh? empty | +--ro refresh-interval? uint32 | |||
+--rw summary-max-size? uint32 | +--ro refresh-misses? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/ | +--ro checksum? uint32 | |||
rsvp:refresh-reduction: | +--ro patherr-state-removal? empty | |||
+--ro bundle-message-max-size? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--ro reliable-ack-hold-time? uint32 | rsvp:interfaces/rsvp:interface/rsvp:config/rsvp:refresh-reduction: | |||
+--ro reliable-ack-max-size? uint32 | +--rw bundle-message-max-size? uint32 | |||
+--ro reliable-retransmit-time? uint32 | +--rw reliable-ack-hold-time? uint32 | |||
+--ro reliable-srefresh? empty | +--rw reliable-ack-max-size? uint32 | |||
+--ro summary-max-size? uint32 | +--rw reliable-retransmit-time? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/ | +--rw reliable-srefresh? empty | |||
rsvp:rsvp-hellos: | +--rw summary-max-size? uint32 | |||
+--rw interface-based? empty | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw hello-interval? uint32 | rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:refresh-reduction: | |||
+--rw hello-misses? uint32 | +--ro bundle-message-max-size? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/ | +--ro reliable-ack-hold-time? uint32 | |||
rsvp:rsvp-hellos: | +--ro reliable-ack-max-size? uint32 | |||
+--ro interface-based? empty | +--ro reliable-retransmit-time? uint32 | |||
+--ro hello-interval? uint32 | +--ro reliable-srefresh? empty | |||
+--ro hello-misses? uint32 | +--ro summary-max-size? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/ | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
rsvp:authentication: | rsvp:interfaces/rsvp:interface/rsvp:config/rsvp:rsvp-hellos: | |||
+--rw lifetime? uint32 | +--rw interface-based? empty | |||
+--rw window-size? uint32 | +--rw hello-interval? uint32 | |||
+--rw challenge? empty | +--rw hello-misses? uint32 | |||
+--rw retransmits? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw key-chain? string | rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:rsvp-hellos: | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/ | +--ro interface-based? empty | |||
rsvp:authentication: | +--ro hello-interval? uint32 | |||
+--ro lifetime? uint32 | +--ro hello-misses? uint32 | |||
+--ro window-size? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--ro challenge? empty | rsvp:interfaces/rsvp:interface/rsvp:config/rsvp:authentication: | |||
+--ro retransmits? uint32 | +--rw lifetime? uint32 | |||
+--ro key-chain? string | +--rw window-size? uint32 | |||
+--rw challenge? empty | ||||
+--rw retransmits? uint32 | ||||
+--rw key-chain? string | ||||
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | ||||
rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:authentication: | ||||
+--ro lifetime? uint32 | ||||
+--ro window-size? uint32 | ||||
+--ro challenge? empty | ||||
+--ro retransmits? uint32 | ||||
+--ro key-chain? string | ||||
Figure 3: RSVP extended YANG Tree representation | Figure 3: RSVP extended YANG Tree representation | |||
3.2.2. YANG Module | 3.2.2. YANG Module | |||
Figure 4 shows the RSVP extended YANG module: | Figure 4 shows the RSVP extended YANG module: | |||
<CODE BEGINS> file "ietf-rsvp-extended@2015-10-16.yang" | <CODE BEGINS> file "ietf-rsvp-extended@2016-03-20.yang" | |||
module ietf-rsvp-extended { | ||||
module ietf-rsvp-extended { | 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 { | |||
prefix "rsvp"; | ||||
} | ||||
import ietf-rsvp { | import ietf-routing { | |||
prefix "rsvp"; | prefix "rt"; | |||
} | } | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix "yang"; | prefix "yang"; | |||
} | } | |||
organization | organization | |||
"IETF TEAS Working Group"; | "IETF Traffic Engineering Architecture and Signaling (TEAS) | |||
Working Group"; | ||||
contact "TBA"; | contact | |||
"WG Web: <http://tools.ietf.org/wg/teas/> | ||||
WG List: <mailto:teas@ietf.org> | ||||
description | WG Chair: Lou Berger | |||
"This module contains the RSVP YANG data model."; | <mailto:lberger@labn.net> | |||
revision 2015-10-16 { | WG Chair: Vishnu Pavan Beeram | |||
description "Latest revision of RSVP extensions yang module."; | <mailto:vbeeram@juniper.net> | |||
reference "RFC2205"; | ||||
} | ||||
/* RSVP features */ | Editor: Vishnu Pavan Beeram | |||
feature authentication { | <mailto:vbeeram@juniper.net> | |||
description | ||||
"Indicates support for RSVP authentication"; | ||||
} | ||||
feature error-statistics { | Editor: Tarek Saad | |||
description | <mailto:tsaad@cisco.com> | |||
"Indicates support for error statistics"; | ||||
} | ||||
feature global-statistics { | Editor: Rakesh Gandhi | |||
description | <mailto:rgandhi@cisco.com> | |||
"Indicates support for global statistics"; | ||||
} | ||||
feature graceful-restart { | ||||
description | ||||
"Indicates support for RSVP graceful restart"; | ||||
} | ||||
feature hellos { | Editor: Himanshu Shah | |||
description | <mailto:hshah@ciena.com> | |||
"Indicates support for RSVP hellos (RFC3209)."; | ||||
} | ||||
feature notify { | Editor: Xufeng Liu | |||
description | <mailto:xufeng.liu@ericsson.com> | |||
"Indicates support for RSVP notify message (RFC3473)."; | ||||
} | ||||
feature refresh-reduction { | Editor: Xia Chen | |||
description | <mailto:jescia.chenxia@huawei.com> | |||
"Indicates support for RSVP refresh reduction | ||||
(RFC2961)."; | ||||
} | ||||
feature refresh-reduction-extended { | Editor: Raqib Jones | |||
description | <mailto:raqib@Brocade.com> | |||
"Indicates support for RSVP refresh reduction | ||||
(RFC2961)."; | ||||
} | ||||
feature per-interface-statistics { | Editor: Bin Wen | |||
description | <mailto:Bin_Wen@cable.comcast.com>"; | |||
"Indicates support for per interface statistics"; | ||||
} | ||||
grouping graceful-restart-extended_config { | description | |||
description | "This module contains the Extended RSVP YANG data model."; | |||
"Configuration parameters relating to RSVP | ||||
Graceful-Restart"; | ||||
leaf restart-time { | ||||
type uint32; | ||||
units seconds; | ||||
description | ||||
"Graceful restart time (seconds)."; | ||||
reference | ||||
"RFC 5495: Description of the Resource | ||||
Reservation Protocol - Traffic-Engineered | ||||
(RSVP-TE) Graceful Restart Procedures"; | ||||
} | ||||
leaf recovery-time { | ||||
type uint32; | ||||
description | ||||
"RSVP state recovery time"; | ||||
} | ||||
} | ||||
grouping authentication-extended_config { | revision 2016-03-20 { | |||
description | description "Latest revision of RSVP extended yang module."; | |||
"Configuration parameters relating to RSVP | reference "RFC2205"; | |||
authentication"; | } | |||
leaf lifetime { | ||||
type uint32 { | ||||
range "30..86400"; | ||||
} | ||||
description | ||||
"Life time for each security association"; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
leaf window-size { | ||||
type uint32 { | ||||
range "1..64"; | ||||
} | ||||
description | ||||
"Window-size to limit number of out-of-order | ||||
messages."; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
leaf challenge { | ||||
type empty; | ||||
description | ||||
"Enable challenge messages."; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
leaf retransmits { | ||||
type uint32 { | ||||
range "1..10000"; | ||||
} | ||||
description | ||||
"Number of retransmits when messages are | ||||
dropped."; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | /* RSVP features */ | |||
leaf key-chain { | feature authentication { | |||
type string { | description | |||
length "1..32"; | "Indicates support for RSVP authentication"; | |||
} | } | |||
description | ||||
"Key chain name to authenticate RSVP | ||||
signaling messages."; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
} | ||||
grouping rsvp-hellos-extended_config { | feature error-statistics { | |||
description | description | |||
"Configuration parameters relating to RSVP | "Indicates support for error statistics"; | |||
hellos"; | } | |||
leaf interface-based { | ||||
type empty; | ||||
description "Enable interface-based | ||||
Hello adjacency if present."; | ||||
} | ||||
leaf hello-interval { | ||||
type uint32; | ||||
units milliseconds; | ||||
description | ||||
"Configure interval between successive Hello | ||||
messages in milliseconds."; | ||||
reference | ||||
"RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
LSP Tunnels. | ||||
RFC 5495: Description of the Resource | ||||
Reservation Protocol - Traffic-Engineered | ||||
(RSVP-TE) Graceful Restart Procedures"; | ||||
} | ||||
leaf hello-misses { | ||||
type uint32 { | ||||
range "1..10"; | ||||
} | ||||
description | ||||
"Configure max number of consecutive missed | ||||
Hello messages."; | ||||
reference | ||||
"RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
LSP Tunnels RFC 5495: Description of the | ||||
Resource Reservation Protocol - Traffic- | ||||
Engineered (RSVP-TE) Graceful Restart | ||||
Procedures"; | ||||
} | ||||
} | ||||
grouping signaling-parameters-extended_config { | feature global-statistics { | |||
description | description | |||
"Configuration parameters relating to RSVP | "Indicates support for global statistics"; | |||
signaling"; | } | |||
leaf refresh-interval { | ||||
type uint32; | ||||
description | ||||
"Set interval between successive refreshes"; | ||||
} | ||||
leaf refresh-misses { | ||||
type uint32; | ||||
description | ||||
"Set max number of consecutive missed | ||||
messages for state expiry"; | ||||
} | ||||
leaf checksum { | ||||
type uint32; | ||||
description | ||||
"Enable RSVP message checksum computation"; | ||||
} | ||||
leaf patherr-state-removal { | ||||
type empty; | ||||
description | ||||
"State-Removal flag in Path Error message | ||||
if present."; | ||||
} | ||||
} | ||||
grouping refresh-reduction-extended_config { | feature graceful-restart { | |||
description | description | |||
"Configuration parameters relating to RSVP | "Indicates support for RSVP graceful restart"; | |||
refresh reduction"; | } | |||
leaf bundle-message-max-size { | feature hellos { | |||
type uint32 { | description | |||
range "512..65000"; | "Indicates support for RSVP hellos (RFC3209)."; | |||
} | } | |||
description | ||||
"Configure maximum size (bytes) of a | ||||
single RSVP Bundle message."; | ||||
} | ||||
leaf reliable-ack-hold-time { | ||||
type uint32; | ||||
units milliseconds; | ||||
description | ||||
"Configure hold time in milliseconds for | ||||
sending RSVP ACK message(s)."; | ||||
} | ||||
leaf reliable-ack-max-size { | ||||
type uint32; | ||||
description | ||||
"Configure max size of a single RSVP ACK | ||||
message."; | ||||
} | ||||
leaf reliable-retransmit-time { | ||||
type uint32; | ||||
units milliseconds; | ||||
description | ||||
"Configure min delay in milliseconds to | ||||
wait for an ACK before a retransmit."; | ||||
} | ||||
leaf reliable-srefresh { | ||||
type empty; | ||||
description | ||||
"Configure use of reliable messaging for | ||||
summary refresh if present."; | ||||
} | ||||
leaf summary-max-size { | ||||
type uint32 { | ||||
range "20..65000"; | ||||
} | ||||
description | ||||
"Configure max size (bytes) of a single | ||||
RSVP summary refresh message."; | ||||
} | ||||
} | ||||
grouping statistics-packets-extended_state { | feature notify { | |||
description | description | |||
"Packet statistics."; | "Indicates support for RSVP notify message (RFC3473)."; | |||
leaf discontinuity-time { | } | |||
type yang:date-and-time; | ||||
description | ||||
"The time on the most recent occasion at which any one | ||||
or more of the statistic counters suffered a | ||||
discontinuity. If no such discontinuities have occurred | ||||
since the last re-initialization of the local | ||||
management subsystem, then this node contains the time | ||||
the local management subsystem re-initialized itself."; | ||||
} | ||||
leaf tx-dropped { | ||||
type yang:counter32; | ||||
description | ||||
"Packet tx dropped count"; | ||||
} | ||||
leaf rx-dropped { | feature refresh-reduction { | |||
type yang:counter32; | description | |||
description | "Indicates support for RSVP refresh reduction | |||
"Packet rx dropped count"; | (RFC2961)."; | |||
} | } | |||
leaf tx-error { | feature refresh-reduction-extended { | |||
type yang:counter32; | description | |||
description | "Indicates support for RSVP refresh reduction | |||
"Packet tx error count"; | (RFC2961)."; | |||
} | } | |||
leaf rx-error { | feature per-interface-statistics { | |||
type yang:counter32; | description | |||
description | "Indicates support for per interface statistics"; | |||
"Packet rx error count"; | } | |||
} | ||||
} | ||||
grouping statistics-protocol-extended_state { | grouping graceful-restart-extended_config { | |||
description | description | |||
"RSVP protocol statistics."; | "Configuration parameters relating to RSVP | |||
} | Graceful-Restart"; | |||
leaf restart-time { | ||||
type uint32; | ||||
units seconds; | ||||
description | ||||
"Graceful restart time (seconds)."; | ||||
reference | ||||
"RFC 5495: Description of the Resource | ||||
Reservation Protocol - Traffic-Engineered | ||||
(RSVP-TE) Graceful Restart Procedures"; | ||||
} | ||||
leaf recovery-time { | ||||
type uint32; | ||||
description | ||||
"RSVP state recovery time"; | ||||
} | ||||
} | ||||
grouping statistics-errors-extended_state { | grouping authentication-extended_config { | |||
description | description | |||
"Error statistics."; | "Configuration parameters relating to RSVP | |||
} | authentication"; | |||
leaf lifetime { | ||||
type uint32 { | ||||
range "30..86400"; | ||||
} | ||||
description | ||||
"Life time for each security association"; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
leaf window-size { | ||||
type uint32 { | ||||
range "1..64"; | ||||
} | ||||
description | ||||
"Window-size to limit number of out-of-order | ||||
messages."; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
leaf challenge { | ||||
type empty; | ||||
description | ||||
"Enable challenge messages."; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
leaf retransmits { | ||||
type uint32 { | ||||
range "1..10000"; | ||||
} | ||||
description | ||||
"Number of retransmits when messages are | ||||
dropped."; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
leaf key-chain { | ||||
type string { | ||||
length "1..32"; | ||||
} | ||||
description | ||||
"Key chain name to authenticate RSVP | ||||
signaling messages."; | ||||
reference | ||||
"RFC 2747: RSVP Cryptographic | ||||
Authentication"; | ||||
} | ||||
} | ||||
grouping statistics-extended_state { | grouping rsvp-hellos-extended_config { | |||
description "RSVP statistic attributes."; | description | |||
uses statistics-packets-extended_state; | "Configuration parameters relating to RSVP | |||
uses statistics-protocol-extended_state; | hellos"; | |||
uses statistics-errors-extended_state; | leaf interface-based { | |||
} | type empty; | |||
description "Enable interface-based | ||||
Hello adjacency if present."; | ||||
} | ||||
leaf hello-interval { | ||||
type uint32; | ||||
units milliseconds; | ||||
description | ||||
"Configure interval between successive Hello | ||||
messages in milliseconds."; | ||||
reference | ||||
"RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
LSP Tunnels. | ||||
RFC 5495: Description of the Resource | ||||
Reservation Protocol - Traffic-Engineered | ||||
(RSVP-TE) Graceful Restart Procedures"; | ||||
} | ||||
leaf hello-misses { | ||||
type uint32 { | ||||
range "1..10"; | ||||
} | ||||
description | ||||
"Configure max number of consecutive missed | ||||
Hello messages."; | ||||
reference | ||||
"RFC 3209: RSVP-TE: Extensions to RSVP for | ||||
LSP Tunnels RFC 5495: Description of the | ||||
Resource Reservation Protocol - Traffic- | ||||
Engineered (RSVP-TE) Graceful Restart | ||||
Procedures"; | ||||
} | ||||
} | ||||
/** | grouping signaling-parameters-extended_config { | |||
* RSVP extensions augmentations | description | |||
*/ | "Configuration parameters relating to RSVP | |||
signaling"; | ||||
leaf refresh-interval { | ||||
type uint32; | ||||
description | ||||
"Set interval between successive refreshes"; | ||||
} | ||||
leaf refresh-misses { | ||||
type uint32; | ||||
description | ||||
"Set max number of consecutive missed | ||||
messages for state expiry"; | ||||
} | ||||
leaf checksum { | ||||
type uint32; | ||||
description | ||||
"Enable RSVP message checksum computation"; | ||||
} | ||||
leaf patherr-state-removal { | ||||
type empty; | ||||
description | ||||
"State-Removal flag in Path Error message | ||||
if present."; | ||||
} | ||||
} | ||||
/* RSVP globals graceful restart*/ | grouping refresh-reduction-extended_config { | |||
augment "/rsvp:rsvp/rsvp:globals/rsvp:config/"+ | description | |||
"rsvp:graceful-restart" { | "Configuration parameters relating to RSVP | |||
description | refresh reduction"; | |||
"RSVP globals configuration extensions"; | ||||
uses graceful-restart-extended_config; | ||||
} | ||||
augment "/rsvp:rsvp/rsvp:globals/rsvp:state/"+ | ||||
"rsvp:graceful-restart" { | ||||
description | ||||
"RSVP globals state extensions"; | ||||
uses graceful-restart-extended_config; | ||||
} | ||||
/* RSVP statistics augmentation */ | leaf bundle-message-max-size { | |||
augment "/rsvp:rsvp/rsvp:globals/rsvp:state/"+ | type uint32 { | |||
"rsvp:packets-stats" { | range "512..65000"; | |||
description | } | |||
"RSVP packet stats extensions"; | description | |||
uses statistics-packets-extended_state; | "Configure maximum size (bytes) of a | |||
} | single RSVP Bundle message."; | |||
augment "/rsvp:rsvp/rsvp:globals/rsvp:state/"+ | } | |||
"rsvp:protocol-stats" { | leaf reliable-ack-hold-time { | |||
description | type uint32; | |||
"RSVP protocol message stats extensions"; | units milliseconds; | |||
uses statistics-protocol-extended_state; | description | |||
} | "Configure hold time in milliseconds for | |||
augment "/rsvp:rsvp/rsvp:globals/rsvp:state/"+ | sending RSVP ACK message(s)."; | |||
"rsvp:errors-stats" { | } | |||
description | leaf reliable-ack-max-size { | |||
"RSVP errors stats extensions"; | type uint32; | |||
uses statistics-errors-extended_state; | description | |||
} | "Configure max size of a single RSVP ACK | |||
message."; | ||||
} | ||||
leaf reliable-retransmit-time { | ||||
type uint32; | ||||
units milliseconds; | ||||
description | ||||
"Configure min delay in milliseconds to | ||||
wait for an ACK before a retransmit."; | ||||
} | ||||
leaf reliable-srefresh { | ||||
type empty; | ||||
description | ||||
"Configure use of reliable messaging for | ||||
summary refresh if present."; | ||||
} | ||||
leaf summary-max-size { | ||||
type uint32 { | ||||
range "20..65000"; | ||||
} | ||||
description | ||||
"Configure max size (bytes) of a single | ||||
RSVP summary refresh message."; | ||||
} | ||||
} | ||||
/** | grouping statistics-packets-extended_state { | |||
* RSVP all interfaces extensions | description | |||
*/ | "Packet statistics."; | |||
leaf discontinuity-time { | ||||
type yang:date-and-time; | ||||
description | ||||
"The time on the most recent occasion at which any one | ||||
or more of the statistic counters suffered a | ||||
discontinuity. If no such discontinuities have occurred | ||||
since the last re-initialization of the local | ||||
management subsystem, then this node contains the time | ||||
the local management subsystem re-initialized itself."; | ||||
} | ||||
leaf tx-dropped { | ||||
type yang:counter32; | ||||
description | ||||
"Packet tx dropped count"; | ||||
} | ||||
/* RSVP interface signaling extensions */ | leaf rx-dropped { | |||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:config" { | type yang:counter32; | |||
description | description | |||
"RSVP signaling all interfaces configuration extensions"; | "Packet rx dropped count"; | |||
uses signaling-parameters-extended_config; | } | |||
} | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:state" { | ||||
description | ||||
"RSVP signaling all interfaces state extensions"; | ||||
uses signaling-parameters-extended_config; | ||||
} | ||||
/* RSVP refresh reduction extension */ | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:config/" + | ||||
"rsvp:refresh-reduction" { | ||||
description | ||||
"RSVP refresh-reduction all interface configuration | ||||
extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:state/" + | ||||
"rsvp:refresh-reduction" { | ||||
description | ||||
"RSVP refresh-reduction all interfaces state extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
/* RSVP hellos extension */ | leaf tx-error { | |||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:rsvp-hellos" { | type yang:counter32; | |||
description | description | |||
"RSVP hello all interfaces configuration extensions"; | "Packet tx error count"; | |||
uses rsvp-hellos-extended_config; | } | |||
} | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:rsvp-hellos" { | ||||
description | ||||
"RSVP hello all interfaces state extensions"; | ||||
uses rsvp-hellos-extended_config; | ||||
} | ||||
/* RSVP authentication extension */ | leaf rx-error { | |||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:config/" + | type yang:counter32; | |||
"rsvp:authentication" { | description | |||
description | "Packet rx error count"; | |||
"RSVP authentication all interfaces configuration extensions"; | } | |||
uses authentication-extended_config; | } | |||
} | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:state/" + | ||||
"rsvp:authentication" { | ||||
description | ||||
"RSVP authentication all interfaces state extensions"; | ||||
uses authentication-extended_config; | ||||
} | ||||
/** | grouping statistics-protocol-extended_state { | |||
* RSVP interface extensions | description | |||
*/ | "RSVP protocol statistics."; | |||
} | ||||
/* RSVP interface signaling extensions */ | grouping statistics-errors-extended_state { | |||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config" { | description | |||
description | "Error statistics."; | |||
"RSVP signaling interface configuration extensions"; | } | |||
uses signaling-parameters-extended_config; | ||||
} | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state" { | ||||
description | ||||
"RSVP signaling interface state extensions"; | ||||
uses signaling-parameters-extended_config; | ||||
} | ||||
/* RSVP refresh reduction extension */ | grouping statistics-extended_state { | |||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/" + | description "RSVP statistic attributes."; | |||
"rsvp:refresh-reduction" { | uses statistics-packets-extended_state; | |||
description | uses statistics-protocol-extended_state; | |||
"RSVP refresh-reduction interface configuration extensions"; | uses statistics-errors-extended_state; | |||
uses refresh-reduction-extended_config; | } | |||
} | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/" + | ||||
"rsvp:refresh-reduction" { | ||||
description | ||||
"RSVP refresh-reduction interface state extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
/* RSVP hellos extension */ | /** | |||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/" + | * RSVP extensions augmentations | |||
"rsvp:rsvp-hellos" { | */ | |||
description | ||||
"RSVP hello interface configuration extensions"; | ||||
uses rsvp-hellos-extended_config; | ||||
} | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/" + | ||||
"rsvp:rsvp-hellos" { | ||||
description | ||||
"RSVP hello interface state extensions"; | ||||
uses rsvp-hellos-extended_config; | ||||
} | ||||
/* RSVP authentication extension */ | /* RSVP globals graceful restart*/ | |||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/" + | ||||
"rsvp:authentication" { | augment "/rt:routing/rt:routing-protocols/" | |||
description | + "rt:routing-protocol/rsvp:rsvp/rsvp:globals/rsvp:config/"+ | |||
"RSVP authentication interface configuration extensions"; | "rsvp:graceful-restart" { | |||
uses authentication-extended_config; | description | |||
} | "RSVP globals configuration extensions"; | |||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/" + | uses graceful-restart-extended_config; | |||
"rsvp:authentication" { | } | |||
description | augment "/rt:routing/rt:routing-protocols/" | |||
"RSVP authentication interface state extensions"; | + "rt:routing-protocol/rsvp:rsvp/rsvp:globals/rsvp:state/"+ | |||
uses authentication-extended_config; | "rsvp:graceful-restart" { | |||
} | description | |||
} | "RSVP globals state extensions"; | |||
<CODE ENDS> | uses graceful-restart-extended_config; | |||
} | ||||
/* RSVP statistics augmentation */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:globals/rsvp:state/"+ | ||||
"rsvp:packets-stats" { | ||||
description | ||||
"RSVP packet stats extensions"; | ||||
uses statistics-packets-extended_state; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:globals/rsvp:state/"+ | ||||
"rsvp:protocol-stats" { | ||||
description | ||||
"RSVP protocol message stats extensions"; | ||||
uses statistics-protocol-extended_state; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:globals/rsvp:state/"+ | ||||
"rsvp:errors-stats" { | ||||
description | ||||
"RSVP errors stats extensions"; | ||||
uses statistics-errors-extended_state; | ||||
} | ||||
/** | ||||
* RSVP all interfaces extensions | ||||
*/ | ||||
/* RSVP interface signaling extensions */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:config" { | ||||
description | ||||
"RSVP signaling all interfaces configuration extensions"; | ||||
uses signaling-parameters-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:state" { | ||||
description | ||||
"RSVP signaling all interfaces state extensions"; | ||||
uses signaling-parameters-extended_config; | ||||
} | ||||
/* RSVP refresh reduction extension */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:config/" + | ||||
"rsvp:refresh-reduction" { | ||||
description | ||||
"RSVP refresh-reduction all interface configuration | ||||
extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:state/" + | ||||
"rsvp:refresh-reduction" { | ||||
description | ||||
"RSVP refresh-reduction all interfaces state extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
/* RSVP hellos extension */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:config/" + | ||||
"rsvp:rsvp-hellos" { | ||||
description | ||||
"RSVP hello all interfaces configuration extensions"; | ||||
uses rsvp-hellos-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:state/" + | ||||
"rsvp:rsvp-hellos" { | ||||
description | ||||
"RSVP hello all interfaces state extensions"; | ||||
uses rsvp-hellos-extended_config; | ||||
} | ||||
/* RSVP authentication extension */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:config/" + | ||||
"rsvp:authentication" { | ||||
description | ||||
"RSVP authentication all interfaces configuration extensions"; | ||||
uses authentication-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:state/" + | ||||
"rsvp:authentication" { | ||||
description | ||||
"RSVP authentication all interfaces state extensions"; | ||||
uses authentication-extended_config; | ||||
} | ||||
/** | ||||
* RSVP interface extensions | ||||
*/ | ||||
/* RSVP interface signaling extensions */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:config" { | ||||
description | ||||
"RSVP signaling interface configuration extensions"; | ||||
uses signaling-parameters-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:state" { | ||||
description | ||||
"RSVP signaling interface state extensions"; | ||||
uses signaling-parameters-extended_config; | ||||
} | ||||
/* RSVP refresh reduction extension */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:config/rsvp:refresh-reduction" { | ||||
description | ||||
"RSVP refresh-reduction interface configuration extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:state/rsvp:refresh-reduction" { | ||||
description | ||||
"RSVP refresh-reduction interface state extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
/* RSVP hellos extension */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:config/rsvp:rsvp-hellos" { | ||||
description | ||||
"RSVP hello interface configuration extensions"; | ||||
uses rsvp-hellos-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:state/rsvp:rsvp-hellos" { | ||||
description | ||||
"RSVP hello interface state extensions"; | ||||
uses rsvp-hellos-extended_config; | ||||
} | ||||
/* RSVP authentication extension */ | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:config/rsvp:authentication" { | ||||
description | ||||
"RSVP authentication interface configuration extensions"; | ||||
uses authentication-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:state/rsvp:authentication" { | ||||
description | ||||
"RSVP authentication interface state extensions"; | ||||
uses authentication-extended_config; | ||||
} | ||||
} | ||||
<CODE ENDS> | ||||
Figure 4: RSVP extended YANG module | Figure 4: RSVP extended YANG module | |||
3.3. RSVP-TE Generic YANG Model | 3.3. RSVP-TE Generic YANG Model | |||
This section contains the augmentation of the RSVP base YANG model | This section contains the augmentation of the RSVP base YANG model | |||
for signalling Traffic-Engineering (RSVP-TE) Label Switched Paths | for signalling Traffic-Engineering (RSVP-TE) Label Switched Paths | |||
(LSPs). New module is introduced that augment the RSVP-TE generic | (LSPs). New module is introduced that augment the RSVP-TE generic | |||
module to cover data items that are technology agnostic. | module to cover data items that are technology agnostic. | |||
skipping to change at page 44, line 31 ¶ | skipping to change at page 47, line 4 ¶ | |||
TE generic model pertaining to configuration and state data. | TE generic model pertaining to configuration and state data. | |||
3.3.1. Configuration and State Data | 3.3.1. Configuration and State Data | |||
There are three types of configuration and state data nodes in this | There are three types of configuration and state data nodes in this | |||
module: | module: | |||
o those augmenting or extending the base RSVP module | o those augmenting or extending the base RSVP module | |||
o those augmenting or extending the base TE generic module | o those augmenting or extending the base TE generic module | |||
o those that are specific to the RSVP-TE module | o those that are specific to the RSVP-TE module | |||
Below is a YANG tree representation for data items defined in the | Below is a YANG tree representation for data items defined in the | |||
RSVP-TE generic module: | RSVP-TE generic module: | |||
module: ietf-rsvp-te | module: ietf-rsvp-te | |||
augment /rsvp:rsvp/rsvp:globals: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
augment /rsvp:rsvp/rsvp:interfaces: | rsvp:globals: | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
augment /rsvp:rsvp/rsvp:sessions: | rsvp:interfaces: | |||
augment /rsvp:rsvp/rsvp:neighbors: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
augment /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel: | rsvp:interfaces/rsvp:interface: | |||
+--rw config | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
| +--rw lsp-source? inet:ip-address | rsvp:sessions: | |||
| +--rw lsp-signaled-name? string | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
| +--rw lsp-priority-setup? uint8 | rsvp:neighbors: | |||
| +--rw lsp-priority-hold? uint8 | augment /te:te/te:tunnels/te:tunnel: | |||
| +--rw local-recording-desired? empty | +--rw config | |||
| +--rw se-style-desired? empty | | +--rw lsp-signaled-name? string | |||
| +--rw path-reevaluation-request? empty | | +--rw lsp-priority-setup? uint8 | |||
| +--rw soft-preemption-desired? empty | | +--rw lsp-priority-hold? uint8 | |||
| +--rw lsp-rerouting? enumeration | | +--rw local-recording-desired? boolean | |||
| +--rw lsp-integrety-required? empty | | +--rw se-style-desired? boolean | |||
| +--rw lsp-contiguous? empty | | +--rw path-reevaluation-request? boolean | |||
| +--rw lsp-stitching-desired? empty | | +--rw soft-preemption-desired? boolean | |||
| +--rw lsp-preplanned? empty | | +--rw lsp-rerouting? enumeration | |||
| +--rw lsp-oob-mapping? empty | | +--rw lsp-integrety-required? boolean | |||
+--ro state | | +--rw lsp-contiguous? boolean | |||
+--ro lsp-source? inet:ip-address | | +--rw lsp-stitching-desired? boolean | |||
+--ro lsp-signaled-name? string | | +--rw lsp-preplanned? boolean | |||
+--ro lsp-priority-setup? uint8 | | +--rw lsp-oob-mapping? boolean | |||
+--ro lsp-priority-hold? uint8 | +--ro state | |||
+--ro local-recording-desired? empty | +--ro lsp-signaled-name? string | |||
+--ro se-style-desired? empty | +--ro lsp-priority-setup? uint8 | |||
+--ro path-reevaluation-request? empty | +--ro lsp-priority-hold? uint8 | |||
+--ro soft-preemption-desired? empty | +--ro local-recording-desired? boolean | |||
+--ro lsp-rerouting? enumeration | +--ro se-style-desired? boolean | |||
+--ro lsp-integrety-required? empty | +--ro path-reevaluation-request? boolean | |||
+--ro lsp-contiguous? empty | +--ro soft-preemption-desired? boolean | |||
+--ro lsp-stitching-desired? empty | +--ro lsp-rerouting? enumeration | |||
+--ro lsp-preplanned? empty | +--ro lsp-integrety-required? boolean | |||
+--ro lsp-oob-mapping? empty | +--ro lsp-contiguous? boolean | |||
augment /ietf-te:te/ietf-te:interfaces/ietf-te:interface: | +--ro lsp-stitching-desired? boolean | |||
augment /ietf-te:te/ietf-te:lsps-state/ietf-te:lsp: | +--ro lsp-preplanned? boolean | |||
+--ro lsp-source? inet:ip-address | +--ro lsp-oob-mapping? boolean | |||
+--ro lsp-signaled-name? string | augment /te:te/te:lsps-state/te:lsp: | |||
+--ro lsp-priority-setup? uint8 | +--ro lsp-signaled-name? string | |||
+--ro lsp-priority-hold? uint8 | +--ro lsp-priority-setup? uint8 | |||
+--ro local-recording-desired? empty | +--ro lsp-priority-hold? uint8 | |||
+--ro se-style-desired? empty | +--ro local-recording-desired? boolean | |||
+--ro path-reevaluation-request? empty | +--ro se-style-desired? boolean | |||
+--ro soft-preemption-desired? empty | +--ro path-reevaluation-request? boolean | |||
+--ro lsp-rerouting? enumeration | +--ro soft-preemption-desired? boolean | |||
+--ro lsp-integrety-required? empty | +--ro lsp-rerouting? enumeration | |||
+--ro lsp-contiguous? empty | +--ro lsp-integrety-required? boolean | |||
+--ro lsp-stitching-desired? empty | +--ro lsp-contiguous? boolean | |||
+--ro lsp-preplanned? empty | +--ro lsp-stitching-desired? boolean | |||
+--ro lsp-oob-mapping? empty | +--ro lsp-preplanned? boolean | |||
+--ro explicit-route-object | +--ro lsp-oob-mapping? boolean | |||
| +--ro incoming-explicit-route-subobjects* [subobject-index] | +--ro explicit-route-object | |||
| | +--ro subobject-index uint32 | | +--ro incoming-explicit-route-subobjects* [subobject-index] | |||
| | +--ro (type)? | | | +--ro subobject-index uint32 | |||
| | +--:(ipv4-address) | | | +--ro (type)? | |||
| | | +--ro v4-address? inet:ipv4-address | | | +--:(ipv4-address) | |||
| | | +--ro v4-prefix-length? uint8 | | | | +--ro v4-address? inet:ipv4-address | |||
| | | +--ro v4-loose? boolean | | | | +--ro v4-prefix-length? uint8 | |||
| | +--:(ipv6-address) | | | | +--ro v4-loose? boolean | |||
| | | +--ro v6-address? inet:ipv6-address | | | +--:(ipv6-address) | |||
| | | +--ro v6-prefix-length? uint8 | | | | +--ro v6-address? inet:ipv6-address | |||
| | | +--ro v6-loose? boolean | | | | +--ro v6-prefix-length? uint8 | |||
| | +--:(as-number) | | | | +--ro v6-loose? boolean | |||
| | | +--ro as-number? uint16 | | | +--:(as-number) | |||
| | +--:(unnumbered-link) | | | | +--ro as-number? uint16 | |||
| | | +--ro router-id? inet:ip-address | | | +--:(unnumbered-link) | |||
| | | +--ro interface-id? uint32 | | | | +--ro router-id? inet:ip-address | |||
| | +--:(label) | | | | +--ro interface-id? uint32 | |||
| | +--ro value? uint32 | | | +--:(label) | |||
| +--ro outgoing-explicit-route-subobjects* [subobject-index] | | | +--ro value? uint32 | |||
| +--ro subobject-index uint32 | | +--ro outgoing-explicit-route-subobjects* [subobject-index] | |||
| +--ro (type)? | | +--ro subobject-index uint32 | |||
| +--:(ipv4-address) | | +--ro (type)? | |||
| | +--ro v4-address? inet:ipv4-address | | +--:(ipv4-address) | |||
| | +--ro v4-prefix-length? uint8 | | | +--ro v4-address? inet:ipv4-address | |||
| | +--ro v4-loose? boolean | | | +--ro v4-prefix-length? uint8 | |||
| +--:(ipv6-address) | | | +--ro v4-loose? boolean | |||
| | +--ro v6-address? inet:ipv6-address | | +--:(ipv6-address) | |||
| | +--ro v6-prefix-length? uint8 | | | +--ro v6-address? inet:ipv6-address | |||
| | +--ro v6-loose? boolean | | | +--ro v6-prefix-length? uint8 | |||
| +--:(as-number) | | | +--ro v6-loose? boolean | |||
| | +--ro as-number? uint16 | | +--:(as-number) | |||
| +--:(unnumbered-link) | | | +--ro as-number? uint16 | |||
| | +--ro router-id? inet:ip-address | | +--:(unnumbered-link) | |||
| | +--ro interface-id? uint32 | | | +--ro router-id? inet:ip-address | |||
| +--:(label) | | | +--ro interface-id? uint32 | |||
| +--ro value? uint32 | | +--:(label) | |||
+--ro record-route-object | | +--ro value? uint32 | |||
+--ro path-record-route-subobjects* [subobject-index] | +--ro record-route-object | |||
| +--ro subobject-index uint32 | +--ro path-record-route-subobjects* [subobject-index] | |||
| +--ro (type)? | | +--ro subobject-index uint32 | |||
| +--:(ipv4-address) | | +--ro (type)? | |||
| | +--ro v4-address? inet:ipv4-address | | +--:(ipv4-address) | |||
| | +--ro v4-prefix-length? uint8 | | | +--ro v4-address? inet:ipv4-address | |||
| | +--ro v4-flags? uint8 | | | +--ro v4-prefix-length? uint8 | |||
| +--:(ipv6-address) | | | +--ro v4-flags? uint8 | |||
| | +--ro v6-address? inet:ipv6-address | | +--:(ipv6-address) | |||
| | +--ro v6-prefix-length? uint8 | | | +--ro v6-address? inet:ipv6-address | |||
| | +--ro v6-flags? uint8 | | | +--ro v6-prefix-length? uint8 | |||
| +--:(label) | | | +--ro v6-flags? uint8 | |||
| +--ro value? uint32 | | +--:(label) | |||
| +--ro flags? uint8 | | +--ro value? uint32 | |||
+--ro resv-record-route-subobjects* [subobject-index] | | +--ro flags? uint8 | |||
+--ro subobject-index uint32 | +--ro resv-record-route-subobjects* [subobject-index] | |||
+--ro (type)? | +--ro subobject-index uint32 | |||
+--:(ipv4-address) | +--ro (type)? | |||
| +--ro v4-address? inet:ipv4-address | +--:(ipv4-address) | |||
| +--ro v4-prefix-length? uint8 | | +--ro v4-address? inet:ipv4-address | |||
| +--ro v4-flags? uint8 | | +--ro v4-prefix-length? uint8 | |||
+--:(ipv6-address) | | +--ro v4-flags? uint8 | |||
| +--ro v6-address? inet:ipv6-address | +--:(ipv6-address) | |||
| +--ro v6-prefix-length? uint8 | | +--ro v6-address? inet:ipv6-address | |||
| +--ro v6-flags? uint8 | | +--ro v6-prefix-length? uint8 | |||
+--:(label) | | +--ro v6-flags? uint8 | |||
+--ro value? uint32 | +--:(label) | |||
+--ro flags? uint8 | +--ro value? uint32 | |||
+--ro flags? uint8 | ||||
augment /te:te/te-dev:interfaces/te-dev:interface: | ||||
Figure 5: RSVP-TE YANG Tree representation | Figure 5: RSVP-TE YANG Tree representation | |||
3.3.2. RPC and Notification Data | 3.3.2. RPC and Notification Data | |||
TBD. | TBD. | |||
3.3.3. YANG Module | 3.3.3. YANG Module | |||
<CODE BEGINS> file "ietf-rsvp-te@2015-10-16.yang" | <CODE BEGINS> file "ietf-rsvp-te@2016-03-20.yang" | |||
module ietf-rsvp-te { | module ietf-rsvp-te { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te"; | namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te"; | |||
prefix "rsvp-te"; | prefix "rsvp-te"; | |||
import ietf-rsvp { | import ietf-rsvp { | |||
prefix rsvp; | prefix rsvp; | |||
} | } | |||
import ietf-te { | import ietf-te { | |||
prefix ietf-te; | prefix ietf-te; | |||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
skipping to change at page 48, line 6 ¶ | skipping to change at page 50, line 29 ¶ | |||
} | } | |||
organization | organization | |||
"IETF TEAS Working Group"; | "IETF TEAS Working Group"; | |||
contact "TBA"; | contact "TBA"; | |||
description | description | |||
"This module contains the RSVP YANG generic data model."; | "This module contains the RSVP YANG generic data model."; | |||
revision 2015-10-16 { | revision 2016-03-20 { | |||
description "Latest revision to RSVP-TE generic YANG module"; | description "Latest revision to RSVP-TE generic YANG module"; | |||
reference "RFC3209"; | reference "RFC3209"; | |||
} | } | |||
/** | /** | |||
* RSVP-TE LSPs groupings. | * RSVP-TE LSPs groupings. | |||
*/ | */ | |||
grouping lsp-record-route-information_state { | grouping lsp-record-route-information_state { | |||
description "recorded route information grouping"; | description "recorded route information grouping"; | |||
skipping to change at page 55, line 5 ¶ | skipping to change at page 57, line 26 ¶ | |||
"RSVP-TE generic data augmentation pertaining to specific TE | "RSVP-TE generic data augmentation pertaining to specific TE | |||
LSP"; | LSP"; | |||
uses lsp-properties_config; | uses lsp-properties_config; | |||
uses lsp-explicit-route-information_state; | uses lsp-explicit-route-information_state; | |||
uses lsp-record-route-information_state; | uses lsp-record-route-information_state; | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
3.4. RSVP-TE MPLS Packet Model | 3.4. RSVP-TE MPLS Model | |||
This section describes the MPLS packet RSVP-TE YANG module that | This section describes the MPLS RSVP-TE YANG module that augments the | |||
augments the RSVP-TE generic module to signal packet MPLS LSPs. | RSVP-TE generic module to signal MPLS LSPs. RSVP-TE YANG modules for | |||
RSVP-TE YANG modules for other dataplane technologies (e.g. OTN or | other dataplane technologies (e.g. OTN or WDM) will be defined in | |||
WDM) will be defined in separate modules and in other drafts. | separate modules and in other drafts. | |||
The following subsections describe the configuration and state data . | The following subsections describe the configuration and state data . | |||
pertaining to RSVP-TE packet MPLS YANG data model. | pertaining to RSVP-TE MPLS YANG data model. | |||
3.4.1. Configuration and State Data | 3.4.1. Configuration and State Data | |||
The following are possible types of configuration and state data | The following are possible types of configuration and state data | |||
nodes in this module: | nodes in this module: | |||
o those augmenting or extending the generic RSVP-TE module | o those augmenting or extending the generic RSVP-TE module | |||
o those augmenting or extending the base TE generic module | o those augmenting or extending the base TE generic module | |||
o those that are specific to the RSVP-TE packet module | o those that are specific to the RSVP-TE MPLS module | |||
Below is a YANG tree representation for data items defined in the | Below is a YANG tree representation for data items defined in the | |||
RSVP-TE packet MPLS module: | RSVP-TE MPLS module: | |||
module: ietf-rsvp-te-psc | module: ietf-rsvp-te-mpls | |||
augment /rsvp:rsvp/rsvp:globals: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp: | |||
+--rw config | +--rw config | |||
| +--rw rsvp-frr-local-revert! | | +--rw rsvp-frr-local-revert! | |||
| +--rw rsvp-frr-local-revert-delay? uint32 | | +--rw rsvp-frr-local-revert-delay? uint32 | |||
+--ro state | +--ro state | |||
+--ro rsvp-frr-local-revert! | +--ro rsvp-frr-local-revert! | |||
+--ro rsvp-frr-local-revert-delay? uint32 | +--ro rsvp-frr-local-revert-delay? uint32 | |||
augment /rsvp:rsvp/rsvp:interfaces: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface: | rsvp:interfaces: | |||
augment /rsvp:rsvp/rsvp:sessions: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
augment /rsvp:rsvp/rsvp:neighbors: | rsvp:interfaces/rsvp:interface: | |||
augment /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel: | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
+--rw config | rsvp:sessions: | |||
| +--rw static-bandwidth? uint32 | augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | |||
| +--rw auto-bandwidth | rsvp:neighbors: | |||
| | +--rw enabled? boolean | augment /te:te/te:tunnels/te:tunnel: | |||
| | +--rw min-bw? uint32 | +--rw config | |||
| | +--rw max-bw? uint32 | | +--rw static-bandwidth? uint32 | |||
| | +--rw adjust-interval? uint32 | | +--rw auto-bandwidth | |||
| | +--rw adjust-threshold? uint32 | | | +--rw enabled? boolean | |||
| | +--rw overflow | | | +--rw min-bw? uint32 | |||
| | | +--rw enabled? boolean | | | +--rw max-bw? uint32 | |||
| | | +--rw overflow-threshold? uint32 | | | +--rw adjust-interval? uint32 | |||
| | | +--rw trigger-event-count? uint16 | | | +--rw adjust-threshold? uint32 | |||
| | +--rw underflow | | | +--rw overflow | |||
| | +--rw enabled? boolean | | | | +--rw enabled? boolean | |||
| | +--rw underflow-threshold? uint32 | | | | +--rw overflow-threshold? uint32 | |||
| | +--rw trigger-event-count? uint16 | | | | +--rw trigger-event-count? uint16 | |||
| +--rw local-protection-desired? empty | | | +--rw underflow | |||
| +--rw bandwidth-protection-desired? empty | | | +--rw enabled? boolean | |||
| +--rw node-protection-desired? empty | | | +--rw underflow-threshold? uint32 | |||
| +--rw non-php-desired? empty | | | +--rw trigger-event-count? uint16 | |||
| +--rw entropy-label-cap? empty | | +--rw local-protection-desired? empty | |||
| +--rw oam-mep-entities-desired? empty | | +--rw bandwidth-protection-desired? empty | |||
| +--rw oam-mip-entities-desired? empty | | +--rw node-protection-desired? empty | |||
+--ro state | | +--rw non-php-desired? empty | |||
+--ro static-bandwidth? uint32 | | +--rw entropy-label-cap? empty | |||
+--ro auto-bandwidth | | +--rw oam-mep-entities-desired? empty | |||
| +--ro enabled? boolean | | +--rw oam-mip-entities-desired? empty | |||
| +--ro min-bw? uint32 | +--rw state | |||
| +--ro max-bw? uint32 | +--rw static-bandwidth? uint32 | |||
| +--ro adjust-interval? uint32 | +--rw auto-bandwidth | |||
| +--ro adjust-threshold? uint32 | | +--rw enabled? boolean | |||
| +--ro overflow | | +--rw min-bw? uint32 | |||
| | +--ro enabled? boolean | | +--rw max-bw? uint32 | |||
| | +--ro overflow-threshold? uint32 | | +--rw adjust-interval? uint32 | |||
| | +--ro trigger-event-count? uint16 | | +--rw adjust-threshold? uint32 | |||
| +--ro underflow | | +--rw overflow | |||
| +--ro enabled? boolean | | | +--rw enabled? boolean | |||
| +--ro underflow-threshold? uint32 | | | +--rw overflow-threshold? uint32 | |||
| +--ro trigger-event-count? uint16 | | | +--rw trigger-event-count? uint16 | |||
+--ro local-protection-desired? empty | | +--rw underflow | |||
+--ro bandwidth-protection-desired? empty | | +--rw enabled? boolean | |||
+--ro node-protection-desired? empty | | +--rw underflow-threshold? uint32 | |||
+--ro non-php-desired? empty | | +--rw trigger-event-count? uint16 | |||
+--ro entropy-label-cap? empty | +--rw local-protection-desired? empty | |||
+--ro oam-mep-entities-desired? empty | +--rw bandwidth-protection-desired? empty | |||
+--ro oam-mip-entities-desired? empty | +--rw node-protection-desired? empty | |||
augment /ietf-te:te/ietf-te:interfaces/ietf-te:interface: | +--rw non-php-desired? empty | |||
+--rw config | +--rw entropy-label-cap? empty | |||
| +--rw (bandwidth-value)? | +--rw oam-mep-entities-desired? empty | |||
| | +--:(absolute) | +--rw oam-mip-entities-desired? empty | |||
| | | +--rw absolute-value? uint32 | augment /te:te/te:lsps-state/te:lsp: | |||
| | +--:(precentage) | +--ro static-bandwidth? uint32 | |||
| | +--rw percent-value? uint32 | +--ro auto-bandwidth | |||
| +--rw (bc-model-type)? | | +--ro enabled? boolean | |||
| +--:(bc-model-rdm) | | +--ro min-bw? uint32 | |||
| | +--rw bc-model-rdm | | +--ro max-bw? uint32 | |||
| | +--rw bandwidth-psc-constraints | | +--ro adjust-interval? uint32 | |||
| | +--rw maximum-reservable? uint32 | | +--ro adjust-threshold? uint32 | |||
| | +--rw bc-value* uint32 | | +--ro overflow | |||
| +--:(bc-model-mam) | | | +--ro enabled? boolean | |||
| | +--rw bc-model-mam | | | +--ro overflow-threshold? uint32 | |||
| | +--rw bandwidth-psc-constraints | | | +--ro trigger-event-count? uint16 | |||
| | +--rw maximum-reservable? uint32 | | +--ro underflow | |||
| | +--rw bc-value* uint32 | | +--ro enabled? boolean | |||
| +--:(bc-model-mar) | | +--ro underflow-threshold? uint32 | |||
| +--rw bc-model-mar | | +--ro trigger-event-count? uint16 | |||
| +--rw bandwidth-psc-constraints | +--ro local-protection-desired? empty | |||
| +--rw maximum-reservable? uint32 | +--ro bandwidth-protection-desired? empty | |||
| +--rw bc-value* uint32 | +--ro node-protection-desired? empty | |||
+--ro state | +--ro non-php-desired? empty | |||
| +--ro (bandwidth-value)? | +--ro entropy-label-cap? empty | |||
| | +--:(absolute) | +--ro oam-mep-entities-desired? empty | |||
| | | +--ro absolute-value? uint32 | +--ro oam-mip-entities-desired? empty | |||
| | +--:(precentage) | +--ro backup-info | |||
| | +--ro percent-value? uint32 | +--ro backup-tunnel-name? string | |||
| +--ro (bc-model-type)? | +--ro backup-frr-on? uint8 | |||
| | +--:(bc-model-rdm) | +--ro backup-protected-lsp-num? uint32 | |||
| | | +--ro bc-model-rdm | augment /te:te/te-dev:interfaces/te-dev:interface: | |||
| | | +--ro bandwidth-psc-constraints | +--rw config | |||
| | | +--ro maximum-reservable? uint32 | | +--rw (bandwidth-value)? | |||
| | | +--ro bc-value* uint32 | | | +--:(absolute) | |||
| | +--:(bc-model-mam) | | | | +--rw absolute-value? uint32 | |||
| | | +--ro bc-model-mam | | | +--:(precentage) | |||
| | | +--ro bandwidth-psc-constraints | | | +--rw percent-value? uint32 | |||
| | | +--ro maximum-reservable? uint32 | | +--rw (bc-model-type)? | |||
| | | +--ro bc-value* uint32 | | +--:(bc-model-rdm) | |||
| | +--:(bc-model-mar) | | | +--rw bc-model-rdm | |||
| | +--ro bc-model-mar | | | +--rw bandwidth-mpls-constraints | |||
| | +--ro bandwidth-psc-constraints | | | +--rw maximum-reservable? uint32 | |||
| | +--ro maximum-reservable? uint32 | | | +--rw bc-value* uint32 | |||
| | +--ro bc-value* uint32 | | +--:(bc-model-mam) | |||
| +--ro interface-softpreemption-state | | | +--rw bc-model-mam | |||
| | +--ro soft-preempted-bandwidth? uint32 | | | +--rw bandwidth-mpls-constraints | |||
| | +--ro lsps* [source destination tunnel-id lsp-id extended-tunnel-id] | | | +--rw maximum-reservable? uint32 | |||
| | +--ro source -> /ietf-te:te/lsps-state/lsp/source | | | +--rw bc-value* uint32 | |||
| | +--ro destination -> /ietf-te:te/lsps-state/lsp/destination | | +--:(bc-model-mar) | |||
| | +--ro tunnel-id -> /ietf-te:te/lsps-state/lsp/tunnel-id | | +--rw bc-model-mar | |||
| | +--ro lsp-id -> /ietf-te:te/lsps-state/lsp/lsp-id | | +--rw bandwidth-mpls-constraints | |||
| | +--ro extended-tunnel-id -> /ietf-te:te/lsps-state/lsp/extended-tunnel-id | | +--rw maximum-reservable? uint32 | |||
| | +--ro type? -> /ietf-te:te/lsps-state/lsp/type | | +--rw bc-value* uint32 | |||
| +--ro over-subscribed-bandwidth? uint32 | +--ro state | |||
+--rw rsvp-te-frr-backups {ietf-te-types:frr-te}? | | +--ro (bandwidth-value)? | |||
+--rw config | | | +--:(absolute) | |||
| +--rw backup-bandwidth? uint32 | | | | +--ro absolute-value? uint32 | |||
| +--rw backup-bandwidth-classtype? uint32 | | | +--:(precentage) | |||
| +--rw (type)? | | | +--ro percent-value? uint32 | |||
| +--:(static-tunnel) | | +--ro (bc-model-type)? | |||
| | +--rw static-backups* [tunnel-name] | | | +--:(bc-model-rdm) | |||
| | +--rw tunnel-name string | | | | +--ro bc-model-rdm | |||
| +--:(auto-tunnel) | | | | +--ro bandwidth-mpls-constraints | |||
| +--rw auto-backup-protection? identityref | | | | +--ro maximum-reservable? uint32 | |||
| +--rw auto-backup-path-computation? identityref | | | | +--ro bc-value* uint32 | |||
+--ro state | | | +--:(bc-model-mam) | |||
+--ro backup-bandwidth? uint32 | | | | +--ro bc-model-mam | |||
+--ro backup-bandwidth-classtype? uint32 | | | | +--ro bandwidth-mpls-constraints | |||
+--ro (type)? | | | | +--ro maximum-reservable? uint32 | |||
+--:(static-tunnel) | | | | +--ro bc-value* uint32 | |||
| +--ro static-backups* [tunnel-name] | | | +--:(bc-model-mar) | |||
| +--ro tunnel-name string | | | +--ro bc-model-mar | |||
+--:(auto-tunnel) | | | +--ro bandwidth-mpls-constraints | |||
+--ro auto-backup-protection? identityref | | | +--ro maximum-reservable? uint32 | |||
+--ro auto-backup-path-computation? identityref | | | +--ro bc-value* uint32 | |||
augment /ietf-te:te/ietf-te:lsps-state/ietf-te:lsp: | | +--ro interface-softpreemption-state | |||
+--ro config | | | +--ro soft-preempted-bandwidth? uint32 | |||
| +--ro static-bandwidth? uint32 | | | +--ro lsps* | |||
| +--ro auto-bandwidth | [source destination tunnel-id lsp-id extended-tunnel-id] | |||
| | +--ro enabled? boolean | | | +--ro source -> /te:te/lsps-state/lsp/source | |||
| | +--ro min-bw? uint32 | | | +--ro destination -> /te:te/lsps-state/lsp/destination | |||
| | +--ro max-bw? uint32 | | | +--ro tunnel-id -> /te:te/lsps-state/lsp/tunnel-id | |||
| | +--ro adjust-interval? uint32 | | | +--ro lsp-id -> /te:te/lsps-state/lsp/lsp-id | |||
| | +--ro adjust-threshold? uint32 | | | +--ro extended-tunnel-id -> | |||
| | +--ro overflow | /te:te/lsps-state/lsp/extended-tunnel-id | |||
| | | +--ro enabled? boolean | | | +--ro type? -> /te:te/lsps-state/lsp/type | |||
| | | +--ro overflow-threshold? uint32 | | +--ro over-subscribed-bandwidth uint32 | |||
| | | +--ro trigger-event-count? uint16 | +--rw rsvp-te-frr-backups {te-types:frr-te}? | |||
| | +--ro underflow | +--rw config | |||
| | +--ro enabled? boolean | | +--rw backup-bandwidth? uint32 | |||
| | +--ro underflow-threshold? uint32 | | +--rw backup-bandwidth-classtype? uint32 | |||
| | +--ro trigger-event-count? uint16 | | +--rw (type)? | |||
| +--ro local-protection-desired? empty | | +--:(static-tunnel) | |||
| +--ro bandwidth-protection-desired? empty | | | +--rw static-backups* [tunnel-name] | |||
| +--ro node-protection-desired? empty | | | +--rw tunnel-name string | |||
| +--ro non-php-desired? empty | | +--:(auto-tunnel) | |||
| +--ro entropy-label-cap? empty | | +--rw auto-backup-protection? identityref | |||
| +--ro oam-mep-entities-desired? empty | | +--rw auto-backup-path-computation? identityref | |||
| +--ro oam-mip-entities-desired? empty | +--ro state | |||
+--ro state | +--ro backup-bandwidth? uint32 | |||
| +--ro static-bandwidth? uint32 | +--ro backup-bandwidth-classtype? uint32 | |||
| +--ro auto-bandwidth | +--ro (type)? | |||
| | +--ro enabled? boolean | +--:(static-tunnel) | |||
| | +--ro min-bw? uint32 | | +--ro static-backups* [tunnel-name] | |||
| | +--ro max-bw? uint32 | | +--ro tunnel-name string | |||
| | +--ro adjust-interval? uint32 | +--:(auto-tunnel) | |||
| | +--ro adjust-threshold? uint32 | +--ro auto-backup-protection? identityref | |||
| | +--ro overflow | +--ro auto-backup-path-computation? identityref | |||
| | | +--ro enabled? boolean | ||||
| | | +--ro overflow-threshold? uint32 | Figure 6: MPLS RSVP-TE YANG Tree representation | |||
| | | +--ro trigger-event-count? uint16 | ||||
| | +--ro underflow | ||||
| | +--ro enabled? boolean | ||||
| | +--ro underflow-threshold? uint32 | ||||
| | +--ro trigger-event-count? uint16 | ||||
| +--ro local-protection-desired? empty | ||||
| +--ro bandwidth-protection-desired? empty | ||||
| +--ro node-protection-desired? empty | ||||
| +--ro non-php-desired? empty | ||||
| +--ro entropy-label-cap? empty | ||||
| +--ro oam-mep-entities-desired? empty | ||||
| +--ro oam-mip-entities-desired? empty | ||||
+--ro backup-info | ||||
+--ro backup-tunnel-name? string | ||||
+--ro backup-frr-on? uint8 | ||||
+--ro backup-protected-lsp-num? uint32 | ||||
3.4.2. RPC and Notification Data | 3.4.2. RPC and Notification Data | |||
TBD. | TBD. | |||
3.4.3. YANG Module | 3.4.3. YANG Module | |||
<CODE BEGINS> file "ietf-rsvp-te-psc@2015-10-16.yang" | <CODE BEGINS> file "ietf-rsvp-te-mpls@2016-03-20.yang" | |||
module ietf-rsvp-te-mpls { | ||||
module ietf-rsvp-te-psc { | ||||
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-psc"; | namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls"; | |||
prefix "rsvp-te-psc"; | prefix "rsvp-te-mpls"; | |||
import ietf-rsvp { | import ietf-rsvp { | |||
prefix rsvp; | prefix rsvp; | |||
} | } | |||
import ietf-te { | import ietf-routing { | |||
prefix ietf-te; | prefix "rt"; | |||
} | } | |||
import ietf-te-psc-types { | import ietf-te-mpls-types { | |||
prefix ietf-te-psc-types; | prefix "te-mpls-types"; | |||
} | } | |||
import ietf-te-types { | import ietf-te-types { | |||
prefix ietf-te-types; | prefix "te-types"; | |||
} | } | |||
import ietf-te { | ||||
prefix "te"; | ||||
} | ||||
import ietf-te-device { | ||||
prefix "te-dev"; | ||||
} | ||||
organization | organization | |||
"IETF TEAS Working Group"; | "IETF Traffic Engineering Architecture and Signaling (TEAS) | |||
Working Group"; | ||||
contact "TBA"; | contact | |||
"WG Web: <http://tools.ietf.org/wg/teas/> | ||||
WG List: <mailto:teas@ietf.org> | ||||
WG Chair: Lou Berger | ||||
<mailto:lberger@labn.net> | ||||
WG Chair: Vishnu Pavan Beeram | ||||
<mailto:vbeeram@juniper.net> | ||||
Editor: Vishnu Pavan Beeram | ||||
<mailto:vbeeram@juniper.net> | ||||
Editor: Tarek Saad | ||||
<mailto:tsaad@cisco.com> | ||||
Editor: Rakesh Gandhi | ||||
<mailto:rgandhi@cisco.com> | ||||
Editor: Himanshu Shah | ||||
<mailto:hshah@ciena.com> | ||||
Editor: Xufeng Liu | ||||
<mailto:xufeng.liu@ericsson.com> | ||||
Editor: Xia Chen | ||||
<mailto:jescia.chenxia@huawei.com> | ||||
Editor: Raqib Jones | ||||
<mailto:raqib@Brocade.com> | ||||
Editor: Bin Wen | ||||
<mailto:Bin_Wen@cable.comcast.com>"; | ||||
description | description | |||
"Latest update to RSVP-TE packet YANG data model."; | "Latest update to MPLS RSVP-TE YANG data model."; | |||
revision 2015-10-16 { | revision 2016-03-20 { | |||
description "Update to RSVP-TE packet YANG initial revision."; | description "Update to MPLS RSVP-TE YANG initial revision."; | |||
reference "RFC3209, RFC6511, RFC6790, RFC7260, RFC4859, RFC4090"; | reference "RFC3209, RFC6511, RFC6790, RFC7260, RFC4859, RFC4090"; | |||
} | } | |||
/* RSVP-TE LSPs packet groupings */ | /* RSVP-TE MPLS LSPs groupings */ | |||
grouping lsp-attributes-flags-psc_config { | grouping lsp-attributes-flags-mpls_config { | |||
description | description | |||
"Configuration parameters relating to RSVP-TE LSP | "Configuration parameters relating to RSVP-TE MPLS LSP | |||
packet attribute flags"; | attribute flags"; | |||
leaf non-php-desired { | leaf non-php-desired { | |||
type empty; | type empty; | |||
description | description | |||
"Non-PHP is desired"; | "Non-PHP is desired"; | |||
reference "RFC6511"; | reference "RFC6511"; | |||
} | } | |||
leaf entropy-label-cap { | leaf entropy-label-cap { | |||
type empty; | type empty; | |||
description "Entropy label capability"; | description "Entropy label capability"; | |||
reference "RFC6790"; | reference "RFC6790"; | |||
skipping to change at page 60, line 45 ¶ | skipping to change at page 63, line 42 ¶ | |||
description "OAM MEP entities desired"; | description "OAM MEP entities desired"; | |||
reference "RFC7260"; | reference "RFC7260"; | |||
} | } | |||
leaf oam-mip-entities-desired { | leaf oam-mip-entities-desired { | |||
type empty; | type empty; | |||
description "OAM MIP entities desired"; | description "OAM MIP entities desired"; | |||
reference "RFC7260"; | reference "RFC7260"; | |||
} | } | |||
} | } | |||
grouping lsp-session-attributes-obj-flags-psc_config { | grouping lsp-session-attributes-obj-flags-mpls_config { | |||
description | description | |||
"Configuration parameters relating to RSVP-TE LSP | "Configuration parameters relating to RSVP-TE MPLS LSP | |||
packet session attribute flags"; | session attribute flags"; | |||
reference | reference | |||
"RFC4859: Registry for RSVP-TE Session Flags"; | "RFC4859: Registry for RSVP-TE Session Flags"; | |||
leaf local-protection-desired { | leaf local-protection-desired { | |||
type empty; | type empty; | |||
description "Fastreroute local protection is desired."; | description "Fastreroute local protection is desired."; | |||
reference | reference | |||
"RFC4859: Registry for RSVP-TE Session Flags"; | "RFC4859: Registry for RSVP-TE Session Flags"; | |||
} | } | |||
leaf bandwidth-protection-desired { | leaf bandwidth-protection-desired { | |||
type empty; | type empty; | |||
skipping to change at page 63, line 48 ¶ | skipping to change at page 66, line 44 ¶ | |||
"LSP bandwidth grouping"; | "LSP bandwidth grouping"; | |||
leaf static-bandwidth { | leaf static-bandwidth { | |||
type uint32; | type uint32; | |||
description | description | |||
"Static bandwidth, e.g., using | "Static bandwidth, e.g., using | |||
offline calculation"; | offline calculation"; | |||
} | } | |||
uses lsp-auto-bandwidth_config; | uses lsp-auto-bandwidth_config; | |||
} | } | |||
grouping lsp-properties-psc { | grouping tunnel-properties-mpls { | |||
description | ||||
"Top level grouping for LSP properties."; | ||||
container config { | ||||
description | ||||
"Configuration parameters for tunnel RSVP-TE | ||||
properties"; | ||||
uses lsp-bandwidth_config; | ||||
uses lsp-session-attributes-obj-flags-mpls_config; | ||||
uses lsp-attributes-flags-mpls_config; | ||||
} | ||||
container state { | ||||
description | ||||
"State parameters for tunnel RSVP-TE | ||||
properties"; | ||||
uses lsp-bandwidth_config; | ||||
uses lsp-session-attributes-obj-flags-mpls_config; | ||||
uses lsp-attributes-flags-mpls_config; | ||||
} | ||||
} | ||||
grouping lsp-properties-mpls { | ||||
description | description | |||
"Top level grouping for LSP properties."; | "Top level grouping for LSP properties."; | |||
container config { | ||||
description | ||||
"Configuration parameters relating to | ||||
LSP properties"; | ||||
uses lsp-bandwidth_config; | ||||
uses lsp-session-attributes-obj-flags-psc_config; | ||||
uses lsp-attributes-flags-psc_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"State information associated with LSP | ||||
properties"; | ||||
uses lsp-bandwidth_config; | uses lsp-bandwidth_config; | |||
uses lsp-session-attributes-obj-flags-psc_config; | uses lsp-session-attributes-obj-flags-mpls_config; | |||
uses lsp-attributes-flags-psc_config; | uses lsp-attributes-flags-mpls_config; | |||
} | ||||
} | } | |||
/* End of RSVP-TE LSPs packet groupings */ | /* End of RSVP-TE MPLS LSPs groupings */ | |||
/* RSVP-TE packet interface groupings */ | /* MPLS RSVP-TE interface groupings */ | |||
grouping rsvp-te-interface_state { | grouping rsvp-te-interface_state { | |||
description | description | |||
"The RSVP-TE interface state grouping"; | "The RSVP-TE interface state grouping"; | |||
leaf over-subscribed-bandwidth { | leaf over-subscribed-bandwidth { | |||
type uint32; | type uint32; | |||
description | description | |||
"The amount of over-subscribed bandwidth on | "The amount of over-subscribed bandwidth on | |||
the interface"; | the interface"; | |||
} | } | |||
} | } | |||
skipping to change at page 65, line 4 ¶ | skipping to change at page 68, line 8 ¶ | |||
description | description | |||
"The amount of soft-preempted bandwidth on | "The amount of soft-preempted bandwidth on | |||
this interface"; | this interface"; | |||
} | } | |||
list lsps { | list lsps { | |||
key | key | |||
"source destination tunnel-id lsp-id "+ | "source destination tunnel-id lsp-id "+ | |||
"extended-tunnel-id"; | "extended-tunnel-id"; | |||
description | description | |||
"List of LSPs that are soft-preempted"; | "List of LSPs that are soft-preempted"; | |||
leaf source { | leaf source { | |||
type leafref { | type leafref { | |||
path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ | path "/te:te/te:lsps-state/te:lsp/"+ | |||
"ietf-te:source"; | "te:source"; | |||
} | } | |||
description | description | |||
"Tunnel sender address extracted from | "Tunnel sender address extracted from | |||
SENDER_TEMPLATE object"; | SENDER_TEMPLATE object"; | |||
reference "RFC3209"; | reference "RFC3209"; | |||
} | } | |||
leaf destination { | leaf destination { | |||
type leafref { | type leafref { | |||
path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ | path "/te:te/te:lsps-state/te:lsp/"+ | |||
"ietf-te:destination"; | "te:destination"; | |||
} | } | |||
description | description | |||
"Tunnel endpoint address extracted from | "Tunnel endpoint address extracted from | |||
SESSION object"; | SESSION object"; | |||
reference "RFC3209"; | reference "RFC3209"; | |||
} | } | |||
leaf tunnel-id { | leaf tunnel-id { | |||
type leafref { | type leafref { | |||
path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ | path "/te:te/te:lsps-state/te:lsp/"+ | |||
"ietf-te:tunnel-id"; | "te:tunnel-id"; | |||
} | } | |||
description | description | |||
"Tunnel identifier used in the SESSION | "Tunnel identifier used in the SESSION | |||
that remains constant over the life | that remains constant over the life | |||
of the tunnel."; | of the tunnel."; | |||
reference "RFC3209"; | reference "RFC3209"; | |||
} | } | |||
leaf lsp-id { | leaf lsp-id { | |||
type leafref { | type leafref { | |||
path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ | path "/te:te/te:lsps-state/te:lsp/"+ | |||
"ietf-te:lsp-id"; | "te:lsp-id"; | |||
} | } | |||
description | description | |||
"Identifier used in the SENDER_TEMPLATE | "Identifier used in the SENDER_TEMPLATE | |||
and the FILTER_SPEC that can be changed | and the FILTER_SPEC that can be changed | |||
to allow a sender to share resources with | to allow a sender to share resources with | |||
itself."; | itself."; | |||
reference "RFC3209"; | reference "RFC3209"; | |||
} | } | |||
leaf extended-tunnel-id { | leaf extended-tunnel-id { | |||
type leafref { | type leafref { | |||
path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ | path "/te:te/te:lsps-state/te:lsp/"+ | |||
"ietf-te:extended-tunnel-id"; | "te:extended-tunnel-id"; | |||
} | } | |||
description | description | |||
"Extended Tunnel ID of the LSP."; | "Extended Tunnel ID of the LSP."; | |||
reference "RFC3209"; | reference "RFC3209"; | |||
} | } | |||
leaf type { | leaf type { | |||
type leafref { | type leafref { | |||
path "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp/"+ | path "/te:te/te:lsps-state/te:lsp/"+ | |||
"ietf-te:type"; | "te:type"; | |||
} | } | |||
description "LSP type P2P or P2MP"; | description "LSP type P2P or P2MP"; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
/* End of RSVP-TE interface groupings */ | /* End of RSVP-TE interface groupings */ | |||
/* RSVP-TE FRR groupings */ | /* RSVP-TE FRR groupings */ | |||
grouping rsvp-te-frr-backups_config { | grouping rsvp-te-frr-backups_config { | |||
skipping to change at page 66, line 48 ¶ | skipping to change at page 70, line 4 ¶ | |||
"FRR backup tunnel type"; | "FRR backup tunnel type"; | |||
case static-tunnel { | case static-tunnel { | |||
list static-backups { | list static-backups { | |||
key "tunnel-name"; | key "tunnel-name"; | |||
description | description | |||
"List of static backup tunnels that | "List of static backup tunnels that | |||
protect the RSVP-TE interface."; | protect the RSVP-TE interface."; | |||
leaf tunnel-name { | leaf tunnel-name { | |||
type string; | type string; | |||
description "FRR Backup tunnel"; | description "FRR Backup tunnel"; | |||
} | } | |||
} | } | |||
} | } | |||
case auto-tunnel { | case auto-tunnel { | |||
leaf auto-backup-protection { | leaf auto-backup-protection { | |||
type identityref { | type identityref { | |||
base ietf-te-psc-types:backup-protection-type; | base te-mpls-types:backup-protection-type; | |||
} | } | |||
default | default | |||
ietf-te-psc-types:backup-protection-node-link; | te-mpls-types:backup-protection-node-link; | |||
description | description | |||
"Describes whether the backup should offer | "Describes whether the backup should offer | |||
protection against link, node, or either"; | protection against link, node, or either"; | |||
} | } | |||
leaf auto-backup-path-computation { | leaf auto-backup-path-computation { | |||
type identityref { | type identityref { | |||
base | base | |||
ietf-te-types:path-computation-srlg-type; | te-types:path-computation-srlg-type; | |||
} | } | |||
description | description | |||
"FRR backup computation type"; | "FRR backup computation type"; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
grouping rsvp-te-frr-backups { | grouping rsvp-te-frr-backups { | |||
description | description | |||
"Top level grouping for RSVP-TE FRR backup properties."; | "Top level grouping for RSVP-TE FRR backup properties."; | |||
container rsvp-te-frr-backups { | container rsvp-te-frr-backups { | |||
if-feature ietf-te-types:frr-te; | if-feature te-types:frr-te; | |||
description | description | |||
"Top level container for RSVP-TE FRR backup | "Top level container for RSVP-TE FRR backup | |||
properties."; | properties."; | |||
container config { | container config { | |||
description | description | |||
"Configuration parameters for interface RSVP-TE | "Configuration parameters for interface RSVP-TE | |||
FRR backup properties"; | FRR backup properties"; | |||
uses rsvp-te-frr-backups_config; | uses rsvp-te-frr-backups_config; | |||
} | } | |||
container state { | container state { | |||
skipping to change at page 68, line 48 ¶ | skipping to change at page 72, line 4 ¶ | |||
type uint32; | type uint32; | |||
description | description | |||
"Time to wait after primary link is restored | "Time to wait after primary link is restored | |||
before node attempts local revertive | before node attempts local revertive | |||
procedures."; | procedures."; | |||
} | } | |||
} | } | |||
} | } | |||
/*** End of RSVP-TE FRR backup information ***/ | /*** End of RSVP-TE FRR backup information ***/ | |||
grouping globals-properties { | grouping globals-properties { | |||
description | description | |||
"Top level grouping for globals properties"; | "Top level grouping for globals properties"; | |||
container config { | container config { | |||
description | description | |||
"Configuration parameters relating to | "Configuration parameters relating to | |||
global RVP-TE packet properties"; | global MPLS RSVP-TE properties"; | |||
uses rsvp-frr-local-revert_config; | uses rsvp-frr-local-revert_config; | |||
} | } | |||
container state { | container state { | |||
config false; | config false; | |||
description | description | |||
"State parameters relating to | "State parameters relating to | |||
global RVP-TE packet properties"; | global MPLS RSVP-TE properties"; | |||
uses rsvp-frr-local-revert_config; | uses rsvp-frr-local-revert_config; | |||
} | } | |||
} | } | |||
/* RSVP-TE global propeerties */ | /* RSVP-TE global propeerties */ | |||
augment "/rsvp:rsvp/rsvp:globals" { | augment "/rt:routing/rt:routing-protocols/" | |||
+ "rt:routing-protocol/rsvp:rsvp" { | ||||
description | description | |||
"RSVP-TE augmentation to RSVP globals"; | "RSVP-TE augmentation to RSVP globals"; | |||
uses globals-properties; | uses globals-properties; | |||
} | } | |||
grouping rsvp-te-interface-attributes-psc { | grouping rsvp-te-interface-attributes-mpls { | |||
description | description | |||
"Top level grouping for RSVP-TE packet interface | "Top level grouping for MPLS RSVP-TE interface | |||
properties."; | properties."; | |||
container config { | container config { | |||
description | description | |||
"Configuration parameters relating to RSVP-TE | "Configuration parameters relating to RSVP-TE | |||
bandwidth"; | bandwidth"; | |||
uses ietf-te-psc-types:bandwidth-psc-reservable; | uses te-mpls-types:bandwidth-mpls-reservable; | |||
} | } | |||
container state { | container state { | |||
config false; | config false; | |||
description | description | |||
"State information associated with RSVP-TE | "State information associated with RSVP-TE | |||
bandwidth"; | bandwidth"; | |||
uses ietf-te-psc-types:bandwidth-psc-reservable; | uses te-mpls-types:bandwidth-mpls-reservable; | |||
uses rsvp-te-interface-softpreemption_state; | uses rsvp-te-interface-softpreemption_state; | |||
uses rsvp-te-interface_state; | uses rsvp-te-interface_state; | |||
} | } | |||
} | } | |||
/* Linkage to the base RSVP all links */ | /* Linkage to the base RSVP all interfaces */ | |||
augment "/rsvp:rsvp/rsvp:interfaces" { | augment "/rt:routing/rt:routing-protocols/" | |||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces" { | ||||
description "TBD"; | description "TBD"; | |||
/* To be added */ | /* To be added */ | |||
} | } | |||
/* Linkage to per RSVP link */ | ||||
augment "/rsvp:rsvp/rsvp:interfaces/rsvp:interface" { | /* Linkage to per RSVP interface */ | |||
augment "/rt:routing/rt:routing-protocols/" | ||||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:interface" { | ||||
description "TBD"; | description "TBD"; | |||
/* To be added */ | /* To be added */ | |||
} | } | |||
/* add augmentation for sessions neighbors */ | /* add augmentation for sessions neighbors */ | |||
augment "/rsvp:rsvp/rsvp:sessions" { | augment "/rt:routing/rt:routing-protocols/" | |||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:sessions" { | ||||
description "TBD"; | description "TBD"; | |||
/* To be added */ | /* To be added */ | |||
} | } | |||
augment "/rsvp:rsvp/rsvp:neighbors" { | augment "/rt:routing/rt:routing-protocols/" | |||
+ "rt:routing-protocol/rsvp:rsvp/rsvp:neighbors" { | ||||
description "TBD"; | description "TBD"; | |||
/* To be added */ | /* To be added */ | |||
} | } | |||
/** | /** | |||
* Augmentation to TE generic module | * Augmentation to TE generic module | |||
*/ | */ | |||
augment "/ietf-te:te/ietf-te:tunnels/ietf-te:tunnel" { | augment "/te:te/te:tunnels/te:tunnel" { | |||
description "TBD"; | description "TBD"; | |||
uses lsp-properties-psc; | uses tunnel-properties-mpls; | |||
} | } | |||
augment "/ietf-te:te/ietf-te:interfaces/ietf-te:interface" { | augment "/te:te/te:lsps-state/te:lsp" { | |||
description | description | |||
"RSVP reservable bandwidth configuration properties"; | "RSVP-TE LSP state properties"; | |||
uses rsvp-te-interface-attributes-psc; | uses lsp-properties-mpls; | |||
uses rsvp-te-frr-backups; | uses lps-backup-info_state; | |||
} | } | |||
augment "/ietf-te:te/ietf-te:lsps-state/ietf-te:lsp" { | augment "/te:te/te-dev:interfaces/te-dev:interface" { | |||
description | description | |||
"RSVP-TE LSP state properties"; | "RSVP reservable bandwidth configuration properties"; | |||
uses lsp-properties-psc; | uses rsvp-te-interface-attributes-mpls; | |||
uses lps-backup-info_state; | uses rsvp-te-frr-backups; | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
4. IANA Considerations | 4. 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 XML: N/A, the requested | URI: urn:ietf:params:xml:ns:yang:ietf-rsvp XML: N/A, the requested | |||
URI is an XML namespace. | URI is an XML namespace. | |||
skipping to change at page 71, line 49 ¶ | skipping to change at page 75, line 11 ¶ | |||
The authors would like to thank Lou Berger for reviewing and | The authors would like to thank Lou Berger for reviewing and | |||
providing valuable feedback on this document. | providing valuable feedback on this document. | |||
7. References | 7. References | |||
7.1. Normative References | 7.1. Normative References | |||
[I-D.ietf-netmod-routing-cfg] | [I-D.ietf-netmod-routing-cfg] | |||
Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
Management", draft-ietf-netmod-routing-cfg-20 (work in | Management", draft-ietf-netmod-routing-cfg-21 (work in | |||
progress), October 2015. | progress), March 2016. | |||
[I-D.ietf-teas-yang-te] | [I-D.ietf-teas-yang-te] | |||
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, | Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Chen, | |||
X., Jones, R., and B. Wen, "A YANG Data Model for Traffic | X., Jones, R., and B. Wen, "A YANG Data Model for Traffic | |||
Engineering Tunnels and Interfaces", draft-ietf-teas-yang- | Engineering Tunnels and Interfaces", draft-ietf-teas-yang- | |||
te-00 (work in progress), September 2015. | te-03 (work in progress), March 2016. | |||
[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, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | |||
RFC2119, March 1997, | RFC2119, March 1997, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. | [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. | |||
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 | Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 | |||
Functional Specification", RFC 2205, DOI 10.17487/RFC2205, | Functional Specification", RFC 2205, DOI 10.17487/RFC2205, | |||
September 1997, <http://www.rfc-editor.org/info/rfc2205>. | September 1997, <http://www.rfc-editor.org/info/rfc2205>. | |||
skipping to change at page 73, line 33 ¶ | skipping to change at page 76, line 38 ¶ | |||
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC | [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC | |||
6991, DOI 10.17487/RFC6991, July 2013, | 6991, DOI 10.17487/RFC6991, July 2013, | |||
<http://www.rfc-editor.org/info/rfc6991>. | <http://www.rfc-editor.org/info/rfc6991>. | |||
7.2. Informative References | 7.2. Informative References | |||
[I-D.openconfig-mpls-consolidated-model] | [I-D.openconfig-mpls-consolidated-model] | |||
George, J., Fang, L., eric.osborne@level3.com, e., and R. | George, J., Fang, L., eric.osborne@level3.com, e., and R. | |||
Shakir, "MPLS / TE Model for Service Provider Networks", | Shakir, "MPLS / TE Model for Service Provider Networks", | |||
draft-openconfig-mpls-consolidated-model-01 (work in | draft-openconfig-mpls-consolidated-model-02 (work in | |||
progress), July 2015. | progress), October 2015. | |||
[I-D.openconfig-netmod-opstate] | [I-D.openconfig-netmod-opstate] | |||
Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling | Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling | |||
of Operational State Data in YANG", draft-openconfig- | of Operational State Data in YANG", draft-openconfig- | |||
netmod-opstate-01 (work in progress), July 2015. | netmod-opstate-01 (work in progress), July 2015. | |||
Authors' Addresses | Authors' Addresses | |||
Vishnu Pavan Beeram | Vishnu Pavan Beeram | |||
Juniper Networks | Juniper Networks | |||
Email: vbeeram@juniper.net | Email: vbeeram@juniper.net | |||
Tarek Saad (editor) | ||||
Tarek Saad | ||||
Cisco Systems Inc | Cisco Systems Inc | |||
Email: tsaad@cisco.com | Email: tsaad@cisco.com | |||
Rakesh Gandhi | Rakesh Gandhi | |||
Cisco Systems Inc | Cisco Systems Inc | |||
Email: rgandhi@cisco.com | Email: rgandhi@cisco.com | |||
Xufeng Liu | Xufeng Liu | |||
Ericsson | Ericsson | |||
Email: xufeng.liu@ericsson.com | Email: xliu@kuatrotech.com | |||
Himanshu Shah | Himanshu Shah | |||
Ciena | Ciena | |||
Email: tsaad@cisco.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 | |||
End of changes. 162 change blocks. | ||||
1060 lines changed or deleted | 1217 lines changed or added | |||
This html diff was produced by rfcdiff 1.44. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |