draft-ietf-teas-yang-rsvp-te-07.txt   draft-ietf-teas-yang-rsvp-te-08.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: January 8, 2020 R. Gandhi Expires: September 10, 2020 R. Gandhi
Cisco Systems, Inc. Cisco Systems, Inc.
X. Liu X. Liu
Volta Networks Volta Networks
I. Bryskin I. Bryskin
Huawei Technologies Huawei Technologies
H. Shah H. Shah
Ciena Ciena
July 07, 2019 March 09, 2020
A YANG Data Model for RSVP-TE Protocol A YANG Data Model for RSVP-TE Protocol
draft-ietf-teas-yang-rsvp-te-07 draft-ietf-teas-yang-rsvp-te-08
Abstract Abstract
This document defines a YANG data model for the configuration and This document defines a YANG data model for the configuration and
management of RSVP (Resource Reservation Protocol) to establish management of RSVP (Resource Reservation Protocol) to establish
Traffic-Engineered (TE) Label-Switched Paths (LSPs) for MPLS (Multi- Traffic-Engineered (TE) Label-Switched Paths (LSPs) for MPLS (Multi-
Protocol Label Switching) and other technologies. Protocol Label Switching) and other technologies.
The model defines a generic RSVP-TE module for signaling LSPs that The model defines a generic RSVP-TE module for signaling LSPs that
are technology agnostic. The generic RSVP-TE module is to be are technology agnostic. The generic RSVP-TE module is to be
skipping to change at page 2, line 4 skipping to change at page 2, line 4
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 January 8, 2020. This Internet-Draft will expire on September 10, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 33 skipping to change at page 2, line 33
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3 1.2. Prefixes in Data Node Names . . . . . . . . . . . . . . . 3
2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 4 2. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Module Relationship . . . . . . . . . . . . . . . . . . . 4 2.1. Module Relationship . . . . . . . . . . . . . . . . . . . 4
2.2. Model Tree Diagrams . . . . . . . . . . . . . . . . . . . 5 2.2. Model Tree Diagrams . . . . . . . . . . . . . . . . . . . 5
2.2.1. RSVP-TE Model Tree Diagram . . . . . . . . . . . . . 5 2.2.1. RSVP-TE Model Tree Diagram . . . . . . . . . . . . . 5
2.2.2. RSVP-TE MPLS Model Tree Diagram . . . . . . . . . . . 14 2.2.2. RSVP-TE MPLS Model Tree Diagram . . . . . . . . . . . 14
2.3. YANG Modules . . . . . . . . . . . . . . . . . . . . . . 16 2.3. YANG Modules . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1. RSVP-TE YANG Module . . . . . . . . . . . . . . . . . 16 2.3.1. RSVP-TE YANG Module . . . . . . . . . . . . . . . . . 16
2.3.2. RSVP-TE MPLS YANG Module . . . . . . . . . . . . . . 29 2.3.2. RSVP-TE MPLS YANG Module . . . . . . . . . . . . . . 30
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42
4. Security Considerations . . . . . . . . . . . . . . . . . . . 42 4. Security Considerations . . . . . . . . . . . . . . . . . . . 43
5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 43 5. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 43
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 43 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 43
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1. Normative References . . . . . . . . . . . . . . . . . . 44 7.1. Normative References . . . . . . . . . . . . . . . . . . 44
7.2. Informative References . . . . . . . . . . . . . . . . . 45 7.2. Informative References . . . . . . . . . . . . . . . . . 46
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46
1. Introduction 1. Introduction
YANG [RFC7950] is a data modeling language that was introduced to YANG [RFC7950] is a data modeling 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 has proved devices to be managed using NETCONF [RFC6241]. YANG has proved
relevant beyond its initial confines, as bindings to other interfaces relevant beyond its initial confines, as bindings to other interfaces
(e.g. RESTCONF [RFC8040]) and encoding other than XML (e.g. JSON) (e.g. RESTCONF [RFC8040]) and encoding other than XML (e.g. JSON)
are being defined. Furthermore, YANG data models can be used as the are being defined. Furthermore, YANG data models can be used as the
skipping to change at page 5, line 41 skipping to change at page 5, line 41
2.2. Model Tree Diagrams 2.2. Model Tree Diagrams
A full tree diagram of the module(s) defined in this document as per A full tree diagram of the module(s) defined in this document as per
the syntax defined in [RFC8340] are given in subsequent sections. the syntax defined in [RFC8340] are given in subsequent sections.
2.2.1. RSVP-TE Model Tree Diagram 2.2.1. RSVP-TE Model Tree Diagram
Figure 2 shows the YANG tree diagram of the RSVP-TE generic YANG Figure 2 shows the YANG tree diagram of the RSVP-TE generic YANG
model defined in module ietf-rsvp-te.yang. model defined in module ietf-rsvp-te.yang.
module: ietf-rsvp-te module: ietf-rsvp-te
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:
+--rw global-soft-preemption! +--rw global-soft-preemption!
+--rw soft-preemption-timeout? uint16 +--rw soft-preemption-timeout? uint16
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:
+--rw rsvp-te-interface-attributes +--rw rsvp-te-interface-attributes
+--ro state +--ro state
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:
+--rw rsvp-te-interface-attributes +--rw rsvp-te-interface-attributes
+--ro state +--ro 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:sessions/rsvp:session/rsvp:state/rsvp:psbs/rsvp:psb: /rsvp:sessions:
+--ro tspec-average-rate? rt-types:bandwidth-ieee-float32 +--ro session-te* [tunnel-endpoint tunnel-id extended-tunnel-id]
+--ro tspec-size? rt-types:bandwidth-ieee-float32 +--ro tunnel-endpoint inet:ip-address
+--ro tspec-peak-rate? rt-types:bandwidth-ieee-float32 +--ro tunnel-id uint16
+--ro min-policed-unit? uint32 +--ro extended-tunnel-id inet:ip-address
+--ro max-packet-size? uint32 +--ro destination-port? inet:port-number
augment /rt:routing/rt:control-plane-protocols +--ro protocol-id? uint8
/rt:control-plane-protocol/rsvp:rsvp/rsvp:globals +--ro source? inet:ip-address
/rsvp:sessions/rsvp:session/rsvp:state/rsvp:rsbs/rsvp:rsb: +--ro destination? inet:ip-address
+--ro fspec-average-rate? rt-types:bandwidth-ieee-float32 +--ro session-name? string
+--ro fspec-size? rt-types:bandwidth-ieee-float32 +--ro session-state? enumeration
+--ro fspec-peak-rate? rt-types:bandwidth-ieee-float32 +--ro session-type? identityref
+--ro min-policed-unit? uint32 +--ro psbs
+--ro max-packet-size? uint32 | +--ro psb* []
augment /rt:routing/rt:control-plane-protocols | +--ro source-port? inet:port-number
/rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors: | +--ro expires-in? uint32
augment /te:te/te:tunnels/te:tunnel: | +--ro tspec-average-rate? rt-types:bandwidth-ieee-float32
+--rw lsp-signaled-name? string | +--ro tspec-size? rt-types:bandwidth-ieee-float32
+--rw session-attribute* identityref | +--ro tspec-peak-rate? rt-types:bandwidth-ieee-float32
+--rw lsp-attribute* identityref | +--ro min-policed-unit? uint32
+--rw retry-timer? uint16 | +--ro max-packet-size? uint32
augment /te:te/te:lsps-state/te:lsp: +--ro rsbs
+--ro associated-rsvp-session? leafref +--ro rsb* []
+--ro lsp-signaled-name? string +--ro source-port? inet:port-number
+--ro session-attribute* identityref +--ro reservation-style? identityref
+--ro lsp-attribute* identityref +--ro expires-in? uint32
+--ro explicit-route-objects +--ro fspec-average-rate? rt-types:bandwidth-ieee-float32
| +--ro incoming-explicit-route-hop* [index] +--ro fspec-size? rt-types:bandwidth-ieee-float32
| | +--ro index uint32 +--ro fspec-peak-rate? rt-types:bandwidth-ieee-float32
| | +--ro (type)? +--ro min-policed-unit? uint32
| | +--:(numbered-node-hop) +--ro max-packet-size? uint32
| | | +--ro numbered-node-hop augment /rt:routing/rt:control-plane-protocols
| | | +--ro node-id te-node-id /rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors:
| | | +--ro hop-type? te-hop-type augment /te:te/te:tunnels/te:tunnel:
| | +--:(numbered-link-hop) +--rw lsp-signaled-name? string
| | | +--ro numbered-link-hop +--rw session-attribute* identityref
| | | +--ro link-tp-id te-tp-id +--rw lsp-attribute* identityref
| | | +--ro hop-type? te-hop-type +--rw retry-timer? uint16
| | | +--ro direction? te-link-direction augment /te:te/te:lsps-state/te:lsp:
| | +--:(unnumbered-link-hop) +--ro associated-rsvp-session? leafref
| | | +--ro unnumbered-link-hop +--ro lsp-signaled-name? string
| | | +--ro link-tp-id te-tp-id +--ro session-attribute* identityref
| | | +--ro node-id te-node-id +--ro lsp-attribute* identityref
| | | +--ro hop-type? te-hop-type +--ro explicit-route-objects
| | | +--ro direction? te-link-direction | +--ro incoming-explicit-route-hop* [index]
| | +--:(as-number) | | +--ro index uint32
| | | +--ro as-number-hop | | +--ro (type)?
| | | +--ro as-number inet:as-number | | +--:(numbered-node-hop)
| | | +--ro hop-type? te-hop-type | | | +--ro numbered-node-hop
| | +--:(label) | | | +--ro node-id te-node-id
| | +--ro label-hop | | | +--ro hop-type? te-hop-type
| | +--ro te-label | | +--:(numbered-link-hop)
| | +--ro (technology)? | | | +--ro numbered-link-hop
| | | +--:(generic) | | | +--ro link-tp-id te-tp-id
| | | +--ro generic? rt-types:generalized-label | | | +--ro hop-type? te-hop-type
| | +--ro direction? te-label-direction | | | +--ro direction? te-link-direction
| +--ro outgoing-explicit-route-hop* [index] | | +--:(unnumbered-link-hop)
| +--ro index uint32 | | | +--ro unnumbered-link-hop
| +--ro (type)? | | | +--ro link-tp-id te-tp-id
| +--:(numbered-node-hop) | | | +--ro node-id te-node-id
| | +--ro numbered-node-hop | | | +--ro hop-type? te-hop-type
| | +--ro node-id te-node-id | | | +--ro direction? te-link-direction
| | +--ro hop-type? te-hop-type | | +--:(as-number)
| +--:(numbered-link-hop) | | | +--ro as-number-hop
| | +--ro numbered-link-hop | | | +--ro as-number inet:as-number
| | +--ro link-tp-id te-tp-id | | | +--ro hop-type? te-hop-type
| | +--ro hop-type? te-hop-type | | +--:(label)
| | +--ro direction? te-link-direction | | +--ro label-hop
| +--:(unnumbered-link-hop) | | +--ro te-label
| | +--ro unnumbered-link-hop | | +--ro (technology)?
| | +--ro link-tp-id te-tp-id | | | +--:(generic)
| | +--ro node-id te-node-id | | | +--ro generic? rt-types:generalized-label
| | +--ro hop-type? te-hop-type | | +--ro direction? te-label-direction
| | +--ro direction? te-link-direction | +--ro outgoing-explicit-route-hop* [index]
| +--:(as-number) | +--ro index uint32
| | +--ro as-number-hop | +--ro (type)?
| | +--ro as-number inet:as-number | +--:(numbered-node-hop)
| | +--ro hop-type? te-hop-type | | +--ro numbered-node-hop
| +--:(label) | | +--ro node-id te-node-id
| +--ro label-hop | | +--ro hop-type? te-hop-type
| +--ro te-label | +--:(numbered-link-hop)
| +--ro (technology)? | | +--ro numbered-link-hop
| | +--:(generic) | | +--ro link-tp-id te-tp-id
| | +--ro generic? rt-types:generalized-label | | +--ro hop-type? te-hop-type
| +--ro direction? te-label-direction | | +--ro direction? te-link-direction
+--ro incoming-record-route-subobjects | +--:(unnumbered-link-hop)
| +--ro incoming-record-route-subobject* [index] | | +--ro unnumbered-link-hop
| +--ro index uint32 | | +--ro link-tp-id te-tp-id
| +--ro (type)? | | +--ro node-id te-node-id
| +--:(numbered-node-hop) | | +--ro hop-type? te-hop-type
| | +--ro numbered-node-hop | | +--ro direction? te-link-direction
| | +--ro node-id te-node-id | +--:(as-number)
| | +--ro flags* path-attribute-flags | | +--ro as-number-hop
| +--:(numbered-link-hop) | | +--ro as-number inet:as-number
| | +--ro numbered-link-hop | | +--ro hop-type? te-hop-type
| | +--ro link-tp-id te-tp-id | +--:(label)
| | +--ro flags* path-attribute-flags | +--ro label-hop
| +--:(unnumbered-link-hop) | +--ro te-label
| | +--ro unnumbered-link-hop | +--ro (technology)?
| | +--ro link-tp-id te-tp-id | | +--:(generic)
| | +--ro node-id? te-node-id | | +--ro generic? rt-types:generalized-label
| | +--ro flags* path-attribute-flags | +--ro direction? te-label-direction
| +--:(label) +--ro incoming-record-route-subobjects
| +--ro label-hop | +--ro incoming-record-route-subobject* [index]
| +--ro te-label | +--ro index uint32
| | +--ro (technology)? | +--ro (type)?
| | | +--:(generic) | +--:(numbered-node-hop)
| | | +--ro generic? rt-types:generalized-label | | +--ro numbered-node-hop
| | +--ro direction? te-label-direction | | +--ro node-id te-node-id
| +--ro flags* path-attribute-flags | | +--ro flags* path-attribute-flags
+--ro outgoing-record-route-subobjects | +--:(numbered-link-hop)
+--ro outgoing-record-route-subobject* [index] | | +--ro numbered-link-hop
+--ro index uint32 | | +--ro link-tp-id te-tp-id
+--ro (type)? | | +--ro flags* path-attribute-flags
+--:(numbered-node-hop) | +--:(unnumbered-link-hop)
| +--ro numbered-node-hop | | +--ro unnumbered-link-hop
| +--ro node-id te-node-id | | +--ro link-tp-id te-tp-id
| +--ro flags* path-attribute-flags | | +--ro node-id? te-node-id
+--:(numbered-link-hop) | | +--ro flags* path-attribute-flags
| +--ro numbered-link-hop | +--:(label)
| +--ro link-tp-id te-tp-id | +--ro label-hop
| +--ro flags* path-attribute-flags | +--ro te-label
+--:(unnumbered-link-hop) | | +--ro (technology)?
| +--ro unnumbered-link-hop | | | +--:(generic)
| +--ro link-tp-id te-tp-id | | | +--ro generic? rt-types:generalized-label
| +--ro node-id? te-node-id | | +--ro direction? te-label-direction
| +--ro flags* path-attribute-flags | +--ro flags* path-attribute-flags
+--:(label) +--ro outgoing-record-route-subobjects
+--ro label-hop +--ro outgoing-record-route-subobject* [index]
+--ro te-label +--ro index uint32
| +--ro (technology)? +--ro (type)?
| | +--:(generic) +--:(numbered-node-hop)
| | +--ro generic? rt-types:generalized-label | +--ro numbered-node-hop
| +--ro direction? te-label-direction | +--ro node-id te-node-id
+--ro flags* path-attribute-flags | +--ro flags* path-attribute-flags
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths +--:(numbered-link-hop)
/te:p2p-primary-path/te:lsps/te:lsp: | +--ro numbered-link-hop
+--ro associated-rsvp-session? leafref | +--ro link-tp-id te-tp-id
+--ro lsp-signaled-name? string | +--ro flags* path-attribute-flags
+--ro session-attribute* identityref +--:(unnumbered-link-hop)
+--ro lsp-attribute* identityref | +--ro unnumbered-link-hop
+--ro explicit-route-objects | +--ro link-tp-id te-tp-id
| +--ro incoming-explicit-route-hop* [index] | +--ro node-id? te-node-id
| | +--ro index uint32 | +--ro flags* path-attribute-flags
| | +--ro (type)? +--:(label)
| | +--:(numbered-node-hop) +--ro label-hop
| | | +--ro numbered-node-hop +--ro te-label
| | | +--ro node-id te-node-id | +--ro (technology)?
| | | +--ro hop-type? te-hop-type | | +--:(generic)
| | +--:(numbered-link-hop) | | +--ro generic? rt-types:generalized-label
| | | +--ro numbered-link-hop | +--ro direction? te-label-direction
| | | +--ro link-tp-id te-tp-id +--ro flags* path-attribute-flags
| | | +--ro hop-type? te-hop-type augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path
| | | +--ro direction? te-link-direction /te:lsps/te:lsp:
| | +--:(unnumbered-link-hop) +--ro associated-rsvp-session? leafref
| | | +--ro unnumbered-link-hop +--ro lsp-signaled-name? string
| | | +--ro link-tp-id te-tp-id +--ro session-attribute* identityref
| | | +--ro node-id te-node-id +--ro lsp-attribute* identityref
| | | +--ro hop-type? te-hop-type +--ro explicit-route-objects
| | | +--ro direction? te-link-direction | +--ro incoming-explicit-route-hop* [index]
| | +--:(as-number) | | +--ro index uint32
| | | +--ro as-number-hop | | +--ro (type)?
| | | +--ro as-number inet:as-number | | +--:(numbered-node-hop)
| | | +--ro hop-type? te-hop-type | | | +--ro numbered-node-hop
| | +--:(label) | | | +--ro node-id te-node-id
| | +--ro label-hop | | | +--ro hop-type? te-hop-type
| | +--ro te-label | | +--:(numbered-link-hop)
| | +--ro (technology)? | | | +--ro numbered-link-hop
| | | +--:(generic) | | | +--ro link-tp-id te-tp-id
| | | +--ro generic? rt-types:generalized-label | | | +--ro hop-type? te-hop-type
| | +--ro direction? te-label-direction | | | +--ro direction? te-link-direction
| +--ro outgoing-explicit-route-hop* [index] | | +--:(unnumbered-link-hop)
| +--ro index uint32 | | | +--ro unnumbered-link-hop
| +--ro (type)? | | | +--ro link-tp-id te-tp-id
| +--:(numbered-node-hop) | | | +--ro node-id te-node-id
| | +--ro numbered-node-hop | | | +--ro hop-type? te-hop-type
| | +--ro node-id te-node-id | | | +--ro direction? te-link-direction
| | +--ro hop-type? te-hop-type | | +--:(as-number)
| +--:(numbered-link-hop) | | | +--ro as-number-hop
| | +--ro numbered-link-hop | | | +--ro as-number inet:as-number
| | +--ro link-tp-id te-tp-id | | | +--ro hop-type? te-hop-type
| | +--ro hop-type? te-hop-type | | +--:(label)
| | +--ro direction? te-link-direction | | +--ro label-hop
| +--:(unnumbered-link-hop) | | +--ro te-label
| | +--ro unnumbered-link-hop | | +--ro (technology)?
| | +--ro link-tp-id te-tp-id | | | +--:(generic)
| | +--ro node-id te-node-id | | | +--ro generic? rt-types:generalized-label
| | +--ro hop-type? te-hop-type | | +--ro direction? te-label-direction
| | +--ro direction? te-link-direction | +--ro outgoing-explicit-route-hop* [index]
| +--:(as-number) | +--ro index uint32
| | +--ro as-number-hop | +--ro (type)?
| | +--ro as-number inet:as-number | +--:(numbered-node-hop)
| | +--ro hop-type? te-hop-type | | +--ro numbered-node-hop
| +--:(label) | | +--ro node-id te-node-id
| +--ro label-hop | | +--ro hop-type? te-hop-type
| +--ro te-label | +--:(numbered-link-hop)
| +--ro (technology)? | | +--ro numbered-link-hop
| | +--:(generic) | | +--ro link-tp-id te-tp-id
| | +--ro generic? rt-types:generalized-label | | +--ro hop-type? te-hop-type
| +--ro direction? te-label-direction | | +--ro direction? te-link-direction
+--ro incoming-record-route-subobjects | +--:(unnumbered-link-hop)
| +--ro incoming-record-route-subobject* [index] | | +--ro unnumbered-link-hop
| +--ro index uint32 | | +--ro link-tp-id te-tp-id
| +--ro (type)? | | +--ro node-id te-node-id
| +--:(numbered-node-hop) | | +--ro hop-type? te-hop-type
| | +--ro numbered-node-hop | | +--ro direction? te-link-direction
| | +--ro node-id te-node-id | +--:(as-number)
| | +--ro flags* path-attribute-flags | | +--ro as-number-hop
| +--:(numbered-link-hop) | | +--ro as-number inet:as-number
| | +--ro numbered-link-hop | | +--ro hop-type? te-hop-type
| | +--ro link-tp-id te-tp-id | +--:(label)
| | +--ro flags* path-attribute-flags | +--ro label-hop
| +--:(unnumbered-link-hop) | +--ro te-label
| | +--ro unnumbered-link-hop | +--ro (technology)?
| | +--ro link-tp-id te-tp-id | | +--:(generic)
| | +--ro node-id? te-node-id | | +--ro generic? rt-types:generalized-label
| | +--ro flags* path-attribute-flags | +--ro direction? te-label-direction
| +--:(label) +--ro incoming-record-route-subobjects
| +--ro label-hop | +--ro incoming-record-route-subobject* [index]
| +--ro te-label | +--ro index uint32
| | +--ro (technology)? | +--ro (type)?
| | | +--:(generic) | +--:(numbered-node-hop)
| | | +--ro generic? rt-types:generalized-label | | +--ro numbered-node-hop
| | +--ro direction? te-label-direction | | +--ro node-id te-node-id
| +--ro flags* path-attribute-flags | | +--ro flags* path-attribute-flags
+--ro outgoing-record-route-subobjects | +--:(numbered-link-hop)
+--ro outgoing-record-route-subobject* [index] | | +--ro numbered-link-hop
+--ro index uint32 | | +--ro link-tp-id te-tp-id
+--ro (type)? | | +--ro flags* path-attribute-flags
+--:(numbered-node-hop) | +--:(unnumbered-link-hop)
| +--ro numbered-node-hop | | +--ro unnumbered-link-hop
| +--ro node-id te-node-id | | +--ro link-tp-id te-tp-id
| +--ro flags* path-attribute-flags | | +--ro node-id? te-node-id
+--:(numbered-link-hop) | | +--ro flags* path-attribute-flags
| +--ro numbered-link-hop | +--:(label)
| +--ro link-tp-id te-tp-id | +--ro label-hop
| +--ro flags* path-attribute-flags | +--ro te-label
+--:(unnumbered-link-hop) | | +--ro (technology)?
| +--ro unnumbered-link-hop | | | +--:(generic)
| +--ro link-tp-id te-tp-id | | | +--ro generic? rt-types:generalized-label
| +--ro node-id? te-node-id | | +--ro direction? te-label-direction
| +--ro flags* path-attribute-flags | +--ro flags* path-attribute-flags
+--:(label) +--ro outgoing-record-route-subobjects
+--ro label-hop +--ro outgoing-record-route-subobject* [index]
+--ro te-label +--ro index uint32
| +--ro (technology)? +--ro (type)?
| | +--:(generic) +--:(numbered-node-hop)
| | +--ro generic? rt-types:generalized-label | +--ro numbered-node-hop
| +--ro direction? te-label-direction | +--ro node-id te-node-id
+--ro flags* path-attribute-flags | +--ro flags* path-attribute-flags
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths +--:(numbered-link-hop)
/te:p2p-primary-path/te:lsp-provisioning-error-infos | +--ro numbered-link-hop
/te:lsp-provisioning-error-info: | +--ro link-tp-id te-tp-id
+--ro rsvp-message-type? identityref | +--ro flags* path-attribute-flags
+--ro rsvp-error-code? uint8 +--:(unnumbered-link-hop)
+--ro rsvp-error-subcode? uint16 | +--ro unnumbered-link-hop
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths | +--ro link-tp-id te-tp-id
/te:p2p-primary-path/te:lsps/te:lsp | +--ro node-id? te-node-id
/te:lsp-provisioning-error-infos | +--ro flags* path-attribute-flags
/te:lsp-provisioning-error-info: +--:(label)
+--ro rsvp-message-type? identityref +--ro label-hop
+--ro rsvp-error-code? uint8 +--ro te-label
+--ro rsvp-error-subcode? uint16 | +--ro (technology)?
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths | | +--:(generic)
/te:p2p-secondary-path/te:lsps/te:lsp: | | +--ro generic? rt-types:generalized-label
+--ro associated-rsvp-session? leafref | +--ro direction? te-label-direction
+--ro lsp-signaled-name? string +--ro flags* path-attribute-flags
+--ro session-attribute* identityref augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path
+--ro lsp-attribute* identityref /te:lsp-provisioning-error-infos
+--ro explicit-route-objects /te:lsp-provisioning-error-info:
| +--ro incoming-explicit-route-hop* [index] +--ro rsvp-message-type? identityref
| | +--ro index uint32 +--ro rsvp-error-code? uint8
| | +--ro (type)? +--ro rsvp-error-subcode? uint16
| | +--:(numbered-node-hop) augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path
| | | +--ro numbered-node-hop /te:lsps/te:lsp/te:lsp-provisioning-error-infos
| | | +--ro node-id te-node-id /te:lsp-provisioning-error-info:
| | | +--ro hop-type? te-hop-type +--ro rsvp-message-type? identityref
| | +--:(numbered-link-hop) +--ro rsvp-error-code? uint8
| | | +--ro numbered-link-hop +--ro rsvp-error-subcode? uint16
| | | +--ro link-tp-id te-tp-id augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
| | | +--ro hop-type? te-hop-type /te:secondary-path/te:lsps/te:lsp:
| | | +--ro direction? te-link-direction +--ro associated-rsvp-session? leafref
| | +--:(unnumbered-link-hop) +--ro lsp-signaled-name? string
| | | +--ro unnumbered-link-hop +--ro session-attribute* identityref
| | | +--ro link-tp-id te-tp-id +--ro lsp-attribute* identityref
| | | +--ro node-id te-node-id +--ro explicit-route-objects
| | | +--ro hop-type? te-hop-type | +--ro incoming-explicit-route-hop* [index]
| | | +--ro direction? te-link-direction | | +--ro index uint32
| | +--:(as-number) | | +--ro (type)?
| | | +--ro as-number-hop | | +--:(numbered-node-hop)
| | | +--ro as-number inet:as-number | | | +--ro numbered-node-hop
| | | +--ro hop-type? te-hop-type | | | +--ro node-id te-node-id
| | +--:(label) | | | +--ro hop-type? te-hop-type
| | +--ro label-hop | | +--:(numbered-link-hop)
| | +--ro te-label | | | +--ro numbered-link-hop
| | +--ro (technology)? | | | +--ro link-tp-id te-tp-id
| | | +--:(generic) | | | +--ro hop-type? te-hop-type
| | | +--ro generic? rt-types:generalized-label | | | +--ro direction? te-link-direction
| | +--ro direction? te-label-direction | | +--:(unnumbered-link-hop)
| +--ro outgoing-explicit-route-hop* [index] | | | +--ro unnumbered-link-hop
| +--ro index uint32 | | | +--ro link-tp-id te-tp-id
| +--ro (type)? | | | +--ro node-id te-node-id
| +--:(numbered-node-hop) | | | +--ro hop-type? te-hop-type
| | +--ro numbered-node-hop | | | +--ro direction? te-link-direction
| | +--ro node-id te-node-id | | +--:(as-number)
| | +--ro hop-type? te-hop-type | | | +--ro as-number-hop
| +--:(numbered-link-hop) | | | +--ro as-number inet:as-number
| | +--ro numbered-link-hop | | | +--ro hop-type? te-hop-type
| | +--ro link-tp-id te-tp-id | | +--:(label)
| | +--ro hop-type? te-hop-type | | +--ro label-hop
| | +--ro direction? te-link-direction | | +--ro te-label
| +--:(unnumbered-link-hop) | | +--ro (technology)?
| | +--ro unnumbered-link-hop | | | +--:(generic)
| | +--ro link-tp-id te-tp-id | | | +--ro generic? rt-types:generalized-label
| | +--ro node-id te-node-id | | +--ro direction? te-label-direction
| | +--ro hop-type? te-hop-type | +--ro outgoing-explicit-route-hop* [index]
| | +--ro direction? te-link-direction | +--ro index uint32
| +--:(as-number) | +--ro (type)?
| | +--ro as-number-hop | +--:(numbered-node-hop)
| | +--ro as-number inet:as-number | | +--ro numbered-node-hop
| | +--ro hop-type? te-hop-type | | +--ro node-id te-node-id
| +--:(label) | | +--ro hop-type? te-hop-type
| +--ro label-hop | +--:(numbered-link-hop)
| +--ro te-label | | +--ro numbered-link-hop
| +--ro (technology)? | | +--ro link-tp-id te-tp-id
| | +--:(generic) | | +--ro hop-type? te-hop-type
| | +--ro generic? rt-types:generalized-label | | +--ro direction? te-link-direction
| +--ro direction? te-label-direction | +--:(unnumbered-link-hop)
+--ro incoming-record-route-subobjects | | +--ro unnumbered-link-hop
| +--ro incoming-record-route-subobject* [index] | | +--ro link-tp-id te-tp-id
| +--ro index uint32 | | +--ro node-id te-node-id
| +--ro (type)? | | +--ro hop-type? te-hop-type
| +--:(numbered-node-hop) | | +--ro direction? te-link-direction
| | +--ro numbered-node-hop | +--:(as-number)
| | +--ro node-id te-node-id | | +--ro as-number-hop
| | +--ro flags* path-attribute-flags | | +--ro as-number inet:as-number
| +--:(numbered-link-hop) | | +--ro hop-type? te-hop-type
| | +--ro numbered-link-hop | +--:(label)
| | +--ro link-tp-id te-tp-id | +--ro label-hop
| | +--ro flags* path-attribute-flags | +--ro te-label
| +--:(unnumbered-link-hop) | +--ro (technology)?
| | +--ro unnumbered-link-hop | | +--:(generic)
| | +--ro link-tp-id te-tp-id | | +--ro generic? rt-types:generalized-label
| | +--ro node-id? te-node-id | +--ro direction? te-label-direction
| | +--ro flags* path-attribute-flags +--ro incoming-record-route-subobjects
| +--:(label) | +--ro incoming-record-route-subobject* [index]
| +--ro label-hop | +--ro index uint32
| +--ro te-label | +--ro (type)?
| | +--ro (technology)? | +--:(numbered-node-hop)
| | | +--:(generic) | | +--ro numbered-node-hop
| | | +--ro generic? rt-types:generalized-label | | +--ro node-id te-node-id
| | +--ro direction? te-label-direction | | +--ro flags* path-attribute-flags
| +--ro flags* path-attribute-flags | +--:(numbered-link-hop)
+--ro outgoing-record-route-subobjects | | +--ro numbered-link-hop
+--ro outgoing-record-route-subobject* [index] | | +--ro link-tp-id te-tp-id
+--ro index uint32 | | +--ro flags* path-attribute-flags
+--ro (type)? | +--:(unnumbered-link-hop)
+--:(numbered-node-hop) | | +--ro unnumbered-link-hop
| +--ro numbered-node-hop | | +--ro link-tp-id te-tp-id
| +--ro node-id te-node-id | | +--ro node-id? te-node-id
| +--ro flags* path-attribute-flags | | +--ro flags* path-attribute-flags
+--:(numbered-link-hop) | +--:(label)
| +--ro numbered-link-hop | +--ro label-hop
| +--ro link-tp-id te-tp-id | +--ro te-label
| +--ro flags* path-attribute-flags | | +--ro (technology)?
+--:(unnumbered-link-hop) | | | +--:(generic)
| +--ro unnumbered-link-hop | | | +--ro generic? rt-types:generalized-label
| +--ro link-tp-id te-tp-id | | +--ro direction? te-label-direction
| +--ro node-id? te-node-id | +--ro flags* path-attribute-flags
| +--ro flags* path-attribute-flags +--ro outgoing-record-route-subobjects
+--:(label) +--ro outgoing-record-route-subobject* [index]
+--ro label-hop +--ro index uint32
+--ro te-label +--ro (type)?
| +--ro (technology)? +--:(numbered-node-hop)
| | +--:(generic) | +--ro numbered-node-hop
| | +--ro generic? rt-types:generalized-label | +--ro node-id te-node-id
| +--ro direction? te-label-direction | +--ro flags* path-attribute-flags
+--ro flags* path-attribute-flags +--:(numbered-link-hop)
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths | +--ro numbered-link-hop
/te:p2p-secondary-path/te:lsp-provisioning-error-infos | +--ro link-tp-id te-tp-id
/te:lsp-provisioning-error-info: | +--ro flags* path-attribute-flags
+--ro rsvp-message-type? identityref +--:(unnumbered-link-hop)
+--ro rsvp-error-code? uint8 | +--ro unnumbered-link-hop
+--ro rsvp-error-subcode? uint16 | +--ro link-tp-id te-tp-id
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths | +--ro node-id? te-node-id
/te:p2p-secondary-path/te:lsps/te:lsp | +--ro flags* path-attribute-flags
/te:lsp-provisioning-error-infos +--:(label)
/te:lsp-provisioning-error-info: +--ro label-hop
+--ro rsvp-message-type? identityref +--ro te-label
+--ro rsvp-error-code? uint8 | +--ro (technology)?
+--ro rsvp-error-subcode? uint16 | | +--:(generic)
augment /te:te/te-dev:interfaces/te-dev:interface: | | +--ro generic? rt-types:generalized-label
| +--ro direction? te-label-direction
+--ro flags* path-attribute-flags
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:lsp-provisioning-error-infos
/te:lsp-provisioning-error-info:
+--ro rsvp-message-type? identityref
+--ro rsvp-error-code? uint8
+--ro rsvp-error-subcode? uint16
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:lsps/te:lsp
/te:lsp-provisioning-error-infos
/te:lsp-provisioning-error-info:
+--ro rsvp-message-type? identityref
+--ro rsvp-error-code? uint8
+--ro rsvp-error-subcode? uint16
augment /te:te/te-dev:interfaces/te-dev:interface:
Figure 2: RSVP-TE model Tree diagram Figure 2: RSVP-TE model Tree diagram
2.2.2. RSVP-TE MPLS Model Tree Diagram 2.2.2. RSVP-TE MPLS Model Tree Diagram
Figure 5 shows the YANG tree diagram of the RSVP-TE MPLS YANG model Figure 5 shows the YANG tree diagram of the RSVP-TE MPLS YANG model
defined in module ietf-rsvp-te-mpls.yang and that augments RSVP-TE defined in module ietf-rsvp-te-mpls.yang and that augments RSVP-TE
module as well as RSVP and TE YANG modules. module as well as RSVP and TE YANG modules.
module: ietf-rsvp-te-mpls module: ietf-rsvp-te-mpls
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/rsvp:rsvp: /rt:control-plane-protocol/rsvp:rsvp:
+--rw fast-reroute-local-revertive +--rw fast-reroute-local-revertive
+--rw rsvp-frr-local-revert-delay? uint32 +--rw rsvp-frr-local-revert-delay? uint32
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:
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:
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:sessions/rsvp:session/rsvp:state: /rsvp:sessions:
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors: /rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors:
augment /te:te/te:tunnels/te:tunnel: augment /te:te/te:tunnels/te:tunnel:
+--rw session-attribute* identityref +--rw session-attribute* identityref
augment /te:te/te:lsps-state/te:lsp: augment /te:te/te:lsps-state/te:lsp:
+--ro session-attribute* identityref +--ro session-attribute* identityref
+--ro backup-info +--ro backup-info
+--ro backup-tunnel-name? string +--ro backup-tunnel-name? string
+--ro backup-frr-on? uint8 +--ro backup-frr-on? uint8
+--ro backup-protected-lsp-num? uint32 +--ro backup-protected-lsp-num? uint32
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path
/te:p2p-primary-path/te:lsps/te:lsp: /te:lsps/te:lsp:
+--ro session-attribute* identityref +--ro session-attribute* identityref
+--ro backup-info +--ro backup-info
+--ro backup-tunnel-name? string +--ro backup-tunnel-name? string
+--ro backup-frr-on? uint8 +--ro backup-frr-on? uint8
+--ro backup-protected-lsp-num? uint32 +--ro backup-protected-lsp-num? uint32
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:p2p-secondary-path/te:lsps/te:lsp: /te:secondary-path/te:lsps/te:lsp:
+--ro session-attribute* identityref +--ro session-attribute* identityref
+--ro backup-info +--ro backup-info
+--ro backup-tunnel-name? string +--ro backup-tunnel-name? string
+--ro backup-frr-on? uint8 +--ro backup-frr-on? uint8
+--ro backup-protected-lsp-num? uint32 +--ro backup-protected-lsp-num? uint32
augment /te:te/te-dev:interfaces/te-dev:interface: augment /te:te/te-dev:interfaces/te-dev:interface:
+--rw bandwidth-mpls-reservable +--rw bandwidth-mpls-reservable
+--rw (bandwidth-value)? +--rw (bandwidth-value)?
| +--:(absolute) | +--:(absolute)
| | +--rw absolute-value? te-packet-types:bandwidth-kbps | | +--rw absolute-value? te-packet-types:bandwidth-kbps
| +--:(percentage) | +--:(percentage)
| +--rw percent-value? uint32 | +--rw percent-value? uint32
+--rw (bc-model-type)? +--rw (bc-model-type)?
+--:(bc-model-rdm) +--:(bc-model-rdm)
| +--rw bc-model-rdm | +--rw bc-model-rdm
| +--rw bandwidth-mpls-constraints | +--rw bandwidth-mpls-constraints
| +--rw maximum-reservable? | +--rw maximum-reservable?
| | te-packet-types:bandwidth-kbps | | te-packet-types:bandwidth-kbps
| +--rw bc-value* uint32 | +--rw bc-value* uint32
+--:(bc-model-mam) +--:(bc-model-mam)
| +--rw bc-model-mam | +--rw bc-model-mam
| +--rw bandwidth-mpls-constraints | +--rw bandwidth-mpls-constraints
| +--rw maximum-reservable? | +--rw maximum-reservable?
| | te-packet-types:bandwidth-kbps | | te-packet-types:bandwidth-kbps
| +--rw bc-value* uint32 | +--rw bc-value* uint32
+--:(bc-model-mar) +--:(bc-model-mar)
+--rw bc-model-mar +--rw bc-model-mar
+--rw bandwidth-mpls-constraints +--rw bandwidth-mpls-constraints
+--rw maximum-reservable? +--rw maximum-reservable?
| te-packet-types:bandwidth-kbps | te-packet-types:bandwidth-kbps
+--rw bc-value* uint32 +--rw bc-value* uint32
augment /te:te/te-dev:interfaces/te-dev:interface: augment /te:te/te-dev:interfaces/te-dev:interface:
+--rw rsvp-te-frr-backups +--rw rsvp-te-frr-backups
+--rw (type)? +--rw (type)?
+--:(static-tunnel) +--:(static-tunnel)
| +--rw static-backups | +--rw static-backups
| +--rw static-backup* [backup-tunnel-name] | +--rw static-backup* [backup-tunnel-name]
| +--rw backup-tunnel-name | +--rw backup-tunnel-name
| -> /te:te/tunnels/tunnel/name | -> /te:te/tunnels/tunnel/name
+--:(auto-tunnel) +--:(auto-tunnel)
+--rw auto-tunnel-backups +--rw auto-tunnel-backups
+--rw auto-backup-protection? identityref +--rw auto-backup-protection? identityref
+--rw auto-backup-path-computation? identityref +--rw auto-backup-path-computation? identityref
Figure 3: RSVP-TE MPLS Tree diagram Figure 3: RSVP-TE MPLS Tree diagram
2.3. YANG Modules 2.3. YANG Modules
2.3.1. RSVP-TE YANG Module 2.3.1. RSVP-TE YANG Module
The RSVP-TE generic YANG module "ietf-rsvp-te" imports the following The RSVP-TE generic YANG module "ietf-rsvp-te" imports the following
modules: modules:
o ietf-rsvp defined in [I-D.ietf-teas-yang-rsvp] o ietf-rsvp defined in [I-D.ietf-teas-yang-rsvp]
skipping to change at page 16, line 26 skipping to change at page 16, line 43
o ietf-te-types defined in [I-D.ietf-teas-yang-te-types] o ietf-te-types defined in [I-D.ietf-teas-yang-te-types]
o ietf-te and ietf-te-dev defined in [I-D.ietf-teas-yang-te] o ietf-te and ietf-te-dev defined in [I-D.ietf-teas-yang-te]
This module references the following documents: This module references the following documents:
[I-D.ietf-teas-yang-rsvp], [RFC8349], [I-D.ietf-teas-yang-te], [I-D.ietf-teas-yang-rsvp], [RFC8349], [I-D.ietf-teas-yang-te],
[I-D.ietf-teas-yang-te-types], [RFC2210], [RFC4920], [RFC5420], [I-D.ietf-teas-yang-te-types], [RFC2210], [RFC4920], [RFC5420],
[RFC7570], [RFC4859]. [RFC7570], [RFC4859].
<CODE BEGINS> file "ietf-rsvp-te@2019-07-06.yang" <CODE BEGINS> file "ietf-rsvp-te@2020-03-09.yang"
module ietf-rsvp-te { module ietf-rsvp-te {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te";
prefix "rsvp-te"; prefix "rsvp-te";
import ietf-rsvp { import ietf-rsvp {
prefix rsvp; prefix rsvp;
reference "draft-ietf-teas-yang-rsvp: A YANG Data Model for reference "draft-ietf-teas-yang-rsvp: A YANG Data Model for
skipping to change at page 18, line 34 skipping to change at page 18, line 50
(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-06" { revision "2020-03-09" {
description "A YANG Data Model for RSVP-TE"; description "A YANG Data Model for RSVP-TE";
reference reference
"RFCXXXX: A YANG Data Model for RSVP-TE Protocol"; "RFCXXXX: A YANG Data Model for RSVP-TE Protocol";
} }
identity rsvp-message-type { identity rsvp-message-type {
description "RSVP message types"; description "RSVP message types";
} }
identity rsvp-message-path { identity rsvp-message-path {
skipping to change at page 26, line 38 skipping to change at page 27, line 5
/* To be added */ /* To be added */
} }
/** /**
* RSVP-TE generic augmentations of generic TE model. * RSVP-TE generic augmentations of generic TE model.
*/ */
/* TE tunnel augmentation */ /* TE tunnel augmentation */
augment "/te:te/te:tunnels/te:tunnel" { augment "/te:te/te:tunnels/te:tunnel" {
when "/te:te/te:tunnels/te:tunnel" + when "/te:te/te:tunnels/te:tunnel" +
"/te:p2p-primary-paths/te:p2p-primary-path" + "/te:primary-paths/te:primary-path" +
"/te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "/te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the path signaling protocol is RSVP-TE "; "When the path signaling protocol is RSVP-TE ";
} }
description description
"RSVP-TE generic data augmentation pertaining to TE tunnels"; "RSVP-TE generic data augmentation pertaining to TE tunnels";
uses lsp-properties-config; uses lsp-properties-config;
uses tunnel-properties-config; uses tunnel-properties-config;
} }
/* TE LSP augmentation */ /* TE LSP augmentation */
skipping to change at page 27, line 47 skipping to change at page 28, line 14
that details of the signaling can be retrieved."; that details of the signaling can be retrieved.";
} }
uses lsp-properties-config; uses lsp-properties-config;
uses lsp-explicit-route-information-state; uses lsp-explicit-route-information-state;
uses lsp-record-route-information-state; uses lsp-record-route-information-state;
} }
augment "/te:te/te:lsps-state/te:lsp" { augment "/te:te/te:lsps-state/te:lsp" {
when "/te:te/te:lsps-state/te:lsp" + when "/te:te/te:lsps-state/te:lsp" +
"/te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "/te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the signaling protocol is RSVP-TE "; "When the signaling protocol is RSVP-TE ";
} }
description description
"RSVP-TE generic data augmentation pertaining to specific TE "RSVP-TE generic data augmentation pertaining to specific TE
LSP"; LSP";
uses rsvp-te-lsp-properties; uses rsvp-te-lsp-properties;
} }
augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" +
"/te:p2p-primary-path/te:lsps/te:lsp" { "/te:primary-path/te:lsps/te:lsp" {
when "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + when "/te:te/te:tunnels/te:tunnel/te:primary-paths" +
"/te:p2p-primary-path/te:lsps/te:lsp" + "/te:primary-path/te:lsps/te:lsp" +
"/te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "/te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the signaling protocol is RSVP-TE "; "When the signaling protocol is RSVP-TE ";
} }
description description
"RSVP-TE generic data augmentation pertaining to specific TE "RSVP-TE generic data augmentation pertaining to specific TE
LSP"; LSP";
uses rsvp-te-lsp-properties; uses rsvp-te-lsp-properties;
} }
augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" +
"/te:p2p-primary-path" + "/te:primary-path" +
"/te:lsp-provisioning-error-infos" + "/te:lsp-provisioning-error-infos" +
"/te:lsp-provisioning-error-info" { "/te:lsp-provisioning-error-info" {
description description
"Augmentation for RSVP-TE per LSP error reason"; "Augmentation for RSVP-TE per LSP error reason";
uses rsvp-te-lsp-error-info; uses rsvp-te-lsp-error-info;
} }
augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" +
"/te:p2p-primary-path/te:lsps/te:lsp" + "/te:primary-path/te:lsps/te:lsp" +
"/te:lsp-provisioning-error-infos" + "/te:lsp-provisioning-error-infos" +
"/te:lsp-provisioning-error-info" { "/te:lsp-provisioning-error-info" {
when "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + when "/te:te/te:tunnels/te:tunnel/te:primary-paths" +
"/te:p2p-primary-path/te:lsps/te:lsp" + "/te:primary-path/te:lsps/te:lsp" +
"/te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "/te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the signaling protocol is RSVP-TE "; "When the signaling protocol is RSVP-TE ";
} }
description description
"Augmentation for RSVP-TE per path error reason"; "Augmentation for RSVP-TE per path error reason";
uses rsvp-te-lsp-error-info; uses rsvp-te-lsp-error-info;
} }
augment "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" +
"/te:p2p-secondary-path/te:lsps/te:lsp" { "/te:secondary-path/te:lsps/te:lsp" {
when "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + when "/te:te/te:tunnels/te:tunnel/te:secondary-paths" +
"/te:p2p-secondary-path/te:lsps/te:lsp" + "/te:secondary-path/te:lsps/te:lsp" +
"/te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "/te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the signaling protocol is RSVP-TE "; "When the signaling protocol is RSVP-TE ";
} }
description description
"RSVP-TE generic data augmentation pertaining to specific TE "RSVP-TE generic data augmentation pertaining to specific TE
LSP"; LSP";
uses rsvp-te-lsp-properties; uses rsvp-te-lsp-properties;
} }
augment "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" +
"/te:p2p-secondary-path" + "/te:secondary-path" +
"/te:lsp-provisioning-error-infos" + "/te:lsp-provisioning-error-infos" +
"/te:lsp-provisioning-error-info" { "/te:lsp-provisioning-error-info" {
description description
"Augmentation for RSVP-TE per path error reason"; "Augmentation for RSVP-TE per path error reason";
uses rsvp-te-lsp-error-info; uses rsvp-te-lsp-error-info;
} }
augment "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" +
"/te:p2p-secondary-path/te:lsps/te:lsp" + "/te:secondary-path/te:lsps/te:lsp" +
"/te:lsp-provisioning-error-infos" + "/te:lsp-provisioning-error-infos" +
"/te:lsp-provisioning-error-info" { "/te:lsp-provisioning-error-info" {
when "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + when "/te:te/te:tunnels/te:tunnel/te:secondary-paths" +
"/te:p2p-secondary-path/te:lsps/te:lsp" + "/te:secondary-path/te:lsps/te:lsp" +
"/te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "/te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the signaling protocol is RSVP-TE "; "When the signaling protocol is RSVP-TE ";
} }
description description
"Augmentation for RSVP-TE per LSP error reason"; "Augmentation for RSVP-TE per LSP error reason";
uses rsvp-te-lsp-error-info; uses rsvp-te-lsp-error-info;
} }
/* TE interface augmentation */ /* TE interface augmentation */
augment "/te:te/te-dev:interfaces/te-dev:interface" { augment "/te:te/te-dev:interfaces/te-dev:interface" {
skipping to change at page 30, line 4 skipping to change at page 30, line 19
Figure 4: RSVP TE generic YANG module Figure 4: RSVP TE generic YANG module
2.3.2. RSVP-TE MPLS YANG Module 2.3.2. RSVP-TE MPLS YANG Module
The RSVP-TE MPLS YANG module "ietf-rsvp-te-mpls" imports the The RSVP-TE MPLS YANG module "ietf-rsvp-te-mpls" imports the
following module(s): following module(s):
o ietf-rsvp defined in [I-D.ietf-teas-yang-rsvp] o ietf-rsvp defined in [I-D.ietf-teas-yang-rsvp]
o ietf-routing-types defined in [RFC8294] o ietf-routing-types defined in [RFC8294]
o ietf-te-mpls-types defined in [I-D.ietf-teas-yang-te-types] o ietf-te-mpls-types defined in [I-D.ietf-teas-yang-te-types]
o ietf-te and ietf-te-dev defined in [I-D.ietf-teas-yang-te] o ietf-te and ietf-te-dev defined in [I-D.ietf-teas-yang-te]
This module references the following documents: This module references the following documents:
[I-D.ietf-teas-yang-rsvp], [RFC8349], [I-D.ietf-teas-yang-te-types], [I-D.ietf-teas-yang-rsvp], [RFC8349], [I-D.ietf-teas-yang-te-types],
[I-D.ietf-teas-yang-te], [RFC3209]. [I-D.ietf-teas-yang-te], [RFC3209].
<CODE BEGINS> file "ietf-rsvp-te-mpls@2019-07-06.yang" <CODE BEGINS> file "ietf-rsvp-te-mpls@2020-03-09.yang"
module ietf-rsvp-te-mpls { module ietf-rsvp-te-mpls {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls"; namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls";
prefix "rsvp-te-mpls"; prefix "rsvp-te-mpls";
import ietf-rsvp { import ietf-rsvp {
prefix "rsvp"; prefix "rsvp";
reference "draft-ietf-teas-yang-rsvp: A YANG Data Model for reference "draft-ietf-teas-yang-rsvp: A YANG Data Model for
skipping to change at page 32, line 14 skipping to change at page 32, line 29
(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-06" { revision "2020-03-09" {
description "Update to MPLS RSVP-TE YANG initial revision."; description "Update to MPLS RSVP-TE YANG initial revision.";
reference reference
"RFCXXXX: A YANG Data Model for RSVP-TE Protocol"; "RFCXXXX: A YANG Data Model for RSVP-TE Protocol";
} }
/* RSVP-TE MPLS LSPs groupings */ /* RSVP-TE MPLS LSPs groupings */
grouping lsp-attributes-flags-mpls-config { grouping lsp-attributes-flags-mpls-config {
description description
"Configuration parameters relating to RSVP-TE MPLS LSP "Configuration parameters relating to RSVP-TE MPLS LSP
attribute flags"; attribute flags";
skipping to change at page 40, line 51 skipping to change at page 41, line 18
* Augmentation to TE generic module * Augmentation to TE generic module
*/ */
augment "/te:te/te:tunnels/te:tunnel" { augment "/te:te/te:tunnels/te:tunnel" {
description description
"Augmentations for RSVP-TE MPLS TE tunnel properties"; "Augmentations for RSVP-TE MPLS TE tunnel properties";
uses tunnel-properties-mpls-config; uses tunnel-properties-mpls-config;
} }
augment "/te:te/te:lsps-state/te:lsp" { augment "/te:te/te:lsps-state/te:lsp" {
when "/te:te/te:lsps-state/te:lsp" + when "/te:te/te:lsps-state/te:lsp" +
"/te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "/te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the signaling protocol is RSVP-TE "; "When the signaling protocol is RSVP-TE ";
} }
description description
"RSP-TE MPLS LSP state properties"; "RSP-TE MPLS LSP state properties";
uses lsp-properties-mpls; uses lsp-properties-mpls;
uses lsp-backup-info; uses lsp-backup-info;
} }
augment "/te:te/te:tunnels/te:tunnel/te:p2p-primary-paths" + augment "/te:te/te:tunnels/te:tunnel/te:primary-paths" +
"/te:p2p-primary-path/te:lsps/te:lsp" { "/te:primary-path/te:lsps/te:lsp" {
when "/te:te/te:tunnels/te:tunnel" + when "/te:te/te:tunnels/te:tunnel" +
"/te:p2p-secondary-paths/te:p2p-secondary-path/" + "/te:secondary-paths/te:secondary-path/" +
"te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the signaling protocol is RSVP-TE "; "When the signaling protocol is RSVP-TE ";
} }
description description
"RSVP-TE MPLS LSP state properties"; "RSVP-TE MPLS LSP state properties";
uses lsp-properties-mpls; uses lsp-properties-mpls;
uses lsp-backup-info; uses lsp-backup-info;
} }
augment "/te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths" + augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths" +
"/te:p2p-secondary-path/te:lsps/te:lsp" { "/te:secondary-path/te:lsps/te:lsp" {
when "/te:te/te:tunnels/te:tunnel" + when "/te:te/te:tunnels/te:tunnel" +
"/te:p2p-secondary-paths/te:p2p-secondary-path/" + "/te:secondary-paths/te:secondary-path/" +
"te:path-setup-protocol = 'te-types:path-setup-rsvp'" { "te:signaling-type = 'te-types:path-setup-rsvp'" {
description description
"When the signaling protocol is RSVP-TE "; "When the signaling protocol is RSVP-TE ";
} }
description description
"RSVP-TE MPLS LSP state properties"; "RSVP-TE MPLS LSP state properties";
uses lsp-properties-mpls; uses lsp-properties-mpls;
uses lsp-backup-info; uses lsp-backup-info;
} }
augment "/te:te/te-dev:interfaces/te-dev:interface" { augment "/te:te/te-dev:interfaces/te-dev:interface" {
skipping to change at page 44, line 4 skipping to change at page 44, line 20
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
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-teas-yang-rsvp] [I-D.ietf-teas-yang-rsvp]
Beeram, V., Saad, T., Gandhi, R., Liu, X., and I. Bryskin, Beeram, V., Saad, T., Gandhi, R., Liu, X., and I. Bryskin,
"A YANG Data Model for Resource Reservation Protocol "A YANG Data Model for Resource Reservation Protocol
(RSVP)", draft-ietf-teas-yang-rsvp-11 (work in progress), (RSVP)", draft-ietf-teas-yang-rsvp-12 (work in progress),
July 2019. January 2020.
[I-D.ietf-teas-yang-te] [I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
"A YANG Data Model for Traffic Engineering Tunnels and "A YANG Data Model for Traffic Engineering Tunnels and
Interfaces", draft-ietf-teas-yang-te-21 (work in Interfaces", draft-ietf-teas-yang-te-22 (work in
progress), April 2019. progress), November 2019.
[I-D.ietf-teas-yang-te-types] [I-D.ietf-teas-yang-te-types]
Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
"Traffic Engineering Common YANG Types", draft-ietf-teas- "Traffic Engineering Common YANG Types", draft-ietf-teas-
yang-te-types-10 (work in progress), July 2019. yang-te-types-13 (work in progress), November 2019.
[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>.
 End of changes. 37 change blocks. 
538 lines changed or deleted 557 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/