draft-ietf-teas-yang-rsvp-07.txt | draft-ietf-teas-yang-rsvp-08.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, Ed. | Intended status: Standards Track T. Saad, Ed. | |||
Expires: September 11, 2017 R. Gandhi | Expires: May 2, 2018 R. Gandhi | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
X. Liu | X. Liu | |||
Jabil | Jabil | |||
I. Bryskin | I. Bryskin | |||
Huawei Technologies | Huawei Technologies | |||
H. Shah | H. Shah | |||
Ciena | Ciena | |||
March 10, 2017 | October 29, 2017 | |||
A YANG Data Model for Resource Reservation Protocol (RSVP) | A YANG Data Model for Resource Reservation Protocol (RSVP) | |||
draft-ietf-teas-yang-rsvp-07 | draft-ietf-teas-yang-rsvp-08 | |||
Abstract | Abstract | |||
This document defines a YANG data model for the configuration and | This document defines a YANG data model for the configuration and | |||
management of RSVP Protocol. The model covers the building blocks of | management of RSVP Protocol. The model covers the building blocks of | |||
the RSVP protocol that can be augmented and used by other RSVP | the RSVP protocol that can be augmented and used by other RSVP | |||
extension models such as RVSP extensions to Traffic-Engineering | extension models such as RVSP extensions to Traffic-Engineering | |||
(RSVP-TE). The model covers the configuration, operational state, | (RSVP-TE). The model covers the configuration, operational state, | |||
remote procedural calls, and event notifications data. | remote procedural calls, and event notifications data. | |||
skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
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 September 11, 2017. | This Internet-Draft will expire on May 2, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
skipping to change at page 2, line 23 ¶ | skipping to change at page 2, line 23 ¶ | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
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 | |||
2. Design Considerations . . . . . . . . . . . . . . . . . . . . 5 | 2. Design Considerations . . . . . . . . . . . . . . . . . . . . 5 | |||
2.1. Module Hierarchy . . . . . . . . . . . . . . . . . . . . 5 | 2.1. Module Hierarchy . . . . . . . . . . . . . . . . . . . . 5 | |||
2.2. Data Organization . . . . . . . . . . . . . . . . . . . . 6 | 2.2. State Data Organization . . . . . . . . . . . . . . . . . 6 | |||
2.3. Configuration Inheritance . . . . . . . . . . . . . . . . 7 | 2.3. Configuration Inheritance . . . . . . . . . . . . . . . . 6 | |||
3. Model Organization . . . . . . . . . . . . . . . . . . . . . 7 | 3. Model Organization . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.1. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 7 | 3.1. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 7 | |||
3.1.1. Global Data . . . . . . . . . . . . . . . . . . . . . 9 | 3.1.1. Global Data . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.1.2. Interface Data . . . . . . . . . . . . . . . . . . . 9 | 3.1.2. Interface Data . . . . . . . . . . . . . . . . . . . 8 | |||
3.1.3. Neighbor Data . . . . . . . . . . . . . . . . . . . . 9 | 3.1.3. Neighbor Data . . . . . . . . . . . . . . . . . . . . 9 | |||
3.1.4. Session Data . . . . . . . . . . . . . . . . . . . . 9 | 3.1.4. Session Data . . . . . . . . . . . . . . . . . . . . 9 | |||
3.1.5. Tree Diagram . . . . . . . . . . . . . . . . . . . . 9 | 3.1.5. Tree Diagram . . . . . . . . . . . . . . . . . . . . 9 | |||
3.1.6. YANG Module . . . . . . . . . . . . . . . . . . . . . 14 | 3.1.6. YANG Module . . . . . . . . . . . . . . . . . . . . . 13 | |||
3.2. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 33 | 3.2. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 31 | |||
3.2.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 34 | 3.2.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 32 | |||
3.2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 40 | 3.2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 33 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 52 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 44 | |||
6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 52 | 6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 44 | |||
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 53 | 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 53 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 45 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 54 | 8.2. Informative References . . . . . . . . . . . . . . . . . 46 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 55 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 47 | |||
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 interfaces, such as CLI and programmatic | implementation for other interfaces, such as CLI and programmatic | |||
skipping to change at page 6, line 39 ¶ | skipping to change at page 6, line 39 ¶ | |||
o Refresh Reduction ([RFC2961]) | o Refresh Reduction ([RFC2961]) | |||
o Hellos ([RFC3209]) | o Hellos ([RFC3209]) | |||
o Graceful Restart ([RFC3473], [RFC5063]) | o Graceful Restart ([RFC3473], [RFC5063]) | |||
The extended RSVP YANG model covers non-basic configuration(s) for | The extended RSVP YANG model covers non-basic configuration(s) for | |||
RSVP feature(s) as well as optional RSVP feature that are not a must | RSVP feature(s) as well as optional RSVP feature that are not a must | |||
for basic RSVP operation. | for basic RSVP operation. | |||
2.2. Data Organization | 2.2. State Data Organization | |||
Throughout the model, the approach described in | ||||
[I-D.openconfig-netmod-opstate] is adopted to represent data | ||||
pertaining to configuration intended state, applied state and derived | ||||
state data elements. Each container in the model hold a "config" and | ||||
"state" sub-container. | ||||
The "config" sub-container is used to represent the intended | ||||
configurable parameters, and the state sub-container is used to | ||||
represent both the applied configurable parameters and any derived | ||||
state, such as counters or statistical information. | ||||
The decision to use this approach was made to better align with the | ||||
MPLS consolidated model in [I-D.openconfig-mpls-consolidated-model], | ||||
and maximize reusability of groupings defined in this document and | ||||
allow for possible convergence between the two models. | ||||
The approach described in [I-D.openconfig-netmod-opstate] allows for | ||||
modeling the respective intended and applied configuration and | ||||
derived state. The state data can be categorized into one of the | ||||
following: | ||||
o State corresponding to applied configuration | ||||
o State corresponding to derived state, counters, stats, etc. | ||||
Pure state data (for example, protocol derived data) is placed inside | The Network Management Datastore Architecture (NMDA) | |||
the "state" sub-container, as shown in Figure 2. | [I-D.dsdt-nmda-guidelines] addresses the "OpState" that was discussed | |||
in the IETF. As per NMDA guidelines for new models and models that | ||||
are not concerned with the operational state of configuration | ||||
information, this revision of the draft adopts the NMDA proposal for | ||||
configuration and state data of this model. | ||||
2.3. Configuration Inheritance | 2.3. Configuration Inheritance | |||
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 | |||
skipping to change at page 9, line 38 ¶ | skipping to change at page 9, line 19 ¶ | |||
future revisions. | future revisions. | |||
3.1.4. Session Data | 3.1.4. Session Data | |||
This branch of the data model covers configuration of elements | This branch of the data model covers configuration of elements | |||
relevant to RSVP sessions. This would be discussed in detail in | relevant to RSVP sessions. This would be discussed in detail in | |||
future revisions. | future revisions. | |||
3.1.5. Tree Diagram | 3.1.5. Tree Diagram | |||
module: ietf-rsvp | module: ietf-rsvp | |||
augment | augment | |||
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | |||
+--rw rsvp! | +--rw rsvp! | |||
+--rw globals | +--rw globals | |||
| +--rw sessions | | +--rw sessions | |||
| | +--ro session* [local-index] | | | +--ro session* [local-index] | |||
| | +--ro local-index -> ../state/local-index | | | +--ro local-index -> ../state/local-index | |||
| | +--ro state | | | +--ro state | |||
| | +--ro local-index? uint64 | | | +--ro local-index? uint64 | |||
| | +--ro destination-port? inet:port-number | | | +--ro destination-port? inet:port-number | |||
| | +--ro source? inet:ip-address | | | +--ro source? inet:ip-address | |||
| | +--ro destination? inet:ip-address | | | +--ro destination? inet:ip-address | |||
| | +--ro session-name? string | | | +--ro session-name? string | |||
| | +--ro session-state? enumeration | | | +--ro session-state? enumeration | |||
| | +--ro session-type? identityref | | | +--ro session-type? identityref | |||
| | +--ro psbs | | | +--ro psbs | |||
| | | +--ro psb* | | | | +--ro psb* | |||
| | | +--ro source-port? inet:port-number | | | | +--ro source-port? inet:port-number | |||
| | | +--ro expires-in? uint32 | | | | +--ro expires-in? uint32 | |||
| | +--ro rsbs | | | +--ro rsbs | |||
| | +--ro rsb* | | | +--ro rsb* | |||
| | +--ro source-port? inet:port-number | | | +--ro source-port? inet:port-number | |||
| | +--ro reservation-style? identityref | | | +--ro reservation-style? identityref | |||
| | +--ro expires-in? uint32 | | | +--ro expires-in? uint32 | |||
| +--rw statistics | | +--rw statistics | |||
| | +--ro state | | | +--ro state | |||
| | +--ro messages | | | +--ro messages | |||
| | | +--ro ack-sent? yang:counter64 | | | | +--ro ack-sent? yang:counter64 | |||
| | | +--ro ack-received? yang:counter64 | | | | +--ro ack-received? yang:counter64 | |||
| | | +--ro bundle-sent? yang:counter64 | | | | +--ro bundle-sent? yang:counter64 | |||
| | | +--ro bundle-received? yang:counter64 | | | | +--ro bundle-received? yang:counter64 | |||
| | | +--ro hello-sent? yang:counter64 | | | | +--ro hello-sent? yang:counter64 | |||
| | | +--ro hello-received? yang:counter64 | | | | +--ro hello-received? yang:counter64 | |||
| | | +--ro integrity-challenge-sent? yang:counter64 | | | | +--ro integrity-challenge-sent? yang:counter64 | |||
| | | +--ro integrity-challenge-received? yang:counter64 | | | | +--ro integrity-challenge-received? yang:counter64 | |||
| | | +--ro integrity-response-sent? yang:counter64 | | | | +--ro integrity-response-sent? yang:counter64 | |||
| | | +--ro integrity-response-received? yang:counter64 | | | | +--ro integrity-response-received? yang:counter64 | |||
| | | +--ro notify-sent? yang:counter64 | | | | +--ro notify-sent? yang:counter64 | |||
| | | +--ro notify-received? yang:counter64 | | | | +--ro notify-received? yang:counter64 | |||
| | | +--ro path-sent? yang:counter64 | | | | +--ro path-sent? yang:counter64 | |||
| | | +--ro path-received? yang:counter64 | | | | +--ro path-received? yang:counter64 | |||
| | | +--ro path-err-sent? yang:counter64 | | | | +--ro path-err-sent? yang:counter64 | |||
| | | +--ro path-err-received? yang:counter64 | | | | +--ro path-err-received? yang:counter64 | |||
| | | +--ro path-tear-sent? yang:counter64 | | | | +--ro path-tear-sent? yang:counter64 | |||
| | | +--ro path-tear-received? yang:counter64 | | | | +--ro path-tear-received? yang:counter64 | |||
| | | +--ro resv-sent? yang:counter64 | | | | +--ro resv-sent? yang:counter64 | |||
| | | +--ro resv-received? yang:counter64 | | | | +--ro resv-received? yang:counter64 | |||
| | | +--ro resv-confirm-sent? yang:counter64 | | | | +--ro resv-confirm-sent? yang:counter64 | |||
| | | +--ro resv-confirm-received? yang:counter64 | | | | +--ro resv-confirm-received? yang:counter64 | |||
| | | +--ro resv-err-sent? yang:counter64 | | | | +--ro resv-err-sent? yang:counter64 | |||
| | | +--ro resv-err-received? yang:counter64 | | | | +--ro resv-err-received? yang:counter64 | |||
| | | +--ro resv-tear-sent? yang:counter64 | | | | +--ro resv-tear-sent? yang:counter64 | |||
| | | +--ro resv-tear-received? yang:counter64 | | | | +--ro resv-tear-received? yang:counter64 | |||
| | | +--ro summary-refresh-sent? yang:counter64 | | | | +--ro summary-refresh-sent? yang:counter64 | |||
| | | +--ro summary-refresh-received? yang:counter64 | | | | +--ro summary-refresh-received? yang:counter64 | |||
| | | +--ro unknown-messages-received? yang:counter64 | | | | +--ro unknown-messages-received? yang:counter64 | |||
| | +--ro packets | | | +--ro packets | |||
| | | +--ro sent? yang:counter64 | | | | +--ro sent? yang:counter64 | |||
| | | +--ro received? yang:counter64 | | | | +--ro received? yang:counter64 | |||
| | +--ro errors | | | +--ro errors | |||
| | +--ro authenticate? yang:counter64 | | | +--ro authenticate? yang:counter64 | |||
| | +--ro checksum? yang:counter64 | | | +--ro checksum? yang:counter64 | |||
| | +--ro packet-len? yang:counter64 | | | +--ro packet-len? yang:counter64 | |||
| +--rw graceful-restart | | +--rw graceful-restart | |||
| +--rw config | | +--rw enabled? boolean | |||
| | +--rw enabled? boolean | +--rw interfaces | |||
| +--ro state | | +--rw refresh-reduction | |||
| +--ro enabled? boolean | | | +--rw enabled? boolean | |||
+--rw interfaces | | +--rw hellos | |||
| +--rw config | | | +--rw enabled? boolean | |||
| +--ro state | | +--rw authentication | |||
| +--rw refresh-reduction | | | +--rw enabled? boolean | |||
| | +--rw config | | | +--rw authentication-key? string | |||
| | | +--rw enabled? boolean | | | +--rw crypto-algorithm identityref | |||
| | +--ro state | | +--rw statistics | |||
| | +--ro enabled? boolean | | | +--ro state | |||
| +--rw hellos | | | +--ro messages | |||
| | +--rw config | | | | +--ro ack-sent? yang:counter64 | |||
| | | +--rw enabled? boolean | | | | +--ro ack-received? yang:counter64 | |||
| | +--ro state | | | | +--ro bundle-sent? yang:counter64 | |||
| | +--ro enabled? boolean | | | | +--ro bundle-received? yang:counter64 | |||
| +--rw authentication | | | | +--ro hello-sent? yang:counter64 | |||
| | +--rw config | | | | +--ro hello-received? yang:counter64 | |||
| | | +--rw enabled? boolean | | | | +--ro integrity-challenge-sent? yang:counter64 | |||
| | | +--rw authentication-key? string | | | | +--ro integrity-challenge-received? yang:counter64 | |||
| | | +--rw crypto-algorithm identityref | | | | +--ro integrity-response-sent? yang:counter64 | |||
| | +--ro state | | | | +--ro integrity-response-received? yang:counter64 | |||
| | +--ro enabled? boolean | | | | +--ro notify-sent? yang:counter64 | |||
| | +--ro authentication-key? string | | | | +--ro notify-received? yang:counter64 | |||
| | +--ro crypto-algorithm identityref | | | | +--ro path-sent? yang:counter64 | |||
| +--rw statistics | | | | +--ro path-received? yang:counter64 | |||
| | +--ro state | | | | +--ro path-err-sent? yang:counter64 | |||
| | +--ro messages | | | | +--ro path-err-received? yang:counter64 | |||
| | | +--ro ack-sent? yang:counter64 | | | | +--ro path-tear-sent? yang:counter64 | |||
| | | +--ro ack-received? yang:counter64 | | | | +--ro path-tear-received? yang:counter64 | |||
| | | +--ro bundle-sent? yang:counter64 | | | | +--ro resv-sent? yang:counter64 | |||
| | | +--ro bundle-received? yang:counter64 | | | | +--ro resv-received? yang:counter64 | |||
| | | +--ro hello-sent? yang:counter64 | | | | +--ro resv-confirm-sent? yang:counter64 | |||
| | | +--ro hello-received? yang:counter64 | | | | +--ro resv-confirm-received? yang:counter64 | |||
| | | +--ro integrity-challenge-sent? yang:counter64 | | | | +--ro resv-err-sent? yang:counter64 | |||
| | | +--ro integrity-challenge-received? yang:counter64 | | | | +--ro resv-err-received? yang:counter64 | |||
| | | +--ro integrity-response-sent? yang:counter64 | | | | +--ro resv-tear-sent? yang:counter64 | |||
| | | +--ro integrity-response-received? yang:counter64 | | | | +--ro resv-tear-received? yang:counter64 | |||
| | | +--ro notify-sent? yang:counter64 | | | | +--ro summary-refresh-sent? yang:counter64 | |||
| | | +--ro notify-received? yang:counter64 | | | | +--ro summary-refresh-received? yang:counter64 | |||
| | | +--ro path-sent? yang:counter64 | | | | +--ro unknown-messages-received? yang:counter64 | |||
| | | +--ro path-received? yang:counter64 | | | +--ro packets | |||
| | | +--ro path-err-sent? yang:counter64 | | | | +--ro sent? yang:counter64 | |||
| | | +--ro path-err-received? yang:counter64 | | | | +--ro received? yang:counter64 | |||
| | | +--ro path-tear-sent? yang:counter64 | | | +--ro errors | |||
| | | +--ro path-tear-received? yang:counter64 | | | +--ro authenticate? yang:counter64 | |||
| | | +--ro resv-sent? yang:counter64 | | | +--ro checksum? yang:counter64 | |||
| | | +--ro resv-received? yang:counter64 | | | +--ro packet-len? yang:counter64 | |||
| | | +--ro resv-confirm-sent? yang:counter64 | | +--rw interface* [interface] | |||
| | | +--ro resv-confirm-received? yang:counter64 | | +--rw interface if:interface-ref | |||
| | | +--ro resv-err-sent? yang:counter64 | | +--rw refresh-reduction | |||
| | | +--ro resv-err-received? yang:counter64 | | | +--rw enabled? boolean | |||
| | | +--ro resv-tear-sent? yang:counter64 | | +--rw hellos | |||
| | | +--ro resv-tear-received? yang:counter64 | | | +--rw enabled? boolean | |||
| | | +--ro summary-refresh-sent? yang:counter64 | | +--rw authentication | |||
| | | +--ro summary-refresh-received? yang:counter64 | | | +--rw enabled? boolean | |||
| | | +--ro unknown-messages-received? yang:counter64 | | | +--rw authentication-key? string | |||
| | +--ro packets | | | +--rw crypto-algorithm identityref | |||
| | | +--ro sent? yang:counter64 | | +--rw statistics | |||
| | | +--ro received? yang:counter64 | | +--ro state | |||
| | +--ro errors | | +--ro messages | |||
| | +--ro authenticate? yang:counter64 | | | +--ro ack-sent? | |||
| | +--ro checksum? yang:counter64 | yang:counter64 | |||
| | +--ro packet-len? yang:counter64 | | | +--ro ack-received? | |||
| +--rw interface* [interface] | yang:counter64 | |||
| +--rw interface if:interface-ref | | | +--ro bundle-sent? | |||
| +--rw config | yang:counter64 | |||
| +--ro state | | | +--ro bundle-received? | |||
| +--rw refresh-reduction | yang:counter64 | |||
| | +--rw config | | | +--ro hello-sent? | |||
| | | +--rw enabled? boolean | yang:counter64 | |||
| | +--ro state | | | +--ro hello-received? | |||
| | +--ro enabled? boolean | yang:counter64 | |||
| +--rw hellos | | | +--ro integrity-challenge-sent? | |||
| | +--rw config | yang:counter64 | |||
| | | +--rw enabled? boolean | | | +--ro integrity-challenge-received? | |||
| | +--ro state | yang:counter64 | |||
| | +--ro enabled? boolean | | | +--ro integrity-response-sent? | |||
| +--rw authentication | yang:counter64 | |||
| | +--rw config | | | +--ro integrity-response-received? | |||
| | | +--rw enabled? boolean | yang:counter64 | |||
| | | +--rw authentication-key? string | | | +--ro notify-sent? | |||
| | | +--rw crypto-algorithm identityref | yang:counter64 | |||
| | +--ro state | | | +--ro notify-received? | |||
| | +--ro enabled? boolean | yang:counter64 | |||
| | +--ro authentication-key? string | | | +--ro path-sent? | |||
| | +--ro crypto-algorithm identityref | yang:counter64 | |||
| +--rw statistics | | | +--ro path-received? | |||
| +--ro state | yang:counter64 | |||
| +--ro messages | | | +--ro path-err-sent? | |||
| | +--ro ack-sent? yang:counter64 | yang:counter64 | |||
| | +--ro ack-received? yang:counter64 | | | +--ro path-err-received? | |||
| | +--ro bundle-sent? yang:counter64 | yang:counter64 | |||
| | +--ro bundle-received? yang:counter64 | | | +--ro path-tear-sent? | |||
| | +--ro hello-sent? yang:counter64 | yang:counter64 | |||
| | +--ro hello-received? yang:counter64 | | | +--ro path-tear-received? | |||
| | +--ro integrity-challenge-sent? yang:counter64 | yang:counter64 | |||
| | +--ro integrity-challenge-received? yang:counter64 | | | +--ro resv-sent? | |||
| | +--ro integrity-response-sent? yang:counter64 | yang:counter64 | |||
| | +--ro integrity-response-received? yang:counter64 | | | +--ro resv-received? | |||
| | +--ro notify-sent? yang:counter64 | yang:counter64 | |||
| | +--ro notify-received? yang:counter64 | | | +--ro resv-confirm-sent? | |||
| | +--ro path-sent? yang:counter64 | yang:counter64 | |||
| | +--ro path-received? yang:counter64 | | | +--ro resv-confirm-received? | |||
| | +--ro path-err-sent? yang:counter64 | yang:counter64 | |||
| | +--ro path-err-received? yang:counter64 | | | +--ro resv-err-sent? | |||
| | +--ro path-tear-sent? yang:counter64 | yang:counter64 | |||
| | +--ro path-tear-received? yang:counter64 | | | +--ro resv-err-received? | |||
| | +--ro resv-sent? yang:counter64 | yang:counter64 | |||
| | +--ro resv-received? yang:counter64 | | | +--ro resv-tear-sent? | |||
| | +--ro resv-confirm-sent? yang:counter64 | yang:counter64 | |||
| | +--ro resv-confirm-received? yang:counter64 | | | +--ro resv-tear-received? | |||
| | +--ro resv-err-sent? yang:counter64 | yang:counter64 | |||
| | +--ro resv-err-received? yang:counter64 | | | +--ro summary-refresh-sent? | |||
| | +--ro resv-tear-sent? yang:counter64 | yang:counter64 | |||
| | +--ro resv-tear-received? yang:counter64 | | | +--ro summary-refresh-received? | |||
| | +--ro summary-refresh-sent? yang:counter64 | yang:counter64 | |||
| | +--ro summary-refresh-received? yang:counter64 | | | +--ro unknown-messages-received? | |||
| | +--ro unknown-messages-received? yang:counter64 | yang:counter64 | |||
| +--ro packets | | +--ro packets | |||
| | +--ro sent? yang:counter64 | | | +--ro sent? yang:counter64 | |||
| | +--ro received? yang:counter64 | | | +--ro received? yang:counter64 | |||
| +--ro errors | | +--ro errors | |||
| +--ro authenticate? yang:counter64 | | +--ro authenticate? yang:counter64 | |||
| +--ro checksum? yang:counter64 | | +--ro checksum? yang:counter64 | |||
| +--ro packet-len? yang:counter64 | | +--ro packet-len? yang:counter64 | |||
+--rw neighbors | +--rw neighbors | |||
+--rw neighbor* [address] | +--rw neighbor* [address] | |||
+--rw address -> ../config/address | +--rw address inet:ip-address | |||
+--rw config | +--ro state | |||
| +--rw address? inet:ip-address | +--ro address? inet:ip-address | |||
+--ro state | +--ro epoch? uint32 | |||
+--ro address? inet:ip-address | +--ro expiry-time? uint32 | |||
+--ro epoch? uint32 | +--ro graceful-restart | |||
+--ro expiry-time? uint32 | | +--ro enabled? boolean | |||
+--ro graceful-restart | | +--ro local-restart-time? uint32 | |||
| +--ro enabled? boolean | | +--ro local-recovery-time? uint32 | |||
| +--ro local-restart-time? uint32 | | +--ro neighbor-restart-time? uint32 | |||
| +--ro local-recovery-time? uint32 | | +--ro neighbor-recovery-time? uint32 | |||
| +--ro neighbor-restart-time? uint32 | | +--ro helper-mode | |||
| +--ro neighbor-recovery-time? uint32 | | +--ro enabled? boolean | |||
| +--ro helper-mode | | +--ro max-helper-restart-time? uint32 | |||
| +--ro enabled? boolean | | +--ro max-helper-recovery-time? uint32 | |||
| +--ro max-helper-restart-time? uint32 | | +--ro neighbor-restart-time-remaining? uint32 | |||
| +--ro max-helper-recovery-time? uint32 | | +--ro neighbor-recovery-time-remaining? uint32 | |||
| +--ro neighbor-restart-time-remaining? uint32 | +--ro hello-status? enumeration | |||
| +--ro neighbor-recovery-time-remaining? uint32 | +--ro interface? if:interface-ref | |||
+--ro hello-status? enumeration | +--ro neighbor-state? enumeration | |||
+--ro interface? if:interface-ref | +--ro refresh-reduction-capable? boolean | |||
+--ro neighbor-state? enumeration | +--ro restart-count? yang:counter32 | |||
+--ro refresh-reduction-capable? boolean | +--ro restart-time? yang:date-and-time | |||
+--ro restart-count? yang:counter32 | ||||
+--ro restart-time? yang:date-and-time | ||||
Figure 3: RSVP model tree diagram | Figure 3: RSVP model tree diagram | |||
3.1.6. YANG Module | 3.1.6. YANG Module | |||
<CODE BEGINS> file "ietf-rsvp@2017-03-10.yang" | <CODE BEGINS> file "ietf-rsvp@2017-10-29.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; | |||
} | } | |||
skipping to change at page 15, line 42 ¶ | skipping to change at page 15, line 20 ¶ | |||
Editor: Raqib Jones | Editor: Raqib Jones | |||
<mailto:raqib@Brocade.com> | <mailto:raqib@Brocade.com> | |||
Editor: Bin Wen | Editor: Bin Wen | |||
<mailto:Bin_Wen@cable.comcast.com>"; | <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 "2017-03-10" { | revision "2017-10-29" { | |||
description "Latest revision of RSVP yang module."; | description "Latest revision of RSVP yang module."; | |||
reference "RFC2205"; | reference "RFC2205"; | |||
} | } | |||
identity rsvp { | identity rsvp { | |||
base "rt:routing-protocol"; | base "rt:routing-protocol"; | |||
description "RSVP protocol"; | description "RSVP protocol"; | |||
} | } | |||
identity rsvp-session-type { | identity rsvp-session-type { | |||
skipping to change at page 17, line 9 ¶ | skipping to change at page 16, line 34 ¶ | |||
'false' if RSVP Graceful Restart is disabled."; | 'false' if RSVP Graceful Restart is disabled."; | |||
} | } | |||
} | } | |||
grouping graceful-restart { | grouping graceful-restart { | |||
description | description | |||
"RSVP graceful restart parameters grouping"; | "RSVP graceful restart parameters grouping"; | |||
container graceful-restart { | container graceful-restart { | |||
description | description | |||
"RSVP graceful restart parameters container"; | "RSVP graceful restart parameters container"; | |||
container config { | uses graceful-restart_config; | |||
description | ||||
"Configuration parameters for graceful restart | ||||
properties"; | ||||
uses graceful-restart_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"State parameters for graceful restart | ||||
properties"; | ||||
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; | |||
skipping to change at page 17, line 46 ¶ | skipping to change at page 17, line 11 ¶ | |||
} | } | |||
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"; | |||
container config { | uses refresh-reduction_config; | |||
description | ||||
"Configuration parameters relating to | ||||
RSVP refresh reduction parameters"; | ||||
uses refresh-reduction_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"State information associated with RSVP | ||||
refresh reduction parameters"; | ||||
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 | |||
skipping to change at page 18, line 48 ¶ | skipping to change at page 17, line 49 ¶ | |||
} | } | |||
} | } | |||
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"; | |||
container config { | uses authentication_config; | |||
description | ||||
"Configuration parameters relating to | ||||
RSVP authentication parameters"; | ||||
uses authentication_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"State information associated with RSVP | ||||
authentication parameters"; | ||||
uses authentication_config; | ||||
} | ||||
} | } | |||
} | } | |||
grouping hellos_config { | grouping hellos_config { | |||
description | description | |||
"Configuration parameters relating to RSVP | "Configuration parameters relating to RSVP | |||
hellos"; | hellos"; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
description | description | |||
"'true' if RSVP Hello is enabled. | "'true' if RSVP Hello is enabled. | |||
'false' if RSVP Hello is disabled."; | 'false' if RSVP Hello is disabled."; | |||
} | } | |||
skipping to change at page 19, line 35 ¶ | skipping to change at page 18, line 22 ¶ | |||
'false' if RSVP Hello is disabled."; | 'false' if RSVP Hello is disabled."; | |||
} | } | |||
} | } | |||
grouping hellos { | grouping hellos { | |||
description | description | |||
"Top level grouping for RSVP hellos parameters"; | "Top level grouping for RSVP hellos parameters"; | |||
container hellos { | container hellos { | |||
description | description | |||
"Top level container for RSVP hello parameters"; | "Top level container for RSVP hello parameters"; | |||
container config { | uses hellos_config; | |||
description | ||||
"Configuration parameters relating to | ||||
RSVP hello parameters"; | ||||
uses hellos_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"State information associated with RSVP | ||||
hello parameters"; | ||||
uses hellos_config; | ||||
} | ||||
} | } | |||
} | } | |||
grouping signaling-parameters_config { | grouping signaling-parameters_config { | |||
description | description | |||
"Configuration parameters relating to RSVP | "Configuration parameters relating to RSVP | |||
signaling"; | signaling"; | |||
} | } | |||
grouping signaling-parameters { | grouping signaling-parameters { | |||
description | description | |||
"Top level grouping for RSVP signaling parameters"; | "Top level grouping for RSVP signaling parameters"; | |||
container config { | uses signaling-parameters_config; | |||
description | ||||
"Configuration parameters relating to | ||||
RSVP signaling parameters"; | ||||
uses signaling-parameters_config; | ||||
} | ||||
container state { | ||||
config false; | ||||
description | ||||
"State information associated with RSVP | ||||
signaling parameters"; | ||||
uses signaling-parameters_config; | ||||
} | ||||
} | } | |||
grouping session-attributes_state { | grouping session-attributes_state { | |||
description | description | |||
"Top level grouping for RSVP session properties"; | "Top level grouping for RSVP session properties"; | |||
leaf local-index { | leaf local-index { | |||
type uint64; | type uint64; | |||
description | description | |||
"The index used to identify the RSVP session | "The index used to identify the RSVP session | |||
on the local network element. This index is | on the local network element. This index is | |||
skipping to change at page 22, line 24 ¶ | skipping to change at page 20, line 36 ¶ | |||
units seconds; | units seconds; | |||
description "Time to reservation expiry (in seconds)"; | description "Time to reservation expiry (in seconds)"; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
grouping neighbor-attributes { | grouping neighbor-attributes { | |||
description | description | |||
"Top level grouping for RSVP neighbor properties"; | "Top level grouping for RSVP neighbor properties"; | |||
container config { | leaf address { | |||
type inet:ip-address; | ||||
description | description | |||
"Configuration for neighbor properties"; | "Address of RSVP neighbor"; | |||
leaf address { | ||||
type inet:ip-address; | ||||
description | ||||
"Address of RSVP neighbor"; | ||||
} | ||||
} | } | |||
container state { | container state { | |||
config false; | config false; | |||
description | description | |||
"State information associated with RSVP | "State information associated with RSVP | |||
neighbor properties"; | neighbor properties"; | |||
uses neighbor-derived_state; | uses neighbor-derived_state; | |||
} | } | |||
} | } | |||
skipping to change at page 33, line 21 ¶ | skipping to change at page 31, line 29 ¶ | |||
leaf interface { | leaf interface { | |||
type if:interface-ref; | type if:interface-ref; | |||
description | description | |||
"RSVP interface."; | "RSVP interface."; | |||
} | } | |||
uses intf-attributes; | uses intf-attributes; | |||
} | } | |||
} | } | |||
container neighbors { | container neighbors { | |||
description | description "RSVP neighbors container"; | |||
"RSVP neighbors container"; | ||||
list neighbor { | list neighbor { | |||
key "address"; | key "address"; | |||
description | description "List of RSVP neighbors"; | |||
"List of RSVP neighbors"; | ||||
leaf address { | ||||
type leafref { | ||||
path "../config/address"; | ||||
} | ||||
description | ||||
"Address of RSVP neighbor"; | ||||
} | ||||
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 or non-core RSVP | The RSVP extended YANG model covers optional or non-core RSVP | |||
feature(s). It also covers feature(s) that are not necessarily | feature(s). It also covers feature(s) that are not necessarily | |||
supported by all vendors, and hence, guarded with "if-feature" | supported by all vendors, and hence, guarded with "if-feature" | |||
checks. | checks. | |||
3.2.1. Tree Diagram | 3.2.1. Tree Diagram | |||
Figure 4 shows the YANG tree representation for configuration and | Figure 4 shows the YANG tree representation for configuration and | |||
state data that is augmenting the RSVP basic module: | state data that is augmenting the RSVP basic module: | |||
module: ietf-rsvp | module: ietf-rsvp-extended | |||
augment | augment | |||
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
+--rw rsvp! | rsvp:rsvp/rsvp:globals/rsvp:graceful-restart: | |||
+--rw globals | +--rw restart-time? uint32 | |||
| +--rw sessions | +--rw recovery-time? uint32 | |||
| | +--ro session* [local-index] | augment | |||
| | +--ro local-index -> ../state/local-index | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | +--ro state | rsvp:rsvp/rsvp:globals/rsvp:statistics/rsvp:state/rsvp:packets: | |||
| | +--ro local-index? uint64 | +--ro discontinuity-time? yang:date-and-time | |||
| | +--ro destination-port? inet:port-number | +--ro out-dropped? yang:counter64 | |||
| | +--ro source? inet:ip-address | +--ro in-dropped? yang:counter64 | |||
| | +--ro destination? inet:ip-address | +--ro out-error? yang:counter64 | |||
| | +--ro session-name? string | +--ro in-error? yang:counter64 | |||
| | +--ro session-state? enumeration | augment | |||
| | +--ro session-type? identityref | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | +--ro psbs | rsvp:rsvp/rsvp:globals/rsvp:statistics/rsvp:state/rsvp:messages: | |||
| | | +--ro psb* | augment | |||
| | | +--ro source-port? inet:port-number | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | | +--ro expires-in? uint32 | rsvp:rsvp/rsvp:globals/rsvp:statistics/rsvp:state/rsvp:errors: | |||
| | +--ro rsbs | augment | |||
| | +--ro rsb* | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | +--ro source-port? inet:port-number | rsvp:rsvp/rsvp:interfaces: | |||
| | +--ro reservation-style? identityref | +--rw refresh-interval? uint32 | |||
| | +--ro expires-in? uint32 | +--rw refresh-misses? uint32 | |||
| +--rw statistics | +--rw checksum? boolean | |||
| | +--ro state | +--rw patherr-state-removal? empty | |||
| | +--ro messages | augment | |||
| | | +--ro ack-sent? yang:counter64 | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | | +--ro ack-received? yang:counter64 | rsvp:rsvp/rsvp:interfaces/rsvp:refresh-reduction: | |||
| | | +--ro bundle-sent? yang:counter64 | +--rw bundle-message-max-size? uint32 | |||
| | | +--ro bundle-received? yang:counter64 | +--rw reliable-ack-hold-time? uint32 | |||
| | | +--ro hello-sent? yang:counter64 | +--rw reliable-ack-max-size? uint32 | |||
| | | +--ro hello-received? yang:counter64 | +--rw reliable-retransmit-time? uint32 | |||
| | | +--ro integrity-challenge-sent? yang:counter64 | +--rw reliable-srefresh? empty | |||
| | | +--ro integrity-challenge-received? yang:counter64 | +--rw summary-max-size? uint32 | |||
| | | +--ro integrity-response-sent? yang:counter64 | augment | |||
| | | +--ro integrity-response-received? yang:counter64 | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | | +--ro notify-sent? yang:counter64 | rsvp:rsvp/rsvp:interfaces/rsvp:hellos: | |||
| | | +--ro notify-received? yang:counter64 | +--rw interface-based? empty | |||
| | | +--ro path-sent? yang:counter64 | +--rw hello-interval? uint32 | |||
| | | +--ro path-received? yang:counter64 | +--rw hello-misses? uint32 | |||
| | | +--ro path-err-sent? yang:counter64 | augment | |||
| | | +--ro path-err-received? yang:counter64 | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | | +--ro path-tear-sent? yang:counter64 | rsvp:rsvp/rsvp:interfaces/rsvp:authentication: | |||
| | | +--ro path-tear-received? yang:counter64 | +--rw lifetime? uint32 | |||
| | | +--ro resv-sent? yang:counter64 | +--rw window-size? uint32 | |||
| | | +--ro resv-received? yang:counter64 | +--rw challenge? empty | |||
| | | +--ro resv-confirm-sent? yang:counter64 | +--rw retransmits? uint32 | |||
| | | +--ro resv-confirm-received? yang:counter64 | +--rw key-chain? key-chain:key-chain-ref | |||
| | | +--ro resv-err-sent? yang:counter64 | augment | |||
| | | +--ro resv-err-received? yang:counter64 | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | | +--ro resv-tear-sent? yang:counter64 | rsvp:rsvp/rsvp:interfaces/rsvp:interface: | |||
| | | +--ro resv-tear-received? yang:counter64 | +--rw refresh-interval? uint32 | |||
| | | +--ro summary-refresh-sent? yang:counter64 | +--rw refresh-misses? uint32 | |||
| | | +--ro summary-refresh-received? yang:counter64 | +--rw checksum? boolean | |||
| | | +--ro unknown-messages-received? yang:counter64 | +--rw patherr-state-removal? empty | |||
| | +--ro packets | augment | |||
| | | +--ro sent? yang:counter64 | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | | +--ro received? yang:counter64 | rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:refresh-reduction: | |||
| | | +--ro rsvp-ext:discontinuity-time? yang:date-and-time | +--rw bundle-message-max-size? uint32 | |||
| | | +--ro rsvp-ext:out-dropped? yang:counter64 | +--rw reliable-ack-hold-time? uint32 | |||
| | | +--ro rsvp-ext:in-dropped? yang:counter64 | +--rw reliable-ack-max-size? uint32 | |||
| | | +--ro rsvp-ext:out-error? yang:counter64 | +--rw reliable-retransmit-time? uint32 | |||
| | | +--ro rsvp-ext:in-error? yang:counter64 | +--rw reliable-srefresh? empty | |||
| | +--ro errors | +--rw summary-max-size? uint32 | |||
| | +--ro authenticate? yang:counter64 | augment | |||
| | +--ro checksum? yang:counter64 | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| | +--ro packet-len? yang:counter64 | rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:hellos: | |||
| +--rw graceful-restart | +--rw interface-based? empty | |||
| +--rw config | +--rw hello-interval? uint32 | |||
| | +--rw enabled? boolean | +--rw hello-misses? uint32 | |||
| | +--rw rsvp-ext:restart-time? uint32 | augment | |||
| | +--rw rsvp-ext:recovery-time? uint32 | /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ | |||
| +--ro state | rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:authentication: | |||
| +--ro enabled? boolean | +--rw lifetime? uint32 | |||
| +--ro rsvp-ext:restart-time? uint32 | +--rw window-size? uint32 | |||
| +--ro rsvp-ext:recovery-time? uint32 | +--rw challenge? empty | |||
+--rw interfaces | +--rw retransmits? uint32 | |||
| +--rw config | +--rw key-chain? key-chain:key-chain-ref | |||
| | +--rw rsvp-ext:refresh-interval? uint32 | ||||
| | +--rw rsvp-ext:refresh-misses? uint32 | ||||
| | +--rw rsvp-ext:checksum? boolean | ||||
| | +--rw rsvp-ext:patherr-state-removal? empty | ||||
| +--ro state | ||||
| | +--ro rsvp-ext:refresh-interval? uint32 | ||||
| | +--ro rsvp-ext:refresh-misses? uint32 | ||||
| | +--ro rsvp-ext:checksum? boolean | ||||
| | +--ro rsvp-ext:patherr-state-removal? empty | ||||
| +--rw refresh-reduction | ||||
| | +--rw config | ||||
| | | +--rw enabled? boolean | ||||
| | | +--rw rsvp-ext:bundle-message-max-size? uint32 | ||||
| | | +--rw rsvp-ext:reliable-ack-hold-time? uint32 | ||||
| | | +--rw rsvp-ext:reliable-ack-max-size? uint32 | ||||
| | | +--rw rsvp-ext:reliable-retransmit-time? uint32 | ||||
| | | +--rw rsvp-ext:reliable-srefresh? empty | ||||
| | | +--rw rsvp-ext:summary-max-size? uint32 | ||||
| | +--ro state | ||||
| | +--ro enabled? boolean | ||||
| | +--ro rsvp-ext:bundle-message-max-size? uint32 | ||||
| | +--ro rsvp-ext:reliable-ack-hold-time? uint32 | ||||
| | +--ro rsvp-ext:reliable-ack-max-size? uint32 | ||||
| | +--ro rsvp-ext:reliable-retransmit-time? uint32 | ||||
| | +--ro rsvp-ext:reliable-srefresh? empty | ||||
| | +--ro rsvp-ext:summary-max-size? uint32 | ||||
| +--rw hellos | ||||
| | +--rw config | ||||
| | | +--rw enabled? boolean | ||||
| | | +--rw rsvp-ext:interface-based? empty | ||||
| | | +--rw rsvp-ext:hello-interval? uint32 | ||||
| | | +--rw rsvp-ext:hello-misses? uint32 | ||||
| | +--ro state | ||||
| | +--ro enabled? boolean | ||||
| | +--ro rsvp-ext:interface-based? empty | ||||
| | +--ro rsvp-ext:hello-interval? uint32 | ||||
| | +--ro rsvp-ext:hello-misses? uint32 | ||||
| +--rw authentication | ||||
| | +--rw config | ||||
| | | +--rw enabled? boolean | ||||
| | | +--rw authentication-key? string | ||||
| | | +--rw crypto-algorithm identityref | ||||
| | | +--rw rsvp-ext:lifetime? uint32 | ||||
| | | +--rw rsvp-ext:window-size? uint32 | ||||
| | | +--rw rsvp-ext:challenge? empty | ||||
| | | +--rw rsvp-ext:retransmits? uint32 | ||||
| | | +--rw rsvp-ext:key-chain? key-chain:key-chain-ref | ||||
| | +--ro state | ||||
| | +--ro enabled? boolean | ||||
| | +--ro authentication-key? string | ||||
| | +--ro crypto-algorithm identityref | ||||
| | +--ro rsvp-ext:lifetime? uint32 | ||||
| | +--ro rsvp-ext:window-size? uint32 | ||||
| | +--ro rsvp-ext:challenge? empty | ||||
| | +--ro rsvp-ext:retransmits? uint32 | ||||
| | +--ro rsvp-ext:key-chain? key-chain:key-chain-ref | ||||
| +--rw statistics | ||||
| | +--ro state | ||||
| | +--ro messages | ||||
| | | +--ro ack-sent? yang:counter64 | ||||
| | | +--ro ack-received? yang:counter64 | ||||
| | | +--ro bundle-sent? yang:counter64 | ||||
| | | +--ro bundle-received? yang:counter64 | ||||
| | | +--ro hello-sent? yang:counter64 | ||||
| | | +--ro hello-received? yang:counter64 | ||||
| | | +--ro integrity-challenge-sent? yang:counter64 | ||||
| | | +--ro integrity-challenge-received? yang:counter64 | ||||
| | | +--ro integrity-response-sent? yang:counter64 | ||||
| | | +--ro integrity-response-received? yang:counter64 | ||||
| | | +--ro notify-sent? yang:counter64 | ||||
| | | +--ro notify-received? yang:counter64 | ||||
| | | +--ro path-sent? yang:counter64 | ||||
| | | +--ro path-received? yang:counter64 | ||||
| | | +--ro path-err-sent? yang:counter64 | ||||
| | | +--ro path-err-received? yang:counter64 | ||||
| | | +--ro path-tear-sent? yang:counter64 | ||||
| | | +--ro path-tear-received? yang:counter64 | ||||
| | | +--ro resv-sent? yang:counter64 | ||||
| | | +--ro resv-received? yang:counter64 | ||||
| | | +--ro resv-confirm-sent? yang:counter64 | ||||
| | | +--ro resv-confirm-received? yang:counter64 | ||||
| | | +--ro resv-err-sent? yang:counter64 | ||||
| | | +--ro resv-err-received? yang:counter64 | ||||
| | | +--ro resv-tear-sent? yang:counter64 | ||||
| | | +--ro resv-tear-received? yang:counter64 | ||||
| | | +--ro summary-refresh-sent? yang:counter64 | ||||
| | | +--ro summary-refresh-received? yang:counter64 | ||||
| | | +--ro unknown-messages-received? yang:counter64 | ||||
| | +--ro packets | ||||
| | | +--ro sent? yang:counter64 | ||||
| | | +--ro received? yang:counter64 | ||||
| | +--ro errors | ||||
| | +--ro authenticate? yang:counter64 | ||||
| | +--ro checksum? yang:counter64 | ||||
| | +--ro packet-len? yang:counter64 | ||||
| +--rw interface* [interface] | ||||
| +--rw interface if:interface-ref | ||||
| +--rw config | ||||
| | +--rw rsvp-ext:refresh-interval? uint32 | ||||
| | +--rw rsvp-ext:refresh-misses? uint32 | ||||
| | +--rw rsvp-ext:checksum? boolean | ||||
| | +--rw rsvp-ext:patherr-state-removal? empty | ||||
| +--ro state | ||||
| | +--ro rsvp-ext:refresh-interval? uint32 | ||||
| | +--ro rsvp-ext:refresh-misses? uint32 | ||||
| | +--ro rsvp-ext:checksum? boolean | ||||
| | +--ro rsvp-ext:patherr-state-removal? empty | ||||
| +--rw refresh-reduction | ||||
| | +--rw config | ||||
| | | +--rw enabled? boolean | ||||
| | | +--rw rsvp-ext:bundle-message-max-size? uint32 | ||||
| | | +--rw rsvp-ext:reliable-ack-hold-time? uint32 | ||||
| | | +--rw rsvp-ext:reliable-ack-max-size? uint32 | ||||
| | | +--rw rsvp-ext:reliable-retransmit-time? uint32 | ||||
| | | +--rw rsvp-ext:reliable-srefresh? empty | ||||
| | | +--rw rsvp-ext:summary-max-size? uint32 | ||||
| | +--ro state | ||||
| | +--ro enabled? boolean | ||||
| | +--ro rsvp-ext:bundle-message-max-size? uint32 | ||||
| | +--ro rsvp-ext:reliable-ack-hold-time? uint32 | ||||
| | +--ro rsvp-ext:reliable-ack-max-size? uint32 | ||||
| | +--ro rsvp-ext:reliable-retransmit-time? uint32 | ||||
| | +--ro rsvp-ext:reliable-srefresh? empty | ||||
| | +--ro rsvp-ext:summary-max-size? uint32 | ||||
| +--rw hellos | ||||
| | +--rw config | ||||
| | | +--rw enabled? boolean | ||||
| | | +--rw rsvp-ext:interface-based? empty | ||||
| | | +--rw rsvp-ext:hello-interval? uint32 | ||||
| | | +--rw rsvp-ext:hello-misses? uint32 | ||||
| | +--ro state | ||||
| | +--ro enabled? boolean | ||||
| | +--ro rsvp-ext:interface-based? empty | ||||
| | +--ro rsvp-ext:hello-interval? uint32 | ||||
| | +--ro rsvp-ext:hello-misses? uint32 | ||||
| +--rw authentication | ||||
| | +--rw config | ||||
| | | +--rw enabled? boolean | ||||
| | | +--rw authentication-key? string | ||||
| | | +--rw crypto-algorithm identityref | ||||
| | | +--rw rsvp-ext:lifetime? uint32 | ||||
| | | +--rw rsvp-ext:window-size? uint32 | ||||
| | | +--rw rsvp-ext:challenge? empty | ||||
| | | +--rw rsvp-ext:retransmits? uint32 | ||||
| | | +--rw rsvp-ext:key-chain? key-chain:key-chain-ref | ||||
| | +--ro state | ||||
| | +--ro enabled? boolean | ||||
| | +--ro authentication-key? string | ||||
| | +--ro crypto-algorithm identityref | ||||
| | +--ro rsvp-ext:lifetime? uint32 | ||||
| | +--ro rsvp-ext:window-size? uint32 | ||||
| | +--ro rsvp-ext:challenge? empty | ||||
| | +--ro rsvp-ext:retransmits? uint32 | ||||
| | +--ro rsvp-ext:key-chain? key-chain:key-chain-ref | ||||
| +--rw statistics | ||||
| +--ro state | ||||
| +--ro messages | ||||
| | +--ro ack-sent? yang:counter64 | ||||
| | +--ro ack-received? yang:counter64 | ||||
| | +--ro bundle-sent? yang:counter64 | ||||
| | +--ro bundle-received? yang:counter64 | ||||
| | +--ro hello-sent? yang:counter64 | ||||
| | +--ro hello-received? yang:counter64 | ||||
| | +--ro integrity-challenge-sent? yang:counter64 | ||||
| | +--ro integrity-challenge-received? yang:counter64 | ||||
| | +--ro integrity-response-sent? yang:counter64 | ||||
| | +--ro integrity-response-received? yang:counter64 | ||||
| | +--ro notify-sent? yang:counter64 | ||||
| | +--ro notify-received? yang:counter64 | ||||
| | +--ro path-sent? yang:counter64 | ||||
| | +--ro path-received? yang:counter64 | ||||
| | +--ro path-err-sent? yang:counter64 | ||||
| | +--ro path-err-received? yang:counter64 | ||||
| | +--ro path-tear-sent? yang:counter64 | ||||
| | +--ro path-tear-received? yang:counter64 | ||||
| | +--ro resv-sent? yang:counter64 | ||||
| | +--ro resv-received? yang:counter64 | ||||
| | +--ro resv-confirm-sent? yang:counter64 | ||||
| | +--ro resv-confirm-received? yang:counter64 | ||||
| | +--ro resv-err-sent? yang:counter64 | ||||
| | +--ro resv-err-received? yang:counter64 | ||||
| | +--ro resv-tear-sent? yang:counter64 | ||||
| | +--ro resv-tear-received? yang:counter64 | ||||
| | +--ro summary-refresh-sent? yang:counter64 | ||||
| | +--ro summary-refresh-received? yang:counter64 | ||||
| | +--ro unknown-messages-received? yang:counter64 | ||||
| +--ro packets | ||||
| | +--ro sent? yang:counter64 | ||||
| | +--ro received? yang:counter64 | ||||
| +--ro errors | ||||
| +--ro authenticate? yang:counter64 | ||||
| +--ro checksum? yang:counter64 | ||||
| +--ro packet-len? yang:counter64 | ||||
+--rw neighbors | ||||
+--rw neighbor* [address] | ||||
+--rw address -> ../config/address | ||||
+--rw config | ||||
| +--rw address? inet:ip-address | ||||
+--ro state | ||||
+--ro address? inet:ip-address | ||||
+--ro epoch? uint32 | ||||
+--ro expiry-time? uint32 | ||||
+--ro graceful-restart | ||||
| +--ro enabled? boolean | ||||
| +--ro local-restart-time? uint32 | ||||
| +--ro local-recovery-time? uint32 | ||||
| +--ro neighbor-restart-time? uint32 | ||||
| +--ro neighbor-recovery-time? uint32 | ||||
| +--ro helper-mode | ||||
| +--ro enabled? boolean | ||||
| +--ro max-helper-restart-time? uint32 | ||||
| +--ro max-helper-recovery-time? uint32 | ||||
| +--ro neighbor-restart-time-remaining? uint32 | ||||
| +--ro neighbor-recovery-time-remaining? uint32 | ||||
+--ro hello-status? enumeration | ||||
+--ro interface? if:interface-ref | ||||
+--ro neighbor-state? enumeration | ||||
+--ro refresh-reduction-capable? boolean | ||||
+--ro restart-count? yang:counter32 | ||||
+--ro restart-time? yang:date-and-time | ||||
Figure 4: RSVP extended model tree diagram | Figure 4: RSVP extended model tree diagram | |||
3.2.2. YANG Module | 3.2.2. YANG Module | |||
Figure 5 shows the RSVP extended YANG module: | Figure 5 shows the RSVP extended YANG module: | |||
<CODE BEGINS> file "ietf-rsvp-extended@2017-03-10.yang" | <CODE BEGINS> file "ietf-rsvp-extended@2017-10-29.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 { | import ietf-rsvp { | |||
prefix "rsvp"; | prefix "rsvp"; | |||
} | } | |||
import ietf-routing { | import ietf-routing { | |||
prefix "rt"; | prefix "rt"; | |||
} | } | |||
skipping to change at page 41, line 45 ¶ | skipping to change at page 35, line 17 ¶ | |||
Editor: Raqib Jones | Editor: Raqib Jones | |||
<mailto:raqib@Brocade.com> | <mailto:raqib@Brocade.com> | |||
Editor: Bin Wen | Editor: Bin Wen | |||
<mailto:Bin_Wen@cable.comcast.com>"; | <mailto:Bin_Wen@cable.comcast.com>"; | |||
description | description | |||
"This module contains the Extended RSVP YANG data model."; | "This module contains the Extended RSVP YANG data model."; | |||
revision "2017-03-10" { | revision "2017-10-29" { | |||
description "Latest revision of RSVP extended yang module."; | description "Latest revision of RSVP extended yang module."; | |||
reference "RFC2205"; | reference "RFC2205"; | |||
} | } | |||
/* RSVP features */ | /* RSVP features */ | |||
feature authentication { | feature authentication { | |||
description | description | |||
"Indicates support for RSVP authentication"; | "Indicates support for RSVP authentication"; | |||
} | } | |||
skipping to change at page 48, line 14 ¶ | skipping to change at page 41, line 33 ¶ | |||
uses packets-extended_state; | uses packets-extended_state; | |||
uses protocol-extended_state; | uses protocol-extended_state; | |||
uses errors-extended_state; | uses errors-extended_state; | |||
} | } | |||
/** | /** | |||
* RSVP extensions augmentations | * RSVP extensions augmentations | |||
*/ | */ | |||
/* RSVP globals graceful restart*/ | /* RSVP globals graceful restart*/ | |||
augment "/rt:routing/rt:control-plane-protocols/" + | ||||
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + | ||||
"rsvp:graceful-restart/rsvp:config" { | ||||
description | ||||
"RSVP globals configuration extensions"; | ||||
uses graceful-restart-extended_config; | ||||
} | ||||
augment "/rt:routing/rt:control-plane-protocols/" + | augment "/rt:routing/rt:control-plane-protocols/" + | |||
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + | "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + | |||
"rsvp:graceful-restart/rsvp:state" { | "rsvp:graceful-restart" { | |||
description | description | |||
"RSVP globals configuration extensions"; | "RSVP globals configuration extensions"; | |||
uses graceful-restart-extended_config; | uses graceful-restart-extended_config; | |||
} | } | |||
/* RSVP statistics augmentation */ | /* RSVP statistics augmentation */ | |||
augment "/rt:routing/rt:control-plane-protocols/" + | augment "/rt:routing/rt:control-plane-protocols/" + | |||
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + | "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + | |||
"rsvp:statistics/rsvp:state/rsvp:packets" { | "rsvp:statistics/rsvp:state/rsvp:packets" { | |||
description | description | |||
skipping to change at page 49, line 4 ¶ | skipping to change at page 42, line 15 ¶ | |||
description | description | |||
"RSVP protocol message stats extensions"; | "RSVP protocol message stats extensions"; | |||
uses protocol-extended_state; | uses protocol-extended_state; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" + | augment "/rt:routing/rt:control-plane-protocols/" + | |||
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + | "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + | |||
"rsvp:statistics/rsvp:state/rsvp:errors" { | "rsvp:statistics/rsvp:state/rsvp:errors" { | |||
description | description | |||
"RSVP errors stats extensions"; | "RSVP errors stats extensions"; | |||
uses errors-extended_state; | uses errors-extended_state; | |||
} | } | |||
/** | /** | |||
* RSVP all interfaces extensions | * RSVP all interfaces extensions | |||
*/ | */ | |||
/* RSVP interface signaling extensions */ | /* RSVP interface signaling extensions */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { | |||
+ "rsvp:config" { | ||||
description | description | |||
"RSVP signaling all interfaces configuration extensions"; | "RSVP signaling all interfaces configuration extensions"; | |||
uses signaling-parameters-extended_config; | uses signaling-parameters-extended_config; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | ||||
+ "rsvp:state" { | ||||
description | ||||
"RSVP signaling all interfaces state extensions"; | ||||
uses signaling-parameters-extended_config; | ||||
} | ||||
/* RSVP refresh reduction extension */ | /* RSVP refresh reduction extension */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | |||
+ "rsvp:refresh-reduction/rsvp:config" { | + "rsvp:refresh-reduction" { | |||
description | description | |||
"RSVP refresh-reduction all interface configuration | "RSVP refresh-reduction all interface configuration | |||
extensions"; | extensions"; | |||
uses refresh-reduction-extended_config; | uses refresh-reduction-extended_config; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | ||||
+ "rsvp:refresh-reduction/rsvp:state" { | ||||
description | ||||
"RSVP refresh-reduction all interfaces state extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
/* RSVP hellos extension */ | /* RSVP hellos extension */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | |||
+ "rsvp:hellos/rsvp:config" { | + "rsvp:hellos" { | |||
description | description | |||
"RSVP hello all interfaces configuration extensions"; | "RSVP hello all interfaces configuration extensions"; | |||
uses hellos-extended_config; | uses hellos-extended_config; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | ||||
+ "rsvp:hellos/rsvp:state" { | ||||
description | ||||
"RSVP hello all interfaces state extensions"; | ||||
uses hellos-extended_config; | ||||
} | ||||
/* RSVP authentication extension */ | /* RSVP authentication extension */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | |||
+ "rsvp:authentication/rsvp:config" { | + "rsvp:authentication" { | |||
description | description | |||
"RSVP authentication all interfaces configuration extensions"; | "RSVP authentication all interfaces configuration extensions"; | |||
uses authentication-extended_config; | uses authentication-extended_config; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" | ||||
+ "rsvp:authentication/rsvp:state" { | ||||
description | ||||
"RSVP authentication all interfaces state extensions"; | ||||
uses authentication-extended_config; | ||||
} | ||||
/** | /** | |||
* RSVP interface extensions | * RSVP interface extensions | |||
*/ | */ | |||
/* RSVP interface signaling extensions */ | /* RSVP interface signaling extensions */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | |||
"rsvp:interface/rsvp:config" { | "rsvp:interface" { | |||
description | description | |||
"RSVP signaling interface configuration extensions"; | "RSVP signaling interface configuration extensions"; | |||
uses signaling-parameters-extended_config; | uses signaling-parameters-extended_config; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:state" { | ||||
description | ||||
"RSVP signaling interface state extensions"; | ||||
uses signaling-parameters-extended_config; | ||||
} | ||||
/* RSVP refresh reduction extension */ | /* RSVP refresh reduction extension */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | |||
"rsvp:interface/rsvp:refresh-reduction/rsvp:config" { | "rsvp:interface/rsvp:refresh-reduction" { | |||
description | description | |||
"RSVP refresh-reduction interface configuration extensions"; | "RSVP refresh-reduction interface configuration extensions"; | |||
uses refresh-reduction-extended_config; | uses refresh-reduction-extended_config; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:refresh-reduction/rsvp:state" { | ||||
description | ||||
"RSVP refresh-reduction interface state extensions"; | ||||
uses refresh-reduction-extended_config; | ||||
} | ||||
/* RSVP hellos extension */ | /* RSVP hellos extension */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | |||
"rsvp:interface/rsvp:hellos/rsvp:config" { | "rsvp:interface/rsvp:hellos" { | |||
description | description | |||
"RSVP hello interface configuration extensions"; | "RSVP hello interface configuration extensions"; | |||
uses hellos-extended_config; | uses hellos-extended_config; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:hellos/rsvp:state" { | ||||
description | ||||
"RSVP hello interface state extensions"; | ||||
uses hellos-extended_config; | ||||
} | ||||
/* RSVP authentication extension */ | /* RSVP authentication extension */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | |||
"rsvp:interface/rsvp:authentication/rsvp:config" { | "rsvp:interface/rsvp:authentication" { | |||
description | description | |||
"RSVP authentication interface configuration extensions"; | "RSVP authentication interface configuration extensions"; | |||
uses authentication-extended_config; | uses authentication-extended_config; | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + | ||||
"rsvp:interface/rsvp:authentication/rsvp:state" { | ||||
description | ||||
"RSVP authentication interface state extensions"; | ||||
uses authentication-extended_config; | ||||
} | ||||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
Figure 5: RSVP extended YANG module | Figure 5: RSVP extended YANG module | |||
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. | |||
skipping to change at page 53, line 28 ¶ | skipping to change at page 45, line 28 ¶ | |||
Comcast | Comcast | |||
Email: Bin_Wen@cable.comcast.com | Email: Bin_Wen@cable.comcast.com | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | |||
RFC2119, March 1997, | RFC2119, March 1997, <https://www.rfc-editor.org/info/ | |||
<http://www.rfc-editor.org/info/rfc2119>. | 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, <https://www.rfc-editor.org/info/rfc2205>. | |||
[RFC2747] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic | [RFC2747] Baker, F., Lindell, B., and M. Talwar, "RSVP Cryptographic | |||
Authentication", RFC 2747, DOI 10.17487/RFC2747, January | Authentication", RFC 2747, DOI 10.17487/RFC2747, January | |||
2000, <http://www.rfc-editor.org/info/rfc2747>. | 2000, <https://www.rfc-editor.org/info/rfc2747>. | |||
[RFC2961] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F., | [RFC2961] Berger, L., Gan, D., Swallow, G., Pan, P., Tommasi, F., | |||
and S. Molendini, "RSVP Refresh Overhead Reduction | and S. Molendini, "RSVP Refresh Overhead Reduction | |||
Extensions", RFC 2961, DOI 10.17487/RFC2961, April 2001, | Extensions", RFC 2961, DOI 10.17487/RFC2961, April 2001, | |||
<http://www.rfc-editor.org/info/rfc2961>. | <https://www.rfc-editor.org/info/rfc2961>. | |||
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | |||
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | |||
Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | |||
<http://www.rfc-editor.org/info/rfc3209>. | <https://www.rfc-editor.org/info/rfc3209>. | |||
[RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label | [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label | |||
Switching (GMPLS) Signaling Resource ReserVation Protocol- | Switching (GMPLS) Signaling Resource ReserVation Protocol- | |||
Traffic Engineering (RSVP-TE) Extensions", RFC 3473, DOI | Traffic Engineering (RSVP-TE) Extensions", RFC 3473, DOI | |||
10.17487/RFC3473, January 2003, | 10.17487/RFC3473, January 2003, <https://www.rfc- | |||
<http://www.rfc-editor.org/info/rfc3473>. | editor.org/info/rfc3473>. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, <https://www.rfc- | |||
<http://www.rfc-editor.org/info/rfc3688>. | editor.org/info/rfc3688>. | |||
[RFC5063] Satyanarayana, A., Ed. and R. Rahman, Ed., "Extensions to | [RFC5063] Satyanarayana, A., Ed. and R. Rahman, Ed., "Extensions to | |||
GMPLS Resource Reservation Protocol (RSVP) Graceful | GMPLS Resource Reservation Protocol (RSVP) Graceful | |||
Restart", RFC 5063, DOI 10.17487/RFC5063, October 2007, | Restart", RFC 5063, DOI 10.17487/RFC5063, October 2007, | |||
<http://www.rfc-editor.org/info/rfc5063>. | <https://www.rfc-editor.org/info/rfc5063>. | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, <https://www.rfc- | |||
<http://www.rfc-editor.org/info/rfc6020>. | editor.org/info/rfc6020>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
<http://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
<http://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | |||
Protocol (NETCONF) Access Control Model", RFC 6536, DOI | Protocol (NETCONF) Access Control Model", RFC 6536, DOI | |||
10.17487/RFC6536, March 2012, | 10.17487/RFC6536, March 2012, <https://www.rfc- | |||
<http://www.rfc-editor.org/info/rfc6536>. | editor.org/info/rfc6536>. | |||
[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, <https://www.rfc- | |||
<http://www.rfc-editor.org/info/rfc6991>. | editor.org/info/rfc6991>. | |||
[RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing | |||
Management", RFC 8022, DOI 10.17487/RFC8022, November | Management", RFC 8022, DOI 10.17487/RFC8022, November | |||
2016, <http://www.rfc-editor.org/info/rfc8022>. | 2016, <https://www.rfc-editor.org/info/rfc8022>. | |||
8.2. Informative References | 8.2. Informative References | |||
[I-D.openconfig-mpls-consolidated-model] | [I-D.dsdt-nmda-guidelines] | |||
George, J., Fang, L., eric.osborne@level3.com, e., and R. | Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
Shakir, "MPLS / TE Model for Service Provider Networks", | and R. Wilton, "Guidelines for YANG Module Authors | |||
draft-openconfig-mpls-consolidated-model-02 (work in | (NMDA)", draft-dsdt-nmda-guidelines-01 (work in progress), | |||
progress), October 2015. | May 2017. | |||
[I-D.openconfig-netmod-opstate] | ||||
Shakir, R., Shaikh, A., and M. Hines, "Consistent Modeling | ||||
of Operational State Data in YANG", draft-openconfig- | ||||
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 (editor) | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
End of changes. 61 change blocks. | ||||
764 lines changed or deleted | 372 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |