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/