draft-ietf-teas-yang-rsvp-04.txt   draft-ietf-teas-yang-rsvp-05.txt 
TEAS Working Group V. Beeram TEAS Working Group V. Beeram
Internet-Draft Juniper Networks Internet-Draft Juniper Networks
Intended status: Standards Track T. Saad, Ed. Intended status: Standards Track T. Saad, Ed.
Expires: April 6, 2017 R. Gandhi Expires: May 2, 2017 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 03, 2016 October 29, 2016
A YANG Data Model for Resource Reservation Protocol (RSVP) A YANG Data Model for Resource Reservation Protocol (RSVP)
draft-ietf-teas-yang-rsvp-04 draft-ietf-teas-yang-rsvp-05
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 6, 2017. This Internet-Draft will expire on May 2, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 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
skipping to change at page 2, line 45 skipping to change at page 2, line 45
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 . . . . . . . . . . . . . . . . 32 3.2. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 32
3.2.1. Configuration and State Data . . . . . . . . . . . . 32 3.2.1. Configuration and State Data . . . . . . . . . . . . 32
3.2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 35 3.2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 35
3.3. RSVP-TE Generic YANG Model . . . . . . . . . . . . . . . 46 3.3. RSVP-TE Generic YANG Model . . . . . . . . . . . . . . . 46
3.3.1. Configuration and State Data . . . . . . . . . . . . 47 3.3.1. Configuration and State Data . . . . . . . . . . . . 47
3.3.2. RPC and Notification Data . . . . . . . . . . . . . . 49 3.3.2. RPC and Notification Data . . . . . . . . . . . . . . 50
3.3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 50 3.3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 50
3.4. RSVP-TE MPLS Model . . . . . . . . . . . . . . . . . . . 58 3.4. RSVP-TE MPLS Model . . . . . . . . . . . . . . . . . . . 61
3.4.1. Configuration and State Data . . . . . . . . . . . . 58 3.4.1. Configuration and State Data . . . . . . . . . . . . 61
3.4.2. RPC and Notification Data . . . . . . . . . . . . . . 62 3.4.2. RPC and Notification Data . . . . . . . . . . . . . . 65
3.4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 62 3.4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . 65
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 75 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 78
5. Security Considerations . . . . . . . . . . . . . . . . . . . 75 5. Security Considerations . . . . . . . . . . . . . . . . . . . 78
6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 76 6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 79
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 76 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.1. Normative References . . . . . . . . . . . . . . . . . . 76 7.1. Normative References . . . . . . . . . . . . . . . . . . 79
7.2. Informative References . . . . . . . . . . . . . . . . . 77 7.2. Informative References . . . . . . . . . . . . . . . . . 80
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 78 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 81
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
skipping to change at page 11, line 6 skipping to change at page 10, line 21
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: augment /rt:routing/rt:control-plane-protocols/
rt:control-plane-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 15, line 42 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@2016-10-02.yang" <CODE BEGINS> file "ietf-rsvp@2016-10-29.yang"
module ietf-rsvp { module ietf-rsvp {
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp";
/* Replace with IANA when assigned */ /* Replace with IANA when assigned */
prefix "rsvp"; prefix "rsvp";
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
skipping to change at page 16, line 46 skipping to change at page 16, line 43
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@cisco.com> <mailto:tsaad@cisco.com>
Editor: Rakesh Gandhi Editor: Rakesh Gandhi
<mailto:rgandhi@cisco.com> <mailto:rgandhi@cisco.com>
Editor: Himanshu Shah Editor: Himanshu Shah
<mailto:hshah@ciena.com> <mailto:hshah@ciena.com>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto:xufeng.liu@ericsson.com> <mailto:xliu@kuatrotech.com>
Editor: Xia Chen Editor: Xia Chen
<mailto:jescia.chenxia@huawei.com> <mailto:jescia.chenxia@huawei.com>
Editor: Raqib Jones Editor: Raqib Jones
<mailto:raqib@Brocade.com> <mailto:raqib@Brocade.com>
Editor: Bin Wen Editor: Bin Wen
<mailto:Bin_Wen@cable.comcast.com>"; <mailto:Bin_Wen@cable.comcast.com>";
description description
"This module contains the RSVP YANG data model."; "This module contains the RSVP YANG data model.";
revision "2016-10-02" { revision "2016-10-29" {
description "Latest revision of RSVP yang module."; description "Latest revision of RSVP yang module.";
reference "RFC2205"; reference "RFC2205";
} }
identity rsvp { identity rsvp {
base "rt:routing-protocol"; base "rt:routing-protocol";
description "RSVP protocol"; description "RSVP protocol";
} }
identity hash-algorithm { identity hash-algorithm {
skipping to change at page 32, line 30 skipping to change at page 32, line 27
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 /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:globals/rsvp:config/rsvp:graceful-restart: /rsvp:rsvp/rsvp:globals/rsvp:config/rsvp:graceful-restart:
+--rw restart-time? uint32 +--rw restart-time? uint32
+--rw recovery-time? uint32 +--rw recovery-time? uint32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:globals/rsvp:state/rsvp:graceful-restart: /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:graceful-restart:
+--ro restart-time? uint32 +--ro restart-time? uint32
+--ro recovery-time? uint32 +--ro recovery-time? uint32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:globals/rsvp:state/rsvp:packets-stats: /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:packets-stats:
+--ro discontinuity-time? yang:date-and-time +--ro discontinuity-time? yang:date-and-time
+--ro tx-dropped? yang:counter32 +--ro tx-dropped? yang:counter32
+--ro rx-dropped? yang:counter32 +--ro rx-dropped? yang:counter32
+--ro tx-error? yang:counter32 +--ro tx-error? yang:counter32
+--ro rx-error? yang:counter32 +--ro rx-error? yang:counter32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:globals/rsvp:state/rsvp:protocol-stats: /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:protocol-stats:
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:globals/rsvp:state/rsvp:errors-stats: /rsvp:rsvp/rsvp:globals/rsvp:state/rsvp:errors-stats:
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:config: /rsvp:rsvp/rsvp:interfaces/rsvp:config:
+--rw refresh-interval? uint32 +--rw refresh-interval? uint32
+--rw refresh-misses? uint32 +--rw refresh-misses? uint32
+--rw checksum? uint32 +--rw checksum? uint32
+--rw patherr-state-removal? empty +--rw patherr-state-removal? empty
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:state: /rsvp:rsvp/rsvp:interfaces/rsvp:state:
+--ro refresh-interval? uint32 +--ro refresh-interval? uint32
+--ro refresh-misses? uint32 +--ro refresh-misses? uint32
+--ro checksum? uint32 +--ro checksum? uint32
+--ro patherr-state-removal? empty +--ro patherr-state-removal? empty
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:config/rsvp:refresh-reduction: /rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:refresh-reduction:
+--rw bundle-message-max-size? uint32 +--rw bundle-message-max-size? uint32
+--rw reliable-ack-hold-time? uint32 +--rw reliable-ack-hold-time? uint32
+--rw reliable-ack-max-size? uint32 +--rw reliable-ack-max-size? uint32
+--rw reliable-retransmit-time? uint32 +--rw reliable-retransmit-time? uint32
+--rw reliable-srefresh? empty +--rw reliable-srefresh? empty
+--rw summary-max-size? uint32 +--rw summary-max-size? uint32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:state/rsvp:refresh-reduction: /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:refresh-reduction:
+--ro bundle-message-max-size? uint32 +--ro bundle-message-max-size? uint32
+--ro reliable-ack-hold-time? uint32 +--ro reliable-ack-hold-time? uint32
+--ro reliable-ack-max-size? uint32 +--ro reliable-ack-max-size? uint32
+--ro reliable-retransmit-time? uint32 +--ro reliable-retransmit-time? uint32
+--ro reliable-srefresh? empty +--ro reliable-srefresh? empty
+--ro summary-max-size? uint32 +--ro summary-max-size? uint32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:config/rsvp:rsvp-hellos: /rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:rsvp-hellos:
+--rw interface-based? empty +--rw interface-based? empty
+--rw hello-interval? uint32 +--rw hello-interval? uint32
+--rw hello-misses? uint32 +--rw hello-misses? uint32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:state/rsvp:rsvp-hellos: /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:rsvp-hellos:
+--ro interface-based? empty +--ro interface-based? empty
+--ro hello-interval? uint32 +--ro hello-interval? uint32
+--ro hello-misses? uint32 +--ro hello-misses? uint32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:config/rsvp:authentication: /rsvp:rsvp/rsvp:interfaces/rsvp:config/rsvp:authentication:
+--rw lifetime? uint32 +--rw lifetime? uint32
+--rw window-size? uint32 +--rw window-size? uint32
+--rw challenge? empty +--rw challenge? empty
+--rw retransmits? uint32 +--rw retransmits? uint32
+--rw key-chain? string +--rw key-chain? string
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:state/rsvp:authentication: /rsvp:rsvp/rsvp:interfaces/rsvp:state/rsvp:authentication:
+--ro lifetime? uint32 +--ro lifetime? uint32
+--ro window-size? uint32 +--ro window-size? uint32
+--ro challenge? empty +--ro challenge? empty
+--ro retransmits? uint32 +--ro retransmits? uint32
+--ro key-chain? string +--ro key-chain? string
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:interface/rsvp:config: /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config:
+--rw refresh-interval? uint32 +--rw refresh-interval? uint32
+--rw refresh-misses? uint32 +--rw refresh-misses? uint32
+--rw checksum? uint32 +--rw checksum? uint32
+--rw patherr-state-removal? empty +--rw patherr-state-removal? empty
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:interface/rsvp:state: /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state:
+--ro refresh-interval? uint32 +--ro refresh-interval? uint32
+--ro refresh-misses? uint32 +--ro refresh-misses? uint32
+--ro checksum? uint32 +--ro checksum? uint32
+--ro patherr-state-removal? empty +--ro patherr-state-removal? empty
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:interfaces/rsvp:interface/rsvp:config/rsvp:refresh-reduction: /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/
+--rw bundle-message-max-size? uint32 rsvp:refresh-reduction:
+--rw reliable-ack-hold-time? uint32 +--rw bundle-message-max-size? uint32
+--rw reliable-ack-max-size? uint32 +--rw reliable-ack-hold-time? uint32
+--rw reliable-retransmit-time? uint32 +--rw reliable-ack-max-size? uint32
+--rw reliable-srefresh? empty +--rw reliable-retransmit-time? uint32
+--rw summary-max-size? uint32 +--rw reliable-srefresh? empty
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ +--rw summary-max-size? uint32
rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:refresh-reduction: augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
+--ro bundle-message-max-size? uint32 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/
+--ro reliable-ack-hold-time? uint32 rsvp:refresh-reduction:
+--ro reliable-ack-max-size? uint32 +--ro bundle-message-max-size? uint32
+--ro reliable-retransmit-time? uint32 +--ro reliable-ack-hold-time? uint32
+--ro reliable-srefresh? empty +--ro reliable-ack-max-size? uint32
+--ro summary-max-size? uint32 +--ro reliable-retransmit-time? uint32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ +--ro reliable-srefresh? empty
rsvp:interfaces/rsvp:interface/rsvp:config/rsvp:rsvp-hellos: +--ro summary-max-size? uint32
+--rw interface-based? empty augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
+--rw hello-interval? uint32 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/rsvp:rsvp-hellos:
+--rw hello-misses? 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:rsvp-hellos: +--rw hello-misses? uint32
+--ro interface-based? empty augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
+--ro hello-interval? uint32 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:rsvp-hellos:
+--ro hello-misses? uint32 +--ro interface-based? empty
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ +--ro hello-interval? uint32
rsvp:interfaces/rsvp:interface/rsvp:config/rsvp:authentication: +--ro hello-misses? uint32
+--rw lifetime? uint32 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
+--rw window-size? uint32 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:config/
+--rw challenge? empty rsvp:authentication:
+--rw retransmits? uint32 +--rw lifetime? uint32
+--rw key-chain? string +--rw window-size? uint32
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ +--rw challenge? empty
rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:authentication: +--rw retransmits? uint32
+--rw key-chain? string
+--ro lifetime? uint32 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
+--ro window-size? uint32 /rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:state/rsvp:authentication
+--ro challenge? empty +--ro lifetime? uint32
+--ro retransmits? uint32 +--ro window-size? uint32
+--ro key-chain? string +--ro challenge? empty
+--ro retransmits? uint32
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@2016-10-02.yang" <CODE BEGINS> file "ietf-rsvp-extended@2016-10-29.yang"
module ietf-rsvp-extended { module ietf-rsvp-extended {
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended";
prefix "rsvp-ext"; prefix "rsvp-ext";
import ietf-rsvp { import ietf-rsvp {
prefix "rsvp"; prefix "rsvp";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
} }
organization organization
"IETF Traffic Engineering Architecture and Signaling (TEAS) "IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group"; Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/teas/> "WG Web: <http://tools.ietf.org/wg/teas/>
WG List: <mailto:teas@ietf.org> WG List: <mailto:teas@ietf.org>
WG Chair: Lou Berger WG Chair: Lou Berger
<mailto:lberger@labn.net> <mailto:lberger@labn.net>
WG Chair: Vishnu Pavan Beeram WG Chair: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net> <mailto:vbeeram@juniper.net>
Editor: Vishnu Pavan Beeram Editor: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net> <mailto:vbeeram@juniper.net>
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@cisco.com> <mailto:tsaad@cisco.com>
Editor: Rakesh Gandhi Editor: Rakesh Gandhi
<mailto:rgandhi@cisco.com> <mailto:rgandhi@cisco.com>
Editor: Himanshu Shah Editor: Himanshu Shah
<mailto:hshah@ciena.com> <mailto:hshah@ciena.com>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto:xufeng.liu@ericsson.com> <mailto:xliu@kuatrotech.com>
Editor: Xia Chen Editor: Xia Chen
<mailto:jescia.chenxia@huawei.com> <mailto:jescia.chenxia@huawei.com>
Editor: Raqib Jones Editor: Raqib Jones
<mailto:raqib@Brocade.com> <mailto:raqib@Brocade.com>
Editor: Bin Wen Editor: Bin Wen
<mailto:Bin_Wen@cable.comcast.com>"; <mailto:Bin_Wen@cable.comcast.com>";
description description
"This module contains the Extended RSVP YANG data model."; "This module contains the Extended RSVP YANG data model.";
revision "2016-10-02" { revision "2016-10-29" {
description "Latest revision of RSVP extended yang module."; description "Latest revision of RSVP extended yang module.";
reference "RFC2205"; reference "RFC2205";
} }
/* RSVP features */ /* RSVP features */
feature authentication { feature authentication {
description description
"Indicates support for RSVP authentication"; "Indicates support for RSVP authentication";
} }
feature error-statistics { feature error-statistics {
description description
"Indicates support for error statistics"; "Indicates support for error statistics";
} }
feature global-statistics { feature global-statistics {
description description
"Indicates support for global statistics"; "Indicates support for global statistics";
} }
feature graceful-restart { feature graceful-restart {
description description
"Indicates support for RSVP graceful restart"; "Indicates support for RSVP graceful restart";
}
} feature hellos {
description
"Indicates support for RSVP hellos (RFC3209).";
}
feature hellos { feature notify {
description description
"Indicates support for RSVP hellos (RFC3209)."; "Indicates support for RSVP notify message (RFC3473).";
} }
feature notify { feature refresh-reduction {
description description
"Indicates support for RSVP notify message (RFC3473)."; "Indicates support for RSVP refresh reduction
} (RFC2961).";
}
feature refresh-reduction { feature refresh-reduction-extended {
description description
"Indicates support for RSVP refresh reduction "Indicates support for RSVP refresh reduction
(RFC2961)."; (RFC2961).";
} }
feature refresh-reduction-extended { feature per-interface-statistics {
description description
"Indicates support for RSVP refresh reduction "Indicates support for per interface statistics";
(RFC2961)."; }
}
feature per-interface-statistics { grouping graceful-restart-extended_config {
description description
"Indicates support for per interface 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 graceful-restart-extended_config { grouping authentication-extended_config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
Graceful-Restart"; authentication";
leaf restart-time { leaf lifetime {
type uint32; type uint32 {
units seconds; range "30..86400";
description }
"Graceful restart time (seconds)."; description
reference "Life time for each security association";
"RFC 5495: Description of the Resource reference
Reservation Protocol - Traffic-Engineered "RFC 2747: RSVP Cryptographic
(RSVP-TE) Graceful Restart Procedures"; Authentication";
} }
leaf recovery-time { leaf window-size {
type uint32; type uint32 {
description range "1..64";
"RSVP state recovery time"; }
} 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 rsvp-hellos-extended_config {
description
"Configuration parameters relating to RSVP
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 authentication-extended_config { }
description }
"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 rsvp-hellos-extended_config { grouping signaling-parameters-extended_config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
hellos"; signaling";
leaf interface-based { leaf refresh-interval {
type empty; type uint32;
description "Enable interface-based description
Hello adjacency if present."; "Set interval between successive refreshes";
} }
leaf hello-interval { leaf refresh-misses {
type uint32; type uint32;
units milliseconds; description
description "Set max number of consecutive missed
"Configure interval between successive Hello messages for state expiry";
messages in milliseconds."; }
reference leaf checksum {
"RFC 3209: RSVP-TE: Extensions to RSVP for type uint32;
LSP Tunnels. description
RFC 5495: Description of the Resource "Enable RSVP message checksum computation";
Reservation Protocol - Traffic-Engineered }
(RSVP-TE) Graceful Restart Procedures"; leaf patherr-state-removal {
} type empty;
leaf hello-misses { description
type uint32 { "State-Removal flag in Path Error message
range "1..10"; if present.";
} }
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 {
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.";
}
}
grouping refresh-reduction-extended_config { grouping refresh-reduction-extended_config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
refresh reduction"; refresh reduction";
leaf bundle-message-max-size { leaf bundle-message-max-size {
type uint32 { type uint32 {
range "512..65000"; range "512..65000";
} }
description description
"Configure maximum size (bytes) of a "Configure maximum size (bytes) of a
single RSVP Bundle message."; single RSVP Bundle message.";
} }
leaf reliable-ack-hold-time { leaf reliable-ack-hold-time {
type uint32; type uint32;
units milliseconds; units milliseconds;
description description
"Configure hold time in milliseconds for "Configure hold time in milliseconds for
sending RSVP ACK message(s)."; sending RSVP ACK message(s).";
} }
leaf reliable-ack-max-size { leaf reliable-ack-max-size {
type uint32; type uint32;
description description
"Configure max size of a single RSVP ACK "Configure max size of a single RSVP ACK
message."; message.";
} }
leaf reliable-retransmit-time { leaf reliable-retransmit-time {
type uint32; type uint32;
units milliseconds; units milliseconds;
description description
"Configure min delay in milliseconds to "Configure min delay in milliseconds to
wait for an ACK before a retransmit."; wait for an ACK before a retransmit.";
} }
leaf reliable-srefresh { leaf reliable-srefresh {
type empty; type empty;
description description
"Configure use of reliable messaging for "Configure use of reliable messaging for
summary refresh if present."; summary refresh if present.";
} }
leaf summary-max-size { leaf summary-max-size {
type uint32 { type uint32 {
range "20..65000"; range "20..65000";
} }
description description
"Configure max size (bytes) of a single "Configure max size (bytes) of a single
RSVP summary refresh message."; RSVP summary refresh message.";
} }
} }
grouping statistics-packets-extended_state { grouping statistics-packets-extended_state {
description description
"Packet statistics."; "Packet statistics.";
leaf discontinuity-time { leaf discontinuity-time {
type yang:date-and-time; type yang:date-and-time;
description description
"The time on the most recent occasion at which any one "The time on the most recent occasion at which any one
or more of the statistic counters suffered a or more of the statistic counters suffered a
discontinuity. If no such discontinuities have occurred discontinuity. If no such discontinuities have occurred
since the last re-initialization of the local since the last re-initialization of the local
management subsystem, then this node contains the time management subsystem, then this node contains the time
the local management subsystem re-initialized itself."; the local management subsystem re-initialized itself.";
} }
leaf tx-dropped { leaf tx-dropped {
type yang:counter32; type yang:counter32;
description description
"Packet tx dropped count"; "Packet tx dropped count";
} }
leaf rx-dropped {
type yang:counter32;
description
"Packet rx dropped count";
}
leaf tx-error { leaf rx-dropped {
type yang:counter32; type yang:counter32;
description description
"Packet tx error count"; "Packet rx dropped count";
} }
leaf rx-error { leaf tx-error {
type yang:counter32; type yang:counter32;
description description
"Packet rx error count"; "Packet tx error count";
} }
}
grouping statistics-protocol-extended_state { leaf rx-error {
description type yang:counter32;
"RSVP protocol statistics."; description
} "Packet rx error count";
}
}
grouping statistics-errors-extended_state { grouping statistics-protocol-extended_state {
description description
"Error statistics."; "RSVP protocol statistics.";
} }
grouping statistics-extended_state { grouping statistics-errors-extended_state {
description "RSVP statistic attributes."; description
uses statistics-packets-extended_state; "Error statistics.";
uses statistics-protocol-extended_state; }
uses statistics-errors-extended_state;
}
/** grouping statistics-extended_state {
* RSVP extensions augmentations description "RSVP statistic attributes.";
*/ uses statistics-packets-extended_state;
uses statistics-protocol-extended_state;
uses statistics-errors-extended_state;
}
/* RSVP globals graceful restart*/ /**
* RSVP extensions augmentations
*/
augment "/rt:routing/rt:control-plane-protocols/" /* RSVP globals graceful restart*/
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/rsvp:config/"+
"rsvp:graceful-restart" {
description
"RSVP globals configuration extensions";
uses graceful-restart-extended_config;
} augment "/rt:routing/rt:control-plane-protocols/" +
augment "/rt:routing/rt:control-plane-protocols/" "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/rsvp:state/"+ "rsvp:config/rsvp:graceful-restart" {
"rsvp:graceful-restart" {
description
"RSVP globals state extensions";
uses graceful-restart-extended_config;
}
/* RSVP statistics augmentation */ description
augment "/rt:routing/rt:control-plane-protocols/" "RSVP globals configuration extensions";
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/rsvp:state/"+ uses graceful-restart-extended_config;
"rsvp:packets-stats" { }
description augment "/rt:routing/rt:control-plane-protocols/" +
"RSVP packet stats extensions"; "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
uses statistics-packets-extended_state; "rsvp:state/rsvp:graceful-restart" {
} description
augment "/rt:routing/rt:control-plane-protocols/" "RSVP globals state extensions";
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/rsvp:state/"+ uses graceful-restart-extended_config;
"rsvp:protocol-stats" { }
description
"RSVP protocol message stats extensions";
uses statistics-protocol-extended_state;
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/rsvp:state/"+
"rsvp:errors-stats" {
description
"RSVP errors stats extensions";
uses statistics-errors-extended_state;
}
/** /* RSVP statistics augmentation */
* RSVP all interfaces extensions augment "/rt:routing/rt:control-plane-protocols/" +
*/ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:state/rsvp:packets-stats" {
description
"RSVP packet stats extensions";
uses statistics-packets-extended_state;
}
augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-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:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:state/rsvp:errors-stats" {
description
"RSVP errors stats extensions";
uses statistics-errors-extended_state;
}
/* RSVP interface signaling extensions */ /**
augment "/rt:routing/rt:control-plane-protocols/" * RSVP all interfaces extensions
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" */
+ "rsvp:config" {
description
"RSVP signaling all interfaces configuration extensions";
uses signaling-parameters-extended_config;
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:state" {
description
"RSVP signaling all interfaces state extensions";
uses signaling-parameters-extended_config;
}
/* RSVP refresh reduction extension */ /* RSVP interface signaling extensions */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:config/rsvp:refresh-reduction" { + "rsvp:config" {
description description
"RSVP refresh-reduction all interface configuration "RSVP signaling all interfaces configuration extensions";
extensions"; uses signaling-parameters-extended_config;
uses refresh-reduction-extended_config; }
} augment "/rt:routing/rt:control-plane-protocols/"
augment "/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + "rsvp:state" {
+ "rsvp:state/rsvp:refresh-reduction" { description
description "RSVP signaling all interfaces state extensions";
"RSVP refresh-reduction all interfaces state extensions"; uses signaling-parameters-extended_config;
uses refresh-reduction-extended_config; }
}
/* RSVP hellos extension */ /* RSVP refresh reduction extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:config/rsvp:rsvp-hellos" { + "rsvp:config/rsvp:refresh-reduction" {
description description
"RSVP hello all interfaces configuration extensions"; "RSVP refresh-reduction all interface configuration
uses rsvp-hellos-extended_config; extensions";
} uses refresh-reduction-extended_config;
augment "/rt:routing/rt:control-plane-protocols/" }
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rsvp:state/rsvp:rsvp-hellos" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
description + "rsvp:state/rsvp:refresh-reduction" {
"RSVP hello all interfaces state extensions"; description
uses rsvp-hellos-extended_config; "RSVP refresh-reduction all interfaces state extensions";
} uses refresh-reduction-extended_config;
}
/* RSVP authentication extension */ /* RSVP hellos extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:config/rsvp:authentication" { + "rsvp:config/rsvp:rsvp-hellos" {
description description
"RSVP authentication all interfaces configuration extensions"; "RSVP hello all interfaces configuration extensions";
uses authentication-extended_config; uses rsvp-hellos-extended_config;
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:state/rsvp:authentication" { + "rsvp:state/rsvp:rsvp-hellos" {
description
"RSVP hello all interfaces state extensions";
uses rsvp-hellos-extended_config;
}
description /* RSVP authentication extension */
"RSVP authentication all interfaces state extensions"; augment "/rt:routing/rt:control-plane-protocols/"
uses authentication-extended_config; + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
} + "rsvp:config/rsvp:authentication" {
description
"RSVP authentication all interfaces configuration extensions";
uses authentication-extended_config;
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-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 extensions
*/ */
/* RSVP interface signaling extensions */ /* RSVP interface signaling extensions */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:config" { "rsvp:interface/rsvp:config" {
description description
"RSVP signaling interface configuration extensions"; "RSVP signaling interface configuration extensions";
uses signaling-parameters-extended_config; uses signaling-parameters-extended_config;
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:state" { "rsvp:interface/rsvp:state" {
description description
"RSVP signaling interface state extensions"; "RSVP signaling interface state extensions";
uses signaling-parameters-extended_config; uses signaling-parameters-extended_config;
} }
/* RSVP refresh reduction extension */ /* RSVP refresh reduction extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:config/rsvp:refresh-reduction" { "rsvp:interface/rsvp:config/rsvp:refresh-reduction" {
description description
"RSVP refresh-reduction interface configuration extensions"; "RSVP refresh-reduction interface configuration extensions";
uses refresh-reduction-extended_config; uses refresh-reduction-extended_config;
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:state/rsvp:refresh-reduction" { "rsvp:interface/rsvp:state/rsvp:refresh-reduction" {
description description
"RSVP refresh-reduction interface state extensions"; "RSVP refresh-reduction interface state extensions";
uses refresh-reduction-extended_config; uses refresh-reduction-extended_config;
} }
/* RSVP hellos extension */ /* RSVP hellos extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:config/rsvp:rsvp-hellos" { "rsvp:interface/rsvp:config/rsvp:rsvp-hellos" {
description
"RSVP hello interface configuration extensions";
uses rsvp-hellos-extended_config;
} description
augment "/rt:routing/rt:control-plane-protocols/" "RSVP hello interface configuration extensions";
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + uses rsvp-hellos-extended_config;
"rsvp:interface/rsvp:state/rsvp:rsvp-hellos" { }
description augment "/rt:routing/rt:control-plane-protocols/"
"RSVP hello interface state extensions"; + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
uses rsvp-hellos-extended_config; "rsvp:interface/rsvp:state/rsvp:rsvp-hellos" {
} description
"RSVP hello interface state extensions";
uses rsvp-hellos-extended_config;
}
/* RSVP authentication extension */ /* RSVP authentication extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:config/rsvp:authentication" { "rsvp:interface/rsvp:config/rsvp:authentication" {
description description
"RSVP authentication interface configuration extensions"; "RSVP authentication interface configuration extensions";
uses authentication-extended_config; uses authentication-extended_config;
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:state/rsvp:authentication" { "rsvp:interface/rsvp:state/rsvp:authentication" {
description description
"RSVP authentication interface state extensions"; "RSVP authentication interface state extensions";
uses authentication-extended_config; uses authentication-extended_config;
} }
} }
<CODE ENDS> <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 47, line 19 skipping to change at page 47, line 19
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 /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
rsvp:globals: /rsvp:rsvp/rsvp:globals:
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ +--rw global-soft-preemption!
rsvp:interfaces: +--rw config
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ | +--rw soft-preemption-timeout? uint16
rsvp:interfaces/rsvp:interface: +--rw state
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ +--rw soft-preemption-timeout? uint16
rsvp:sessions: augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ /rsvp:rsvp/rsvp:interfaces:
rsvp:neighbors: +--rw rsvp-te-interface-attributes
augment /te:te/te:tunnels/te:tunnel: +--rw config
+--rw config +--ro state
| +--rw lsp-signaled-name? string augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
| +--rw lsp-priority-setup? uint8 /rsvp:rsvp/rsvp:interfaces/rsvp:interface:
| +--rw lsp-priority-hold? uint8 +--rw rsvp-te-interface-attributes
| +--rw local-recording-desired? boolean +--rw config
| +--rw se-style-desired? boolean +--ro state
| +--rw path-reevaluation-request? boolean augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
| +--rw soft-preemption-desired? boolean /rsvp:rsvp/rsvp:sessions:
| +--rw lsp-rerouting? enumeration augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
| +--rw lsp-integrety-required? boolean /rsvp:rsvp/rsvp:neighbors:
| +--rw lsp-contiguous? boolean augment /te:te/te:tunnels/te:tunnel:
| +--rw lsp-stitching-desired? boolean +--rw config
| +--rw lsp-preplanned? boolean | +--rw lsp-signaled-name? string
| +--rw lsp-oob-mapping? boolean | +--rw local-recording-desired? boolean
+--ro state | +--rw se-style-desired? boolean
+--ro lsp-signaled-name? string | +--rw path-reevaluation-request? boolean
+--ro lsp-priority-setup? uint8 | +--rw soft-preemption-desired? boolean
+--ro lsp-priority-hold? uint8 | +--rw lsp-rerouting? enumeration
+--ro local-recording-desired? boolean | +--rw lsp-integrety-required? boolean
+--ro se-style-desired? boolean | +--rw lsp-contiguous? boolean
+--ro path-reevaluation-request? boolean | +--rw lsp-stitching-desired? boolean
+--ro soft-preemption-desired? boolean | +--rw lsp-preplanned? boolean
+--ro lsp-rerouting? enumeration | +--rw lsp-oob-mapping? boolean
+--ro lsp-integrety-required? boolean +--ro state
+--ro lsp-contiguous? boolean +--ro lsp-signaled-name? string
+--ro lsp-stitching-desired? boolean +--ro local-recording-desired? boolean
+--ro lsp-preplanned? boolean +--ro se-style-desired? boolean
+--ro lsp-oob-mapping? boolean +--ro path-reevaluation-request? boolean
augment /te:te/te:lsps-state/te:lsp: +--ro soft-preemption-desired? boolean
+--ro lsp-signaled-name? string +--ro lsp-rerouting? enumeration
+--ro lsp-priority-setup? uint8 +--ro lsp-integrety-required? boolean
+--ro lsp-priority-hold? uint8 +--ro lsp-contiguous? boolean
+--ro local-recording-desired? boolean +--ro lsp-stitching-desired? boolean
+--ro se-style-desired? boolean +--ro lsp-preplanned? boolean
+--ro path-reevaluation-request? boolean +--ro lsp-oob-mapping? boolean
+--ro soft-preemption-desired? boolean augment /te:te/te:lsps-state/te:lsp:
+--ro lsp-rerouting? enumeration +--ro lsp-signaled-name? string
+--ro lsp-integrety-required? boolean +--ro local-recording-desired? boolean
+--ro lsp-contiguous? boolean +--ro se-style-desired? boolean
+--ro lsp-stitching-desired? boolean +--ro path-reevaluation-request? boolean
+--ro lsp-preplanned? boolean +--ro soft-preemption-desired? boolean
+--ro lsp-oob-mapping? boolean +--ro lsp-rerouting? enumeration
+--ro explicit-route-object +--ro lsp-integrety-required? boolean
| +--ro incoming-explicit-route-subobjects* [subobject-index] +--ro lsp-contiguous? boolean
| | +--ro subobject-index uint32 +--ro lsp-stitching-desired? boolean
| | +--ro (type)? +--ro lsp-preplanned? boolean
| | +--:(ipv4-address) +--ro lsp-oob-mapping? boolean
| | | +--ro v4-address? inet:ipv4-address +--ro explicit-route-object
| | | +--ro v4-prefix-length? uint8 | +--ro incoming-explicit-route-subobjects* [subobject-index]
| | | +--ro v4-loose? boolean | | +--ro subobject-index uint32
| | +--:(ipv6-address) | | +--ro (type)?
| | | +--ro v6-address? inet:ipv6-address | | +--:(ipv4-address)
| | | +--ro v6-prefix-length? uint8 | | | +--ro v4-address? inet:ipv4-address
| | | +--ro v6-loose? boolean | | | +--ro v4-prefix-length? uint8
| | +--:(as-number) | | | +--ro v4-loose? boolean
| | | +--ro as-number? uint16 | | +--:(ipv6-address)
| | +--:(unnumbered-link) | | | +--ro v6-address? inet:ipv6-address
| | | +--ro router-id? inet:ip-address | | | +--ro v6-prefix-length? uint8
| | | +--ro interface-id? uint32 | | | +--ro v6-loose? boolean
| | +--:(label) | | +--:(as-number)
| | +--ro value? uint32 | | | +--ro as-number? uint16
| +--ro outgoing-explicit-route-subobjects* [subobject-index] | | +--:(unnumbered-link)
| +--ro subobject-index uint32 | | | +--ro router-id? inet:ip-address
| +--ro (type)? | | | +--ro interface-id? uint32
| +--:(ipv4-address) | | +--:(label)
| | +--ro v4-address? inet:ipv4-address | | +--ro value? uint32
| | +--ro v4-prefix-length? uint8 | +--ro outgoing-explicit-route-subobjects* [subobject-index]
| | +--ro v4-loose? boolean | +--ro subobject-index uint32
| +--:(ipv6-address) | +--ro (type)?
| | +--ro v6-address? inet:ipv6-address | +--:(ipv4-address)
| | +--ro v6-prefix-length? uint8 | | +--ro v4-address? inet:ipv4-address
| | +--ro v6-loose? boolean | | +--ro v4-prefix-length? uint8
| +--:(as-number) | | +--ro v4-loose? boolean
| | +--ro as-number? uint16 | +--:(ipv6-address)
| +--:(unnumbered-link) | | +--ro v6-address? inet:ipv6-address
| | +--ro router-id? inet:ip-address | | +--ro v6-prefix-length? uint8
| | +--ro interface-id? uint32 | | +--ro v6-loose? boolean
| +--:(label) | +--:(as-number)
| +--ro value? uint32 | | +--ro as-number? uint16
+--ro record-route-object | +--:(unnumbered-link)
+--ro path-record-route-subobjects* [subobject-index] | | +--ro router-id? inet:ip-address
| +--ro subobject-index uint32 | | +--ro interface-id? uint32
| +--ro (type)? | +--:(label)
| +--:(ipv4-address) | +--ro value? uint32
| | +--ro v4-address? inet:ipv4-address +--ro record-route-object
| | +--ro v4-prefix-length? uint8 +--ro path-record-route-subobjects* [subobject-index]
| | +--ro v4-flags? uint8 | +--ro subobject-index uint32
| +--:(ipv6-address) | +--ro (type)?
| | +--ro v6-address? inet:ipv6-address | +--:(ipv4-address)
| | +--ro v6-prefix-length? uint8 | | +--ro v4-address? inet:ipv4-address
| | +--ro v6-flags? uint8 | | +--ro v4-prefix-length? uint8
| +--:(label) | | +--ro v4-flags? uint8
| +--ro value? uint32 | +--:(ipv6-address)
| +--ro flags? uint8 | | +--ro v6-address? inet:ipv6-address
+--ro resv-record-route-subobjects* [subobject-index] | | +--ro v6-prefix-length? uint8
+--ro subobject-index uint32 | | +--ro v6-flags? uint8
+--ro (type)? | +--:(unnumbered-link)
+--:(ipv4-address) | | +--ro router-id? inet:ip-address
| +--ro v4-address? inet:ipv4-address | | +--ro interface-id? uint32
| +--ro v4-prefix-length? uint8 | +--:(label)
| +--ro v4-flags? uint8 | +--ro value? uint32
+--:(ipv6-address) | +--ro flags? uint8
| +--ro v6-address? inet:ipv6-address +--ro resv-record-route-subobjects* [subobject-index]
| +--ro v6-prefix-length? uint8 +--ro subobject-index uint32
| +--ro v6-flags? uint8 +--ro (type)?
+--:(label) +--:(ipv4-address)
+--ro value? uint32 | +--ro v4-address? inet:ipv4-address
+--ro flags? uint8 | +--ro v4-prefix-length? uint8
augment /te:te/te-dev:interfaces/te-dev:interface: | +--ro v4-flags? uint8
+--:(ipv6-address)
| +--ro v6-address? inet:ipv6-address
| +--ro v6-prefix-length? uint8
| +--ro v6-flags? uint8
+--:(unnumbered-link)
| +--ro router-id? inet:ip-address
| +--ro interface-id? uint32
+--:(label)
+--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@2016-10-02.yang" <CODE BEGINS> file "ietf-rsvp-te@2016-10-29.yang"
module ietf-rsvp-te { module ietf-rsvp-extended {
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended";
prefix "rsvp-te"; prefix "rsvp-ext";
import ietf-rsvp { import ietf-rsvp {
prefix rsvp; prefix "rsvp";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
} }
import ietf-te { import ietf-yang-types {
prefix te; prefix "yang";
}
import ietf-te-device {
prefix te-dev;
}
/* Import TE generic types */
import ietf-te-types {
prefix te-types;
} }
organization organization
"IETF Traffic Engineering Architecture and Signaling (TEAS) "IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group"; Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/teas/> "WG Web: <http://tools.ietf.org/wg/teas/>
WG List: <mailto:teas@ietf.org> WG List: <mailto:teas@ietf.org>
skipping to change at page 51, line 15 skipping to change at page 51, line 15
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@cisco.com> <mailto:tsaad@cisco.com>
Editor: Rakesh Gandhi Editor: Rakesh Gandhi
<mailto:rgandhi@cisco.com> <mailto:rgandhi@cisco.com>
Editor: Himanshu Shah Editor: Himanshu Shah
<mailto:hshah@ciena.com> <mailto:hshah@ciena.com>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto:xufeng.liu@ericsson.com> <mailto:xliu@kuatrotech.com>
Editor: Xia Chen Editor: Xia Chen
<mailto:jescia.chenxia@huawei.com> <mailto:jescia.chenxia@huawei.com>
Editor: Raqib Jones Editor: Raqib Jones
<mailto:raqib@Brocade.com> <mailto:raqib@Brocade.com>
Editor: Bin Wen Editor: Bin Wen
<mailto:Bin_Wen@cable.comcast.com>"; <mailto:Bin_Wen@cable.comcast.com>";
description description
"This module contains the RSVP-TE YANG generic data model."; "This module contains the Extended RSVP YANG data model.";
revision "2016-10-02" { revision "2016-10-29" {
description "Latest revision to RSVP-TE generic YANG module"; description "Latest revision of RSVP extended yang module.";
reference "RFC2205, RFC3209, etc."; reference "RFC2205";
} }
/** /* RSVP features */
* RSVP-TE LSPs groupings. feature authentication {
*/ description
"Indicates support for RSVP authentication";
}
grouping lsp-record-route-information_state { feature error-statistics {
description "recorded route information grouping"; description
container record-route-object { "Indicates support for error statistics";
description "RSVP recorded route object information";
list path-record-route-subobjects {
when "../../origin-type != 'ingress'" {
description "Applicable on non-ingress LSPs only";
}
key "subobject-index";
description "";
leaf subobject-index {
type uint32;
description "RRO subobject index";
}
uses te-types:record-route-subobject;
}
list resv-record-route-subobjects {
when "../../origin-type != 'egress'" {
description "Applicable on non-egress LSPs only";
}
key "subobject-index";
description "";
leaf subobject-index {
type uint32;
description "RRO subobject index";
}
uses te-types:record-route-subobject;
}
}
} }
grouping lsp-explicit-route-information_state { feature global-statistics {
description "RSVP-TE LSP explicit-route information"; description
container explicit-route-object { "Indicates support for global statistics";
description "Explicit route object information"; }
list incoming-explicit-route-subobjects {
when "../../origin-type != 'ingress'" { feature graceful-restart {
description "Applicable on non-ingress LSPs only"; description
} "Indicates support for RSVP graceful restart";
key "subobject-index";
description ""; }
leaf subobject-index {
type uint32; feature hellos {
description "ERO subobject index"; description
} "Indicates support for RSVP hellos (RFC3209).";
uses te-types:explicit-route-subobject; }
}
list outgoing-explicit-route-subobjects { feature notify {
when "../../origin-type != 'egress'" { description
description "Applicable on non-egress LSPs only"; "Indicates support for RSVP notify message (RFC3473).";
} }
key "subobject-index";
description ""; feature refresh-reduction {
leaf subobject-index { description
type uint32; "Indicates support for RSVP refresh reduction
description "ERO subobject index"; (RFC2961).";
} }
uses te-types:explicit-route-subobject;
} feature refresh-reduction-extended {
description
"Indicates support for RSVP refresh reduction
(RFC2961).";
}
feature per-interface-statistics {
description
"Indicates support for per interface statistics";
}
grouping graceful-restart-extended_config {
description
"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 lsp-attributes-flags_config {
grouping authentication-extended_config {
description description
"Configuration parameters relating to RSVP-TE LSP "Configuration parameters relating to RSVP
attribute flags"; authentication";
leaf lsp-rerouting { leaf lifetime {
type enumeration { type uint32 {
enum end-to-end-routing { range "30..86400";
description
"End-to-end routing desired";
reference "RFC4920, RFC5420";
}
enum boundary-rerouting {
description
"Boundary rerouting desired";
reference "RFC4920, RFC5420";
}
enum segment-based-rerouting {
description
"Segment-based rerouting desired";
reference "RFC4920, RFC5420";
}
} }
description "LSP rerouting types"; description
} "Life time for each security association";
leaf lsp-integrety-required { reference
type boolean; "RFC 2747: RSVP Cryptographic
description "LSP integrity desired"; Authentication";
reference "RFC4875";
} }
leaf lsp-contiguous { leaf window-size {
type boolean; type uint32 {
description "Contiguous LSP"; range "1..64";
reference "RFC5151"; }
description
"Window-size to limit number of out-of-order
messages.";
reference
"RFC 2747: RSVP Cryptographic
Authentication";
} }
leaf lsp-stitching-desired { leaf challenge {
type boolean; type empty;
description "Stitched LSP"; description
reference "RFC5150"; "Enable challenge messages.";
reference
"RFC 2747: RSVP Cryptographic
Authentication";
} }
leaf lsp-preplanned { leaf retransmits {
type boolean; type uint32 {
description "Preplanned LSP"; range "1..10000";
reference "RFC6001"; }
description
"Number of retransmits when messages are
dropped.";
reference
"RFC 2747: RSVP Cryptographic
Authentication";
} }
leaf lsp-oob-mapping { leaf key-chain {
type boolean; type string {
length "1..32";
}
description description
"Mapping is done out-of-band"; "Key chain name to authenticate RSVP
signaling messages.";
reference "RFC6511"; reference
"RFC 2747: RSVP Cryptographic
Authentication";
} }
} }
grouping lsp-session-attributes-obj-flags_config { grouping rsvp-hellos-extended_config {
description description
"Configuration parameters relating to RSVP-TE LSP "Configuration parameters relating to RSVP
session attribute flags"; hellos";
reference leaf interface-based {
"RFC4859: Registry for RSVP-TE Session Flags"; type empty;
leaf local-recording-desired { description "Enable interface-based
type boolean; Hello adjacency if present.";
description "Path recording is desired.";
reference "RFC3209";
} }
leaf se-style-desired { leaf hello-interval {
type boolean; type uint32;
description "SE Style desired"; units milliseconds;
reference "RFC3209"; 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 path-reevaluation-request { leaf hello-misses {
type boolean; type uint32 {
description "Path re-evaluation request"; range "1..10";
reference "RFC4736"; }
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";
} }
leaf soft-preemption-desired { }
type boolean; grouping signaling-parameters-extended_config {
description "Soft-preemption is desired"; description
reference "RFC5712"; "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.";
} }
} }
grouping lsp-properties_config { grouping refresh-reduction-extended_config {
description description
"Configuration parameters relating to RSVP-TE LSP "Configuration parameters relating to RSVP
session attribute flags"; refresh reduction";
leaf lsp-signaled-name {
type string; leaf bundle-message-max-size {
type uint32 {
range "512..65000";
}
description description
"Sets the session name to use in the session "Configure maximum size (bytes) of a
attribute object."; single RSVP Bundle message.";
} }
leaf lsp-priority-setup { leaf reliable-ack-hold-time {
type uint8 { type uint32;
range "0..7"; units milliseconds;
}
description description
"RSVP session attributes setup priority"; "Configure hold time in milliseconds for
sending RSVP ACK message(s).";
} }
leaf lsp-priority-hold { leaf reliable-ack-max-size {
type uint8 { type uint32;
range "0..7"; 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 description
"RSVP session attributes hold priority"; "Configure max size (bytes) of a single
RSVP summary refresh message.";
} }
uses lsp-session-attributes-obj-flags_config;
uses lsp-attributes-flags_config;
} }
grouping tunnel-properties { grouping statistics-packets-extended_state {
description description
"Top level grouping for LSP properties."; "Packet statistics.";
container config { leaf discontinuity-time {
type yang:date-and-time;
description description
"Configuration parameters relating to "The time on the most recent occasion at which any one
LSP properties"; or more of the statistic counters suffered a
uses lsp-properties_config; 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.";
} }
container state { leaf tx-dropped {
config false; type yang:counter32;
description description
"State information associated with LSP "Packet tx dropped count";
properties"; }
uses lsp-properties_config; leaf rx-dropped {
type yang:counter32;
description
"Packet rx dropped count";
}
leaf tx-error {
type yang:counter32;
description
"Packet tx error count";
}
leaf rx-error {
type yang:counter32;
description
"Packet rx error count";
} }
} }
/*** End of RSVP-TE LSP groupings ***/
grouping statistics-protocol-extended_state {
description
"RSVP protocol statistics.";
}
grouping statistics-errors-extended_state {
description
"Error statistics.";
}
grouping statistics-extended_state {
description "RSVP statistic attributes.";
uses statistics-packets-extended_state;
uses statistics-protocol-extended_state;
uses statistics-errors-extended_state;
}
/** /**
* RSVP-TE generic global properties. * RSVP extensions augmentations
*/ */
grouping global-soft-preemption_config { /* RSVP globals graceful restart*/
augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:config/rsvp:graceful-restart" {
description description
"Configuration for global RSVP-TE soft preemption"; "RSVP globals configuration extensions";
leaf soft-preemption-timeout { uses graceful-restart-extended_config;
type uint16 {
range 0..300;
}
default 0;
description
"Timeout value for soft preemption to revert
to hard preemption";
}
} }
grouping global-soft-preemption { augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:state/rsvp:graceful-restart" {
description description
"Top level group for RSVP-TE soft-preemption"; "RSVP globals state extensions";
container global-soft-preemption { uses graceful-restart-extended_config;
presence "Enables soft preemption on a node."; }
description
"Top level container for RSVP-TE soft-preemption"; /* RSVP statistics augmentation */
container config { augment "/rt:routing/rt:control-plane-protocols/" +
description "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"Configuration parameters relating to RSVP "rsvp:state/rsvp:packets-stats" {
soft preemption support"; description
uses global-soft-preemption_config; "RSVP packet stats extensions";
} uses statistics-packets-extended_state;
container state { }
description "State parameters relating to RSVP augment "/rt:routing/rt:control-plane-protocols/" +
soft preemption support"; "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
uses global-soft-preemption_config; "rsvp:state/rsvp:protocol-stats" {
} description
} "RSVP protocol message stats extensions";
uses statistics-protocol-extended_state;
}
augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:state/rsvp:errors-stats" {
description
"RSVP errors stats extensions";
uses statistics-errors-extended_state;
} }
/*** End of RSVP-TE generic global properties. ***/
/** /**
* RSVP-TE interface generic groupings. * RSVP all interfaces extensions
*/ */
grouping rsvp-te-interface-attributes { /* RSVP interface signaling extensions */
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:config" {
description description
"Top level grouping for RSVP-TE interface properties."; "RSVP signaling all interfaces configuration extensions";
container rsvp-te-interface-attributes { uses signaling-parameters-extended_config;
description
"Top level container for RSVP-TE interface
properties";
container config {
description
"Configuration parameters relating to RSVP-TE
bandwidth";
}
container state {
config false;
description
"State information associated with RSVP-TE
bandwidth";
}
}
} }
/*** End of RSVP-TE generic groupings ***/
/* RSVP-TE global propeerties */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:state" {
description description
"RSVP-TE augmentation to RSVP globals"; "RSVP signaling all interfaces state extensions";
uses signaling-parameters-extended_config;
} }
/* Linkage to the base RSVP all links */ /* RSVP refresh reduction extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:config/rsvp:refresh-reduction" {
description description
"RSVP-TE generic data augmentation pertaining to interfaces"; "RSVP refresh-reduction all interface configuration
/* To be added */ extensions";
uses refresh-reduction-extended_config;
} }
/* Linkage to per RSVP interface */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
"rsvp:interface" { + "rsvp:state/rsvp:refresh-reduction" {
description description
"RSVP-TE generic data augmentation pertaining to specific "RSVP refresh-reduction all interfaces state extensions";
interface"; uses refresh-reduction-extended_config;
/* To be added */
} }
/* add augmentation for sessions neighbors */ /* RSVP hellos extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:sessions" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:config/rsvp:rsvp-hellos" {
description description
"RSVP-TE generic data augmentation pertaining to session"; "RSVP hello all interfaces configuration extensions";
/* To be added */ uses rsvp-hellos-extended_config;
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-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:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:config/rsvp:authentication" {
description description
"RSVP-TE generic data augmentation pertaining to neighbors"; "RSVP authentication all interfaces configuration extensions";
/* To be added */ uses authentication-extended_config;
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:state/rsvp:authentication" {
description
"RSVP authentication all interfaces state extensions";
uses authentication-extended_config;
} }
/** /**
* RSVP-TE generic augmentations of generic TE model. * RSVP interface extensions
*/ */
/* TE tunnel augmentation */ /* RSVP interface signaling extensions */
augment "/te:te/te:tunnels/te:tunnel" { augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:config" {
description description
"RSVP-TE generic data augmentation pertaining to TE tunnels"; "RSVP signaling interface configuration extensions";
uses signaling-parameters-extended_config;
uses tunnel-properties; }
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:state" {
description
"RSVP signaling interface state extensions";
uses signaling-parameters-extended_config;
} }
/* TE LSP augmentation */ /* RSVP refresh reduction extension */
augment "/te:te/te:lsps-state/te:lsp" { augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:config/rsvp:refresh-reduction" {
description description
"RSVP-TE generic data augmentation pertaining to specific TE "RSVP refresh-reduction interface configuration extensions";
LSP"; uses refresh-reduction-extended_config;
uses lsp-properties_config; }
uses lsp-explicit-route-information_state; augment "/rt:routing/rt:control-plane-protocols/"
uses lsp-record-route-information_state; + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:state/rsvp:refresh-reduction" {
description
"RSVP refresh-reduction interface state extensions";
uses refresh-reduction-extended_config;
} }
/* TE interface augmentation */ /* RSVP hellos extension */
augment "/te:te/te-dev:interfaces/te-dev:interface" { augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:config/rsvp:rsvp-hellos" {
description description
"RSVP-TE generic data augmentation pertaining to specific TE "RSVP hello interface configuration extensions";
interface"; uses rsvp-hellos-extended_config;
}
augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-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:control-plane-protocols/"
+ "rt:control-plane-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:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:state/rsvp:authentication" {
description
"RSVP authentication interface state extensions";
uses authentication-extended_config;
}
} }
<CODE ENDS> <CODE ENDS>
3.4. RSVP-TE MPLS Model 3.4. RSVP-TE MPLS Model
This section describes the MPLS RSVP-TE YANG module that augments the This section describes the MPLS RSVP-TE YANG module that augments the
RSVP-TE generic module to signal MPLS LSPs. RSVP-TE YANG modules for RSVP-TE generic module to signal MPLS LSPs. RSVP-TE YANG modules for
other dataplane technologies (e.g. OTN or WDM) will be defined in other dataplane technologies (e.g. OTN or WDM) will be defined in
separate modules and in other drafts. separate modules and in other drafts.
skipping to change at page 58, line 49 skipping to change at page 62, line 4
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 MPLS 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 MPLS module: RSVP-TE MPLS module:
module: ietf-rsvp-te-mpls module: ietf-rsvp-te-mpls
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp: augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
+--rw config /rsvp:rsvp:
| +--rw rsvp-frr-local-revert! +--rw config
| +--rw rsvp-frr-local-revert-delay? uint32 | +--rw rsvp-frr-local-revert!
+--ro state | +--rw rsvp-frr-local-revert-delay? uint32
+--ro rsvp-frr-local-revert! +--ro state
+--ro rsvp-frr-local-revert-delay? uint32 +--ro rsvp-frr-local-revert!
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ +--ro rsvp-frr-local-revert-delay? uint32
rsvp:interfaces: augment /rt:routing/rt:control-plane-protocols/
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces:
rsvp:interfaces/rsvp:interface: augment /rt:routing/rt:control-plane-protocols/
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/rsvp:interface:
rsvp:sessions: augment /rt:routing/rt:control-plane-protocols/
augment /rt:routing/rt:routing-protocols/rt:routing-protocol/rsvp:rsvp/ rt:control-plane-protocol/rsvp:rsvp/rsvp:sessions:
rsvp:neighbors: augment /rt:routing/rt:control-plane-protocols/
augment /te:te/te:tunnels/te:tunnel: rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors:
+--rw config augment /te:te/te:tunnels/te:tunnel:
| +--rw static-bandwidth? uint32 +--rw config
| +--rw auto-bandwidth | +--rw static-bandwidth? uint32
| | +--rw enabled? boolean | +--rw auto-bandwidth
| | +--rw min-bw? uint32 | | +--rw enabled? boolean
| | +--rw max-bw? uint32 | | +--rw min-bw? uint32
| | +--rw adjust-interval? uint32 | | +--rw max-bw? uint32
| | +--rw adjust-threshold? uint32 | | +--rw adjust-interval? uint32
| | +--rw overflow | | +--rw adjust-threshold? uint32
| | | +--rw enabled? boolean | | +--rw overflow
| | | +--rw overflow-threshold? uint32 | | | +--rw enabled? boolean
| | | +--rw trigger-event-count? uint16 | | | +--rw overflow-threshold? uint32
| | +--rw underflow | | | +--rw trigger-event-count? uint16
| | +--rw enabled? boolean | | +--rw underflow
| | +--rw underflow-threshold? uint32 | | +--rw enabled? boolean
| | +--rw trigger-event-count? uint16 | | +--rw underflow-threshold? uint32
| +--rw local-protection-desired? empty | | +--rw trigger-event-count? uint16
| +--rw bandwidth-protection-desired? empty | +--rw local-protection-desired? empty
| +--rw node-protection-desired? empty | +--rw bandwidth-protection-desired? empty
| +--rw non-php-desired? empty | +--rw node-protection-desired? empty
| +--rw entropy-label-cap? empty | +--rw non-php-desired? empty
| +--rw oam-mep-entities-desired? empty | +--rw entropy-label-cap? empty
| +--rw oam-mip-entities-desired? empty | +--rw oam-mep-entities-desired? empty
+--rw state | +--rw oam-mip-entities-desired? empty
+--rw static-bandwidth? uint32 +--rw state
+--rw auto-bandwidth +--rw static-bandwidth? uint32
| +--rw enabled? boolean +--rw auto-bandwidth
| +--rw min-bw? uint32 | +--rw enabled? boolean
| +--rw max-bw? uint32 | +--rw min-bw? uint32
| +--rw adjust-interval? uint32 | +--rw max-bw? uint32
| +--rw adjust-threshold? uint32 | +--rw adjust-interval? uint32
| +--rw overflow | +--rw adjust-threshold? uint32
| | +--rw enabled? boolean | +--rw overflow
| | +--rw overflow-threshold? uint32 | | +--rw enabled? boolean
| | +--rw trigger-event-count? uint16 | | +--rw overflow-threshold? uint32
| +--rw underflow | | +--rw trigger-event-count? uint16
| +--rw enabled? boolean | +--rw underflow
| +--rw underflow-threshold? uint32 | +--rw enabled? boolean
| +--rw trigger-event-count? uint16 | +--rw underflow-threshold? uint32
+--rw local-protection-desired? empty | +--rw trigger-event-count? uint16
+--rw bandwidth-protection-desired? empty +--rw local-protection-desired? empty
+--rw node-protection-desired? empty +--rw bandwidth-protection-desired? empty
+--rw non-php-desired? empty +--rw node-protection-desired? empty
+--rw entropy-label-cap? empty +--rw non-php-desired? empty
+--rw oam-mep-entities-desired? empty +--rw entropy-label-cap? empty
+--rw oam-mip-entities-desired? empty +--rw oam-mep-entities-desired? empty
augment /te:te/te:lsps-state/te:lsp: +--rw oam-mip-entities-desired? empty
+--ro static-bandwidth? uint32 augment /te:te/te:lsps-state/te:lsp:
+--ro auto-bandwidth +--ro static-bandwidth? uint32
| +--ro enabled? boolean +--ro auto-bandwidth
| +--ro min-bw? uint32 | +--ro enabled? boolean
| +--ro max-bw? uint32 | +--ro min-bw? uint32
| +--ro adjust-interval? uint32 | +--ro max-bw? uint32
| +--ro adjust-threshold? uint32 | +--ro adjust-interval? uint32
| +--ro overflow | +--ro adjust-threshold? uint32
| | +--ro enabled? boolean | +--ro overflow
| | +--ro overflow-threshold? uint32 | | +--ro enabled? boolean
| | +--ro trigger-event-count? uint16 | | +--ro overflow-threshold? uint32
| +--ro underflow | | +--ro trigger-event-count? uint16
| +--ro enabled? boolean | +--ro underflow
| +--ro underflow-threshold? uint32 | +--ro enabled? boolean
| +--ro trigger-event-count? uint16 | +--ro underflow-threshold? uint32
+--ro local-protection-desired? empty | +--ro trigger-event-count? uint16
+--ro bandwidth-protection-desired? empty +--ro local-protection-desired? empty
+--ro node-protection-desired? empty +--ro bandwidth-protection-desired? empty
+--ro non-php-desired? empty +--ro node-protection-desired? empty
+--ro entropy-label-cap? empty +--ro non-php-desired? empty
+--ro oam-mep-entities-desired? empty +--ro entropy-label-cap? empty
+--ro oam-mip-entities-desired? empty +--ro oam-mep-entities-desired? empty
+--ro backup-info +--ro oam-mip-entities-desired? empty
+--ro backup-tunnel-name? string +--ro backup-info
+--ro backup-frr-on? uint8 +--ro backup-tunnel-name? string
+--ro backup-protected-lsp-num? uint32 +--ro backup-frr-on? uint8
augment /te:te/te-dev:interfaces/te-dev:interface: +--ro backup-protected-lsp-num? uint32
+--rw config augment /te:te/te-dev:interfaces/te-dev:interface:
| +--rw (bandwidth-value)? +--rw config
| | +--:(absolute) | +--rw (bandwidth-value)?
| | | +--rw absolute-value? uint32 | | +--:(absolute)
| | +--:(precentage) | | | +--rw absolute-value? uint32
| | +--rw percent-value? uint32 | | +--:(precentage)
| +--rw (bc-model-type)? | | +--rw percent-value? uint32
| +--:(bc-model-rdm) | +--rw (bc-model-type)?
| | +--rw bc-model-rdm | +--:(bc-model-rdm)
| | +--rw bandwidth-mpls-constraints | | +--rw bc-model-rdm
| | +--rw maximum-reservable? uint32 | | +--rw bandwidth-mpls-constraints
| | +--rw bc-value* uint32 | | +--rw maximum-reservable? uint32
| +--:(bc-model-mam) | | +--rw bc-value* uint32
| | +--rw bc-model-mam | +--:(bc-model-mam)
| | +--rw bandwidth-mpls-constraints | | +--rw bc-model-mam
| | +--rw maximum-reservable? uint32 | | +--rw bandwidth-mpls-constraints
| | +--rw bc-value* uint32 | | +--rw maximum-reservable? uint32
| +--:(bc-model-mar) | | +--rw bc-value* uint32
| +--rw bc-model-mar | +--:(bc-model-mar)
| +--rw bandwidth-mpls-constraints | +--rw bc-model-mar
| +--rw maximum-reservable? uint32 | +--rw bandwidth-mpls-constraints
| +--rw bc-value* uint32 | +--rw maximum-reservable? uint32
+--ro state | +--rw bc-value* uint32
| +--ro (bandwidth-value)? +--ro state
| | +--:(absolute) | +--ro (bandwidth-value)?
| | | +--ro absolute-value? uint32 | | +--:(absolute)
| | +--:(precentage) | | | +--ro absolute-value? uint32
| | +--ro percent-value? uint32 | | +--:(precentage)
| +--ro (bc-model-type)? | | +--ro percent-value? uint32
| | +--:(bc-model-rdm) | +--ro (bc-model-type)?
| | | +--ro bc-model-rdm | | +--:(bc-model-rdm)
| | | +--ro bandwidth-mpls-constraints | | | +--ro bc-model-rdm
| | | +--ro maximum-reservable? uint32 | | | +--ro bandwidth-mpls-constraints
| | | +--ro bc-value* uint32 | | | +--ro maximum-reservable? uint32
| | +--:(bc-model-mam) | | | +--ro bc-value* uint32
| | | +--ro bc-model-mam | | +--:(bc-model-mam)
| | | +--ro bandwidth-mpls-constraints | | | +--ro bc-model-mam
| | | +--ro maximum-reservable? uint32 | | | +--ro bandwidth-mpls-constraints
| | | +--ro bc-value* uint32 | | | +--ro maximum-reservable? uint32
| | +--:(bc-model-mar) | | | +--ro bc-value* uint32
| | +--ro bc-model-mar | | +--:(bc-model-mar)
| | +--ro bandwidth-mpls-constraints | | +--ro bc-model-mar
| | +--ro maximum-reservable? uint32 | | +--ro bandwidth-mpls-constraints
| | +--ro bc-value* uint32 | | +--ro maximum-reservable? uint32
| +--ro interface-softpreemption-state | | +--ro bc-value* uint32
| | +--ro soft-preempted-bandwidth? uint32 | +--ro interface-softpreemption-state
| | +--ro lsps* | | +--ro soft-preempted-bandwidth? uint32
| | +--ro lsps*
[source destination tunnel-id lsp-id extended-tunnel-id] [source destination tunnel-id lsp-id extended-tunnel-id]
| | +--ro source -> /te:te/lsps-state/lsp/source | | +--ro source -> /te:te/lsps-state/lsp/source
| | +--ro destination -> /te:te/lsps-state/lsp/destination | | +--ro destination -> /te:te/lsps-state/lsp/destination
| | +--ro tunnel-id -> /te:te/lsps-state/lsp/tunnel-id | | +--ro tunnel-id -> /te:te/lsps-state/lsp/tunnel-id
| | +--ro lsp-id -> /te:te/lsps-state/lsp/lsp-id | | +--ro lsp-id -> /te:te/lsps-state/lsp/lsp-id
| | +--ro extended-tunnel-id -> | | +--ro extended-tunnel-id
-> /te:te/lsps-state/lsp/extended-tunnel-id
/te:te/lsps-state/lsp/extended-tunnel-id | | +--ro type? -> /te:te/lsps-state/lsp/type
| | +--ro type? -> /te:te/lsps-state/lsp/type | +--ro over-subscribed-bandwidth? uint32
| +--ro over-subscribed-bandwidth uint32 +--rw rsvp-te-frr-backups {te-types:frr-te}?
+--rw rsvp-te-frr-backups {te-types:frr-te}? +--rw config
+--rw config | +--rw backup-bandwidth? uint32
| +--rw backup-bandwidth? uint32 | +--rw backup-bandwidth-classtype? uint32
| +--rw backup-bandwidth-classtype? uint32 | +--rw (type)?
| +--rw (type)? | +--:(static-tunnel)
| +--:(static-tunnel) | | +--rw static-backups* [tunnel-name]
| | +--rw static-backups* [tunnel-name] | | +--rw tunnel-name string
| | +--rw tunnel-name string | +--:(auto-tunnel)
| +--:(auto-tunnel) | +--rw auto-backup-protection? identityref
| +--rw auto-backup-protection? identityref | +--rw auto-backup-path-computation? identityref
| +--rw auto-backup-path-computation? identityref +--ro state
+--ro state +--ro backup-bandwidth? uint32
+--ro backup-bandwidth? uint32 +--ro backup-bandwidth-classtype? uint32
+--ro backup-bandwidth-classtype? uint32 +--ro (type)?
+--ro (type)? +--:(static-tunnel)
+--:(static-tunnel) | +--ro static-backups* [tunnel-name]
| +--ro static-backups* [tunnel-name] | +--ro tunnel-name string
| +--ro tunnel-name string +--:(auto-tunnel)
+--:(auto-tunnel) +--ro auto-backup-protection? identityref
+--ro auto-backup-protection? identityref
+--ro auto-backup-path-computation? identityref
Figure 6: MPLS RSVP-TE YANG Tree representation Figure 6: MPLS RSVP-TE YANG Tree representation
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-mpls@2016-10-02.yang" <CODE BEGINS> file "ietf-rsvp-te-mpls@2016-10-29.yang"
module ietf-rsvp-te-mpls { module ietf-rsvp-te-mpls {
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls";
prefix "rsvp-te-mpls"; prefix "rsvp-te-mpls";
import ietf-rsvp { import ietf-rsvp {
prefix "rsvp"; prefix "rsvp";
} }
skipping to change at page 63, line 47 skipping to change at page 66, line 51
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@cisco.com> <mailto:tsaad@cisco.com>
Editor: Rakesh Gandhi Editor: Rakesh Gandhi
<mailto:rgandhi@cisco.com> <mailto:rgandhi@cisco.com>
Editor: Himanshu Shah Editor: Himanshu Shah
<mailto:hshah@ciena.com> <mailto:hshah@ciena.com>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto:xufeng.liu@ericsson.com> <mailto:xliu@kuatrotech.com>
Editor: Xia Chen Editor: Xia Chen
<mailto:jescia.chenxia@huawei.com> <mailto:jescia.chenxia@huawei.com>
Editor: Raqib Jones Editor: Raqib Jones
<mailto:raqib@Brocade.com> <mailto:raqib@Brocade.com>
Editor: Bin Wen Editor: Bin Wen
<mailto:Bin_Wen@cable.comcast.com>"; <mailto:Bin_Wen@cable.comcast.com>";
description description
"Latest update to MPLS RSVP-TE YANG data model."; "Latest update to MPLS RSVP-TE YANG data model.";
revision "2016-10-02" { revision "2016-10-29" {
description "Update to MPLS RSVP-TE 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 MPLS LSPs groupings */ /* RSVP-TE MPLS LSPs groupings */
grouping lsp-attributes-flags-mpls_config { grouping lsp-attributes-flags-mpls_config {
description description
"Configuration parameters relating to RSVP-TE MPLS LSP "Configuration parameters relating to RSVP-TE MPLS LSP
attribute flags"; attribute flags";
leaf non-php-desired { leaf non-php-desired {
skipping to change at page 72, line 44 skipping to change at page 75, line 47
} }
} }
} }
grouping rsvp-frr-local-revert_config { grouping rsvp-frr-local-revert_config {
description "RSVP-TE FRR local revertive grouping"; description "RSVP-TE FRR local revertive grouping";
container rsvp-frr-local-revert { container rsvp-frr-local-revert {
presence "Enable RSVP FRR local revertive recovery presence "Enable RSVP FRR local revertive recovery
mode."; mode.";
description description
"RSVP-TE global properties container"; "RSVP-TE FRR local revertive container";
leaf rsvp-frr-local-revert-delay { leaf rsvp-frr-local-revert-delay {
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
skipping to change at page 76, line 20 skipping to change at page 79, line 23
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-23 (work in Management", draft-ietf-netmod-routing-cfg-24 (work in
progress), August 2016. progress), October 2016.
[I-D.ietf-teas-yang-te] [I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H.,
Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data
Model for Traffic Engineering Tunnels and Interfaces", Model for Traffic Engineering Tunnels and Interfaces",
draft-ietf-teas-yang-te-04 (work in progress), July 2016. draft-ietf-teas-yang-te-04 (work in progress), July 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,
 End of changes. 156 change blocks. 
1198 lines changed or deleted 1348 lines changed or added

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