draft-ietf-teas-yang-rsvp-09.txt   draft-ietf-teas-yang-rsvp-10.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: November 9, 2018 R. Gandhi Expires: August 22, 2019 R. Gandhi
Cisco Systems, Inc. Cisco Systems, Inc.
X. Liu X. Liu
Jabil Jabil
I. Bryskin I. Bryskin
Huawei Technologies Huawei Technologies
H. Shah H. Shah
Ciena Ciena
May 08, 2018 February 18, 2019
A YANG Data Model for Resource Reservation Protocol (RSVP) A YANG Data Model for Resource Reservation Protocol (RSVP)
draft-ietf-teas-yang-rsvp-09 draft-ietf-teas-yang-rsvp-10
Abstract Abstract
This document defines a YANG data model for the configuration and This document defines a YANG data model for the configuration and
management of RSVP Protocol. The model covers the building blocks of management of RSVP Protocol. The model covers the building blocks of
the RSVP protocol that can be augmented and used by other RSVP the RSVP protocol that can be augmented and used by other RSVP
extension models such as RVSP extensions to Traffic-Engineering extension models such as RVSP extensions to Traffic-Engineering
(RSVP-TE). The model covers the configuration, operational state, (RSVP-TE). The model covers the configuration, operational state,
remote procedural calls, and event notifications data. remote procedural calls, and event notifications data.
skipping to change at page 1, line 43 skipping to change at page 1, line 43
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 9, 2018. This Internet-Draft will expire on August 22, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 3
1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 4 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3
2. Design Considerations . . . . . . . . . . . . . . . . . . . . 5 2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Module Hierarchy . . . . . . . . . . . . . . . . . . . . 5 2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 4
2.2. Configuration Inheritance . . . . . . . . . . . . . . . . 6 2.2. Design Considerations . . . . . . . . . . . . . . . . . . 4
3. Model Organization . . . . . . . . . . . . . . . . . . . . . 7 2.3. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 5
3.1. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 7 2.3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 7
3.1.1. Global Data . . . . . . . . . . . . . . . . . . . . . 8 2.3.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 12
3.1.2. Interface Data . . . . . . . . . . . . . . . . . . . 9 2.4. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 30
3.1.3. Neighbor Data . . . . . . . . . . . . . . . . . . . . 9 2.4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 30
3.1.4. Session Data . . . . . . . . . . . . . . . . . . . . 9 2.4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 32
3.1.5. Tree Diagram . . . . . . . . . . . . . . . . . . . . 9 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43
3.1.6. YANG Module . . . . . . . . . . . . . . . . . . . . . 14 4. Security Considerations . . . . . . . . . . . . . . . . . . . 43
3.2. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 32 5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 32 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 34 7. Normative References . . . . . . . . . . . . . . . . . . . . 44
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46
5. Security Considerations . . . . . . . . . . . . . . . . . . . 44
6. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 45
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 45
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.1. Normative References . . . . . . . . . . . . . . . . . . 45
8.2. Informative References . . . . . . . . . . . . . . . . . 47
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 47
1. Introduction 1. Introduction
YANG [RFC6020] is a data definition language that was introduced to YANG [RFC6020] is a data definition language that was introduced to
define the contents of a conceptual data store that allows networked define the contents of a conceptual data store that allows networked
devices to be managed using NETCONF [RFC6241]. YANG is proving devices to be managed using NETCONF [RFC6241]. YANG is proving
relevant beyond its initial confines, as bindings to other interfaces relevant beyond its initial confines, as bindings to other interfaces
(e.g. ReST) and encoding other than XML (e.g. JSON) are being (e.g. ReST) and encoding other than XML (e.g. JSON) are being
defined. Furthermore, YANG data models can be used as the basis of defined. Furthermore, YANG data models can be used as the basis of
implementation for other interfaces, such as CLI and programmatic implementation for other interfaces, such as CLI and programmatic
APIs. APIs.
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage the RSVP protocol [RFC2205]. This model covers RSVP and manage the RSVP protocol [RFC2205]. This model covers RSVP
protocol building blocks that can be augmented and used by other RSVP protocol building blocks that can be augmented and used by other RSVP
extension models- such as for signaling RSVP-TE MPLS (or other extension models- such as for signaling RSVP-TE MPLS (or other
technology specific) Label Switched Paths (LSP)s. technology specific) Label Switched Paths (LSP)s.
1.1. Terminology 1.1. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 "OPTIONAL" in this document are to be interpreted as described in BCP
[RFC2119]. 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
1.2. Tree Diagram
A simplified graphical representation of the data model is presented
in each section of the model. The following notations are used for
the YANG model data tree representation.
<status> <flags> <name> <opts> <type>
<status> is one of:
+ for current
x for deprecated
o for obsolete
<flags> is one of:
rw for read-write configuration data
ro for read-only non-configuration data
-x for execution rpcs
-n for notifications
<name> is the name of the node
If the node is augmented into the tree from another module, its name
is printed as <prefix>:<name>
<opts> is one of: The terminology for describing YANG data models is found in
? for an optional leaf or node [RFC7950].
! for a presence container
* for a leaf-list or list
Brackets [<keys>] for a list's keys
Curly braces {<condition>} for optional feature that make node
conditional
Colon : for marking case nodes
Ellipses ("...") subtree contents not shown
Parentheses enclose choice and case nodes, and case nodes are also 1.2. Model Tree Diagram
marked with a colon (":").
<type> is the name of the type for leafs and leaf-lists. A full tree diagram of the module(s) defined in this document is
given in subsequent sections as per the syntax defined in [RFC8340].
1.3. Prefixes in Data Node Names 1.3. Prefixes in Data Node Names
In this document, names of data nodes and other data model objects In this document, names of data nodes and other data model objects
are prefixed using the standard prefix associated with the are prefixed using the standard prefix associated with the
corresponding YANG imported modules, as shown in Table 1. corresponding YANG imported modules, as shown in Table 1.
+-----------+--------------------+-----------+ +-----------+--------------------+-----------+
| Prefix | YANG module | Reference | | Prefix | YANG module | Reference |
+-----------+--------------------+-----------+ +-----------+--------------------+-----------+
| yang | ietf-yang-types | [RFC6991] | | yang | ietf-yang-types | [RFC6991] |
| inet | ietf-inet-types | [RFC6991] | | inet | ietf-inet-types | [RFC6991] |
| rt-type | ietf-routing-types | XX | | rt-type | ietf-routing-types | XX |
| key-chain | ietf-key-chain | XX | | key-chain | ietf-key-chain | XX |
+---------+----------------------+-----------+ +---------+----------------------+-----------+
Table 1: Prefixes and corresponding YANG modules Table 1: Prefixes and corresponding YANG modules
2. Design Considerations 2. Model Overview
2.1. Module Hierarchy
The RSVP base YANG module augments the "control-plane-protocol" list The RSVP base YANG module augments the "control-plane-protocol" list
in ietf-routing [RFC8349] module with specific RSVP parameters in an in ietf-routing [RFC8349] module with specific RSVP parameters in an
"rsvp" container. It also defines an extensiion identity "rsvp" of "rsvp" container. It also defines an extensiion identity "rsvp" of
base "rt:routing-protocol" to identify the RSVP protocol. base "rt:routing-protocol" to identify the RSVP protocol.
Some RSVP features are categorized as core to the function of the The augmentation of the RSVP model by other models (e.g. RSVP-TE for
protocol that are supported by most vendors claiming support for RSVP MPLS or other technologies) are outside the scope of this document
protocol. Such features configuration and state are grouped in the and are discussed in separate document(s), e.g.
RSVP base module. [I-D.ietf-teas-yang-rsvp-te].
2.1. Module(s) Relationship
This document divides the RSVP model into two modules: base and
extended RSVP modules. Some RSVP features are categorized as core to
the function of the protocol that are supported by most vendors
claiming support for RSVP protocol. Such features configuration and
state are grouped in the RSVP base module.
Other extended RSVP features are categorized as either optional or Other extended RSVP features are categorized as either optional or
providing knobs to better tune basic functionality of the RSVP providing knobs to better tune basic functionality of the RSVP
protocol. The support for extended RSVP features by all vendors is protocol. The support for extended RSVP features by all vendors is
considered optional. Such features are grouped in a separate RSVP considered optional. Such features are grouped in a separate RSVP
extended module. extended module.
The augmentation of the RSVP model by other models (e.g. RSVP-TE for The relationship between the base and extended RSVP YANG model and
MPLS or other technologies) are outside the scope of this document the IETF routing YANG model is shown in Figure 1.
and are discussed in separate document(s), e.g.
[I-D.ietf-teas-yang-rsvp-te].
+--------------+ +--------------+
Routing | ietf-routing | Routing | ietf-routing |
+--------------+ +--------------+
o o
| |
+-----------+ +-----------+
RSVP module | ietf-rsvp | RSVP module | ietf-rsvp |
+-----------+ +-----------+
o o
| |
RSVP extended | RSVP extended |
module +--------------------+ module +--------------------+
| ietf-rsvp-extended | | ietf-rsvp-extended |
+--------------------+ +--------------------+
Figure 1: Relationship of RSVP and RSVP extended modules with other Figure 1: Relationship of RSVP and RSVP extended modules with other
protocol modules protocol modules
2.2. Design Considerations
The RSVP base model does not aim to be feature complete. The primary The RSVP base model does not aim to be feature complete. The primary
intent is to cover a set of standard core features that are commonly intent is to cover a set of standard core features that are commonly
in use. For example: in use. For example:
o Authentication ([RFC2747]) o Authentication ([RFC2747])
o Refresh Reduction ([RFC2961]) o Refresh Reduction ([RFC2961])
o Hellos ([RFC3209]) o Hellos ([RFC3209])
skipping to change at page 6, line 34 skipping to change at page 5, line 4
intent is to cover a set of standard core features that are commonly intent is to cover a set of standard core features that are commonly
in use. For example: in use. For example:
o Authentication ([RFC2747]) o Authentication ([RFC2747])
o Refresh Reduction ([RFC2961]) o Refresh Reduction ([RFC2961])
o Hellos ([RFC3209]) o Hellos ([RFC3209])
o Graceful Restart ([RFC3473], [RFC5063]) o Graceful Restart ([RFC3473], [RFC5063])
The extended RSVP YANG model covers non-basic configuration(s) for The extended RSVP YANG model covers non-basic configuration(s) for
RSVP feature(s) as well as optional RSVP feature that are not a must RSVP feature(s) as well as optional RSVP feature that are not a must
for basic RSVP operation. for basic RSVP operation.
2.2. Configuration Inheritance
The defined data model supports configuration inheritance for The defined data model supports configuration inheritance for
neighbors, and interfaces. Data elements defined in the main neighbors, and interfaces. Data elements defined in the main
container (e.g. the container that encompasses the list of container (e.g. the container that encompasses the list of
interfaces, or neighbors) are assumed to apply equally to all interfaces, or neighbors) are assumed to apply equally to all
elements of the list, unless overridden explicitly for a certain elements of the list, unless overridden explicitly for a certain
element (e.g. interface). Vendors are expected to augment the above element (e.g. interface). Vendors are expected to augment the above
container(s) to provide the list of inheritance command for their container(s) to provide the list of inheritance command for their
implementations. implementations.
3. Model Organization 2.3. RSVP Base YANG Model
This document divides the RSVP model into two modules: base and
extended RSVP modules. Each module covers configuration, state,
notifications and RPCs data. The relationship between the different
modules is depicted in Figure 1.
3.1. RSVP Base YANG Model
The RSVP base YANG data model defines thee container "rsvp" as the The RSVP base YANG data model defines the container "rsvp" as the top
top level container in this data model. The presence of this level container in this data model. The presence of this container
container enables the RSVP protocol functionality. enables the RSVP protocol functionality.
Data for such state is contained under the respective "state" sub- Derived state data is contained under a "state" container of the
container of the intended object (e.g. interface) as shown in intended object as shown in Figure 2.
Figure 2.
module: ietf-rsvp module: ietf-rsvp
+--rw rsvp! +--rw rsvp!
+--rw globals +--rw globals
. .
. .
+--rw interfaces +--rw interfaces
. .
+-- ro state +-- ro state
<<derived state associated with interfaces>> <<derived state associated with interfaces>>
skipping to change at page 8, line 44 skipping to change at page 6, line 44
+--n interfaces-notif +--n interfaces-notif
+--n neighbors-notif +--n neighbors-notif
+--n sessions-notif +--n sessions-notif
Figure 2: RSVP high-level tree model view Figure 2: RSVP high-level tree model view
The following subsections provide overview of the parts of the model The following subsections provide overview of the parts of the model
pertaining to configuration and state data. pertaining to configuration and state data.
Configuration and state data are organized into those applicable Configuration and state data are organized into those applicable
globally (node scope), per interfaces, per neighbors, or per session. globally (node scope), per interface, per neighbor, or per session.
3.1.1. Global Data Global Data:
The global data branch of the model covers configuration and state The global data branch of the model covers configuration and state
that are applicable the RSVP protocol behavior. that are applicable the RSVP protocol behavior.
3.1.2. Interface Data Interface Data:
The interface data branch of the data model covers configuration and The interface data branch of the data model covers configuration and
state elements relevant to one or all RSVP interfaces. Any data state elements relevant to one or all RSVP interfaces. Any data
configuration applied at the "interfaces" container level are equally configuration applied at the "interfaces" container level are equally
applicable to all interfaces - unless overridden by explicit applicable to all interfaces - unless overridden by explicit
configuration under a specific interface. configuration under a specific interface.
3.1.3. Neighbor Data Neighbor Data:
The neighbor data branch of the data model covers configuration and The neighbor data branch of the data model covers configuration and
state elements relevant to RSVP neighbors. state elements relevant to RSVP neighbors.
3.1.4. Session Data Session Data:
The sessions data branch covers configuration of elements relevant to The sessions data branch covers configuration of elements relevant to
RSVP sessions. RSVP sessions.
3.1.5. Tree Diagram 2.3.1. Tree Diagram
Figure 3 shows the YANG tree representation for configuration and
state data that is augmenting the RSVP basic module:
module: ietf-rsvp module: ietf-rsvp
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: /rt:control-plane-protocol:
+--rw rsvp! +--rw rsvp!
+--rw globals +--rw globals
| +--rw sessions | +--rw sessions
| | +--ro session* [local-index] | | +--ro session* [local-index]
| | +--ro local-index -> ../state/local-index | | +--ro local-index -> ../state/local-index
| | +--ro state | | +--ro state
| | +--ro local-index? uint64 | | +--ro local-index? uint64
| | +--ro destination-port? inet:port-number | | +--ro destination-port? inet:port-number
| | +--ro source? inet:ip-address | | +--ro source? inet:ip-address
| | +--ro destination? inet:ip-address | | +--ro destination? inet:ip-address
| | +--ro session-name? string | | +--ro session-name? string
| | +--ro session-state? enumeration | | +--ro session-state? enumeration
| | +--ro session-type? identityref | | +--ro session-type? identityref
| | +--ro psbs | | +--ro psbs
| | | +--ro psb* | | | +--ro psb* []
| | | +--ro source-port? inet:port-number | | | +--ro source-port? inet:port-number
| | | +--ro expires-in? uint32 | | | +--ro expires-in? uint32
| | +--ro rsbs | | +--ro rsbs
| | +--ro rsb* | | +--ro rsb* []
| | +--ro source-port? inet:port-number | | +--ro source-port? inet:port-number
| | +--ro reservation-style? identityref | | +--ro reservation-style? identityref
| | +--ro expires-in? uint32 | | +--ro expires-in? uint32
| +--rw statistics | +--rw statistics
| | +--ro state | | +--ro state
| | +--ro messages | | +--ro messages
| | | +--ro ack-sent? yang:counter64 | | | +--ro ack-sent? yang:counter64
| | | +--ro ack-received? yang:counter64 | | | +--ro ack-received? yang:counter64
| | | +--ro bundle-sent? yang:counter64 | | | +--ro bundle-sent? yang:counter64
| | | +--ro bundle-received? yang:counter64 | | | +--ro bundle-received? yang:counter64
skipping to change at page 12, line 8 skipping to change at page 10, line 9
| +--rw hellos | +--rw hellos
| | +--rw enabled? boolean | | +--rw enabled? boolean
| +--rw authentication | +--rw authentication
| | +--rw enabled? boolean | | +--rw enabled? boolean
| | +--rw authentication-key? string | | +--rw authentication-key? string
| | +--rw crypto-algorithm identityref | | +--rw crypto-algorithm identityref
| +--rw statistics | +--rw statistics
| +--ro state | +--ro state
| +--ro messages | +--ro messages
| | +--ro ack-sent? | | +--ro ack-sent?
yang:counter64 | | | yang:counter64
| | +--ro ack-received? | | +--ro ack-received?
yang:counter64 | | | yang:counter64
| | +--ro bundle-sent? | | +--ro bundle-sent?
yang:counter64 | | | yang:counter64
| | +--ro bundle-received? | | +--ro bundle-received?
yang:counter64 | | | yang:counter64
| | +--ro hello-sent? | | +--ro hello-sent?
yang:counter64 | | | yang:counter64
| | +--ro hello-received? | | +--ro hello-received?
yang:counter64 | | | yang:counter64
| | +--ro integrity-challenge-sent? | | +--ro integrity-challenge-sent?
yang:counter64 | | | yang:counter64
| | +--ro integrity-challenge-received? | | +--ro integrity-challenge-received?
yang:counter64 | | | yang:counter64
| | +--ro integrity-response-sent? | | +--ro integrity-response-sent?
yang:counter64 | | | yang:counter64
| | +--ro integrity-response-received? | | +--ro integrity-response-received?
yang:counter64 | | | yang:counter64
| | +--ro notify-sent? | | +--ro notify-sent?
yang:counter64 | | | yang:counter64
| | +--ro notify-received? | | +--ro notify-received?
yang:counter64 | | | yang:counter64
| | +--ro path-sent? | | +--ro path-sent?
yang:counter64 | | | yang:counter64
| | +--ro path-received? | | +--ro path-received?
yang:counter64 | | | yang:counter64
| | +--ro path-err-sent? | | +--ro path-err-sent?
yang:counter64 | | | yang:counter64
| | +--ro path-err-received? | | +--ro path-err-received?
yang:counter64 | | | yang:counter64
| | +--ro path-tear-sent? | | +--ro path-tear-sent?
yang:counter64 | | | yang:counter64
| | +--ro path-tear-received? | | +--ro path-tear-received?
yang:counter64 | | | yang:counter64
| | +--ro resv-sent? | | +--ro resv-sent?
yang:counter64 | | | yang:counter64
| | +--ro resv-received? | | +--ro resv-received?
yang:counter64 | | | yang:counter64
| | +--ro resv-confirm-sent? | | +--ro resv-confirm-sent?
yang:counter64 | | | yang:counter64
| | +--ro resv-confirm-received? | | +--ro resv-confirm-received?
yang:counter64 | | | yang:counter64
| | +--ro resv-err-sent? | | +--ro resv-err-sent?
yang:counter64 | | | yang:counter64
| | +--ro resv-err-received? | | +--ro resv-err-received?
yang:counter64 | | | yang:counter64
| | +--ro resv-tear-sent? | | +--ro resv-tear-sent?
yang:counter64 | | | yang:counter64
| | +--ro resv-tear-received? | | +--ro resv-tear-received?
yang:counter64 | | | yang:counter64
| | +--ro summary-refresh-sent? | | +--ro summary-refresh-sent?
yang:counter64 | | | yang:counter64
| | +--ro summary-refresh-received? | | +--ro summary-refresh-received?
yang:counter64 | | | yang:counter64
| | +--ro unknown-messages-received? | | +--ro unknown-messages-received?
yang:counter64 | | yang:counter64
| +--ro packets | +--ro packets
| | +--ro sent? yang:counter64 | | +--ro sent? yang:counter64
| | +--ro received? yang:counter64 | | +--ro received? yang:counter64
| +--ro errors | +--ro errors
| +--ro authenticate? yang:counter64 | +--ro authenticate? yang:counter64
| +--ro checksum? yang:counter64 | +--ro checksum? yang:counter64
| +--ro packet-len? yang:counter64 | +--ro packet-len? yang:counter64
+--rw neighbors +--rw neighbors
+--rw neighbor* [address] +--rw neighbor* [address]
+--rw address inet:ip-address +--rw address inet:ip-address
skipping to change at page 14, line 5 skipping to change at page 12, line 5
| +--ro neighbor-recovery-time-remaining? uint32 | +--ro neighbor-recovery-time-remaining? uint32
+--ro hello-status? enumeration +--ro hello-status? enumeration
+--ro interface? if:interface-ref +--ro interface? if:interface-ref
+--ro neighbor-state? enumeration +--ro neighbor-state? enumeration
+--ro refresh-reduction-capable? boolean +--ro refresh-reduction-capable? boolean
+--ro restart-count? yang:counter32 +--ro restart-count? yang:counter32
+--ro restart-time? yang:date-and-time +--ro restart-time? yang:date-and-time
Figure 3: RSVP model tree diagram Figure 3: RSVP model tree diagram
3.1.6. YANG Module 2.3.2. YANG Module
<CODE BEGINS> file "ietf-rsvp@2017-10-29.yang" <CODE BEGINS> file "ietf-rsvp@2019-02-18.yang"
module ietf-rsvp { module ietf-rsvp {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp";
/* Replace with IANA when assigned */ /* Replace with IANA when assigned */
prefix "rsvp"; prefix "rsvp";
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix if;
reference "RFC8343: A YANG Data Model for Interface Management";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference "RFC6991: Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
reference "RFC6991: Common YANG Data Types";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
reference
"RFC8349: A YANG Data Model for Routing Management
(NMDA Version)";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix "key-chain";
reference "RFC8177: YANG Data Model for Key Chains";
} }
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 15, line 9 skipping to change at page 13, line 17
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: Xufeng Liu
<mailto: xufeng.liu.ietf@gmail.com>
Editor: Igor Bryskin
<mailto:Igor.Bryskin@huawei.com>
Editor: Himanshu Shah Editor: Himanshu Shah
<mailto:hshah@ciena.com> <mailto:hshah@ciena.com>";
Editor: Xufeng Liu description
<mailto:Xufeng_Liu@jabil.com> "This module contains the RSVP YANG data model.
The model fully conforms to the Network Management Datastore
Architecture (NMDA).
Editor: Xia Chen Copyright (c) 2018 IETF Trust and the persons
<mailto:jescia.chenxia@huawei.com> identified as authors of the code. All rights reserved.
Editor: Raqib Jones Redistribution and use in source and binary forms, with or
<mailto:raqib@Brocade.com> without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices.";
Editor: Bin Wen // RFC Ed.: replace XXXX with actual RFC number and remove this
<mailto:Bin_Wen@cable.comcast.com>"; // note.
description // RFC Ed.: update the date below with the date of RFC publication
"This module contains the RSVP YANG data model."; // and remove this note.
revision "2017-10-29" { revision "2019-02-18" {
description "Latest revision of RSVP yang module."; description
reference "RFC2205"; "A YANG Data Model for Resource Reservation Protocol";
reference
"RFCXXXX: A YANG Data Model for Resource Reservation Protocol
(RSVP)";
} }
identity rsvp { identity rsvp {
base "rt:routing-protocol"; base "rt:routing-protocol";
description "RSVP protocol"; description "RSVP protocol";
} }
identity rsvp-session-type { identity rsvp-session-type {
description "Base RSVP session type"; description "Base RSVP session type";
} }
skipping to change at page 16, line 25 skipping to change at page 14, line 49
description "Fixed-Filter (FF) Style"; description "Fixed-Filter (FF) Style";
reference "RFC2205"; reference "RFC2205";
} }
identity reservation-shared-explicit { identity reservation-shared-explicit {
base reservation-style; base reservation-style;
description "Shared Explicit (SE) Style"; description "Shared Explicit (SE) Style";
reference "RFC2205"; reference "RFC2205";
} }
grouping graceful-restart_config { grouping graceful-restart-config {
description description
"Base configuration parameters relating to RSVP "Base configuration parameters relating to RSVP
Graceful-Restart"; Graceful-Restart";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if RSVP Graceful Restart is enabled. "'true' if RSVP Graceful Restart is enabled.
'false' if RSVP Graceful Restart is disabled."; 'false' if RSVP Graceful Restart is disabled.";
} }
} }
grouping graceful-restart { grouping graceful-restart {
description description
"RSVP graceful restart parameters grouping"; "RSVP graceful restart parameters grouping";
container graceful-restart { container graceful-restart {
description description
"RSVP graceful restart parameters container"; "RSVP graceful restart parameters container";
uses graceful-restart_config; uses graceful-restart-config;
} }
} }
grouping refresh-reduction_config { grouping refresh-reduction-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
refresh reduction"; refresh reduction";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if RSVP Refresh Reduction is enabled. "'true' if RSVP Refresh Reduction is enabled.
'false' if RSVP Refresh Reduction is disabled."; 'false' if RSVP Refresh Reduction is disabled.";
} }
} }
grouping refresh-reduction { grouping refresh-reduction {
description description
"Top level grouping for RSVP refresh reduction "Top level grouping for RSVP refresh reduction
parameters"; parameters";
container refresh-reduction { container refresh-reduction {
description description
"Top level container for RSVP refresh reduction "Top level container for RSVP refresh reduction
parameters"; parameters";
uses refresh-reduction_config; uses refresh-reduction-config;
} }
} }
grouping authentication_config { grouping authentication-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
authentication"; authentication";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if RSVP Authentication is enabled. "'true' if RSVP Authentication is enabled.
'false' if RSVP Authentication is disabled."; 'false' if RSVP Authentication is disabled.";
} }
leaf authentication-key { leaf authentication-key {
type string; type string;
description description
"An authentication key string"; "An authentication key string";
skipping to change at page 18, line 10 skipping to change at page 16, line 35
} }
} }
grouping authentication { grouping authentication {
description description
"Top level grouping for RSVP authentication parameters"; "Top level grouping for RSVP authentication parameters";
container authentication { container authentication {
description description
"Top level container for RSVP authentication "Top level container for RSVP authentication
parameters"; parameters";
uses authentication_config; uses authentication-config;
} }
} }
grouping hellos_config { grouping hellos-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
hellos"; hellos";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if RSVP Hello is enabled. "'true' if RSVP Hello is enabled.
'false' if RSVP Hello is disabled."; 'false' if RSVP Hello is disabled.";
} }
} }
grouping hellos { grouping hellos {
description description
"Top level grouping for RSVP hellos parameters"; "Top level grouping for RSVP hellos parameters";
container hellos { container hellos {
description description
"Top level container for RSVP hello parameters"; "Top level container for RSVP hello parameters";
uses hellos_config; uses hellos-config;
} }
} }
grouping signaling-parameters_config { grouping signaling-parameters-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
signaling"; signaling";
} }
grouping signaling-parameters { grouping signaling-parameters {
description description
"Top level grouping for RSVP signaling parameters"; "Top level grouping for RSVP signaling parameters";
uses signaling-parameters_config; uses signaling-parameters-config;
} }
grouping session-attributes_state { grouping session-attributes-state {
description description
"Top level grouping for RSVP session properties"; "Top level grouping for RSVP session properties";
leaf local-index { leaf local-index {
type uint64; type uint64;
description description
"The index used to identify the RSVP session "The index used to identify the RSVP session
on the local network element. This index is on the local network element. This index is
generated by the device and is unique only generated by the device and is unique only
to the local network element."; to the local network element.";
} }
skipping to change at page 21, line 8 skipping to change at page 19, line 32
leaf address { leaf address {
type inet:ip-address; type inet:ip-address;
description description
"Address of RSVP neighbor"; "Address of RSVP neighbor";
} }
container state { container state {
config false; config false;
description description
"State information associated with RSVP "State information associated with RSVP
neighbor properties"; neighbor properties";
uses neighbor-derived_state; uses neighbor-derived-state;
} }
} }
grouping packets_state { grouping packets-state {
description description
"Packet statistics grouping"; "Packet statistics grouping";
container packets { container packets {
description description
"Packet statistics container"; "Packet statistics container";
leaf sent { leaf sent {
type yang:counter64; type yang:counter64;
description description
"Packet sent count"; "Packet sent count";
} }
skipping to change at page 21, line 28 skipping to change at page 20, line 4
leaf sent { leaf sent {
type yang:counter64; type yang:counter64;
description description
"Packet sent count"; "Packet sent count";
} }
leaf received { leaf received {
type yang:counter64; type yang:counter64;
description description
"Packet received count"; "Packet received count";
} }
} }
} }
grouping protocol_state { grouping protocol-state {
description description
"RSVP protocol statistics grouping"; "RSVP protocol statistics grouping";
container messages { container messages {
description description
"RSVP protocol statistics container"; "RSVP protocol statistics container";
leaf ack-sent { leaf ack-sent {
type yang:counter64; type yang:counter64;
description description
"Hello sent count"; "Hello sent count";
} }
skipping to change at page 25, line 22 skipping to change at page 23, line 46
} }
leaf unknown-messages-received { leaf unknown-messages-received {
type yang:counter64; type yang:counter64;
description description
"Unknown packet received count"; "Unknown packet received count";
} }
} }
} }
grouping errors_state { grouping errors-state {
description description
"Error statistics state grouping"; "Error statistics state grouping";
container errors { container errors {
description description
"Error statistics state container"; "Error statistics state container";
leaf authenticate { leaf authenticate {
type yang:counter64; type yang:counter64;
description description
"The total number of packets received with an "The total number of packets received with an
authentication failure."; authentication failure.";
} }
leaf checksum { leaf checksum {
type yang:counter64; type yang:counter64;
description description
skipping to change at page 25, line 51 skipping to change at page 24, line 28
leaf packet-len { leaf packet-len {
type yang:counter64; type yang:counter64;
description description
"The total number of packets received with an invalid "The total number of packets received with an invalid
packet length."; packet length.";
} }
} }
} }
grouping statistics_state { grouping statistics-state {
description "RSVP statistic attributes."; description "RSVP statistic attributes.";
container statistics { container statistics {
description description
"statistics state container"; "statistics state container";
container state { container state {
config false; config false;
description description
"State information associated with RSVP "State information associated with RSVP
hello parameters"; hello parameters";
uses protocol_state; uses protocol-state;
uses packets_state; uses packets-state;
uses errors_state; uses errors-state;
} }
} }
} }
grouping neighbor-derived_state { grouping neighbor-derived-state {
description description
"Derived state at neighbor level."; "Derived state at neighbor level.";
leaf address { leaf address {
type inet:ip-address; type inet:ip-address;
description description
"Address of RSVP neighbor"; "Address of RSVP neighbor";
} }
leaf epoch { leaf epoch {
type uint32; type uint32;
description description
"Neighbor epoch."; "Neighbor epoch.";
} }
leaf expiry-time { leaf expiry-time {
type uint32; type uint32;
skipping to change at page 26, line 51 skipping to change at page 25, line 28
is purged if no states associated with it"; is purged if no states associated with it";
} }
container graceful-restart { container graceful-restart {
description description
"Graceful restart information."; "Graceful restart information.";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if graceful restart is enabled for the "'true' if graceful restart is enabled for the neighbor.";
neighbor.";
} }
leaf local-restart-time { leaf local-restart-time {
type uint32; type uint32;
units seconds; units seconds;
description description
"Local node restart time"; "Local node restart time";
} }
leaf local-recovery-time { leaf local-recovery-time {
skipping to change at page 28, line 28 skipping to change at page 26, line 50
description description
"Number of seconds remaining for neighbor to send "Number of seconds remaining for neighbor to send
Hello message after restart."; Hello message after restart.";
} }
leaf neighbor-recovery-time-remaining { leaf neighbor-recovery-time-remaining {
type uint32; type uint32;
units seconds; units seconds;
description description
"Number of seconds remaining for neighbor to "Number of seconds remaining for neighbor to
refresh."; refresh.";
} }
} // helper-mode } // helper-mode
} // graceful-restart } // graceful-restart
leaf hello-status { leaf hello-status {
type enumeration { type enumeration {
enum "enabled" { enum "enabled" {
description description
"Enabled"; "Enabled";
} }
enum "disabled" { enum "disabled" {
skipping to change at page 30, line 33 skipping to change at page 29, line 8
} }
description description
"Reference to the local index for the RSVP "Reference to the local index for the RSVP
session"; session";
} }
container state { container state {
config false; config false;
description description
"State information associated with RSVP "State information associated with RSVP
session parameters"; session parameters";
uses session-attributes_state; uses session-attributes-state;
} }
} }
} }
uses statistics_state; uses statistics-state;
} }
grouping intf-attributes { grouping intf-attributes {
description description
"Top level grouping for RSVP interface properties"; "Top level grouping for RSVP interface properties";
uses signaling-parameters; uses signaling-parameters;
uses refresh-reduction; uses refresh-reduction;
uses hellos; uses hellos;
uses authentication; uses authentication;
uses statistics_state; uses statistics-state;
} }
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "rt:type = 'rsvp:rsvp'" { when "rt:type = 'rsvp:rsvp'" {
description description
"This augment is only valid when routing protocol "This augment is only valid when routing protocol
instance type is RSVP."; instance type is RSVP.";
} }
description description
skipping to change at page 32, line 5 skipping to change at page 30, line 27
key "address"; key "address";
description "List of RSVP neighbors"; description "List of RSVP neighbors";
uses neighbor-attributes; uses neighbor-attributes;
} }
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
3.2. RSVP Extended YANG Model 2.4. RSVP Extended YANG Model
The RSVP extended YANG model covers optional or non-core RSVP The RSVP extended YANG model covers non-core RSVP feature(s). It
feature(s). It also covers feature(s) that are not necessarily also covers feature(s) that are not necessarily supported by all
supported by all vendors, and hence, guarded with "if-feature" vendors, and hence, can be guarded with "if-feature" checks.
checks.
3.2.1. Tree Diagram 2.4.1. Tree Diagram
Figure 4 shows the YANG tree representation for configuration and Figure 4 shows the YANG tree representation for configuration and
state data that is augmenting the RSVP basic module: state data that is augmenting the RSVP extended module:
module: ietf-rsvp-extended module: ietf-rsvp-extended
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals
rsvp:rsvp/rsvp:globals/rsvp:graceful-restart: /rsvp:graceful-restart:
+--rw restart-time? uint32 +--rw restart-time? uint32
+--rw recovery-time? uint32 +--rw recovery-time? uint32
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals
rsvp:rsvp/rsvp:globals/rsvp:statistics/rsvp:state/rsvp:packets: /rsvp:statistics/rsvp:state/rsvp:packets:
+--ro discontinuity-time? yang:date-and-time +--ro discontinuity-time? yang:date-and-time
+--ro out-dropped? yang:counter64 +--ro out-dropped? yang:counter64
+--ro in-dropped? yang:counter64 +--ro in-dropped? yang:counter64
+--ro out-error? yang:counter64 +--ro out-error? yang:counter64
+--ro in-error? yang:counter64 +--ro in-error? yang:counter64
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals
rsvp:rsvp/rsvp:globals/rsvp:statistics/rsvp:state/rsvp:messages: /rsvp:statistics/rsvp:state/rsvp:messages:
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:globals
rsvp:rsvp/rsvp:globals/rsvp:statistics/rsvp:state/rsvp:errors: /rsvp:statistics/rsvp:state/rsvp:errors:
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces:
rsvp:rsvp/rsvp:interfaces:
+--rw refresh-interval? uint32 +--rw refresh-interval? uint32
+--rw refresh-misses? uint32 +--rw refresh-misses? uint32
+--rw checksum? boolean +--rw checksum? boolean
+--rw patherr-state-removal? empty +--rw patherr-state-removal? empty
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
rsvp:rsvp/rsvp:interfaces/rsvp:refresh-reduction: /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:control-plane-protocols
augment /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rsvp:hellos:
rsvp:rsvp/rsvp:interfaces/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 augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
rsvp:rsvp/rsvp:interfaces/rsvp:authentication: /rsvp:authentication:
+--rw lifetime? uint32 +--rw lifetime? uint32
+--rw window-size? uint32 +--rw window-size? uint32
+--rw challenge? empty +--rw challenge? empty
+--rw retransmits? uint32 +--rw retransmits? uint32
+--rw key-chain? key-chain:key-chain-ref +--rw key-chain? key-chain:key-chain-ref
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
rsvp:rsvp/rsvp:interfaces/rsvp:interface: /rsvp:interface:
+--rw refresh-interval? uint32 +--rw refresh-interval? uint32
+--rw refresh-misses? uint32 +--rw refresh-misses? uint32
+--rw checksum? boolean +--rw checksum? boolean
+--rw patherr-state-removal? empty +--rw patherr-state-removal? empty
augment augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:refresh-reduction: /rsvp:interface/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 augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:hellos: /rsvp:interface/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 augment /rt:routing/rt:control-plane-protocols
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
rsvp:rsvp/rsvp:interfaces/rsvp:interface/rsvp:authentication: /rsvp:interface/rsvp:authentication:
+--rw lifetime? uint32 +--rw lifetime? uint32
+--rw window-size? uint32 +--rw window-size? uint32
+--rw challenge? empty +--rw challenge? empty
+--rw retransmits? uint32 +--rw retransmits? uint32
+--rw key-chain? key-chain:key-chain-ref +--rw key-chain? key-chain:key-chain-ref
Figure 4: RSVP extended model tree diagram Figure 4: RSVP extended model tree diagram
3.2.2. YANG Module 2.4.2. YANG Module
Figure 5 shows the RSVP extended YANG module: Figure 5 shows the RSVP extended YANG module:
<CODE BEGINS> file "ietf-rsvp-extended@2017-10-29.yang" <CODE BEGINS> file "ietf-rsvp-extended@2019-02-18.yang"
module ietf-rsvp-extended { module ietf-rsvp-extended {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-extended";
prefix "rsvp-ext"; prefix "rsvp-ext";
import ietf-rsvp { import ietf-rsvp {
prefix "rsvp"; prefix "rsvp";
reference
"RFCXXXX: A YANG Data Model for Resource Reservation Protocol
(RSVP)";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
reference
"RFC8349: A YANG Data Model for Routing Management
(NMDA Version)";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
reference "RFC6991: Common YANG Data Types";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix "key-chain";
reference "RFC8177: YANG Data Model for Key Chains";
} }
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 35, line 24 skipping to change at page 33, line 52
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 "2017-10-29" { The model fully conforms to the Network Management Datastore
description "Latest revision of RSVP extended yang module."; Architecture (NMDA).
reference "RFC2205";
Copyright (c) 2018 IETF Trust and the persons
identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note.
// RFC Ed.: update the date below with the date of RFC publication
// and remove this note.
revision "2019-02-18" {
description
"A YANG Data Model for Extended Resource Reservation
Protocol";
reference
"RFCXXXX: A YANG Data Model for Extended Resource Reservation
Protocol (RSVP)";
} }
/* 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
skipping to change at page 36, line 15 skipping to change at page 35, line 19
"Indicates support for RSVP hellos (RFC3209)."; "Indicates support for RSVP hellos (RFC3209).";
} }
feature notify { feature notify {
description description
"Indicates support for RSVP notify message (RFC3473)."; "Indicates support for RSVP notify message (RFC3473).";
} }
feature refresh-reduction { feature refresh-reduction {
description description
"Indicates support for RSVP refresh reduction "Indicates support for RSVP refresh reduction (RFC2961).";
(RFC2961).";
} }
feature refresh-reduction-extended { feature refresh-reduction-extended {
description description
"Indicates support for RSVP refresh reduction "Indicates support for RSVP refresh reduction (RFC2961).";
(RFC2961).";
} }
feature per-interface-statistics { feature per-interface-statistics {
description description
"Indicates support for per interface statistics"; "Indicates support for per interface statistics";
} }
grouping graceful-restart-extended_config { grouping graceful-restart-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
Graceful-Restart"; Graceful-Restart";
leaf restart-time { leaf restart-time {
type uint32; type uint32;
units seconds; units seconds;
description description
"Graceful restart time (seconds)."; "Graceful restart time (seconds).";
reference reference
"RFC 5495: Description of the Resource "RFC 5495: Description of the Resource
skipping to change at page 36, line 50 skipping to change at page 36, line 4
"RFC 5495: Description of the Resource "RFC 5495: Description of the Resource
Reservation Protocol - Traffic-Engineered Reservation Protocol - Traffic-Engineered
(RSVP-TE) Graceful Restart Procedures"; (RSVP-TE) Graceful Restart Procedures";
} }
leaf recovery-time { leaf recovery-time {
type uint32; type uint32;
units seconds; units seconds;
description description
"RSVP state recovery time"; "RSVP state recovery time";
} }
} }
grouping authentication-extended_config {
grouping authentication-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
authentication"; authentication";
leaf lifetime { leaf lifetime {
type uint32 { type uint32 {
range "30..86400"; range "30..86400";
} }
units seconds; units seconds;
description description
"Life time for each security association"; "Life time for each security association";
reference reference
"RFC 2747: RSVP Cryptographic "RFC 2747: RSVP Cryptographic
Authentication"; Authentication";
} }
leaf window-size { leaf window-size {
type uint32 { type uint32 {
range "1..64"; range "1..64";
} }
skipping to change at page 37, line 50 skipping to change at page 37, line 4
range "1..10000"; range "1..10000";
} }
description description
"Number of retransmits when messages are "Number of retransmits when messages are
dropped."; dropped.";
reference reference
"RFC 2747: RSVP Cryptographic "RFC 2747: RSVP Cryptographic
Authentication"; Authentication";
} }
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Key chain name to authenticate RSVP "Key chain name to authenticate RSVP
signaling messages."; signaling messages.";
reference reference
"RFC 2747: RSVP Cryptographic "RFC 2747: RSVP Cryptographic
Authentication"; Authentication";
} }
} }
grouping hellos-extended_config { grouping hellos-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
hellos"; hellos";
leaf interface-based { leaf interface-based {
type empty; type empty;
description description
"Enable interface-based Hello adjacency if present."; "Enable interface-based Hello adjacency if present.";
} }
leaf hello-interval { leaf hello-interval {
type uint32; type uint32;
skipping to change at page 38, line 49 skipping to change at page 37, line 51
Hello messages."; Hello messages.";
reference reference
"RFC 3209: RSVP-TE: Extensions to RSVP for "RFC 3209: RSVP-TE: Extensions to RSVP for
LSP Tunnels RFC 5495: Description of the LSP Tunnels RFC 5495: Description of the
Resource Reservation Protocol - Traffic- Resource Reservation Protocol - Traffic-
Engineered (RSVP-TE) Graceful Restart Engineered (RSVP-TE) Graceful Restart
Procedures"; Procedures";
} }
} }
grouping signaling-parameters-extended_config { grouping signaling-parameters-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
signaling"; signaling";
leaf refresh-interval { leaf refresh-interval {
type uint32; type uint32;
description description
"Set interval between successive refreshes"; "Set interval between successive refreshes";
} }
leaf refresh-misses { leaf refresh-misses {
type uint32; type uint32;
skipping to change at page 39, line 29 skipping to change at page 38, line 31
"Enable RSVP message checksum computation"; "Enable RSVP message checksum computation";
} }
leaf patherr-state-removal { leaf patherr-state-removal {
type empty; type empty;
description description
"State-Removal flag in Path Error message "State-Removal flag in Path Error message
if present."; if present.";
} }
} }
grouping refresh-reduction-extended_config { grouping refresh-reduction-extended-config {
description description
"Configuration parameters relating to RSVP "Configuration parameters relating to RSVP
refresh reduction"; refresh reduction";
leaf bundle-message-max-size { leaf bundle-message-max-size {
type uint32 { type uint32 {
range "512..65000"; range "512..65000";
} }
description description
"Configure maximum size (bytes) of a "Configure maximum size (bytes) of a
skipping to change at page 40, line 30 skipping to change at page 39, line 32
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 packets-extended_state { grouping 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
skipping to change at page 41, line 20 skipping to change at page 40, line 22
"Out packet error count"; "Out packet error count";
} }
leaf in-error { leaf in-error {
type yang:counter64; type yang:counter64;
description description
"In packet rx error count"; "In packet rx error count";
} }
} }
grouping protocol-extended_state { grouping protocol-extended-state {
description description "RSVP protocol statistics.";
"RSVP protocol statistics.";
} }
grouping errors-extended_state { grouping errors-extended-state {
description description
"Error statistics."; "Error statistics.";
} }
grouping extended_state { grouping extended-state {
description "RSVP statistic attributes."; description "RSVP statistic attributes.";
uses packets-extended_state; uses packets-extended-state;
uses protocol-extended_state; uses protocol-extended-state;
uses errors-extended_state; uses errors-extended-state;
} }
/** /**
* RSVP extensions augmentations * RSVP extensions augmentations
*/ */
/* RSVP globals graceful restart*/ /* RSVP globals graceful restart*/
augment "/rt:routing/rt:control-plane-protocols/" + augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:graceful-restart" { "rsvp:graceful-restart" {
description description
"RSVP globals configuration extensions"; "RSVP globals configuration extensions";
uses graceful-restart-extended_config; uses graceful-restart-extended-config;
} }
/* RSVP statistics augmentation */ /* RSVP statistics augmentation */
augment "/rt:routing/rt:control-plane-protocols/" + augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:statistics/rsvp:state/rsvp:packets" { "rsvp:statistics/rsvp:state/rsvp:packets" {
description description
"RSVP packet stats extensions"; "RSVP packet stats extensions";
uses packets-extended_state; uses packets-extended-state;
} }
augment "/rt:routing/rt:control-plane-protocols/" + augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:statistics/rsvp:state/rsvp:messages" { "rsvp:statistics/rsvp:state/rsvp:messages" {
description description
"RSVP protocol message stats extensions"; "RSVP protocol message stats extensions";
uses protocol-extended_state; uses protocol-extended-state;
} }
augment "/rt:routing/rt:control-plane-protocols/" + augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" +
"rsvp:statistics/rsvp:state/rsvp:errors" { "rsvp:statistics/rsvp:state/rsvp:errors" {
description description
"RSVP errors stats extensions"; "RSVP errors stats extensions";
uses errors-extended_state; uses errors-extended-state;
} }
/** /**
* RSVP all interfaces extensions * RSVP all interfaces extensions
*/ */
/* RSVP interface signaling extensions */ /* RSVP interface signaling extensions */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" {
description description
"RSVP signaling all interfaces configuration extensions"; "RSVP signaling all interfaces configuration 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:refresh-reduction" { + "rsvp:refresh-reduction" {
description description
"RSVP refresh-reduction all interface configuration "RSVP refresh-reduction all interface configuration
extensions"; extensions";
uses refresh-reduction-extended_config; uses refresh-reduction-extended-config;
} }
/* RSVP hellos extension */ /* RSVP hellos extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:hellos" { + "rsvp:hellos" {
description description
"RSVP hello all interfaces configuration extensions"; "RSVP hello all interfaces configuration extensions";
uses hellos-extended_config; uses hellos-extended-config;
} }
/* RSVP authentication extension */ /* RSVP authentication extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
+ "rsvp:authentication" { + "rsvp:authentication" {
description description
"RSVP authentication all interfaces configuration extensions"; "RSVP authentication all interfaces configuration extensions";
uses authentication-extended_config; 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:interface" {
description description
"RSVP signaling interface configuration extensions"; "RSVP signaling interface configuration 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:refresh-reduction" { "rsvp:interface/rsvp:refresh-reduction" {
description description
"RSVP refresh-reduction interface configuration extensions"; "RSVP refresh-reduction interface configuration extensions";
uses refresh-reduction-extended_config; uses refresh-reduction-extended-config;
} }
/* RSVP hellos extension */ /* RSVP hellos extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:hellos" { "rsvp:interface/rsvp:hellos" {
description description
"RSVP hello interface configuration extensions"; "RSVP hello interface configuration extensions";
uses hellos-extended_config; uses hellos-extended-config;
} }
/* RSVP authentication extension */ /* RSVP authentication extension */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" + + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/" +
"rsvp:interface/rsvp:authentication" { "rsvp:interface/rsvp:authentication" {
description description
"RSVP authentication interface configuration extensions"; "RSVP authentication interface configuration extensions";
uses authentication-extended_config; uses authentication-extended-config;
} }
} }
<CODE ENDS> <CODE ENDS>
Figure 5: RSVP extended YANG module Figure 5: RSVP extended YANG module
4. IANA Considerations 3. IANA Considerations
This document registers the following URIs in the IETF XML registry This document registers the following URIs in the IETF XML registry
[RFC3688]. Following the format in [RFC3688], the following [RFC3688]. Following the format in [RFC3688], the following
registration is requested to be made. registration is requested to be made.
URI: urn:ietf:params:xml:ns:yang:ietf-rsvp XML: N/A, the requested URI: urn:ietf:params:xml:ns:yang:ietf-rsvp
URI is an XML namespace. XML: N/A, the requested URI is an XML namespace.
URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended XML: N/A, the URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended
requested URI is an XML namespace. XML: N/A, the requested URI is an XML namespace.
This document registers a YANG module in the YANG Module Names This document registers two YANG modules in the YANG Module Names
registry [RFC6020]. registry [RFC6020].
name: ietf-rsvp namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp name: ietf-rsvp
prefix: ietf-rsvp reference: RFC3209 namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp
prefix: ietf-rsvp
reference: RFCXXXX
name: ietf-rsvp-extended namespace: urn:ietf:params:xml:ns:yang:ietf- name: ietf-rsvp-extended
rsvp-extended prefix: ietf-rsvp-extendeed reference: RFC3209 namespace: urn:ietf:params:xml:ns:yang:ietf-rsvp-extended
prefix: ietf-rsvp-extendeed
reference: RFCXXXX
5. Security Considerations 4. Security Considerations
The YANG module defined in this memo is designed to be accessed via The YANG module defined in this memo is designed to be accessed via
the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the
secure transport layer and the mandatory-to-implement secure secure transport layer and the mandatory-to-implement secure
transport is SSH [RFC6242]. The NETCONF access control model transport is SSH [RFC6242]. The NETCONF access control model
[RFC8341] provides means to restrict access for particular NETCONF [RFC8341] provides means to restrict access for particular NETCONF
users to a pre-configured subset of all available NETCONF protocol users to a pre-configured subset of all available NETCONF protocol
operations and content. operations and content.
There are a number of data nodes defined in the YANG module which are There are a number of data nodes defined in the YANG module which are
writable/creatable/deletable (i.e., config true, which is the writable/creatable/deletable (i.e., config true, which is the
default). These data nodes may be considered sensitive or vulnerable default). These data nodes may be considered sensitive or vulnerable
in some network environments. Write operations (e.g., <edit-config>) in some network environments. Write operations (e.g., <edit-config>)
to these data nodes without proper protection can have a negative to these data nodes without proper protection can have a negative
effect on network operations. effect on network operations.
6. Acknowledgement 5. Acknowledgement
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. Contributors 6. Contributors
Xia Chen Xia Chen
Huawei Technologies Huawei Technologies
Email: jescia.chenxia@huawei.com Email: jescia.chenxia@huawei.com
Raqib Jones Raqib Jones
Brocade Brocade
Email: raqib@Brocade.com Email: raqib@Brocade.com
Bin Wen Bin Wen
Comcast Comcast
Email: Bin_Wen@cable.comcast.com Email: Bin_Wen@cable.comcast.com
8. References 7. Normative References
8.1. Normative References [I-D.ietf-teas-yang-rsvp-te]
Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I.,
and H. Shah, "A YANG Data Model for RSVP-TE", draft-ietf-
teas-yang-rsvp-te-04 (work in progress), October 2018.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
Functional Specification", RFC 2205, DOI 10.17487/RFC2205, Functional Specification", RFC 2205, DOI 10.17487/RFC2205,
September 1997, <https://www.rfc-editor.org/info/rfc2205>. September 1997, <https://www.rfc-editor.org/info/rfc2205>.
skipping to change at page 46, line 43 skipping to change at page 46, line 5
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
Access Control Model", STD 91, RFC 8341, Access Control Model", STD 91, RFC 8341,
DOI 10.17487/RFC8341, March 2018, DOI 10.17487/RFC8341, March 2018,
<https://www.rfc-editor.org/info/rfc8341>. <https://www.rfc-editor.org/info/rfc8341>.
[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
Routing Management (NMDA Version)", RFC 8349, Routing Management (NMDA Version)", RFC 8349,
DOI 10.17487/RFC8349, March 2018, DOI 10.17487/RFC8349, March 2018,
<https://www.rfc-editor.org/info/rfc8349>. <https://www.rfc-editor.org/info/rfc8349>.
8.2. Informative References
[I-D.ietf-teas-yang-rsvp-te]
Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I.,
and H. Shah, "A YANG Data Model for RSVP-TE", draft-ietf-
teas-yang-rsvp-te-03 (work in progress), February 2018.
Authors' Addresses Authors' Addresses
Vishnu Pavan Beeram Vishnu Pavan Beeram
Juniper Networks Juniper Networks
Email: vbeeram@juniper.net Email: vbeeram@juniper.net
Tarek Saad (editor) Tarek Saad (editor)
Cisco Systems, Inc. Cisco Systems, Inc.
 End of changes. 168 change blocks. 
286 lines changed or deleted 319 lines changed or added

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