draft-ietf-teas-yang-rsvp-12.txt   draft-ietf-teas-yang-rsvp-13.txt 
TEAS Working Group V. Beeram TEAS Working Group V. Beeram
Internet-Draft T. Saad Internet-Draft T. Saad
Intended status: Standards Track Juniper Networks Intended status: Standards Track Juniper Networks
Expires: July 16, 2020 R. Gandhi Expires: January 14, 2021 R. Gandhi
Cisco Systems, Inc. Cisco Systems, Inc.
X. Liu X. Liu
Jabil Volta Networks
I. Bryskin I. Bryskin
Huawei Technologies Individual
January 13, 2020 July 13, 2020
A YANG Data Model for Resource Reservation Protocol (RSVP) A YANG Data Model for Resource Reservation Protocol (RSVP)
draft-ietf-teas-yang-rsvp-12 draft-ietf-teas-yang-rsvp-13
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 RSVP extensions to Traffic-Engineering extension models such as RSVP extensions to Traffic-Engineering
(RSVP-TE). The model covers the configuration, operational state, (RSVP-TE). The model covers the configuration, operational state,
remote procedure calls, and event notifications data. remote procedure calls, and event notifications data.
skipping to change at page 1, line 41 skipping to change at page 1, line 41
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 July 16, 2020. This Internet-Draft will expire on January 14, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 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
skipping to change at page 2, line 24 skipping to change at page 2, line 24
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 3 1.2. Model Tree Diagram . . . . . . . . . . . . . . . . . . . 3
1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 1.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3
2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 3 2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 4 2.1. Module(s) Relationship . . . . . . . . . . . . . . . . . 4
2.2. Design Considerations . . . . . . . . . . . . . . . . . . 4 2.2. Design Considerations . . . . . . . . . . . . . . . . . . 4
2.3. Model Notifications . . . . . . . . . . . . . . . . . . . 5 2.3. Model Notifications . . . . . . . . . . . . . . . . . . . 5
2.4. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 5 2.4. RSVP Base YANG Model . . . . . . . . . . . . . . . . . . 5
2.4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 7 2.4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 7
2.4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 11 2.4.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 12
2.5. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 32 2.5. RSVP Extended YANG Model . . . . . . . . . . . . . . . . 33
2.5.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 32 2.5.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . 33
2.5.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 34 2.5.2. YANG Module . . . . . . . . . . . . . . . . . . . . . 35
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45
4. Security Considerations . . . . . . . . . . . . . . . . . . . 46 4. Security Considerations . . . . . . . . . . . . . . . . . . . 46
5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 47 5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 47
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 47 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 47
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 47 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.1. Normative References . . . . . . . . . . . . . . . . . . 47 7.1. Normative References . . . . . . . . . . . . . . . . . . 47
7.2. Informative References . . . . . . . . . . . . . . . . . 50 7.2. Informative References . . . . . . . . . . . . . . . . . 50
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50
1. Introduction 1. Introduction
skipping to change at page 7, line 17 skipping to change at page 7, line 17
The sessions data branch covers configuration and state relevant The sessions data branch covers configuration and state relevant
to RSVP sessions. This is usually derived state that is result of to RSVP sessions. This is usually derived state that is result of
signaling. This model defines attributes related to IP RSVP signaling. This model defines attributes related to IP RSVP
sessions as defined in [RFC2205]. sessions as defined in [RFC2205].
2.4.1. Tree Diagram 2.4.1. Tree Diagram
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 module: ietf-rsvp
augment /rt:routing/rt:control-plane-protocols augment /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-ip* | | +--ro session-ip*
| | [destination protocol-id destination-port] | | [destination protocol-id destination-port]
| | +--ro destination-port inet:port-number | | +--ro destination-port inet:port-number
| | +--ro protocol-id uint8 | | +--ro protocol-id uint8
| | +--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-status? 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
| +--ro statistics | +--ro statistics
| | +--ro messages | | +--ro messages
| | | +--ro ack-sent? yang:counter64 | | | +--ro ack-sent? yang:counter64
| | | +--ro ack-received? yang:counter64 | | | +--ro ack-received? yang:counter64
| | | +--ro bundle-sent? yang:counter64 | | | +--ro bundle-sent? yang:counter64
| | | +--ro bundle-received? yang:counter64 | | | +--ro bundle-received? yang:counter64
| | | +--ro hello-sent? yang:counter64 | | | +--ro hello-sent? yang:counter64
| | | +--ro hello-received? yang:counter64 | | | +--ro hello-received? yang:counter64
| | | +--ro integrity-challenge-sent? yang:counter64 | | | +--ro integrity-challenge-sent? yang:counter64
| | | +--ro integrity-challenge-received? yang:counter64 | | | +--ro integrity-challenge-received? yang:counter64
| | | +--ro integrity-response-sent? yang:counter64 | | | +--ro integrity-response-sent? yang:counter64
| | | +--ro integrity-response-received? yang:counter64 | | | +--ro integrity-response-received? yang:counter64
| | | +--ro notify-sent? yang:counter64 | | | +--ro notify-sent? yang:counter64
| | | +--ro notify-received? yang:counter64 | | | +--ro notify-received? yang:counter64
| | | +--ro path-sent? yang:counter64 | | | +--ro path-sent? yang:counter64
| | | +--ro path-received? yang:counter64 | | | +--ro path-received? yang:counter64
| | | +--ro path-err-sent? yang:counter64 | | | +--ro path-err-sent? yang:counter64
| | | +--ro path-err-received? yang:counter64 | | | +--ro path-err-received? yang:counter64
| | | +--ro path-tear-sent? yang:counter64 | | | +--ro path-tear-sent? yang:counter64
| | | +--ro path-tear-received? yang:counter64 | | | +--ro path-tear-received? yang:counter64
| | | +--ro resv-sent? yang:counter64 | | | +--ro resv-sent? yang:counter64
| | | +--ro resv-received? yang:counter64 | | | +--ro resv-received? yang:counter64
| | | +--ro resv-confirm-sent? yang:counter64 | | | +--ro resv-confirm-sent? yang:counter64
| | | +--ro resv-confirm-received? yang:counter64 | | | +--ro resv-confirm-received? yang:counter64
| | | +--ro resv-err-sent? yang:counter64 | | | +--ro resv-err-sent? yang:counter64
| | | +--ro resv-err-received? yang:counter64 | | | +--ro resv-err-received? yang:counter64
| | | +--ro resv-tear-sent? yang:counter64 | | | +--ro resv-tear-sent? yang:counter64
| | | +--ro resv-tear-received? yang:counter64 | | | +--ro resv-tear-received? yang:counter64
| | | +--ro summary-refresh-sent? yang:counter64 | | | +--ro summary-refresh-sent? yang:counter64
| | | +--ro summary-refresh-received? yang:counter64 | | | +--ro summary-refresh-received? yang:counter64
| | | +--ro unknown-messages-received? yang:counter64 | | | +--ro unknown-messages-received? yang:counter64
| | +--ro packets | | +--ro packets
| | | +--ro sent? yang:counter64 | | | +--ro sent? yang:counter64
| | | +--ro received? yang:counter64 | | | +--ro received? yang:counter64
| | +--ro errors | | +--ro errors
| | +--ro authenticate? yang:counter64 | | +--ro authenticate? yang:counter64
| | +--ro checksum? yang:counter64 | | +--ro checksum? yang:counter64
| | +--ro packet-length? yang:counter64 | | +--ro packet-length? yang:counter64
| +--rw graceful-restart | +--rw graceful-restart
| +--rw enabled? boolean | +--rw enabled? boolean
+--rw interfaces +--rw interfaces
| +--rw refresh-reduction | +--rw refresh-reduction
| | +--rw enabled? boolean | | +--rw enabled? boolean
| +--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
| +--ro statistics | +--ro statistics
| | +--ro messages | | +--ro messages
| | | +--ro ack-sent? yang:counter64 | | | +--ro ack-sent? yang:counter64
| | | +--ro ack-received? yang:counter64 | | | +--ro ack-received? yang:counter64
| | | +--ro bundle-sent? yang:counter64 | | | +--ro bundle-sent? yang:counter64
| | | +--ro bundle-received? yang:counter64 | | | +--ro bundle-received? yang:counter64
| | | +--ro hello-sent? yang:counter64 | | | +--ro hello-sent? yang:counter64
| | | +--ro hello-received? yang:counter64 | | | +--ro hello-received? yang:counter64
| | | +--ro integrity-challenge-sent? yang:counter64 | | | +--ro integrity-challenge-sent? yang:counter64
| | | +--ro integrity-challenge-received? yang:counter64 | | | +--ro integrity-challenge-received? yang:counter64
| | | +--ro integrity-response-sent? yang:counter64 | | | +--ro integrity-response-sent? yang:counter64
| | | +--ro integrity-response-received? yang:counter64 | | | +--ro integrity-response-received? yang:counter64
| | | +--ro notify-sent? yang:counter64 | | | +--ro notify-sent? yang:counter64
| | | +--ro notify-received? yang:counter64 | | | +--ro notify-received? yang:counter64
| | | +--ro path-sent? yang:counter64 | | | +--ro path-sent? yang:counter64
| | | +--ro path-received? yang:counter64 | | | +--ro path-received? yang:counter64
| | | +--ro path-err-sent? yang:counter64 | | | +--ro path-err-sent? yang:counter64
| | | +--ro path-err-received? yang:counter64 | | | +--ro path-err-received? yang:counter64
| | | +--ro path-tear-sent? yang:counter64 | | | +--ro path-tear-sent? yang:counter64
| | | +--ro path-tear-received? yang:counter64 | | | +--ro path-tear-received? yang:counter64
| | | +--ro resv-sent? yang:counter64 | | | +--ro resv-sent? yang:counter64
| | | +--ro resv-received? yang:counter64 | | | +--ro resv-received? yang:counter64
| | | +--ro resv-confirm-sent? yang:counter64 | | | +--ro resv-confirm-sent? yang:counter64
| | | +--ro resv-confirm-received? yang:counter64 | | | +--ro resv-confirm-received? yang:counter64
| | | +--ro resv-err-sent? yang:counter64 | | | +--ro resv-err-sent? yang:counter64
| | | +--ro resv-err-received? yang:counter64 | | | +--ro resv-err-received? yang:counter64
| | | +--ro resv-tear-sent? yang:counter64 | | | +--ro resv-tear-sent? yang:counter64
| | | +--ro resv-tear-received? yang:counter64 | | | +--ro resv-tear-received? yang:counter64
| | | +--ro summary-refresh-sent? yang:counter64 | | | +--ro summary-refresh-sent? yang:counter64
| | | +--ro summary-refresh-received? yang:counter64 | | | +--ro summary-refresh-received? yang:counter64
| | | +--ro unknown-messages-received? yang:counter64 | | | +--ro unknown-messages-received? yang:counter64
| | +--ro packets | | +--ro packets
| | | +--ro sent? yang:counter64 | | | +--ro sent? yang:counter64
| | | +--ro received? yang:counter64 | | | +--ro received? yang:counter64
| | +--ro errors | | +--ro errors
| | +--ro authenticate? yang:counter64 | | +--ro authenticate? yang:counter64
| | +--ro checksum? yang:counter64 | | +--ro checksum? yang:counter64
| | +--ro packet-length? yang:counter64 | | +--ro packet-length? yang:counter64
| +--rw interface* [interface] | +--rw interface* [interface]
| +--rw interface if:interface-ref | +--rw interface if:interface-ref
| +--rw refresh-reduction | +--rw refresh-reduction
| | +--rw enabled? boolean | | +--rw enabled? boolean
| +--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
| +--ro statistics | +--ro statistics
| +--ro messages | +--ro messages
| | +--ro ack-sent? yang:counter64 | | +--ro ack-sent?
| | +--ro ack-received? yang:counter64 | | | yang:counter64
| | +--ro bundle-sent? yang:counter64 | | +--ro ack-received?
| | +--ro bundle-received? yang:counter64 | | | yang:counter64
| | +--ro hello-sent? yang:counter64 | | +--ro bundle-sent?
| | +--ro hello-received? yang:counter64 | | | yang:counter64
| | +--ro integrity-challenge-sent? yang:counter64 | | +--ro bundle-received?
| | +--ro integrity-challenge-received? yang:counter64 | | | yang:counter64
| | +--ro integrity-response-sent? yang:counter64 | | +--ro hello-sent?
| | +--ro integrity-response-received? yang:counter64 | | | yang:counter64
| | +--ro notify-sent? yang:counter64 | | +--ro hello-received?
| | +--ro notify-received? yang:counter64 | | | yang:counter64
| | +--ro path-sent? yang:counter64 | | +--ro integrity-challenge-sent?
| | +--ro path-received? yang:counter64 | | | yang:counter64
| | +--ro path-err-sent? yang:counter64 | | +--ro integrity-challenge-received?
| | +--ro path-err-received? yang:counter64 | | | yang:counter64
| | +--ro path-tear-sent? yang:counter64 | | +--ro integrity-response-sent?
| | +--ro path-tear-received? yang:counter64 | | | yang:counter64
| | +--ro resv-sent? yang:counter64 | | +--ro integrity-response-received?
| | +--ro resv-received? yang:counter64 | | | yang:counter64
| | +--ro resv-confirm-sent? yang:counter64 | | +--ro notify-sent?
| | +--ro resv-confirm-received? yang:counter64 | | | yang:counter64
| | +--ro resv-err-sent? yang:counter64 | | +--ro notify-received?
| | +--ro resv-err-received? yang:counter64 | | | yang:counter64
| | +--ro resv-tear-sent? yang:counter64 | | +--ro path-sent?
| | +--ro resv-tear-received? yang:counter64 | | | yang:counter64
| | +--ro summary-refresh-sent? yang:counter64 | | +--ro path-received?
| | +--ro summary-refresh-received? yang:counter64 | | | yang:counter64
| | +--ro unknown-messages-received? yang:counter64 | | +--ro path-err-sent?
| +--ro packets | | | yang:counter64
| | +--ro sent? yang:counter64 | | +--ro path-err-received?
| | +--ro received? yang:counter64 | | | yang:counter64
| +--ro errors | | +--ro path-tear-sent?
| +--ro authenticate? yang:counter64 | | | yang:counter64
| +--ro checksum? yang:counter64 | | +--ro path-tear-received?
| +--ro packet-length? yang:counter64 | | | yang:counter64
+--rw neighbors | | +--ro resv-sent?
+--rw neighbor* [address] | | | yang:counter64
+--rw address inet:ip-address | | +--ro resv-received?
+--rw epoch? uint32 | | | yang:counter64
+--rw expiry-time? uint32 | | +--ro resv-confirm-sent?
+--rw graceful-restart | | | yang:counter64
| +--rw enabled? boolean | | +--ro resv-confirm-received?
| +--rw local-restart-time? uint32 | | | yang:counter64
| +--rw local-recovery-time? uint32 | | +--ro resv-err-sent?
| +--rw neighbor-restart-time? uint32 | | | yang:counter64
| +--rw neighbor-recovery-time? uint32 | | +--ro resv-err-received?
| +--rw helper-mode | | | yang:counter64
| +--rw enabled? boolean | | +--ro resv-tear-sent?
| +--rw max-helper-restart-time? uint32 | | | yang:counter64
| +--rw max-helper-recovery-time? uint32 | | +--ro resv-tear-received?
| +--rw neighbor-restart-time-remaining? uint32 | | | yang:counter64
| +--rw neighbor-recovery-time-remaining? uint32 | | +--ro summary-refresh-sent?
+--rw hello-status? enumeration | | | yang:counter64
+--rw interface? if:interface-ref | | +--ro summary-refresh-received?
+--rw neighbor-state? enumeration | | | yang:counter64
+--rw refresh-reduction-capable? boolean | | +--ro unknown-messages-received?
+--rw restart-count? yang:counter32 | | yang:counter64
+--rw restart-time? yang:date-and-time | +--ro packets
| | +--ro sent? yang:counter64
| | +--ro received? yang:counter64
| +--ro errors
| +--ro authenticate? yang:counter64
| +--ro checksum? yang:counter64
| +--ro packet-length? yang:counter64
+--rw neighbors
+--rw neighbor* [address]
+--rw address inet:ip-address
+--rw epoch? uint32
+--rw expiry-time? uint32
+--rw graceful-restart
| +--rw enabled? boolean
| +--rw local-restart-time? uint32
| +--rw local-recovery-time? uint32
| +--rw neighbor-restart-time? uint32
| +--rw neighbor-recovery-time? uint32
| +--rw helper-mode
| +--rw enabled? boolean
| +--rw max-helper-restart-time? uint32
| +--rw max-helper-recovery-time? uint32
| +--rw neighbor-restart-time-remaining? uint32
| +--rw neighbor-recovery-time-remaining? uint32
+--rw hello-status? enumeration
+--rw interface? if:interface-ref
+--rw neighbor-status? enumeration
+--rw refresh-reduction-capable? boolean
+--rw restart-count? yang:counter32
+--rw restart-time? yang:date-and-time
rpcs: rpcs:
+---x clear-session +---x clear-session
| +---w input | +---w input
| +---w routing-protocol-instance-name leafref | +---w routing-protocol-instance-name leafref
| +---w (filter-type) | +---w (filter-type)
| +--:(match-all) | +--:(match-all)
| | +---w all empty | | +---w all empty
| +--:(match-one) | +--:(match-one)
| +---w session-info | +---w session-info
| +---w (session-type) | +---w (session-type)
| +--:(rsvp-session-ip) | +--:(rsvp-session-ip)
| +---w destination leafref | +---w destination leafref
| +---w protocol-id uint8 | +---w protocol-id uint8
| +---w destination-port inet:ip-address | +---w destination-port inet:ip-address
+---x clear-neighbor +---x clear-neighbor
| +---w input | +---w input
| +---w routing-protocol-instance-name leafref | +---w routing-protocol-instance-name leafref
| +---w (filter-type) | +---w (filter-type)
| +--:(match-all) | +--:(match-all)
| | +---w all empty | | +---w all empty
| +--:(match-one) | +--:(match-one)
| +---w neighbor-address leafref | +---w neighbor-address leafref
+---x clear-authentication +---x clear-authentication
+---w input +---w input
+---w routing-protocol-instance-name leafref +---w routing-protocol-instance-name leafref
+---w (filter-type) +---w (filter-type)
+--:(match-all) +--:(match-all)
| +---w all empty | +---w all empty
+--:(match-one-interface) +--:(match-one-interface)
+---w interface? if:interface-ref +---w interface? if:interface-ref
Figure 3: RSVP model tree diagram Figure 3: RSVP model tree diagram
2.4.2. YANG Module 2.4.2. YANG Module
The ietf-rsvp module imports from the following modules: The ietf-rsvp module imports from the following modules:
o ietf-interfaces defined in [RFC8343] o ietf-interfaces defined in [RFC8343]
o ietf-yang-types and ietf-inet-types defined in [RFC6991] o ietf-yang-types and ietf-inet-types defined in [RFC6991]
skipping to change at page 12, line 8 skipping to change at page 12, line 36
o ietf-yang-types and ietf-inet-types defined in [RFC6991] o ietf-yang-types and ietf-inet-types defined in [RFC6991]
o ietf-routing defined in [RFC8349] o ietf-routing defined in [RFC8349]
o ietf-key-chain defined in [RFC8177] o ietf-key-chain defined in [RFC8177]
<CODE BEGINS> file "ietf-rsvp@2020-01-13.yang" <CODE BEGINS> file "ietf-rsvp@2020-01-13.yang"
module ietf-rsvp { module ietf-rsvp {
yang-version 1.1; 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"; 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"; reference
"RFC6991: Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix yang;
reference "RFC6991: Common YANG Data Types"; reference
"RFC6991: Common YANG Data Types";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix rt;
reference reference
"RFC8349: A YANG Data Model for Routing Management "RFC8349: A YANG Data Model for Routing Management
(NMDA Version)"; (NMDA Version)";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix key-chain;
reference "RFC8177: YANG Data Model for Key Chains"; 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>
Editor: Vishnu Pavan Beeram Editor: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net> <mailto:vbeeram@juniper.net>
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@juniper.net> <mailto:tsaad@juniper.net>
skipping to change at page 13, line 13 skipping to change at page 13, line 41
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@juniper.net> <mailto:tsaad@juniper.net>
Editor: Rakesh Gandhi Editor: Rakesh Gandhi
<mailto:rgandhi@cisco.com> <mailto:rgandhi@cisco.com>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto: xufeng.liu.ietf@gmail.com> <mailto: xufeng.liu.ietf@gmail.com>
Editor: Igor Bryskin Editor: Igor Bryskin
<mailto:Igor.Bryskin@huawei.com> <mailto:i_bryskin@yahoo.com>";
Editor: Himanshu Shah
<mailto:hshah@ciena.com>";
description description
"This module contains the RSVP YANG data model. "This module contains the RSVP YANG data model.
The model fully conforms to the Network Management Datastore The model fully conforms to the Network Management Datastore
Architecture (NMDA). Architecture (NMDA).
Copyright (c) 2019 IETF Trust and the persons Copyright (c) 2019 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
skipping to change at page 13, line 37 skipping to change at page 14, line 13
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note. // note.
// RFC Ed.: update the date below with the date of RFC publication // RFC Ed.: update the date below with the date of RFC publication
// and remove this note. // and remove this note.
revision "2020-01-13" { revision 2020-01-13 {
description description
"A YANG Data Model for Resource Reservation Protocol"; "A YANG Data Model for Resource Reservation Protocol";
reference reference
"RFCXXXX: A YANG Data Model for Resource Reservation Protocol "RFCXXXX: A YANG Data Model for Resource Reservation Protocol
(RSVP)"; (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";
} }
identity rsvp-session-ip { identity rsvp-session-ip {
base rsvp-session-type; base rsvp-session-type;
description "RSVP IP session type"; description
"RSVP IP session type";
} }
identity reservation-style { identity reservation-style {
description "Base identity for reservation style"; description
"Base identity for reservation style";
} }
identity reservation-wildcard-filter { identity reservation-wildcard-filter {
base reservation-style; base reservation-style;
description "Wildcard-Filter (WF) Style"; description
reference "RFC2205"; "Wildcard-Filter (WF) Style";
reference
"RFC2205";
} }
identity reservation-fixed-filter { identity reservation-fixed-filter {
base reservation-style; base reservation-style;
description "Fixed-Filter (FF) Style"; description
reference "RFC2205"; "Fixed-Filter (FF) Style";
reference
"RFC2205";
} }
identity reservation-shared-explicit { identity reservation-shared-explicit {
base reservation-style; base reservation-style;
description "Shared Explicit (SE) Style"; description
reference "RFC2205"; "Shared Explicit (SE) Style";
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.
skipping to change at page 16, line 4 skipping to change at page 16, line 37
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";
reference reference
"RFC 2747: RSVP Cryptographic Authentication"; "RFC 2747: RSVP Cryptographic Authentication";
} }
leaf crypto-algorithm { leaf crypto-algorithm {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
mandatory true; mandatory true;
description description
"Cryptographic algorithm associated with key."; "Cryptographic algorithm associated with key.";
} }
} }
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
skipping to change at page 16, line 52 skipping to change at page 17, line 35
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 {
description description
"Top level grouping for RSVP session properties"; "Top level grouping for RSVP session properties";
leaf destination-port { leaf destination-port {
type inet:port-number; type inet:port-number;
description "RSVP destination port"; description
reference "RFC2205"; "RSVP destination port";
reference
"RFC2205";
} }
leaf protocol-id { leaf protocol-id {
type uint8; type uint8;
description "The IP protocol ID."; description
reference "RFC2205, section 3.2"; "The IP protocol ID.";
reference
"RFC2205, section 3.2";
} }
leaf source { leaf source {
type inet:ip-address; type inet:ip-address;
description "RSVP source address"; description
reference "RFC2205"; "RSVP source address";
reference
"RFC2205";
} }
leaf destination { leaf destination {
type inet:ip-address; type inet:ip-address;
description "RSVP destination address"; description
reference "RFC2205"; "RSVP destination address";
reference
"RFC2205";
} }
leaf session-name { leaf session-name {
type string; type string;
description description
"The signaled name of this RSVP session."; "The signaled name of this RSVP session.";
} }
leaf session-state { leaf session-status {
type enumeration { type enumeration {
enum "up" { enum up {
description description
"RSVP session is up"; "RSVP session is up";
} }
enum "down" { enum down {
description description
"RSVP session is down"; "RSVP session is down";
} }
} }
description description
"Enumeration of RSVP session states"; "Enumeration of RSVP session states";
} }
leaf session-type { leaf session-type {
type identityref { type identityref {
base rsvp-session-type; base rsvp-session-type;
} }
description "RSVP session type"; description
"RSVP session type";
} }
container psbs { container psbs {
description "Path State Block container"; description
"Path State Block container";
list psb { list psb {
description "List of path state blocks"; description
"List of path state blocks";
leaf source-port { leaf source-port {
type inet:port-number; type inet:port-number;
description "RSVP source port"; description
reference "RFC2205"; "RSVP source port";
reference
"RFC2205";
} }
leaf expires-in { leaf expires-in {
type uint32; type uint32;
units seconds; units "seconds";
description "Time to reservation expiry (in seconds)"; description
"Time to reservation expiry (in seconds)";
} }
} }
} }
container rsbs { container rsbs {
description "Reservation State Block container"; description
"Reservation State Block container";
list rsb { list rsb {
description "List of reservation state blocks"; description
"List of reservation state blocks";
leaf source-port { leaf source-port {
type inet:port-number; type inet:port-number;
description "RSVP source port"; description
reference "RFC2205"; "RSVP source port";
reference
"RFC2205";
} }
leaf reservation-style { leaf reservation-style {
type identityref { type identityref {
base reservation-style; base reservation-style;
} }
description "RSVP reservation style"; description
"RSVP reservation style";
} }
leaf expires-in { leaf expires-in {
type uint32; type uint32;
units seconds; units "seconds";
description "Time to reservation expiry (in seconds)"; description
"Time to reservation expiry (in seconds)";
} }
} }
} }
} }
grouping neighbor-attributes { grouping neighbor-attributes {
description description
"Top level grouping for RSVP neighbor properties"; "Top level grouping for RSVP neighbor properties";
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;
units seconds; units "seconds";
description description
"Neighbor expiry time after which the neighbor state "Neighbor expiry time after which the neighbor state
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 neighbor."; "'true' if graceful restart is enabled for the 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 {
type uint32; type uint32;
units seconds; units "seconds";
description description
"Local node recover time"; "Local node recover time";
} }
leaf neighbor-restart-time { leaf neighbor-restart-time {
type uint32; type uint32;
units seconds; units "seconds";
description description
"Neighbor restart time"; "Neighbor restart time";
} }
leaf neighbor-recovery-time { leaf neighbor-recovery-time {
type uint32; type uint32;
units seconds; units "seconds";
description description
"Neighbor recover time"; "Neighbor recover time";
} }
container helper-mode { container helper-mode {
description description
"Helper mode information "; "Helper mode information ";
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if helper mode is enabled."; "'true' if helper mode is enabled.";
} }
leaf max-helper-restart-time { leaf max-helper-restart-time {
type uint32; type uint32;
units seconds; units "seconds";
description description
"The time the router or switch waits after it "The time the router or switch waits after it
discovers that a neighboring router has gone down discovers that a neighboring router has gone down
before it declares the neighbor down"; before it declares the neighbor down";
} }
leaf max-helper-recovery-time { leaf max-helper-recovery-time {
type uint32; type uint32;
units seconds; units "seconds";
description description
"The amount of time the router retains the state of its "The amount of time the router retains the state of its
RSVP neighbors while they undergo a graceful restart"; RSVP neighbors while they undergo a graceful restart";
} }
leaf neighbor-restart-time-remaining { leaf neighbor-restart-time-remaining {
type uint32; type uint32;
units seconds; units "seconds";
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 }
} // graceful-restart // helper-mode
}
// graceful-restart
leaf hello-status { leaf hello-status {
type enumeration { type enumeration {
enum "enabled" { enum enabled {
description description
"Enabled"; "Enabled";
} }
enum "disabled" { enum disabled {
description description
"Disabled"; "Disabled";
} }
enum "restarting" { enum restarting {
description description
"Restarting"; "Restarting";
} }
} }
description description
"Hello status"; "Hello status";
} }
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"Interface where RSVP neighbor was detected"; "Interface where RSVP neighbor was detected";
} }
leaf neighbor-status {
leaf neighbor-state {
type enumeration { type enumeration {
enum "up" { enum up {
description description
"up"; "up";
} }
enum "down" { enum down {
description description
"down"; "down";
} }
enum "hello-disable" { enum hello-disable {
description description
"hello-disable"; "hello-disable";
} }
enum "restarting" { enum restarting {
description description
"restarting"; "restarting";
} }
} }
description description
"Neighbor state"; "Neighbor state";
} }
leaf refresh-reduction-capable { leaf refresh-reduction-capable {
type boolean; type boolean;
description description
"enables all RSVP refresh reduction message "enables all RSVP refresh reduction message
bundling, RSVP message ID, reliable message delivery bundling, RSVP message ID, reliable message delivery
and summary refresh"; and summary refresh";
reference reference
"RFC 2961 RSVP Refresh Overhead Reduction "RFC 2961 RSVP Refresh Overhead Reduction
Extensions"; Extensions";
} }
skipping to change at page 22, line 25 skipping to change at page 23, line 12
leaf refresh-reduction-capable { leaf refresh-reduction-capable {
type boolean; type boolean;
description description
"enables all RSVP refresh reduction message "enables all RSVP refresh reduction message
bundling, RSVP message ID, reliable message delivery bundling, RSVP message ID, reliable message delivery
and summary refresh"; and summary refresh";
reference reference
"RFC 2961 RSVP Refresh Overhead Reduction "RFC 2961 RSVP Refresh Overhead Reduction
Extensions"; Extensions";
} }
leaf restart-count { leaf restart-count {
type yang:counter32; type yang:counter32;
description description
"Number of times this neighbor restart"; "Number of times this neighbor restart";
} }
leaf restart-time { leaf restart-time {
type yang:date-and-time; type yang:date-and-time;
description description
"Last restart time of the neighbor"; "Last restart time of the neighbor";
} }
} }
grouping packets-state { grouping packet-statistics {
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 22, line 50 skipping to change at page 23, line 35
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";
} }
leaf received { leaf received {
type yang:counter64; type yang:counter64;
description description
"Packet received count"; "Packet received count";
} }
} }
} }
grouping protocol-state { grouping message-statistics {
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 9 skipping to change at page 25, line 28
leaf path-received { leaf path-received {
type yang:counter64; type yang:counter64;
description description
"Path received count"; "Path received count";
} }
leaf path-err-sent { leaf path-err-sent {
type yang:counter64; type yang:counter64;
description description
"Path error sent count"; "Path error sent count";
} }
leaf path-err-received { leaf path-err-received {
type yang:counter64; type yang:counter64;
description description
"Path error received count"; "Path error received count";
} }
leaf path-tear-sent { leaf path-tear-sent {
type yang:counter64; type yang:counter64;
description description
"Path tear sent count"; "Path tear sent count";
} }
leaf path-tear-received { leaf path-tear-received {
type yang:counter64; type yang:counter64;
description description
"Path tear received count"; "Path tear received count";
} }
leaf resv-sent { leaf resv-sent {
type yang:counter64; type yang:counter64;
description description
"Resv sent count"; "Resv sent count";
} }
leaf resv-received { leaf resv-received {
type yang:counter64; type yang:counter64;
description description
"Resv received count"; "Resv received count";
}
}
leaf resv-confirm-sent { leaf resv-confirm-sent {
type yang:counter64; type yang:counter64;
description description
"Confirm sent count"; "Confirm sent count";
} }
leaf resv-confirm-received { leaf resv-confirm-received {
type yang:counter64; type yang:counter64;
description description
"Confirm received count"; "Confirm received count";
} }
leaf resv-err-sent { leaf resv-err-sent {
type yang:counter64; type yang:counter64;
description description
"Resv error sent count"; "Resv error sent count";
} }
skipping to change at page 26, line 9 skipping to change at page 26, line 21
leaf resv-confirm-received { leaf resv-confirm-received {
type yang:counter64; type yang:counter64;
description description
"Confirm received count"; "Confirm received count";
} }
leaf resv-err-sent { leaf resv-err-sent {
type yang:counter64; type yang:counter64;
description description
"Resv error sent count"; "Resv error sent count";
} }
leaf resv-err-received { leaf resv-err-received {
type yang:counter64; type yang:counter64;
description description
"Resv error received count"; "Resv error received count";
} }
leaf resv-tear-sent { leaf resv-tear-sent {
type yang:counter64; type yang:counter64;
description description
"Resv tear sent count"; "Resv tear sent count";
} }
leaf resv-tear-received { leaf resv-tear-received {
type yang:counter64; type yang:counter64;
description description
"Resv tear received count"; "Resv tear received count";
} }
leaf summary-refresh-sent { leaf summary-refresh-sent {
type yang:counter64; type yang:counter64;
description description
"Summary refresh sent count"; "Summary refresh sent count";
} }
leaf summary-refresh-received { leaf summary-refresh-received {
type yang:counter64; type yang:counter64;
description description
"Summary refresh received count"; "Summary refresh received count";
} }
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-statistics {
grouping errors-state {
description description
"Error statistics state grouping"; "Error statistics grouping";
container errors { container errors {
description description
"Error statistics state container"; "Error statistics 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
"The total number of packets received with an invalid "The total number of packets received with an invalid
checksum value."; checksum value.";
} }
leaf packet-length { leaf packet-length {
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 {
description "RSVP statistic attributes."; description
"RSVP statistic attributes.";
container statistics { container statistics {
config false; config false;
description description
"statistics state container"; "RSVP statistics container";
uses protocol-state; uses message-statistics;
uses packets-state; uses packet-statistics;
uses errors-state; uses errors-statistics;
} }
} }
grouping neighbor-derived-state {
description
"Derived state at neighbor level.";
}
grouping global-attributes { grouping global-attributes {
description description
"Top level grouping for RSVP global properties"; "Top level grouping for RSVP global properties";
container sessions { container sessions {
description description
"RSVP sessions container"; "RSVP sessions container";
list session-ip { list session-ip {
key "destination protocol-id destination-port"; key "destination protocol-id destination-port";
config false; config false;
description description
"List of RSVP sessions"; "List of RSVP sessions";
uses session-attributes;
uses session-attributes-state;
} }
} }
uses statistics-state; uses statistics;
} }
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;
} }
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
"RSVP protocol augmentation"; "RSVP protocol augmentation";
container rsvp { container rsvp {
presence "Enable RSVP feature"; presence "Enable RSVP feature";
description "RSVP feature container"; description
"RSVP feature container";
container globals { container globals {
description "RSVP global properties."; description
"RSVP global properties.";
uses global-attributes; uses global-attributes;
uses graceful-restart; uses graceful-restart;
} }
container interfaces { container interfaces {
description description
"RSVP interfaces container"; "RSVP interfaces container";
uses intf-attributes; uses intf-attributes;
list interface { list interface {
key "interface"; key "interface";
description description
"RSVP interfaces."; "RSVP interfaces.";
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"RSVP interface."; "RSVP interface.";
} }
uses intf-attributes; uses intf-attributes;
skipping to change at page 29, line 14 skipping to change at page 29, line 10
description description
"RSVP interfaces."; "RSVP interfaces.";
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"RSVP interface."; "RSVP interface.";
} }
uses intf-attributes; uses intf-attributes;
} }
} }
container neighbors { container neighbors {
description "RSVP neighbors container"; description
"RSVP neighbors container";
list neighbor { list neighbor {
key "address"; key "address";
description "List of RSVP neighbors"; description
"List of RSVP neighbors";
uses neighbor-attributes; uses neighbor-attributes;
} }
} }
} }
} }
grouping session-ref { grouping session-ref {
description "Session reference information"; description
"Session reference information";
leaf destination { leaf destination {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols" + path "/rt:routing/rt:control-plane-protocols"
"/rt:control-plane-protocol/rsvp:rsvp/rsvp:globals" + + "/rt:control-plane-protocol/rsvp:rsvp/rsvp:globals"
"/rsvp:sessions/rsvp:session-ip/destination"; + "/rsvp:sessions/rsvp:session-ip/destination";
} }
mandatory true; mandatory true;
description "RSVP session"; description
"RSVP session";
} }
leaf protocol-id { leaf protocol-id {
type uint8; type uint8;
mandatory true; mandatory true;
description "The RSVP session protocol ID"; description
"The RSVP session protocol ID";
} }
leaf destination-port { leaf destination-port {
type inet:ip-address; type inet:ip-address;
mandatory true; mandatory true;
description "The RSVP session destination port"; description
"The RSVP session destination port";
} }
} }
rpc clear-session { rpc clear-session {
description "Clears RSVP sessions RPC"; description
"Clears RSVP sessions RPC";
input { input {
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory "true"; mandatory true;
description description
"Name of the RSVP protocol instance whose session "Name of the RSVP protocol instance whose session
is being cleared. is being cleared.
If the corresponding RSVP instance doesn't exist, If the corresponding RSVP instance doesn't exist,
then the operation will fail with an error-tag of then the operation will fail with an error-tag of
'data-missing' and an error-app-tag of 'data-missing' and an error-app-tag of
'routing-protocol-instance-not-found'."; 'routing-protocol-instance-not-found'.";
} }
choice filter-type { choice filter-type {
mandatory true; mandatory true;
description "Filter choice"; description
"Filter choice";
case match-all { case match-all {
leaf all { leaf all {
type empty; type empty;
mandatory true; mandatory true;
description "Match all RSVP sessions"; description
"Match all RSVP sessions";
} }
} }
case match-one { case match-one {
container session-info { container session-info {
description description
"Specifies the specific session to invoke operation on"; "Specifies the specific session to invoke operation on";
choice session-type { choice session-type {
mandatory true; mandatory true;
description "RSVP session type"; description
"RSVP session type";
case rsvp-session-ip { case rsvp-session-ip {
uses session-ref; uses session-ref;
} }
} }
} }
} }
} }
} }
} }
rpc clear-neighbor { rpc clear-neighbor {
description description
"RPC to clear the RSVP Hello session to a neighbor"; "RPC to clear the RSVP Hello session to a neighbor";
input { input {
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory "true"; mandatory true;
description description
"Name of the RSVP protocol instance whose session "Name of the RSVP protocol instance whose session
is being cleared. is being cleared.
If the corresponding RSVP instance doesn't exist, If the corresponding RSVP instance doesn't exist,
then the operation will fail with an error-tag of then the operation will fail with an error-tag of
'data-missing' and an error-app-tag of 'data-missing' and an error-app-tag of
'routing-protocol-instance-not-found'."; 'routing-protocol-instance-not-found'.";
} }
choice filter-type { choice filter-type {
mandatory true; mandatory true;
description "Filter choice"; description
"Filter choice";
case match-all { case match-all {
leaf all { leaf all {
type empty; type empty;
mandatory true; mandatory true;
description "Match all RSVP neighbor sessions"; description
"Match all RSVP neighbor sessions";
} }
} }
case match-one { case match-one {
leaf neighbor-address { leaf neighbor-address {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols" + path "/rt:routing/rt:control-plane-protocols"
"/rt:control-plane-protocol/rsvp:rsvp" + + "/rt:control-plane-protocol/rsvp:rsvp"
"/rsvp:neighbors/rsvp:neighbor/address"; + "/rsvp:neighbors/rsvp:neighbor/address";
} }
mandatory true; mandatory true;
description "Match specific RSVP neighbor session"; description
"Match specific RSVP neighbor session";
} }
} }
} }
} }
} }
rpc clear-authentication { rpc clear-authentication {
description description
"Clears RSVP Security Association (SA) before the "Clears RSVP Security Association (SA) before the
lifetime expires."; lifetime expires.";
input { input {
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type leafref { type leafref {
path "/rt:routing/rt:control-plane-protocols/" path "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol/rt:name"; + "rt:control-plane-protocol/rt:name";
} }
mandatory "true"; mandatory true;
description description
"Name of the RSVP protocol instance whose session "Name of the RSVP protocol instance whose session
is being cleared. is being cleared.
If the corresponding RSVP instance doesn't exist, If the corresponding RSVP instance doesn't exist,
then the operation will fail with an error-tag of then the operation will fail with an error-tag of
'data-missing' and an error-app-tag of 'data-missing' and an error-app-tag of
'routing-protocol-instance-not-found'."; 'routing-protocol-instance-not-found'.";
} }
choice filter-type { choice filter-type {
mandatory true; mandatory true;
description "Filter choice"; description
"Filter choice";
case match-all { case match-all {
leaf all { leaf all {
type empty; type empty;
mandatory true; mandatory true;
description "Match all RSVP security associations"; description
"Match all RSVP security associations";
} }
} }
case match-one-interface { case match-one-interface {
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
description description
"Interface where RSVP security association(s) to be "Interface where RSVP security association(s) to be
detected"; detected";
} }
} }
skipping to change at page 35, line 5 skipping to change at page 35, line 23
o ietf-yang-types and ietf-inet-types defined in [RFC6991] o ietf-yang-types and ietf-inet-types defined in [RFC6991]
o ietf-key-chain defined in [RFC8177] o ietf-key-chain defined in [RFC8177]
Figure 5 shows the RSVP extended YANG module: Figure 5 shows the RSVP extended YANG module:
<CODE BEGINS> file "ietf-rsvp-extended@2019-07-04.yang" <CODE BEGINS> file "ietf-rsvp-extended@2019-07-04.yang"
module ietf-rsvp-extended { module ietf-rsvp-extended {
yang-version 1.1; 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 reference
"RFCXXXX: A YANG Data Model for Resource Reservation Protocol "RFCXXXX: A YANG Data Model for Resource Reservation Protocol
(RSVP)"; (RSVP)";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix rt;
reference reference
"RFC8349: A YANG Data Model for Routing Management "RFC8349: A YANG Data Model for Routing Management
(NMDA Version)"; (NMDA Version)";
} }
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix yang;
reference "RFC6991: Common YANG Data Types"; 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"; 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>
Editor: Vishnu Pavan Beeram Editor: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net> <mailto:vbeeram@juniper.net>
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@juniper.net> <mailto:tsaad@juniper.net>
skipping to change at page 35, line 49 skipping to change at page 36, line 15
Editor: Vishnu Pavan Beeram Editor: Vishnu Pavan Beeram
<mailto:vbeeram@juniper.net> <mailto:vbeeram@juniper.net>
Editor: Tarek Saad Editor: Tarek Saad
<mailto:tsaad@juniper.net> <mailto:tsaad@juniper.net>
Editor: Rakesh Gandhi Editor: Rakesh Gandhi
<mailto:rgandhi@cisco.com> <mailto:rgandhi@cisco.com>
Editor: Himanshu Shah
<mailto:hshah@ciena.com>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto:Xufeng_Liu@jabil.com> <mailto: xufeng.liu.ietf@gmail.com>
Editor: Xia Chen
<mailto:jescia.chenxia@huawei.com>
Editor: Raqib Jones
<mailto:raqib@Brocade.com>
Editor: Bin Wen
<mailto:Bin_Wen@cable.comcast.com>";
Editor: Igor Bryskin
<mailto:i_bryskin@yahoo.com>";
description description
"This module contains the Extended RSVP YANG data model. "This module contains the Extended RSVP YANG data model.
The model fully conforms to the Network Management Datastore The model fully conforms to the Network Management Datastore
Architecture (NMDA). Architecture (NMDA).
Copyright (c) 2019 IETF Trust and the persons Copyright (c) 2019 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
skipping to change at page 36, line 36 skipping to change at page 36, line 39
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note. // note.
// RFC Ed.: update the date below with the date of RFC publication // RFC Ed.: update the date below with the date of RFC publication
// and remove this note. // and remove this note.
revision "2019-07-04" { revision 2019-07-04 {
description description
"A YANG Data Model for Extended Resource Reservation "A YANG Data Model for Extended Resource Reservation
Protocol"; Protocol";
reference reference
"RFCXXXX: A YANG Data Model for Resource Reservation Protocol "RFCXXXX: A YANG Data Model for Resource Reservation Protocol
(RSVP)"; (RSVP)";
} }
/* RSVP features */ /* RSVP features */
feature authentication { feature authentication {
skipping to change at page 38, line 4 skipping to change at page 38, line 7
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
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";
} }
description description
"Window-size to limit number of out-of-order "Window-size to limit number of out-of-order
messages."; messages.";
reference reference
"RFC 2747: RSVP Cryptographic "RFC 2747: RSVP Cryptographic
skipping to change at page 39, line 23 skipping to change at page 39, line 26
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;
units milliseconds; units "milliseconds";
description description
"Configure interval between successive Hello "Configure interval between successive Hello
messages in milliseconds."; messages in milliseconds.";
reference reference
"RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels. "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels.
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 hello-misses { leaf hello-misses {
skipping to change at page 40, line 31 skipping to change at page 40, line 32
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;
description description
"Set max number of consecutive missed "Set max number of consecutive missed
messages for state expiry"; messages for state expiry";
} }
leaf checksum { leaf checksum {
type boolean; type boolean;
description description
"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
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 packets-extended-state { grouping packets-extended-statistics {
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 out-dropped { leaf out-dropped {
type yang:counter64; type yang:counter64;
description description
"Out packet drop count"; "Out packet drop count";
} }
leaf in-dropped { leaf in-dropped {
type yang:counter64; type yang:counter64;
description description
"In packet drop count"; "In packet drop count";
} }
leaf out-errors { leaf out-errors {
type yang:counter64; type yang:counter64;
description description
"Out packet errors count"; "Out packet errors count";
} }
leaf in-errors { leaf in-errors {
type yang:counter64; type yang:counter64;
description description
"In packet rx errors count"; "In packet rx errors count";
} }
} }
grouping protocol-extended-state { grouping messages-extended-statistics {
description "RSVP protocol statistics."; description
"RSVP protocol statistics.";
} }
grouping errors-extended-state { grouping errors-extended-statistics {
description description
"Error statistics."; "Error statistics.";
} }
grouping extended-state {
description "RSVP statistic attributes.";
uses packets-extended-state;
uses protocol-extended-state;
uses errors-extended-state;
}
/** /**
* RSVP extensions augmentations * RSVP extensions augmentations
*/ */
/* RSVP globals graceful restart*/ /* RSVP globals graceful restart*/
augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + augment "/rt:routing/rt:control-plane-protocols/"
"rsvp:graceful-restart" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "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/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + augment "/rt:routing/rt:control-plane-protocols/"
"rsvp:statistics/rsvp:packets" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "rsvp:statistics/rsvp:packets" {
description description
"RSVP packet stats extensions"; "RSVP packet stats extensions";
uses packets-extended-state; uses packets-extended-statistics;
} }
augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + augment "/rt:routing/rt:control-plane-protocols/"
"rsvp:statistics/rsvp:messages" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "rsvp:statistics/rsvp:messages" {
description description
"RSVP protocol message stats extensions"; "RSVP protocol message stats extensions";
uses protocol-extended-state; uses messages-extended-statistics;
} }
augment "/rt:routing/rt:control-plane-protocols/" +
"rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/" + augment "/rt:routing/rt:control-plane-protocols/"
"rsvp:statistics/rsvp:errors" { + "rt:control-plane-protocol/rsvp:rsvp/rsvp:globals/"
+ "rsvp:statistics/rsvp:errors" {
description description
"RSVP errors stats extensions"; "RSVP errors stats extensions";
uses errors-extended-state; uses errors-extended-statistics;
} }
/** /**
* 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
3. IANA Considerations 3. IANA Considerations
skipping to change at page 50, line 10 skipping to change at page 50, line 10
[RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications [RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications
for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641, for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641,
September 2019, <https://www.rfc-editor.org/info/rfc8641>. September 2019, <https://www.rfc-editor.org/info/rfc8641>.
7.2. Informative References 7.2. Informative References
[I-D.ietf-teas-yang-rsvp-te] [I-D.ietf-teas-yang-rsvp-te]
Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I.,
and H. Shah, "A YANG Data Model for RSVP-TE Protocol", and H. Shah, "A YANG Data Model for RSVP-TE Protocol",
draft-ietf-teas-yang-rsvp-te-07 (work in progress), July draft-ietf-teas-yang-rsvp-te-08 (work in progress), March
2019. 2020.
Authors' Addresses Authors' Addresses
Vishnu Pavan Beeram Vishnu Pavan Beeram
Juniper Networks Juniper Networks
Email: vbeeram@juniper.net Email: vbeeram@juniper.net
Tarek Saad Tarek Saad
Juniper Networks Juniper Networks
Email: tsaad@juniper.net Email: tsaad@juniper.net
Rakesh Gandhi Rakesh Gandhi
Cisco Systems, Inc. Cisco Systems, Inc.
Email: rgandhi@cisco.com Email: rgandhi@cisco.com
Xufeng Liu Xufeng Liu
Jabil Volta Networks
Email: Xufeng_Liu@jabil.com Email: xufeng.liu.ietf@gmail.com
Igor Bryskin Igor Bryskin
Huawei Technologies Individual
Email: Igor.Bryskin@huawei.com Email: i_bryskin@yahoo.com
 End of changes. 223 change blocks. 
510 lines changed or deleted 524 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/