--- 1/draft-ietf-teas-yang-te-topo-09.txt 2017-07-02 14:13:10.651957760 -0700 +++ 2/draft-ietf-teas-yang-te-topo-10.txt 2017-07-02 14:13:10.871963038 -0700 @@ -4,24 +4,24 @@ Huawei Technologies Vishnu Pavan Beeram Juniper Networks Tarek Saad Cisco Systems Inc Himanshu Shah Ciena Oscar Gonzalez De Dios Telefonica -Expires: December 12, 2017 June 12, 2017 +Expires: January 2, 2018 July 2, 2017 YANG Data Model for TE Topologies - draft-ietf-teas-yang-te-topo-09 + draft-ietf-teas-yang-te-topo-10 Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. @@ -30,21 +30,21 @@ and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html - This Internet-Draft will expire on December 12, 2017. + This Internet-Draft will expire on January 2, 2018. Copyright Notice Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -62,21 +62,21 @@ Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [RFC2119]. Table of Contents 1. Introduction...................................................3 - 1.1. Terminology...............................................3 + 1.1. Terminology...............................................4 1.2. Tree Structure - Legend...................................4 1.3. Prefixes in Data Node Names...............................5 2. Characterizing TE Topologies...................................5 3. Modeling Abstractions and Transformations......................7 3.1. TE Topology...............................................7 3.2. TE Node...................................................7 3.3. TE Link...................................................8 3.4. Transitional TE Link for Multi-Layer Topologies...........8 3.5. TE Link Termination Point (LTP)...........................9 3.6. TE Tunnel Termination Point (TTP)........................10 @@ -99,29 +99,32 @@ 5.3. Model Structure..........................................25 5.4. Topology Identifiers.....................................26 5.5. Generic TE Link Attributes...............................26 5.6. Generic TE Node Attributes...............................27 5.7. TED Information Sources..................................29 5.8. Overlay/Underlay Relationship............................30 5.9. Templates................................................31 5.10. Scheduling Parameters...................................32 5.11. Notifications...........................................32 6. Tree Structure................................................32 - 7. TE Topology Yang Module.......................................66 - 8. Security Considerations......................................114 - 9. IANA Considerations..........................................115 - 10. References..................................................115 - 10.1. Normative References...................................115 - 10.2. Informative References.................................116 - 11. Acknowledgments.............................................116 - Contributors....................................................116 - Authors' Addresses..............................................116 + 7. TE Topology Yang Module.......................................68 + 8. Security Considerations......................................116 + 9. IANA Considerations..........................................116 + 10. References..................................................116 + 10.1. Normative References...................................116 + 10.2. Informative References.................................117 + 11. Acknowledgments.............................................117 + Appendix A. Companion YANG Model for Non-NMDA Compliant + Implementations.................................................118 + A.1. TE Topology State Yang Module...........................118 + Contributors....................................................125 + Authors' Addresses..............................................126 1. Introduction The Traffic Engineering Database (TED) is an essential component of Traffic Engineered (TE) systems that are based on MPLS-TE [RFC2702] and GMPLS [RFC3945]. The TED is a collection of all TE information about all TE nodes and TE links in the network. The TE Topology is a schematic arrangement of TE nodes and TE links present in a given TED. There could be one or more TE Topologies present in a given Traffic Engineered system. The TE Topology is the topology on which @@ -1422,62 +1426,64 @@ +--rw is-abstract? empty +--rw name? string +--rw underlay {te-topology-hierarchy}? | +--rw enabled? boolean | +--rw primary-path | | +--rw network-ref? leafref | | +--rw path-element* [path-element-id] | | +--rw path-element-id uint32 | | +--rw index? uint32 | | +--rw (type)? - | | +--:(ip-address) - | | | +--rw ip-address-hop - | | | +--rw address? inet:ip-address + | | +--:(numbered) + | | | +--rw numbered-hop + | | | +--rw address? te-types:te-tp-id | | | +--rw hop-type? te-hop-type | | +--:(as-number) | | | +--rw as-number-hop | | | +--rw as-number? binary | | | +--rw hop-type? te-hop-type - | | +--:(unnumbered-link) + | | +--:(unnumbered) | | | +--rw unnumbered-hop - | | | +--rw router-id? inet:ip- - address - | | | +--rw interface-id? uint32 + | | | +--rw node-id? te-types:te- + node-id + | | | +--rw link-tp-id? te-types:te-tp- + id | | | +--rw hop-type? te-hop-type | | +--:(label) | | | +--rw label-hop | | | +--rw value? rt-types:generalized- label | | +--:(sid) | | +--rw sid-hop | | +--rw sid? rt-types:generalized- label | +--rw backup-path* [index] | | +--rw index uint32 | | +--rw network-ref? leafref | | +--rw path-element* [path-element-id] | | +--rw path-element-id uint32 | | +--rw index? uint32 | | +--rw (type)? - | | +--:(ip-address) - | | | +--rw ip-address-hop - | | | +--rw address? inet:ip-address + | | +--:(numbered) + | | | +--rw numbered-hop + | | | +--rw address? te-types:te-tp-id | | | +--rw hop-type? te-hop-type | | +--:(as-number) | | | +--rw as-number-hop | | | +--rw as-number? binary | | | +--rw hop-type? te-hop-type - | | +--:(unnumbered-link) + | | +--:(unnumbered) | | | +--rw unnumbered-hop - | | | +--rw router-id? inet:ip- - address - | | | +--rw interface-id? uint32 + | | | +--rw node-id? te-types:te- + node-id + | | | +--rw link-tp-id? te-types:te-tp- + id | | | +--rw hop-type? te-hop-type | | +--:(label) | | | +--rw label-hop | | | +--rw value? rt-types:generalized- label | | +--:(sid) | | +--rw sid-hop | | +--rw sid? rt-types:generalized- label | +--rw protection-type? identityref @@ -1493,154 +1499,284 @@ admin-status +--rw link-index? uint64 +--rw administrative-group? te- types:admin-groups +--rw interface-switching-capability* [switching- capability encoding] | +--rw switching-capability identityref | +--rw encoding identityref | +--rw max-lsp-bandwidth* [priority] | +--rw priority uint8 - | +--rw bandwidth? te-bandwidth + | +--rw bandwidth + | +--rw te-bandwidth + | +--rw (technology)? + | +--:(psc) + | | +--rw psc? rt-types:bandwidth- + ieee-float32 + | +--:(otn) + | | +--rw otn* [rate-type] + | | +--rw rate-type identityref + | | +--rw counter? uint16 + | +--:(lsc) + | | +--rw wdm* [spectrum slot] + | | +--rw spectrum identityref + | | +--rw slot int16 + | | +--rw width? uint16 + | +--:(generic) + | +--rw generic? te-bandwidth + +--rw label-restriction* [inclusive-exclusive label- + start] + | +--rw inclusive-exclusive enumeration + | +--rw label-start rt-types:generalized- + label + | +--rw label-end? rt-types:generalized- + label + | +--rw range-bitmap? binary +--rw link-protection-type? enumeration - +--rw max-link-bandwidth? te-bandwidth - +--rw max-resv-link-bandwidth? te-bandwidth + +--rw max-link-bandwidth + | +--rw te-bandwidth + | +--rw (technology)? + | +--:(psc) + | | +--rw psc? rt-types:bandwidth-ieee- + float32 + | +--:(otn) + | | +--rw otn* [rate-type] + | | +--rw rate-type identityref + | | +--rw counter? uint16 + | +--:(lsc) + | | +--rw wdm* [spectrum slot] + | | +--rw spectrum identityref + | | +--rw slot int16 + | | +--rw width? uint16 + | +--:(generic) + | +--rw generic? te-bandwidth + +--rw max-resv-link-bandwidth + | +--rw te-bandwidth + | +--rw (technology)? + | +--:(psc) + | | +--rw psc? rt-types:bandwidth-ieee- + float32 + | +--:(otn) + | | +--rw otn* [rate-type] + | | +--rw rate-type identityref + | | +--rw counter? uint16 + | +--:(lsc) + | | +--rw wdm* [spectrum slot] + | | +--rw spectrum identityref + | | +--rw slot int16 + | | +--rw width? uint16 + | +--:(generic) + | +--rw generic? te-bandwidth +--rw unreserved-bandwidth* [priority] | +--rw priority uint8 - | +--rw bandwidth? te-bandwidth + | +--rw bandwidth + | +--rw te-bandwidth + | +--rw (technology)? + | +--:(psc) + | | +--rw psc? rt-types:bandwidth- + ieee-float32 + | +--:(otn) + | | +--rw otn* [rate-type] + | | +--rw rate-type identityref + | | +--rw counter? uint16 + | +--:(lsc) + | | +--rw wdm* [spectrum slot] + | | +--rw spectrum identityref + | | +--rw slot int16 + | | +--rw width? uint16 + | +--:(generic) + | +--rw generic? te-bandwidth +--rw te-default-metric? uint32 +--rw te-delay-metric? uint32 + +--rw te-igp-metric? uint32 +--rw te-srlgs | +--rw value* te-types:srlg +--rw te-nsrlgs {nsrlg}? +--rw id* uint32 augment /nw:networks/nw:network: +--rw provider-id? te-types:te-global-id +--rw client-id? te-types:te-global-id +--rw te-topology-id? te-types:te-topology-id +--rw te! - +--rw config - | +--rw preference? uint8 - | +--rw optimization-criterion? identityref - | +--rw nsrlg* [id] {nsrlg}? + +--rw preference? uint8 + +--rw optimization-criterion? identityref + +--rw nsrlg* [id] {nsrlg}? | +--rw id uint32 - | +--rw disjointness? te-path-disjointness - +--ro state - +--ro preference? uint8 - +--ro optimization-criterion? identityref - +--ro nsrlg* [id] {nsrlg}? - | +--ro id uint32 - | +--ro disjointness? te-path-disjointness + | +--rw disjointness? te-types:te-path-disjointness +--ro geolocation +--ro altitude? int64 +--ro latitude? geographic-coordinate-degree +--ro longitude? geographic-coordinate-degree augment /nw:networks/nw:network/nw:node: +--rw te-node-id? te-types:te-node-id +--rw te! - +--rw config - | +--rw te-node-template* leafref {template}? - | +--rw te-node-attributes + +--rw te-node-template* leafref {template}? + +--rw te-node-attributes | +--rw admin-status? te-types:te-admin-status | +--rw connectivity-matrices | | +--rw number-of-entries? uint16 | | +--rw label-restriction* [inclusive-exclusive label- start] | | | +--rw inclusive-exclusive enumeration | | | +--rw label-start rt-types:generalized- label | | | +--rw label-end? rt-types:generalized- label | | | +--rw range-bitmap? binary | | +--rw is-allowed? boolean | | +--rw underlay {te-topology-hierarchy}? | | | +--rw enabled? boolean | | | +--rw primary-path | | | | +--rw network-ref? leafref | | | | +--rw path-element* [path-element-id] | | | | +--rw path-element-id uint32 | | | | +--rw index? uint32 | | | | +--rw (type)? - | | | | +--:(ip-address) - | | | | | +--rw ip-address-hop - | | | | | +--rw address? inet:ip-address + | | | | +--:(numbered) + | | | | | +--rw numbered-hop + | | | | | +--rw address? te-types:te-tp-id | | | | | +--rw hop-type? te-hop-type | | | | +--:(as-number) | | | | | +--rw as-number-hop | | | | | +--rw as-number? binary | | | | | +--rw hop-type? te-hop-type - | | | | +--:(unnumbered-link) + | | | | +--:(unnumbered) | | | | | +--rw unnumbered-hop - | | | | | +--rw router-id? inet:ip- - address - | | | | | +--rw interface-id? uint32 + | | | | | +--rw node-id? te-types:te-node-id + | | | | | +--rw link-tp-id? te-types:te-tp-id | | | | | +--rw hop-type? te-hop-type | | | | +--:(label) | | | | | +--rw label-hop | | | | | +--rw value? rt-types:generalized- label | | | | +--:(sid) | | | | +--rw sid-hop - | | | | +--rw sid? rt-types:generalized- - label + | | | | +--rw sid? rt-types:generalized-label | | | +--rw backup-path* [index] | | | | +--rw index uint32 | | | | +--rw network-ref? leafref | | | | +--rw path-element* [path-element-id] | | | | +--rw path-element-id uint32 | | | | +--rw index? uint32 | | | | +--rw (type)? - | | | | +--:(ip-address) - | | | | | +--rw ip-address-hop - | | | | | +--rw address? inet:ip-address + | | | | +--:(numbered) + | | | | | +--rw numbered-hop + | | | | | +--rw address? te-types:te-tp-id | | | | | +--rw hop-type? te-hop-type | | | | +--:(as-number) | | | | | +--rw as-number-hop | | | | | +--rw as-number? binary | | | | | +--rw hop-type? te-hop-type - | | | | +--:(unnumbered-link) + | | | | +--:(unnumbered) | | | | | +--rw unnumbered-hop - | | | | | +--rw router-id? inet:ip- - address - | | | | | +--rw interface-id? uint32 + | | | | | +--rw node-id? te-types:te-node-id + | | | | | +--rw link-tp-id? te-types:te-tp-id | | | | | +--rw hop-type? te-hop-type | | | | +--:(label) | | | | | +--rw label-hop | | | | | +--rw value? rt-types:generalized- label | | | | +--:(sid) | | | | +--rw sid-hop - | | | | +--rw sid? rt-types:generalized- - label + | | | | +--rw sid? rt-types:generalized-label | | | +--rw protection-type? identityref | | | +--rw tunnel-termination-points | | | | +--rw source? binary | | | | +--rw destination? binary | | | +--rw tunnels | | | +--rw sharing? boolean | | | +--rw tunnel* [tunnel-name] | | | +--rw tunnel-name string | | | +--rw sharing? boolean - | | +--rw max-lsp-bandwidth* [priority] - | | | +--rw priority uint8 - | | | +--rw bandwidth? te-bandwidth - | | +--rw max-link-bandwidth? te-bandwidth - | | +--rw max-resv-link-bandwidth? te-bandwidth - | | +--rw unreserved-bandwidth* [priority] - | | | +--rw priority uint8 - | | | +--rw bandwidth? te-bandwidth - | | +--rw te-default-metric? uint32 - | | +--rw te-delay-metric? uint32 - | | +--rw te-srlgs - | | | +--rw value* te-types:srlg - | | +--rw te-nsrlgs {nsrlg}? - | | | +--rw id* uint32 + | | +--rw path-constraints + | | | +--rw path-metric-bound* [metric-type] + | | | | +--rw metric-type identityref + | | | | +--rw upper-bound? uint64 + | | | +--rw topology-id? te-types:te-topology-id + | | | +--rw ignore-overload? boolean + | | | +--rw bandwidth-generic + | | | | +--rw te-bandwidth + | | | | +--rw (technology)? + | | | | +--:(psc) + | | | | | +--rw psc? rt-types:bandwidth-ieee- + float32 + | | | | +--:(otn) + | | | | | +--rw otn* [rate-type] + | | | | | +--rw rate-type identityref + | | | | | +--rw counter? uint16 + | | | | +--:(lsc) + | | | | | +--rw wdm* [spectrum slot] + | | | | | +--rw spectrum identityref + | | | | | +--rw slot int16 + | | | | | +--rw width? uint16 + | | | | +--:(generic) + | | | | +--rw generic? te-bandwidth + | | | +--rw disjointness? te-types:te-path- + disjointness + | | | +--rw setup-priority? uint8 + | | | +--rw hold-priority? uint8 + | | | +--rw signaling-type? identityref + | | | +--rw path-affinities + | | | | +--rw constraint* [usage] + | | | | +--rw usage identityref + | | | | +--rw value? admin-groups + | | | +--rw path-srlgs + | | | +--rw usage? identityref + | | | +--rw values* srlg + | | +--rw optimizations + | | | +--rw (algorithm)? + | | | +--:(metric) {path-optimization-metric}? + | | | | +--rw optimization-metric* [metric-type] + | | | | | +--rw metric-type identityref + | | | | | +--rw weight? uint8 + | | | | +--rw tiebreakers + | | | | +--rw tiebreaker* [tiebreaker-type] + | | | | +--rw tiebreaker-type identityref + | | | +--:(objective-function) {path-optimization- + objective-function}? + | | | +--rw objective-function + | | | +--rw objective-function-type? identityref + | | +--ro computed-path-properties + | | | +--ro path-metric* [metric-type] + | | | | +--ro metric-type identityref + | | | | +--ro accumulative-value? uint64 + | | | +--ro path-affinities + | | | | +--ro constraint* [usage] + | | | | +--ro usage identityref + | | | | +--ro value? admin-groups + | | | +--ro path-srlgs + | | | | +--ro usage? identityref + | | | | +--ro values* srlg + | | | +--ro path-computed-route-objects + | | | +--ro path-computed-route-object* [index] + | | | +--ro index uint32 + | | | +--ro (type)? + | | | +--:(numbered) + | | | | +--ro numbered-hop + | | | | +--ro address? te-types:te-tp-id + | | | | +--ro hop-type? te-hop-type + | | | +--:(as-number) + | | | | +--ro as-number-hop + | | | | +--ro as-number? binary + | | | | +--ro hop-type? te-hop-type + | | | +--:(unnumbered) + | | | | +--ro unnumbered-hop + | | | | +--ro node-id? te-types:te-node-id + | | | | +--ro link-tp-id? te-types:te-tp-id + | | | | +--ro hop-type? te-hop-type + | | | +--:(label) + | | | | +--ro label-hop + | | | | +--ro value? rt-types:generalized- + label + | | | +--:(sid) + | | | +--ro sid-hop + | | | +--ro sid? rt-types:generalized-label | | +--rw connectivity-matrix* [id] | | +--rw id uint32 | | +--rw from | | | +--rw tp-ref? leafref | | | +--rw label-restriction* [inclusive-exclusive label-start] | | | +--rw inclusive-exclusive enumeration | | | +--rw label-start rt- types:generalized-label | | | +--rw label-end? rt- @@ -1658,424 +1794,356 @@ | | | +--rw range-bitmap? binary | | +--rw is-allowed? boolean | | +--rw underlay {te-topology-hierarchy}? | | | +--rw enabled? boolean | | | +--rw primary-path | | | | +--rw network-ref? leafref | | | | +--rw path-element* [path-element-id] | | | | +--rw path-element-id uint32 | | | | +--rw index? uint32 | | | | +--rw (type)? - | | | | +--:(ip-address) - | | | | | +--rw ip-address-hop - | | | | | +--rw address? inet:ip-address + | | | | +--:(numbered) + | | | | | +--rw numbered-hop + | | | | | +--rw address? te-types:te-tp-id | | | | | +--rw hop-type? te-hop-type | | | | +--:(as-number) | | | | | +--rw as-number-hop | | | | | +--rw as-number? binary | | | | | +--rw hop-type? te-hop-type - | | | | +--:(unnumbered-link) + | | | | +--:(unnumbered) | | | | | +--rw unnumbered-hop - | | | | | +--rw router-id? inet:ip- - address - | | | | | +--rw interface-id? uint32 + | | | | | +--rw node-id? te-types:te- + node-id + | | | | | +--rw link-tp-id? te-types:te-tp- + id | | | | | +--rw hop-type? te-hop-type | | | | +--:(label) | | | | | +--rw label-hop - | | | | | +--rw value? rt- - types:generalized-label + | | | | | +--rw value? rt-types:generalized- + label | | | | +--:(sid) | | | | +--rw sid-hop - | | | | +--rw sid? rt- - types:generalized-label + | | | | +--rw sid? rt-types:generalized- + label | | | +--rw backup-path* [index] | | | | +--rw index uint32 | | | | +--rw network-ref? leafref | | | | +--rw path-element* [path-element-id] | | | | +--rw path-element-id uint32 | | | | +--rw index? uint32 | | | | +--rw (type)? - | | | | +--:(ip-address) - | | | | | +--rw ip-address-hop - | | | | | +--rw address? inet:ip-address + | | | | +--:(numbered) + | | | | | +--rw numbered-hop + | | | | | +--rw address? te-types:te-tp-id | | | | | +--rw hop-type? te-hop-type | | | | +--:(as-number) | | | | | +--rw as-number-hop | | | | | +--rw as-number? binary | | | | | +--rw hop-type? te-hop-type - | | | | +--:(unnumbered-link) + | | | | +--:(unnumbered) | | | | | +--rw unnumbered-hop - | | | | | +--rw router-id? inet:ip- - address - | | | | | +--rw interface-id? uint32 + | | | | | +--rw node-id? te-types:te- + node-id + | | | | | +--rw link-tp-id? te-types:te-tp- + id | | | | | +--rw hop-type? te-hop-type | | | | +--:(label) | | | | | +--rw label-hop - | | | | | +--rw value? rt- - types:generalized-label + | | | | | +--rw value? rt-types:generalized- + label | | | | +--:(sid) | | | | +--rw sid-hop - | | | | +--rw sid? rt- - types:generalized-label + | | | | +--rw sid? rt-types:generalized- + label | | | +--rw protection-type? identityref | | | +--rw tunnel-termination-points | | | | +--rw source? binary | | | | +--rw destination? binary | | | +--rw tunnels | | | +--rw sharing? boolean | | | +--rw tunnel* [tunnel-name] | | | +--rw tunnel-name string | | | +--rw sharing? boolean - | | +--rw max-lsp-bandwidth* [priority] - | | | +--rw priority uint8 - | | | +--rw bandwidth? te-bandwidth - | | +--rw max-link-bandwidth? te-bandwidth - | | +--rw max-resv-link-bandwidth? te-bandwidth - | | +--rw unreserved-bandwidth* [priority] - | | | +--rw priority uint8 - | | | +--rw bandwidth? te-bandwidth - | | +--rw te-default-metric? uint32 - | | +--rw te-delay-metric? uint32 - | | +--rw te-srlgs - | | | +--rw value* te-types:srlg - | | +--rw te-nsrlgs {nsrlg}? - | | +--rw id* uint32 + | | +--rw path-constraints + | | | +--rw path-metric-bound* [metric-type] + | | | | +--rw metric-type identityref + | | | | +--rw upper-bound? uint64 + | | | +--rw topology-id? te-types:te-topology-id + | | | +--rw ignore-overload? boolean + | | | +--rw bandwidth-generic + | | | | +--rw te-bandwidth + | | | | +--rw (technology)? + | | | | +--:(psc) + | | | | | +--rw psc? rt-types:bandwidth- + ieee-float32 + | | | | +--:(otn) + | | | | | +--rw otn* [rate-type] + | | | | | +--rw rate-type identityref + | | | | | +--rw counter? uint16 + | | | | +--:(lsc) + | | | | | +--rw wdm* [spectrum slot] + | | | | | +--rw spectrum identityref + | | | | | +--rw slot int16 + | | | | | +--rw width? uint16 + | | | | +--:(generic) + | | | | +--rw generic? te-bandwidth + | | | +--rw disjointness? te-types:te-path- + disjointness + | | | +--rw setup-priority? uint8 + | | | +--rw hold-priority? uint8 + | | | +--rw signaling-type? identityref + | | | +--rw path-affinities + | | | | +--rw constraint* [usage] + | | | | +--rw usage identityref + | | | | +--rw value? admin-groups + | | | +--rw path-srlgs + | | | +--rw usage? identityref + | | | +--rw values* srlg + | | +--rw optimizations + | | | +--rw (algorithm)? + | | | +--:(metric) {path-optimization-metric}? + | | | | +--rw optimization-metric* [metric-type] + | | | | | +--rw metric-type identityref + | | | | | +--rw weight? uint8 + | | | | +--rw tiebreakers + | | | | +--rw tiebreaker* [tiebreaker-type] + | | | | +--rw tiebreaker-type identityref + | | | +--:(objective-function) {path-optimization- + objective-function}? + | | | +--rw objective-function + | | | +--rw objective-function-type? + identityref + | | +--ro computed-path-properties + | | +--ro path-metric* [metric-type] + | | | +--ro metric-type identityref + | | | +--ro accumulative-value? uint64 + | | +--ro path-affinities + | | | +--ro constraint* [usage] + | | | +--ro usage identityref + | | | +--ro value? admin-groups + | | +--ro path-srlgs + | | | +--ro usage? identityref + | | | +--ro values* srlg + | | +--ro path-computed-route-objects + | | +--ro path-computed-route-object* [index] + | | +--ro index uint32 + | | +--ro (type)? + | | +--:(numbered) + | | | +--ro numbered-hop + | | | +--ro address? te-types:te-tp-id + | | | +--ro hop-type? te-hop-type + | | +--:(as-number) + | | | +--ro as-number-hop + | | | +--ro as-number? binary + | | | +--ro hop-type? te-hop-type + | | +--:(unnumbered) + | | | +--ro unnumbered-hop + | | | +--ro node-id? te-types:te- + node-id + | | | +--ro link-tp-id? te-types:te-tp- + id + | | | +--ro hop-type? te-hop-type + | | +--:(label) + | | | +--ro label-hop + | | | +--ro value? rt-types:generalized- + label + | | +--:(sid) + | | +--ro sid-hop + | | +--ro sid? rt-types:generalized- + label | +--rw domain-id? uint32 | +--rw is-abstract? empty | +--rw name? inet:domain-name | +--rw signaling-address* inet:ip-address | +--rw underlay-topology {te-topology-hierarchy}? | +--rw network-ref? leafref - +--ro state - | +--ro te-node-template* leafref {template}? - | +--ro te-node-attributes - | | +--ro admin-status? te-types:te-admin-status - | | +--ro connectivity-matrices - | | | +--ro number-of-entries? uint16 - | | | +--ro label-restriction* [inclusive-exclusive label- - start] - | | | | +--ro inclusive-exclusive enumeration - | | | | +--ro label-start rt-types:generalized- - label - | | | | +--ro label-end? rt-types:generalized- - label - | | | | +--ro range-bitmap? binary - | | | +--ro is-allowed? boolean - | | | +--ro underlay {te-topology-hierarchy}? - | | | | +--ro enabled? boolean - | | | | +--ro primary-path - | | | | | +--ro network-ref? leafref - | | | | | +--ro path-element* [path-element-id] - | | | | | +--ro path-element-id uint32 - | | | | | +--ro index? uint32 - | | | | | +--ro (type)? - | | | | | +--:(ip-address) - | | | | | | +--ro ip-address-hop - | | | | | | +--ro address? inet:ip-address - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(as-number) - | | | | | | +--ro as-number-hop - | | | | | | +--ro as-number? binary - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(unnumbered-link) - | | | | | | +--ro unnumbered-hop - | | | | | | +--ro router-id? inet:ip- - address - | | | | | | +--ro interface-id? uint32 - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(label) - | | | | | | +--ro label-hop - | | | | | | +--ro value? rt-types:generalized- - label - | | | | | +--:(sid) - | | | | | +--ro sid-hop - | | | | | +--ro sid? rt-types:generalized- - label - | | | | +--ro backup-path* [index] - | | | | | +--ro index uint32 - | | | | | +--ro network-ref? leafref - | | | | | +--ro path-element* [path-element-id] - | | | | | +--ro path-element-id uint32 - | | | | | +--ro index? uint32 - | | | | | +--ro (type)? - | | | | | +--:(ip-address) - | | | | | | +--ro ip-address-hop - | | | | | | +--ro address? inet:ip-address - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(as-number) - | | | | | | +--ro as-number-hop - | | | | | | +--ro as-number? binary - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(unnumbered-link) - | | | | | | +--ro unnumbered-hop - | | | | | | +--ro router-id? inet:ip- - address - | | | | | | +--ro interface-id? uint32 - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(label) - | | | | | | +--ro label-hop - | | | | | | +--ro value? rt-types:generalized- - label - | | | | | +--:(sid) - | | | | | +--ro sid-hop - | | | | | +--ro sid? rt-types:generalized- - label - | | | | +--ro protection-type? identityref - | | | | +--ro tunnel-termination-points - | | | | | +--ro source? binary - | | | | | +--ro destination? binary - | | | | +--ro tunnels - | | | | +--ro sharing? boolean - | | | | +--ro tunnel* [tunnel-name] - | | | | +--ro tunnel-name string - | | | | +--ro sharing? boolean - | | | +--ro max-lsp-bandwidth* [priority] - | | | | +--ro priority uint8 - | | | | +--ro bandwidth? te-bandwidth - | | | +--ro max-link-bandwidth? te-bandwidth - | | | +--ro max-resv-link-bandwidth? te-bandwidth - | | | +--ro unreserved-bandwidth* [priority] - | | | | +--ro priority uint8 - | | | | +--ro bandwidth? te-bandwidth - | | | +--ro te-default-metric? uint32 - | | | +--ro te-delay-metric? uint32 - | | | +--ro te-srlgs - | | | | +--ro value* te-types:srlg - | | | +--ro te-nsrlgs {nsrlg}? - | | | | +--ro id* uint32 - | | | +--ro connectivity-matrix* [id] - | | | +--ro id uint32 - | | | +--ro from - | | | | +--ro tp-ref? leafref - | | | | +--ro label-restriction* [inclusive-exclusive - label-start] - | | | | +--ro inclusive-exclusive enumeration - | | | | +--ro label-start rt- - types:generalized-label - | | | | +--ro label-end? rt- - types:generalized-label - | | | | +--ro range-bitmap? binary - | | | +--ro to - | | | | +--ro tp-ref? leafref - | | | | +--ro label-restriction* [inclusive-exclusive - label-start] - | | | | +--ro inclusive-exclusive enumeration - | | | | +--ro label-start rt- - types:generalized-label - | | | | +--ro label-end? rt- - types:generalized-label - | | | | +--ro range-bitmap? binary - | | | +--ro is-allowed? boolean - | | | +--ro underlay {te-topology-hierarchy}? - | | | | +--ro enabled? boolean - | | | | +--ro primary-path - | | | | | +--ro network-ref? leafref - | | | | | +--ro path-element* [path-element-id] - | | | | | +--ro path-element-id uint32 - | | | | | +--ro index? uint32 - | | | | | +--ro (type)? - | | | | | +--:(ip-address) - | | | | | | +--ro ip-address-hop - | | | | | | +--ro address? inet:ip-address - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(as-number) - | | | | | | +--ro as-number-hop - | | | | | | +--ro as-number? binary - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(unnumbered-link) - | | | | | | +--ro unnumbered-hop - | | | | | | +--ro router-id? inet:ip- - address - | | | | | | +--ro interface-id? uint32 - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(label) - | | | | | | +--ro label-hop - | | | | | | +--ro value? rt- - types:generalized-label - | | | | | +--:(sid) - | | | | | +--ro sid-hop - | | | | | +--ro sid? rt- - types:generalized-label - | | | | +--ro backup-path* [index] - | | | | | +--ro index uint32 - | | | | | +--ro network-ref? leafref - | | | | | +--ro path-element* [path-element-id] - | | | | | +--ro path-element-id uint32 - | | | | | +--ro index? uint32 - | | | | | +--ro (type)? - | | | | | +--:(ip-address) - | | | | | | +--ro ip-address-hop - | | | | | | +--ro address? inet:ip-address - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(as-number) - | | | | | | +--ro as-number-hop - | | | | | | +--ro as-number? binary - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(unnumbered-link) - | | | | | | +--ro unnumbered-hop - | | | | | | +--ro router-id? inet:ip- - address - | | | | | | +--ro interface-id? uint32 - | | | | | | +--ro hop-type? te-hop-type - | | | | | +--:(label) - | | | | | | +--ro label-hop - | | | | | | +--ro value? rt- - types:generalized-label - | | | | | +--:(sid) - | | | | | +--ro sid-hop - | | | | | +--ro sid? rt- - types:generalized-label - | | | | +--ro protection-type? identityref - | | | | +--ro tunnel-termination-points - | | | | | +--ro source? binary - | | | | | +--ro destination? binary - | | | | +--ro tunnels - | | | | +--ro sharing? boolean - | | | | +--ro tunnel* [tunnel-name] - | | | | +--ro tunnel-name string - | | | | +--ro sharing? boolean - | | | +--ro max-lsp-bandwidth* [priority] - | | | | +--ro priority uint8 - | | | | +--ro bandwidth? te-bandwidth - | | | +--ro max-link-bandwidth? te-bandwidth - | | | +--ro max-resv-link-bandwidth? te-bandwidth - | | | +--ro unreserved-bandwidth* [priority] - | | | | +--ro priority uint8 - | | | | +--ro bandwidth? te-bandwidth - | | | +--ro te-default-metric? uint32 - | | | +--ro te-delay-metric? uint32 - | | | +--ro te-srlgs - | | | | +--ro value* te-types:srlg - | | | +--ro te-nsrlgs {nsrlg}? - | | | +--ro id* uint32 - | | +--ro domain-id? uint32 - | | +--ro is-abstract? empty - | | +--ro name? inet:domain-name - | | +--ro signaling-address* inet:ip-address - | | +--ro underlay-topology {te-topology-hierarchy}? - | | +--ro network-ref? leafref - | +--ro oper-status? te-types:te-oper-status - | +--ro geolocation - | | +--ro altitude? int64 - | | +--ro latitude? geographic-coordinate-degree - | | +--ro longitude? geographic-coordinate-degree - | +--ro is-multi-access-dr? empty - | +--ro information-source? te-info-source - | +--ro information-source-state - | | +--ro credibility-preference? uint16 - | | +--ro logical-network-element? string - | | +--ro network-instance? string - | | +--ro topology - | | +--ro network-ref? leafref - | | +--ro node-ref? leafref - | +--ro information-source-entry* [information-source] + +--ro oper-status? te-types:te-oper-status + +--ro geolocation + | +--ro altitude? int64 + | +--ro latitude? geographic-coordinate-degree + | +--ro longitude? geographic-coordinate-degree + +--ro is-multi-access-dr? empty + +--ro information-source? te-info-source + +--ro information-source-state + | +--ro credibility-preference? uint16 + | +--ro logical-network-element? string + | +--ro network-instance? string + | +--ro topology + | +--ro node-ref? leafref + | +--ro network-ref? leafref + +--ro information-source-entry* [information-source] | +--ro information-source te-info-source | +--ro information-source-state | | +--ro credibility-preference? uint16 | | +--ro logical-network-element? string | | +--ro network-instance? string | | +--ro topology - | | +--ro network-ref? leafref | | +--ro node-ref? leafref + | | +--ro network-ref? leafref | +--ro connectivity-matrices | | +--ro number-of-entries? uint16 | | +--ro label-restriction* [inclusive-exclusive label- start] | | | +--ro inclusive-exclusive enumeration | | | +--ro label-start rt-types:generalized- label | | | +--ro label-end? rt-types:generalized- label | | | +--ro range-bitmap? binary | | +--ro is-allowed? boolean | | +--ro underlay {te-topology-hierarchy}? | | | +--ro enabled? boolean | | | +--ro primary-path | | | | +--ro network-ref? leafref | | | | +--ro path-element* [path-element-id] | | | | +--ro path-element-id uint32 | | | | +--ro index? uint32 | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address + | | | | +--:(numbered) + | | | | | +--ro numbered-hop + | | | | | +--ro address? te-types:te-tp-id | | | | | +--ro hop-type? te-hop-type | | | | +--:(as-number) | | | | | +--ro as-number-hop | | | | | +--ro as-number? binary | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) + | | | | +--:(unnumbered) | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip- - address - | | | | | +--ro interface-id? uint32 + | | | | | +--ro node-id? te-types:te-node-id + | | | | | +--ro link-tp-id? te-types:te-tp-id | | | | | +--ro hop-type? te-hop-type | | | | +--:(label) | | | | | +--ro label-hop | | | | | +--ro value? rt-types:generalized- label | | | | +--:(sid) | | | | +--ro sid-hop - | | | | +--ro sid? rt-types:generalized- - label + | | | | +--ro sid? rt-types:generalized-label | | | +--ro backup-path* [index] | | | | +--ro index uint32 | | | | +--ro network-ref? leafref | | | | +--ro path-element* [path-element-id] | | | | +--ro path-element-id uint32 | | | | +--ro index? uint32 | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address + | | | | +--:(numbered) + | | | | | +--ro numbered-hop + | | | | | +--ro address? te-types:te-tp-id | | | | | +--ro hop-type? te-hop-type | | | | +--:(as-number) | | | | | +--ro as-number-hop | | | | | +--ro as-number? binary | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) + | | | | +--:(unnumbered) | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip- - address - | | | | | +--ro interface-id? uint32 + | | | | | +--ro node-id? te-types:te-node-id + | | | | | +--ro link-tp-id? te-types:te-tp-id | | | | | +--ro hop-type? te-hop-type | | | | +--:(label) | | | | | +--ro label-hop | | | | | +--ro value? rt-types:generalized- label | | | | +--:(sid) | | | | +--ro sid-hop - | | | | +--ro sid? rt-types:generalized- - label + | | | | +--ro sid? rt-types:generalized-label | | | +--ro protection-type? identityref | | | +--ro tunnel-termination-points | | | | +--ro source? binary | | | | +--ro destination? binary | | | +--ro tunnels | | | +--ro sharing? boolean | | | +--ro tunnel* [tunnel-name] | | | +--ro tunnel-name string | | | +--ro sharing? boolean - | | +--ro max-lsp-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro max-link-bandwidth? te-bandwidth - | | +--ro max-resv-link-bandwidth? te-bandwidth - | | +--ro unreserved-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro te-default-metric? uint32 - | | +--ro te-delay-metric? uint32 - | | +--ro te-srlgs - | | | +--ro value* te-types:srlg - | | +--ro te-nsrlgs {nsrlg}? - | | | +--ro id* uint32 + | | +--ro path-constraints + | | | +--ro path-metric-bound* [metric-type] + | | | | +--ro metric-type identityref + | | | | +--ro upper-bound? uint64 + | | | +--ro topology-id? te-types:te-topology-id + | | | +--ro ignore-overload? boolean + | | | +--ro bandwidth-generic + | | | | +--ro te-bandwidth + | | | | +--ro (technology)? + | | | | +--:(psc) + | | | | | +--ro psc? rt-types:bandwidth-ieee- + float32 + | | | | +--:(otn) + | | | | | +--ro otn* [rate-type] + | | | | | +--ro rate-type identityref + | | | | | +--ro counter? uint16 + | | | | +--:(lsc) + | | | | | +--ro wdm* [spectrum slot] + | | | | | +--ro spectrum identityref + | | | | | +--ro slot int16 + | | | | | +--ro width? uint16 + | | | | +--:(generic) + | | | | +--ro generic? te-bandwidth + | | | +--ro disjointness? te-types:te-path- + disjointness + | | | +--ro setup-priority? uint8 + | | | +--ro hold-priority? uint8 + | | | +--ro signaling-type? identityref + | | | +--ro path-affinities + | | | | +--ro constraint* [usage] + | | | | +--ro usage identityref + | | | | +--ro value? admin-groups + | | | +--ro path-srlgs + | | | +--ro usage? identityref + | | | +--ro values* srlg + | | +--ro optimizations + | | | +--ro (algorithm)? + | | | +--:(metric) {path-optimization-metric}? + | | | | +--ro optimization-metric* [metric-type] + | | | | | +--ro metric-type identityref + | | | | | +--ro weight? uint8 + | | | | +--ro tiebreakers + | | | | +--ro tiebreaker* [tiebreaker-type] + | | | | +--ro tiebreaker-type identityref + | | | +--:(objective-function) {path-optimization- + objective-function}? + | | | +--ro objective-function + | | | +--ro objective-function-type? identityref + | | +--ro computed-path-properties + | | | +--ro path-metric* [metric-type] + | | | | +--ro metric-type identityref + | | | | +--ro accumulative-value? uint64 + | | | +--ro path-affinities + | | | | +--ro constraint* [usage] + | | | | +--ro usage identityref + | | | | +--ro value? admin-groups + | | | +--ro path-srlgs + | | | | +--ro usage? identityref + | | | | +--ro values* srlg + | | | +--ro path-computed-route-objects + | | | +--ro path-computed-route-object* [index] + | | | +--ro index uint32 + | | | +--ro (type)? + | | | +--:(numbered) + | | | | +--ro numbered-hop + | | | | +--ro address? te-types:te-tp-id + | | | | +--ro hop-type? te-hop-type + | | | +--:(as-number) + | | | | +--ro as-number-hop + | | | | +--ro as-number? binary + | | | | +--ro hop-type? te-hop-type + | | | +--:(unnumbered) + | | | | +--ro unnumbered-hop + | | | | +--ro node-id? te-types:te-node-id + | | | | +--ro link-tp-id? te-types:te-tp-id + | | | | +--ro hop-type? te-hop-type + | | | +--:(label) + | | | | +--ro label-hop + | | | | +--ro value? rt-types:generalized- + label + | | | +--:(sid) + | | | +--ro sid-hop + | | | +--ro sid? rt-types:generalized-label | | +--ro connectivity-matrix* [id] | | +--ro id uint32 | | +--ro from | | | +--ro tp-ref? leafref | | | +--ro label-restriction* [inclusive-exclusive label-start] | | | +--ro inclusive-exclusive enumeration | | | +--ro label-start rt- types:generalized-label | | | +--ro label-end? rt- @@ -2093,94 +2161,169 @@ | | | +--ro range-bitmap? binary | | +--ro is-allowed? boolean | | +--ro underlay {te-topology-hierarchy}? | | | +--ro enabled? boolean | | | +--ro primary-path | | | | +--ro network-ref? leafref | | | | +--ro path-element* [path-element-id] | | | | +--ro path-element-id uint32 | | | | +--ro index? uint32 | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address + | | | | +--:(numbered) + | | | | | +--ro numbered-hop + | | | | | +--ro address? te-types:te-tp-id | | | | | +--ro hop-type? te-hop-type | | | | +--:(as-number) | | | | | +--ro as-number-hop | | | | | +--ro as-number? binary | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) + | | | | +--:(unnumbered) | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip- - address - | | | | | +--ro interface-id? uint32 + | | | | | +--ro node-id? te-types:te- + node-id + | | | | | +--ro link-tp-id? te-types:te-tp- + id | | | | | +--ro hop-type? te-hop-type | | | | +--:(label) | | | | | +--ro label-hop - | | | | | +--ro value? rt- - types:generalized-label + | | | | | +--ro value? rt-types:generalized- + label | | | | +--:(sid) | | | | +--ro sid-hop - | | | | +--ro sid? rt- - types:generalized-label + | | | | +--ro sid? rt-types:generalized- + label | | | +--ro backup-path* [index] | | | | +--ro index uint32 | | | | +--ro network-ref? leafref | | | | +--ro path-element* [path-element-id] | | | | +--ro path-element-id uint32 | | | | +--ro index? uint32 | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address + | | | | +--:(numbered) + | | | | | +--ro numbered-hop + | | | | | +--ro address? te-types:te-tp-id | | | | | +--ro hop-type? te-hop-type | | | | +--:(as-number) | | | | | +--ro as-number-hop | | | | | +--ro as-number? binary | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) + | | | | +--:(unnumbered) | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip- - address - | | | | | +--ro interface-id? uint32 + | | | | | +--ro node-id? te-types:te- + node-id + | | | | | +--ro link-tp-id? te-types:te-tp- + id | | | | | +--ro hop-type? te-hop-type | | | | +--:(label) | | | | | +--ro label-hop - | | | | | +--ro value? rt- - types:generalized-label + | | | | | +--ro value? rt-types:generalized- + label | | | | +--:(sid) | | | | +--ro sid-hop - | | | | +--ro sid? rt- - types:generalized-label + | | | | +--ro sid? rt-types:generalized- + label | | | +--ro protection-type? identityref | | | +--ro tunnel-termination-points | | | | +--ro source? binary | | | | +--ro destination? binary | | | +--ro tunnels | | | +--ro sharing? boolean | | | +--ro tunnel* [tunnel-name] | | | +--ro tunnel-name string | | | +--ro sharing? boolean - | | +--ro max-lsp-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro max-link-bandwidth? te-bandwidth - | | +--ro max-resv-link-bandwidth? te-bandwidth - | | +--ro unreserved-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro te-default-metric? uint32 - | | +--ro te-delay-metric? uint32 - | | +--ro te-srlgs - | | | +--ro value* te-types:srlg - | | +--ro te-nsrlgs {nsrlg}? - | | +--ro id* uint32 + | | +--ro path-constraints + | | | +--ro path-metric-bound* [metric-type] + | | | | +--ro metric-type identityref + | | | | +--ro upper-bound? uint64 + | | | +--ro topology-id? te-types:te-topology-id + | | | +--ro ignore-overload? boolean + | | | +--ro bandwidth-generic + | | | | +--ro te-bandwidth + | | | | +--ro (technology)? + | | | | +--:(psc) + | | | | | +--ro psc? rt-types:bandwidth- + ieee-float32 + | | | | +--:(otn) + | | | | | +--ro otn* [rate-type] + | | | | | +--ro rate-type identityref + | | | | | +--ro counter? uint16 + | | | | +--:(lsc) + | | | | | +--ro wdm* [spectrum slot] + | | | | | +--ro spectrum identityref + | | | | | +--ro slot int16 + | | | | | +--ro width? uint16 + | | | | +--:(generic) + | | | | +--ro generic? te-bandwidth + | | | +--ro disjointness? te-types:te-path- + disjointness + | | | +--ro setup-priority? uint8 + | | | +--ro hold-priority? uint8 + | | | +--ro signaling-type? identityref + | | | +--ro path-affinities + | | | | +--ro constraint* [usage] + | | | | +--ro usage identityref + | | | | +--ro value? admin-groups + | | | +--ro path-srlgs + | | | +--ro usage? identityref + | | | +--ro values* srlg + | | +--ro optimizations + | | | +--ro (algorithm)? + | | | +--:(metric) {path-optimization-metric}? + | | | | +--ro optimization-metric* [metric-type] + | | | | | +--ro metric-type identityref + | | | | | +--ro weight? uint8 + | | | | +--ro tiebreakers + | | | | +--ro tiebreaker* [tiebreaker-type] + | | | | +--ro tiebreaker-type identityref + | | | +--:(objective-function) {path-optimization- + objective-function}? + | | | +--ro objective-function + | | | +--ro objective-function-type? + identityref + | | +--ro computed-path-properties + | | +--ro path-metric* [metric-type] + | | | +--ro metric-type identityref + | | | +--ro accumulative-value? uint64 + | | +--ro path-affinities + | | | +--ro constraint* [usage] + | | | +--ro usage identityref + | | | +--ro value? admin-groups + | | +--ro path-srlgs + | | | +--ro usage? identityref + | | | +--ro values* srlg + | | +--ro path-computed-route-objects + | | +--ro path-computed-route-object* [index] + | | +--ro index uint32 + | | +--ro (type)? + | | +--:(numbered) + | | | +--ro numbered-hop + | | | +--ro address? te-types:te-tp-id + | | | +--ro hop-type? te-hop-type + | | +--:(as-number) + | | | +--ro as-number-hop + | | | +--ro as-number? binary + | | | +--ro hop-type? te-hop-type + | | +--:(unnumbered) + | | | +--ro unnumbered-hop + | | | +--ro node-id? te-types:te- + node-id + | | | +--ro link-tp-id? te-types:te-tp- + id + | | | +--ro hop-type? te-hop-type + | | +--:(label) + | | | +--ro label-hop + | | | +--ro value? rt-types:generalized- + label + | | +--:(sid) + | | +--ro sid-hop + | | +--ro sid? rt-types:generalized- + label | +--ro domain-id? uint32 | +--ro is-abstract? empty | +--ro name? inet:domain-name | +--ro signaling-address* inet:ip-address | +--ro underlay-topology {te-topology-hierarchy}? | +--ro network-ref? leafref +--ro statistics | +--ro discontinuity-time yang:date-and-time | +--ro node | | +--ro disables? yang:counter32 @@ -2189,423 +2332,378 @@ | | +--ro maintenance-clears? yang:counter32 | | +--ro modifies? yang:counter32 | +--ro connectivity-matrix-entry | +--ro creates? yang:counter32 | +--ro deletes? yang:counter32 | +--ro disables? yang:counter32 | +--ro enables? yang:counter32 | +--ro modifies? yang:counter32 +--rw tunnel-termination-point* [tunnel-tp-id] +--rw tunnel-tp-id binary - +--rw config - | +--rw admin-status? te-types:te-admin- - status - | +--rw name? string - | +--rw switching-capability? identityref - | +--rw encoding? identityref - | +--rw inter-layer-lock-id* uint32 - | +--rw protection-type? identityref - | +--rw client-layer-adaptation - | | +--rw switching-capability* [switching-capability + +--rw admin-status? te-types:te- + admin-status + +--rw name? string + +--rw switching-capability? identityref + +--rw encoding? identityref + +--rw inter-layer-lock-id* uint32 + +--rw protection-type? identityref + +--rw client-layer-adaptation + | +--rw switching-capability* [switching-capability encoding] - | | +--rw switching-capability identityref - | | +--rw encoding identityref - | | +--rw bandwidth? te-bandwidth - | +--rw local-link-connectivities + | +--rw switching-capability identityref + | +--rw encoding identityref + | +--rw bandwidth + | +--rw te-bandwidth + | +--rw (technology)? + | +--:(psc) + | | +--rw psc? rt-types:bandwidth-ieee- + float32 + | +--:(otn) + | | +--rw otn* [rate-type] + | | +--rw rate-type identityref + | | +--rw counter? uint16 + | +--:(lsc) + | | +--rw wdm* [spectrum slot] + | | +--rw spectrum identityref + | | +--rw slot int16 + | | +--rw width? uint16 + | +--:(generic) + | +--rw generic? te-bandwidth + +--rw local-link-connectivities | +--rw number-of-entries? uint16 | +--rw label-restriction* [inclusive-exclusive label- start] | | +--rw inclusive-exclusive enumeration | | +--rw label-start rt-types:generalized- label | | +--rw label-end? rt-types:generalized- label | | +--rw range-bitmap? binary | +--rw is-allowed? boolean | +--rw underlay {te-topology-hierarchy}? | | +--rw enabled? boolean | | +--rw primary-path | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | +--rw path-element-id uint32 | | | +--rw index? uint32 | | | +--rw (type)? - | | | +--:(ip-address) - | | | | +--rw ip-address-hop - | | | | +--rw address? inet:ip-address + | | | +--:(numbered) + | | | | +--rw numbered-hop + | | | | +--rw address? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(as-number) | | | | +--rw as-number-hop | | | | +--rw as-number? binary | | | | +--rw hop-type? te-hop-type - | | | +--:(unnumbered-link) + | | | +--:(unnumbered) | | | | +--rw unnumbered-hop - | | | | +--rw router-id? inet:ip- - address - | | | | +--rw interface-id? uint32 + | | | | +--rw node-id? te-types:te-node-id + | | | | +--rw link-tp-id? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(label) | | | | +--rw label-hop | | | | +--rw value? rt-types:generalized- label | | | +--:(sid) | | | +--rw sid-hop - | | | +--rw sid? rt-types:generalized- - label + | | | +--rw sid? rt-types:generalized-label | | +--rw backup-path* [index] | | | +--rw index uint32 | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | +--rw path-element-id uint32 | | | +--rw index? uint32 | | | +--rw (type)? - | | | +--:(ip-address) - | | | | +--rw ip-address-hop - | | | | +--rw address? inet:ip-address + | | | +--:(numbered) + | | | | +--rw numbered-hop + | | | | +--rw address? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(as-number) | | | | +--rw as-number-hop | | | | +--rw as-number? binary | | | | +--rw hop-type? te-hop-type - | | | +--:(unnumbered-link) + | | | +--:(unnumbered) | | | | +--rw unnumbered-hop - | | | | +--rw router-id? inet:ip- - address - | | | | +--rw interface-id? uint32 + | | | | +--rw node-id? te-types:te-node-id + | | | | +--rw link-tp-id? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(label) | | | | +--rw label-hop | | | | +--rw value? rt-types:generalized- label | | | +--:(sid) | | | +--rw sid-hop - | | | +--rw sid? rt-types:generalized- - label + | | | +--rw sid? rt-types:generalized-label | | +--rw protection-type? identityref | | +--rw tunnel-termination-points | | | +--rw source? binary | | | +--rw destination? binary | | +--rw tunnels | | +--rw sharing? boolean | | +--rw tunnel* [tunnel-name] | | +--rw tunnel-name string | | +--rw sharing? boolean - | +--rw max-lsp-bandwidth* [priority] - | | +--rw priority uint8 - | | +--rw bandwidth? te-bandwidth - | +--rw max-link-bandwidth? te-bandwidth - | +--rw max-resv-link-bandwidth? te-bandwidth - | +--rw unreserved-bandwidth* [priority] - | | +--rw priority uint8 - | | +--rw bandwidth? te-bandwidth - | +--rw te-default-metric? uint32 - | +--rw te-delay-metric? uint32 - | +--rw te-srlgs - | | +--rw value* te-types:srlg - | +--rw te-nsrlgs {nsrlg}? - | | +--rw id* uint32 + | +--rw path-constraints + | | +--rw path-metric-bound* [metric-type] + | | | +--rw metric-type identityref + | | | +--rw upper-bound? uint64 + | | +--rw topology-id? te-types:te-topology-id + | | +--rw ignore-overload? boolean + | | +--rw bandwidth-generic + | | | +--rw te-bandwidth + | | | +--rw (technology)? + | | | +--:(psc) + | | | | +--rw psc? rt-types:bandwidth-ieee- + float32 + | | | +--:(otn) + | | | | +--rw otn* [rate-type] + | | | | +--rw rate-type identityref + | | | | +--rw counter? uint16 + | | | +--:(lsc) + | | | | +--rw wdm* [spectrum slot] + | | | | +--rw spectrum identityref + | | | | +--rw slot int16 + | | | | +--rw width? uint16 + | | | +--:(generic) + | | | +--rw generic? te-bandwidth + | | +--rw disjointness? te-types:te-path- + disjointness + | | +--rw setup-priority? uint8 + | | +--rw hold-priority? uint8 + | | +--rw signaling-type? identityref + | | +--rw path-affinities + | | | +--rw constraint* [usage] + | | | +--rw usage identityref + | | | +--rw value? admin-groups + | | +--rw path-srlgs + | | +--rw usage? identityref + | | +--rw values* srlg + | +--rw optimizations + | | +--rw (algorithm)? + | | +--:(metric) {path-optimization-metric}? + | | | +--rw optimization-metric* [metric-type] + | | | | +--rw metric-type identityref + | | | | +--rw weight? uint8 + | | | +--rw tiebreakers + | | | +--rw tiebreaker* [tiebreaker-type] + | | | +--rw tiebreaker-type identityref + | | +--:(objective-function) {path-optimization- + objective-function}? + | | +--rw objective-function + | | +--rw objective-function-type? identityref + | +--ro computed-path-properties + | | +--ro path-metric* [metric-type] + | | | +--ro metric-type identityref + | | | +--ro accumulative-value? uint64 + | | +--ro path-affinities + | | | +--ro constraint* [usage] + | | | +--ro usage identityref + | | | +--ro value? admin-groups + | | +--ro path-srlgs + | | | +--ro usage? identityref + | | | +--ro values* srlg + | | +--ro path-computed-route-objects + | | +--ro path-computed-route-object* [index] + | | +--ro index uint32 + | | +--ro (type)? + | | +--:(numbered) + | | | +--ro numbered-hop + | | | +--ro address? te-types:te-tp-id + | | | +--ro hop-type? te-hop-type + | | +--:(as-number) + | | | +--ro as-number-hop + | | | +--ro as-number? binary + | | | +--ro hop-type? te-hop-type + | | +--:(unnumbered) + | | | +--ro unnumbered-hop + | | | +--ro node-id? te-types:te-node-id + | | | +--ro link-tp-id? te-types:te-tp-id + | | | +--ro hop-type? te-hop-type + | | +--:(label) + | | | +--ro label-hop + | | | +--ro value? rt-types:generalized- + label + | | +--:(sid) + | | +--ro sid-hop + | | +--ro sid? rt-types:generalized-label | +--rw local-link-connectivity* [link-tp-ref] | +--rw link-tp-ref leafref - | +--rw label-restriction* [inclusive-exclusive - label-start] + | +--rw label-restriction* [inclusive-exclusive label- + start] | | +--rw inclusive-exclusive enumeration - | | +--rw label-start rt- - types:generalized-label - | | +--rw label-end? rt- - types:generalized-label + | | +--rw label-start rt-types:generalized- + label + | | +--rw label-end? rt-types:generalized- + label | | +--rw range-bitmap? binary | +--rw is-allowed? boolean | +--rw underlay {te-topology-hierarchy}? | | +--rw enabled? boolean | | +--rw primary-path | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | +--rw path-element-id uint32 | | | +--rw index? uint32 | | | +--rw (type)? - | | | +--:(ip-address) - | | | | +--rw ip-address-hop - | | | | +--rw address? inet:ip-address + | | | +--:(numbered) + | | | | +--rw numbered-hop + | | | | +--rw address? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(as-number) | | | | +--rw as-number-hop | | | | +--rw as-number? binary | | | | +--rw hop-type? te-hop-type - | | | +--:(unnumbered-link) + | | | +--:(unnumbered) | | | | +--rw unnumbered-hop - | | | | +--rw router-id? inet:ip- - address - | | | | +--rw interface-id? uint32 + | | | | +--rw node-id? te-types:te- + node-id + | | | | +--rw link-tp-id? te-types:te-tp- + id | | | | +--rw hop-type? te-hop-type | | | +--:(label) | | | | +--rw label-hop - | | | | +--rw value? rt- - types:generalized-label + | | | | +--rw value? rt-types:generalized- + label | | | +--:(sid) | | | +--rw sid-hop - | | | +--rw sid? rt- - types:generalized-label + | | | +--rw sid? rt-types:generalized- + label | | +--rw backup-path* [index] | | | +--rw index uint32 | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | +--rw path-element-id uint32 | | | +--rw index? uint32 | | | +--rw (type)? - | | | +--:(ip-address) - | | | | +--rw ip-address-hop - | | | | +--rw address? inet:ip-address + | | | +--:(numbered) + | | | | +--rw numbered-hop + | | | | +--rw address? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(as-number) | | | | +--rw as-number-hop | | | | +--rw as-number? binary | | | | +--rw hop-type? te-hop-type - | | | +--:(unnumbered-link) + | | | +--:(unnumbered) | | | | +--rw unnumbered-hop - | | | | +--rw router-id? inet:ip- - address - | | | | +--rw interface-id? uint32 + | | | | +--rw node-id? te-types:te- + node-id + | | | | +--rw link-tp-id? te-types:te-tp- + id | | | | +--rw hop-type? te-hop-type | | | +--:(label) | | | | +--rw label-hop - | | | | +--rw value? rt- - types:generalized-label + | | | | +--rw value? rt-types:generalized- + label | | | +--:(sid) | | | +--rw sid-hop - | | | +--rw sid? rt- - types:generalized-label + | | | +--rw sid? rt-types:generalized- + label | | +--rw protection-type? identityref | | +--rw tunnel-termination-points | | | +--rw source? binary | | | +--rw destination? binary | | +--rw tunnels | | +--rw sharing? boolean | | +--rw tunnel* [tunnel-name] | | +--rw tunnel-name string | | +--rw sharing? boolean - | +--rw max-lsp-bandwidth* [priority] - | | +--rw priority uint8 - | | +--rw bandwidth? te-bandwidth - | +--rw max-link-bandwidth? te-bandwidth - | +--rw max-resv-link-bandwidth? te-bandwidth - | +--rw unreserved-bandwidth* [priority] - | | +--rw priority uint8 - | | +--rw bandwidth? te-bandwidth - | +--rw te-default-metric? uint32 - | +--rw te-delay-metric? uint32 - | +--rw te-srlgs - | | +--rw value* te-types:srlg - | +--rw te-nsrlgs {nsrlg}? - | +--rw id* uint32 - +--ro state - | +--ro admin-status? te-types:te-admin- - status - | +--ro name? string - | +--ro switching-capability? identityref - | +--ro encoding? identityref - | +--ro inter-layer-lock-id* uint32 - | +--ro protection-type? identityref - | +--ro client-layer-adaptation - | | +--ro switching-capability* [switching-capability - encoding] - | | +--ro switching-capability identityref - | | +--ro encoding identityref - | | +--ro bandwidth? te-bandwidth - | +--ro local-link-connectivities - | | +--ro number-of-entries? uint16 - | | +--ro label-restriction* [inclusive-exclusive label- - start] - | | | +--ro inclusive-exclusive enumeration - | | | +--ro label-start rt-types:generalized- - label - | | | +--ro label-end? rt-types:generalized- - label - | | | +--ro range-bitmap? binary - | | +--ro is-allowed? boolean - | | +--ro underlay {te-topology-hierarchy}? - | | | +--ro enabled? boolean - | | | +--ro primary-path - | | | | +--ro network-ref? leafref - | | | | +--ro path-element* [path-element-id] - | | | | +--ro path-element-id uint32 - | | | | +--ro index? uint32 - | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(as-number) - | | | | | +--ro as-number-hop - | | | | | +--ro as-number? binary - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) - | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip- - address - | | | | | +--ro interface-id? uint32 - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(label) - | | | | | +--ro label-hop - | | | | | +--ro value? rt-types:generalized- - label - | | | | +--:(sid) - | | | | +--ro sid-hop - | | | | +--ro sid? rt-types:generalized- - label - | | | +--ro backup-path* [index] - | | | | +--ro index uint32 - | | | | +--ro network-ref? leafref - | | | | +--ro path-element* [path-element-id] - | | | | +--ro path-element-id uint32 - | | | | +--ro index? uint32 - | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(as-number) - | | | | | +--ro as-number-hop - | | | | | +--ro as-number? binary - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) - | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip- - address - | | | | | +--ro interface-id? uint32 - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(label) - | | | | | +--ro label-hop - | | | | | +--ro value? rt-types:generalized- + | +--rw path-constraints + | | +--rw path-metric-bound* [metric-type] + | | | +--rw metric-type identityref + | | | +--rw upper-bound? uint64 + | | +--rw topology-id? te-types:te-topology-id + | | +--rw ignore-overload? boolean + | | +--rw bandwidth-generic + | | | +--rw te-bandwidth + | | | +--rw (technology)? + | | | +--:(psc) + | | | | +--rw psc? rt-types:bandwidth- + ieee-float32 + | | | +--:(otn) + | | | | +--rw otn* [rate-type] + | | | | +--rw rate-type identityref + | | | | +--rw counter? uint16 + | | | +--:(lsc) + | | | | +--rw wdm* [spectrum slot] + | | | | +--rw spectrum identityref + | | | | +--rw slot int16 + | | | | +--rw width? uint16 + | | | +--:(generic) + | | | +--rw generic? te-bandwidth + | | +--rw disjointness? te-types:te-path- + disjointness + | | +--rw setup-priority? uint8 + | | +--rw hold-priority? uint8 + | | +--rw signaling-type? identityref + | | +--rw path-affinities + | | | +--rw constraint* [usage] + | | | +--rw usage identityref + | | | +--rw value? admin-groups + | | +--rw path-srlgs + | | +--rw usage? identityref + | | +--rw values* srlg + | +--rw optimizations + | | +--rw (algorithm)? + | | +--:(metric) {path-optimization-metric}? + | | | +--rw optimization-metric* [metric-type] + | | | | +--rw metric-type identityref + | | | | +--rw weight? uint8 + | | | +--rw tiebreakers + | | | +--rw tiebreaker* [tiebreaker-type] + | | | +--rw tiebreaker-type identityref + | | +--:(objective-function) {path-optimization- + objective-function}? + | | +--rw objective-function + | | +--rw objective-function-type? + identityref + | +--ro computed-path-properties + | +--ro path-metric* [metric-type] + | | +--ro metric-type identityref + | | +--ro accumulative-value? uint64 + | +--ro path-affinities + | | +--ro constraint* [usage] + | | +--ro usage identityref + | | +--ro value? admin-groups + | +--ro path-srlgs + | | +--ro usage? identityref + | | +--ro values* srlg + | +--ro path-computed-route-objects + | +--ro path-computed-route-object* [index] + | +--ro index uint32 + | +--ro (type)? + | +--:(numbered) + | | +--ro numbered-hop + | | +--ro address? te-types:te-tp-id + | | +--ro hop-type? te-hop-type + | +--:(as-number) + | | +--ro as-number-hop + | | +--ro as-number? binary + | | +--ro hop-type? te-hop-type + | +--:(unnumbered) + | | +--ro unnumbered-hop + | | +--ro node-id? te-types:te- + node-id + | | +--ro link-tp-id? te-types:te-tp- + id + | | +--ro hop-type? te-hop-type + | +--:(label) + | | +--ro label-hop + | | +--ro value? rt-types:generalized- label - | | | | +--:(sid) - | | | | +--ro sid-hop - | | | | +--ro sid? rt-types:generalized- + | +--:(sid) + | +--ro sid-hop + | +--ro sid? rt-types:generalized- label - | | | +--ro protection-type? identityref - | | | +--ro tunnel-termination-points - | | | | +--ro source? binary - | | | | +--ro destination? binary - | | | +--ro tunnels - | | | +--ro sharing? boolean - | | | +--ro tunnel* [tunnel-name] - | | | +--ro tunnel-name string - | | | +--ro sharing? boolean - | | +--ro max-lsp-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro max-link-bandwidth? te-bandwidth - | | +--ro max-resv-link-bandwidth? te-bandwidth - | | +--ro unreserved-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro te-default-metric? uint32 - | | +--ro te-delay-metric? uint32 - | | +--ro te-srlgs - | | | +--ro value* te-types:srlg - | | +--ro te-nsrlgs {nsrlg}? - | | | +--ro id* uint32 - | | +--ro local-link-connectivity* [link-tp-ref] - | | +--ro link-tp-ref leafref - | | +--ro label-restriction* [inclusive-exclusive - label-start] - | | | +--ro inclusive-exclusive enumeration - | | | +--ro label-start rt- - types:generalized-label - | | | +--ro label-end? rt- - types:generalized-label - | | | +--ro range-bitmap? binary - | | +--ro is-allowed? boolean - | | +--ro underlay {te-topology-hierarchy}? - | | | +--ro enabled? boolean - | | | +--ro primary-path - | | | | +--ro network-ref? leafref - | | | | +--ro path-element* [path-element-id] - | | | | +--ro path-element-id uint32 - | | | | +--ro index? uint32 - | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(as-number) - | | | | | +--ro as-number-hop - | | | | | +--ro as-number? binary - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) - | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip- - address - | | | | | +--ro interface-id? uint32 - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(label) - | | | | | +--ro label-hop - | | | | | +--ro value? rt- - types:generalized-label - | | | | +--:(sid) - | | | | +--ro sid-hop - | | | | +--ro sid? rt- - types:generalized-label - | | | +--ro backup-path* [index] - | | | | +--ro index uint32 - | | | | +--ro network-ref? leafref - | | | | +--ro path-element* [path-element-id] - | | | | +--ro path-element-id uint32 - | | | | +--ro index? uint32 - | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(as-number) - | | | | | +--ro as-number-hop - | | | | | +--ro as-number? binary - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) - | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip- - address - | | | | | +--ro interface-id? uint32 - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(label) - | | | | | +--ro label-hop - | | | | | +--ro value? rt- - types:generalized-label - | | | | +--:(sid) - | | | | +--ro sid-hop - | | | | +--ro sid? rt- - types:generalized-label - | | | +--ro protection-type? identityref - | | | +--ro tunnel-termination-points - | | | | +--ro source? binary - | | | | +--ro destination? binary - | | | +--ro tunnels - | | | +--ro sharing? boolean - | | | +--ro tunnel* [tunnel-name] - | | | +--ro tunnel-name string - | | | +--ro sharing? boolean - | | +--ro max-lsp-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro max-link-bandwidth? te-bandwidth - | | +--ro max-resv-link-bandwidth? te-bandwidth - | | +--ro unreserved-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro te-default-metric? uint32 - | | +--ro te-delay-metric? uint32 - | | +--ro te-srlgs - | | | +--ro value* te-types:srlg - | | +--ro te-nsrlgs {nsrlg}? - | | +--ro id* uint32 - | +--ro oper-status? te-types:te-oper- - status - | +--ro geolocation + +--ro oper-status? te-types:te- + oper-status + +--ro geolocation | +--ro altitude? int64 | +--ro latitude? geographic-coordinate-degree | +--ro longitude? geographic-coordinate-degree +--ro statistics | +--ro discontinuity-time yang:date-and-time | +--ro tunnel-termination-point | | +--ro disables? yang:counter32 | | +--ro enables? yang:counter32 | | +--ro maintenance-clears? yang:counter32 | | +--ro maintenance-sets? yang:counter32 @@ -2619,291 +2717,311 @@ | +--ro deletes? yang:counter32 | +--ro disables? yang:counter32 | +--ro enables? yang:counter32 | +--ro modifies? yang:counter32 +--rw supporting-tunnel-termination-point* [node-ref tunnel- tp-ref] +--rw node-ref inet:uri +--rw tunnel-tp-ref binary augment /nw:networks/nw:network/nt:link: +--rw te! - +--rw config - | +--rw (bundle-stack-level)? - | | +--:(bundle) - | | | +--rw bundled-links - | | | +--rw bundled-link* [sequence] - | | | +--rw sequence uint32 - | | | +--rw src-tp-ref? leafref - | | | +--rw des-tp-ref? leafref - | | +--:(component) - | | +--rw component-links - | | +--rw component-link* [sequence] + +--rw (bundle-stack-level)? + | +--:(bundle) + | | +--rw bundled-links + | | +--rw bundled-link* [sequence] | | +--rw sequence uint32 - | | +--rw src-interface-ref? string - | | +--rw des-interface-ref? string - | +--rw te-link-template* leafref {template}? - | +--rw te-link-attributes + | | +--rw src-tp-ref? leafref + | | +--rw des-tp-ref? leafref + | +--:(component) + | +--rw component-links + | +--rw component-link* [sequence] + | +--rw sequence uint32 + | +--rw src-interface-ref? string + | +--rw des-interface-ref? string + +--rw te-link-template* leafref {template}? + +--rw te-link-attributes | +--rw access-type? te-types:te-link- access-type | +--rw external-domain | | +--rw network-ref? leafref | | +--rw remote-te-node-id? te-types:te-node-id | | +--rw remote-te-link-tp-id? te-types:te-tp-id | | +--rw plug-id? uint32 | +--rw is-abstract? empty | +--rw name? string | +--rw underlay {te-topology-hierarchy}? | | +--rw enabled? boolean | | +--rw primary-path | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | +--rw path-element-id uint32 | | | +--rw index? uint32 | | | +--rw (type)? - | | | +--:(ip-address) - | | | | +--rw ip-address-hop - | | | | +--rw address? inet:ip-address + | | | +--:(numbered) + | | | | +--rw numbered-hop + | | | | +--rw address? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(as-number) | | | | +--rw as-number-hop | | | | +--rw as-number? binary | | | | +--rw hop-type? te-hop-type - | | | +--:(unnumbered-link) + | | | +--:(unnumbered) | | | | +--rw unnumbered-hop - | | | | +--rw router-id? inet:ip-address - | | | | +--rw interface-id? uint32 + | | | | +--rw node-id? te-types:te-node-id + | | | | +--rw link-tp-id? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(label) | | | | +--rw label-hop - | | | | +--rw value? rt-types:generalized- - label + | | | | +--rw value? rt-types:generalized-label | | | +--:(sid) | | | +--rw sid-hop | | | +--rw sid? rt-types:generalized-label | | +--rw backup-path* [index] | | | +--rw index uint32 | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | +--rw path-element-id uint32 | | | +--rw index? uint32 | | | +--rw (type)? - | | | +--:(ip-address) - | | | | +--rw ip-address-hop - | | | | +--rw address? inet:ip-address + | | | +--:(numbered) + | | | | +--rw numbered-hop + | | | | +--rw address? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(as-number) | | | | +--rw as-number-hop | | | | +--rw as-number? binary | | | | +--rw hop-type? te-hop-type - | | | +--:(unnumbered-link) + | | | +--:(unnumbered) | | | | +--rw unnumbered-hop - | | | | +--rw router-id? inet:ip-address - | | | | +--rw interface-id? uint32 + | | | | +--rw node-id? te-types:te-node-id + | | | | +--rw link-tp-id? te-types:te-tp-id | | | | +--rw hop-type? te-hop-type | | | +--:(label) | | | | +--rw label-hop - | | | | +--rw value? rt-types:generalized- - label + | | | | +--rw value? rt-types:generalized-label | | | +--:(sid) | | | +--rw sid-hop | | | +--rw sid? rt-types:generalized-label | | +--rw protection-type? identityref | | +--rw tunnel-termination-points | | | +--rw source? binary | | | +--rw destination? binary | | +--rw tunnels | | +--rw sharing? boolean | | +--rw tunnel* [tunnel-name] | | +--rw tunnel-name string | | +--rw sharing? boolean - | +--rw admin-status? te-types:te- - admin-status + | +--rw admin-status? te-types:te-admin- + status | +--rw link-index? uint64 | +--rw administrative-group? te-types:admin- groups - | +--rw interface-switching-capability* [switching- - capability encoding] + | +--rw interface-switching-capability* [switching-capability + encoding] | | +--rw switching-capability identityref | | +--rw encoding identityref | | +--rw max-lsp-bandwidth* [priority] | | +--rw priority uint8 - | | +--rw bandwidth? te-bandwidth + | | +--rw bandwidth + | | +--rw te-bandwidth + | | +--rw (technology)? + | | +--:(psc) + | | | +--rw psc? rt-types:bandwidth-ieee- + float32 + | | +--:(otn) + | | | +--rw otn* [rate-type] + | | | +--rw rate-type identityref + | | | +--rw counter? uint16 + | | +--:(lsc) + | | | +--rw wdm* [spectrum slot] + | | | +--rw spectrum identityref + | | | +--rw slot int16 + | | | +--rw width? uint16 + | | +--:(generic) + | | +--rw generic? te-bandwidth + | +--rw label-restriction* [inclusive-exclusive label-start] + | | +--rw inclusive-exclusive enumeration + | | +--rw label-start rt-types:generalized-label + | | +--rw label-end? rt-types:generalized-label + | | +--rw range-bitmap? binary | +--rw link-protection-type? enumeration - | +--rw max-link-bandwidth? te-bandwidth - | +--rw max-resv-link-bandwidth? te-bandwidth + | +--rw max-link-bandwidth + | | +--rw te-bandwidth + | | +--rw (technology)? + | | +--:(psc) + | | | +--rw psc? rt-types:bandwidth-ieee-float32 + | | +--:(otn) + | | | +--rw otn* [rate-type] + | | | +--rw rate-type identityref + | | | +--rw counter? uint16 + | | +--:(lsc) + | | | +--rw wdm* [spectrum slot] + | | | +--rw spectrum identityref + | | | +--rw slot int16 + | | | +--rw width? uint16 + | | +--:(generic) + | | +--rw generic? te-bandwidth + | +--rw max-resv-link-bandwidth + | | +--rw te-bandwidth + | | +--rw (technology)? + | | +--:(psc) + | | | +--rw psc? rt-types:bandwidth-ieee-float32 + | | +--:(otn) + | | | +--rw otn* [rate-type] + | | | +--rw rate-type identityref + | | | +--rw counter? uint16 + | | +--:(lsc) + | | | +--rw wdm* [spectrum slot] + | | | +--rw spectrum identityref + | | | +--rw slot int16 + | | | +--rw width? uint16 + | | +--:(generic) + | | +--rw generic? te-bandwidth | +--rw unreserved-bandwidth* [priority] | | +--rw priority uint8 - | | +--rw bandwidth? te-bandwidth + | | +--rw bandwidth + | | +--rw te-bandwidth + | | +--rw (technology)? + | | +--:(psc) + | | | +--rw psc? rt-types:bandwidth-ieee- + float32 + | | +--:(otn) + | | | +--rw otn* [rate-type] + | | | +--rw rate-type identityref + | | | +--rw counter? uint16 + | | +--:(lsc) + | | | +--rw wdm* [spectrum slot] + | | | +--rw spectrum identityref + | | | +--rw slot int16 + | | | +--rw width? uint16 + | | +--:(generic) + | | +--rw generic? te-bandwidth | +--rw te-default-metric? uint32 | +--rw te-delay-metric? uint32 + | +--rw te-igp-metric? uint32 | +--rw te-srlgs | | +--rw value* te-types:srlg | +--rw te-nsrlgs {nsrlg}? | +--rw id* uint32 - +--ro state - | +--ro (bundle-stack-level)? - | | +--:(bundle) - | | | +--ro bundled-links - | | | +--ro bundled-link* [sequence] - | | | +--ro sequence uint32 - | | | +--ro src-tp-ref? leafref - | | | +--ro des-tp-ref? leafref - | | +--:(component) - | | +--ro component-links - | | +--ro component-link* [sequence] - | | +--ro sequence uint32 - | | +--ro src-interface-ref? string - | | +--ro des-interface-ref? string - | +--ro te-link-template* leafref {template}? - | +--ro te-link-attributes - | | +--ro access-type? te-types:te-link- - access-type - | | +--ro external-domain - | | | +--ro network-ref? leafref - | | | +--ro remote-te-node-id? te-types:te-node-id - | | | +--ro remote-te-link-tp-id? te-types:te-tp-id - | | | +--ro plug-id? uint32 - | | +--ro is-abstract? empty - | | +--ro name? string - | | +--ro underlay {te-topology-hierarchy}? - | | | +--ro enabled? boolean - | | | +--ro primary-path - | | | | +--ro network-ref? leafref - | | | | +--ro path-element* [path-element-id] - | | | | +--ro path-element-id uint32 - | | | | +--ro index? uint32 - | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(as-number) - | | | | | +--ro as-number-hop - | | | | | +--ro as-number? binary - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) - | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip-address - | | | | | +--ro interface-id? uint32 - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(label) - | | | | | +--ro label-hop - | | | | | +--ro value? rt-types:generalized- - label - | | | | +--:(sid) - | | | | +--ro sid-hop - | | | | +--ro sid? rt-types:generalized-label - | | | +--ro backup-path* [index] - | | | | +--ro index uint32 - | | | | +--ro network-ref? leafref - | | | | +--ro path-element* [path-element-id] - | | | | +--ro path-element-id uint32 - | | | | +--ro index? uint32 - | | | | +--ro (type)? - | | | | +--:(ip-address) - | | | | | +--ro ip-address-hop - | | | | | +--ro address? inet:ip-address - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(as-number) - | | | | | +--ro as-number-hop - | | | | | +--ro as-number? binary - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(unnumbered-link) - | | | | | +--ro unnumbered-hop - | | | | | +--ro router-id? inet:ip-address - | | | | | +--ro interface-id? uint32 - | | | | | +--ro hop-type? te-hop-type - | | | | +--:(label) - | | | | | +--ro label-hop - | | | | | +--ro value? rt-types:generalized- - label - | | | | +--:(sid) - | | | | +--ro sid-hop - | | | | +--ro sid? rt-types:generalized-label - | | | +--ro protection-type? identityref - | | | +--ro tunnel-termination-points - | | | | +--ro source? binary - | | | | +--ro destination? binary - | | | +--ro tunnels - | | | +--ro sharing? boolean - | | | +--ro tunnel* [tunnel-name] - | | | +--ro tunnel-name string - | | | +--ro sharing? boolean - | | +--ro admin-status? te-types:te- - admin-status - | | +--ro link-index? uint64 - | | +--ro administrative-group? te-types:admin- - groups - | | +--ro interface-switching-capability* [switching- - capability encoding] - | | | +--ro switching-capability identityref - | | | +--ro encoding identityref - | | | +--ro max-lsp-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro link-protection-type? enumeration - | | +--ro max-link-bandwidth? te-bandwidth - | | +--ro max-resv-link-bandwidth? te-bandwidth - | | +--ro unreserved-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro te-default-metric? uint32 - | | +--ro te-delay-metric? uint32 - | | +--ro te-srlgs - | | | +--ro value* te-types:srlg - | | +--ro te-nsrlgs {nsrlg}? - | | +--ro id* uint32 - | +--ro oper-status? te-types:te-oper-status - | +--ro is-transitional? empty - | +--ro information-source? te-info-source + +--ro oper-status? te-types:te-oper-status + +--ro is-transitional? empty + +--ro information-source? te-info-source + +--ro information-source-state + | +--ro credibility-preference? uint16 + | +--ro logical-network-element? string + | +--ro network-instance? string + | +--ro topology + | +--ro link-ref? leafref + | +--ro network-ref? leafref + +--ro information-source-entry* [information-source] + | +--ro information-source te-info-source | +--ro information-source-state | | +--ro credibility-preference? uint16 | | +--ro logical-network-element? string | | +--ro network-instance? string | | +--ro topology - | | +--ro network-ref? leafref | | +--ro link-ref? leafref - | +--ro information-source-entry* [information-source] - | | +--ro information-source te-info-source - | | +--ro information-source-state - | | | +--ro credibility-preference? uint16 - | | | +--ro logical-network-element? string - | | | +--ro network-instance? string - | | | +--ro topology - | | | +--ro network-ref? leafref - | | | +--ro link-ref? leafref - | | +--ro link-index? uint64 - | | +--ro administrative-group? te-types:admin- + | | +--ro network-ref? leafref + | +--ro link-index? uint64 + | +--ro administrative-group? te-types:admin- groups - | | +--ro interface-switching-capability* [switching- - capability encoding] - | | | +--ro switching-capability identityref - | | | +--ro encoding identityref - | | | +--ro max-lsp-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro link-protection-type? enumeration - | | +--ro max-link-bandwidth? te-bandwidth - | | +--ro max-resv-link-bandwidth? te-bandwidth - | | +--ro unreserved-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? te-bandwidth - | | +--ro te-default-metric? uint32 - | | +--ro te-delay-metric? uint32 - | | +--ro te-srlgs - | | | +--ro value* te-types:srlg - | | +--ro te-nsrlgs {nsrlg}? - | | +--ro id* uint32 - | +--ro recovery - | | +--ro restoration-status? te-types:te-recovery-status - | | +--ro protection-status? te-types:te-recovery-status - | +--ro underlay {te-topology-hierarchy}? + | +--ro interface-switching-capability* [switching-capability + encoding] + | | +--ro switching-capability identityref + | | +--ro encoding identityref + | | +--ro max-lsp-bandwidth* [priority] + | | +--ro priority uint8 + | | +--ro bandwidth + | | +--ro te-bandwidth + | | +--ro (technology)? + | | +--:(psc) + | | | +--ro psc? rt-types:bandwidth-ieee- + float32 + | | +--:(otn) + | | | +--ro otn* [rate-type] + | | | +--ro rate-type identityref + | | | +--ro counter? uint16 + | | +--:(lsc) + | | | +--ro wdm* [spectrum slot] + | | | +--ro spectrum identityref + | | | +--ro slot int16 + | | | +--ro width? uint16 + | | +--:(generic) + | | +--ro generic? te-bandwidth + | +--ro label-restriction* [inclusive-exclusive label-start] + | | +--ro inclusive-exclusive enumeration + | | +--ro label-start rt-types:generalized-label + | | +--ro label-end? rt-types:generalized-label + | | +--ro range-bitmap? binary + | +--ro link-protection-type? enumeration + | +--ro max-link-bandwidth + | | +--ro te-bandwidth + | | +--ro (technology)? + | | +--:(psc) + | | | +--ro psc? rt-types:bandwidth-ieee-float32 + | | +--:(otn) + | | | +--ro otn* [rate-type] + | | | +--ro rate-type identityref + | | | +--ro counter? uint16 + | | +--:(lsc) + | | | +--ro wdm* [spectrum slot] + | | | +--ro spectrum identityref + | | | +--ro slot int16 + | | | +--ro width? uint16 + | | +--:(generic) + | | +--ro generic? te-bandwidth + | +--ro max-resv-link-bandwidth + | | +--ro te-bandwidth + | | +--ro (technology)? + | | +--:(psc) + | | | +--ro psc? rt-types:bandwidth-ieee-float32 + | | +--:(otn) + | | | +--ro otn* [rate-type] + | | | +--ro rate-type identityref + | | | +--ro counter? uint16 + | | +--:(lsc) + | | | +--ro wdm* [spectrum slot] + | | | +--ro spectrum identityref + | | | +--ro slot int16 + | | | +--ro width? uint16 + | | +--:(generic) + | | +--ro generic? te-bandwidth + | +--ro unreserved-bandwidth* [priority] + | | +--ro priority uint8 + | | +--ro bandwidth + | | +--ro te-bandwidth + | | +--ro (technology)? + | | +--:(psc) + | | | +--ro psc? rt-types:bandwidth-ieee- + float32 + | | +--:(otn) + | | | +--ro otn* [rate-type] + | | | +--ro rate-type identityref + | | | +--ro counter? uint16 + | | +--:(lsc) + | | | +--ro wdm* [spectrum slot] + | | | +--ro spectrum identityref + | | | +--ro slot int16 + | | | +--ro width? uint16 + | | +--:(generic) + | | +--ro generic? te-bandwidth + | +--ro te-default-metric? uint32 + | +--ro te-delay-metric? uint32 + | +--ro te-igp-metric? uint32 + | +--ro te-srlgs + | | +--ro value* te-types:srlg + | +--ro te-nsrlgs {nsrlg}? + | +--ro id* uint32 + +--ro recovery + | +--ro restoration-status? te-types:te-recovery-status + | +--ro protection-status? te-types:te-recovery-status + +--ro underlay {te-topology-hierarchy}? | +--ro dynamic? boolean | +--ro committed? boolean +--ro statistics +--ro discontinuity-time yang:date-and-time +--ro disables? yang:counter32 +--ro enables? yang:counter32 +--ro maintenance-clears? yang:counter32 +--ro maintenance-sets? yang:counter32 +--ro modifies? yang:counter32 +--ro downs? yang:counter32 @@ -2911,63 +3029,65 @@ +--ro fault-clears? yang:counter32 +--ro fault-detects? yang:counter32 +--ro protection-switches? yang:counter32 +--ro protection-reverts? yang:counter32 +--ro restoration-failures? yang:counter32 +--ro restoration-starts? yang:counter32 +--ro restoration-successes? yang:counter32 +--ro restoration-reversion-failures? yang:counter32 +--ro restoration-reversion-starts? yang:counter32 +--ro restoration-reversion-successes? yang:counter32 + augment /nw:networks/nw:network/nw:node/nt:termination-point: +--rw te-tp-id? te-types:te-tp-id +--rw te! - +--rw config - | +--rw admin-status? te-types:te-admin- - status - | +--rw name? string - | +--rw interface-switching-capability* [switching-capability - encoding] - | | +--rw switching-capability identityref - | | +--rw encoding identityref - | | +--rw max-lsp-bandwidth* [priority] - | | +--rw priority uint8 - | | +--rw bandwidth? te-bandwidth - | +--rw inter-layer-lock-id* uint32 - +--ro state - +--ro admin-status? te-types:te-admin- + +--rw admin-status? te-types:te-admin- status - +--ro name? string - +--ro interface-switching-capability* [switching-capability + +--rw name? string + +--rw interface-switching-capability* [switching-capability encoding] - | +--ro switching-capability identityref - | +--ro encoding identityref - | +--ro max-lsp-bandwidth* [priority] - | +--ro priority uint8 - | +--ro bandwidth? te-bandwidth - +--ro inter-layer-lock-id* uint32 - +--ro oper-status? te-types:te-oper- - status + | +--rw switching-capability identityref + | +--rw encoding identityref + | +--rw max-lsp-bandwidth* [priority] + | +--rw priority uint8 + | +--rw bandwidth + | +--rw te-bandwidth + | +--rw (technology)? + | +--:(psc) + | | +--rw psc? rt-types:bandwidth-ieee- + float32 + | +--:(otn) + | | +--rw otn* [rate-type] + | | +--rw rate-type identityref + | | +--rw counter? uint16 + | +--:(lsc) + | | +--rw wdm* [spectrum slot] + | | +--rw spectrum identityref + | | +--rw slot int16 + | | +--rw width? uint16 + | +--:(generic) + | +--rw generic? te-bandwidth + +--rw inter-layer-lock-id* uint32 + +--ro oper-status? te-types:te-oper-status +--ro geolocation +--ro altitude? int64 +--ro latitude? geographic-coordinate-degree +--ro longitude? geographic-coordinate-degree 7. TE Topology Yang Module - file "ietf-te-topology@2017-06-10.yang" + file "ietf-te-topology@2017-07-02.yang" module ietf-te-topology { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; prefix "tet"; - import ietf-yang-types { prefix "yang"; } import ietf-inet-types { prefix "inet"; } import ietf-te-types { prefix "te-types"; @@ -3013,24 +3132,25 @@ Editor: Himanshu Shah Editor: Oscar Gonzalez De Dios "; description "TE topology model"; - revision "2017-06-10" { + revision "2017-07-02" { description "Initial revision"; reference "TBD"; } + /* * Features */ feature nsrlg { description "This feature indicates that the system supports NSRLG (Not Sharing Risk Link Group)."; } feature te-topology-hierarchy { @@ -3050,44 +3171,20 @@ */ typedef geographic-coordinate-degree { type decimal64 { fraction-digits 8; } description "Decimal degree (DD) used to express latitude and longitude geographic coordinates."; } // geographic-coordinate-degree - typedef te-bandwidth { - type string { - pattern - '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' - + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' - + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+' - + '(,(0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' - + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' - + '1[01]\d|0?\d?\d)?)|0[xX][\da-fA-F]{1,8}|\d+))*'; - } - description - "This is the generic bandwidth type that is a string containing - a list of numbers separated by commas, with each of these - number can be non-negative decimal, hex integer, or hex float: - (dec | hex | float)[*(','(dec | hex | float))] - For packet switching type, a float number is used, such as - 0x1p10. - For OTN switching type, a list of integers can be used, such - as '0,2,3,1', indicating 2 odu0's and 1 odu3. - For DWDM, a list of pairs of slot number and width can be - used, such as '0, 2, 3, 3', indicating a frequency slot 0 with - slot width 2 and a frequency slot 3 with slot width 3."; - } // te-bandwidth - typedef te-info-source { type enumeration { enum "unknown" { description "The source is unknown."; } enum "locally-configured" { description "Configured entity."; } enum "ospfv2" { description "OSPFv2."; @@ -3110,43 +3206,20 @@ } enum "other" { description "Other source."; } } description "Describining the type of source that has provided the related information, and the source credibility."; } // te-info-source - typedef te-path-disjointness { - type bits { - bit node { - position 0; - description "Node disjoint."; - } - bit link { - position 1; - description "Link disjoint."; - } - bit srlg { - position 2; - description "SRLG (Shared Risk Link Group) disjoint."; - } - } - description - "Type of the resource disjointness for a TE tunnel path."; - reference - "RFC4872: RSVP-TE Extensions in Support of End-to-End - Generalized Multi-Protocol Label Switching (GMPLS) - Recovery"; - } // te-path-disjointness - /* * Groupings */ grouping connectivity-label-restriction-list { description "List of abel restrictions specifying what labels may or may not be used on a link connectivity."; list label-restriction { key "inclusive-exclusive label-start"; description @@ -3182,50 +3256,53 @@ specified."; } leaf range-bitmap { type binary; description "When there are gaps between label-start and label-end, this attribute is used to specified the possitions of the used labels."; } } - } // connectivity-label-restriction-list - grouping connectivity-matrix-entry-attributes { + grouping connectivity-matrix-entry-path-attributes { description "Attributes of connectivity matrix entry."; leaf is-allowed { type boolean; description "true - switching is allowed, false - switching is disallowed."; } container underlay { if-feature te-topology-hierarchy; description "Attributes of the te-link underlay."; reference "RFC4206: Label Switched Paths (LSP) Hierarchy with Generalized Multi-Protocol Label Switching (GMPLS) Traffic Engineering (TE)"; uses te-link-underlay-attributes; } // underlay - uses te-link-iscd-attributes; - uses te-link-connectivity-attributes; - } // connectivity-matrix-entry-attributes + + uses te-types:generic-path-constraints; + uses te-types:generic-path-optimization; + uses te-types:generic-computed-path-properties; + + } // connectivity-matrix-entry-path-attributes grouping geolocation-container { description "A container containing a GPS location."; container geolocation{ + config false; description "A container containing a GPS location."; leaf altitude { type int64; units millimeter; description "Distance above the sea level."; } leaf latitude { type geographic-coordinate-degree { @@ -3271,85 +3348,71 @@ } // network-instance } // information-source-state-attributes grouping information-source-per-link-attributes { description "Per node container of the attributes identifying source that has provided the related information, and the source credibility."; leaf information-source { type te-info-source; + config false; description "Indicates the source of the information."; } container information-source-state { + config false; description "The container contains state attributes related to the information source."; uses information-source-state-attributes; container topology { description "When the information is processed by the system, the attributes in this container indicate which topology is used to process to generate the result information."; - uses te-topology-ref; - leaf link-ref { - type leafref { - path "/nw:networks/nw:network[nw:network-id = " - + "current()/../network-ref]/nt:link/nt:link-id"; - require-instance false; - } - description - "A reference to a link-id."; - } + uses nt:link-ref; + } // topology } // information-source-state } // information-source-per-link-attributes grouping information-source-per-node-attributes { description "Per node container of the attributes identifying source that has provided the related information, and the source credibility."; leaf information-source { type te-info-source; + config false; description "Indicates the source of the information."; } container information-source-state { + config false; description "The container contains state attributes related to the information source."; uses information-source-state-attributes; container topology { description "When the information is processed by the system, the attributes in this container indicate which topology is used to process to generate the result information."; - uses te-topology-ref; - leaf node-ref { - type leafref { - path "/nw:networks/nw:network[nw:network-id = " - + "current()/../network-ref]/nw:node/nw:node-id"; - require-instance false; - } - description - "A reference to a node-id."; - } + uses nw:node-ref; } // topology } // information-source-state } // information-source-per-node-attributes grouping interface-switching-capability-list { description "List of Interface Switching Capabilities Descriptors (ISCD)"; - list interface-switching-capability { key "switching-capability encoding"; description "List of Interface Switching Capabilities Descriptors (ISCD) for this link."; reference "RFC3471: Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description. RFC4203: OSPF Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)."; @@ -3667,20 +3730,33 @@ "Number of times that an LLCL entry was enabled."; } leaf modifies { type yang:counter32; description "Number of times that an LLCL entry was modified."; } } // local-link-connectivity } // statistics-per-ttp + grouping te-link-augment { + description + "Augmentation for TE link."; + uses te-link-config; + uses te-link-state-derived; + container statistics { + config false; + description + "Statistics data."; + uses statistics-per-link; + } // statistics + } // te-link-augment + grouping te-link-config { description "TE link configuration grouping."; choice bundle-stack-level { description "The TE link can be partitioned into bundled links, or component links."; case bundle { container bundled-links { description @@ -3691,44 +3767,20 @@ list bundled-link { key "sequence"; description "Specify a bundled interface that is further partitioned."; leaf sequence { type uint32; description "Identify the sequence in the bundle."; } - leaf src-tp-ref { - type leafref { - path "../../../../../../nw:node[nw:node-id = " - + "current()/../../../../../nt:source/" - + "nt:source-node]/" - + "nt:termination-point/nt:tp-id"; - require-instance true; - } - description - "Reference to another TE termination point on the - same souruce node."; - } - leaf des-tp-ref { - type leafref { - path "../../../../../../nw:node[nw:node-id = " - + "current()/../../../../../nt:destination/" - + "nt:dest-node]/" - + "nt:termination-point/nt:tp-id"; - require-instance true; - } - description - "Reference to another TE termination point on the - same destination node."; - } } // list bundled-link } } case component { container component-links { description "A set of component links"; list component-link { key "sequence"; description @@ -3754,21 +3806,21 @@ destinatioin node."; } } } } } // bundle-stack-level leaf-list te-link-template { if-feature template; type leafref { - path "../../../../../te/templates/link-template/name"; + path "../../../../te/templates/link-template/name"; } description "The reference to a TE link template."; } uses te-link-config-attributes; } // te-link-config grouping te-link-config-attributes { description "Link configuration attributes in a TE topology."; @@ -3778,21 +3830,21 @@ type te-types:te-link-access-type; description "Link access type, which can be point-to-point or multi-access."; } container external-domain { description "For an inter-domain link, specify the attributes of the remote end of link, to facilitate the signalling at local end."; - uses te-topology-ref; + uses nw:network-ref; leaf remote-te-node-id { type te-types:te-node-id; description "Remote TE node identifier, used together with remote-te-link-id to identify the remote link termination point in a different domain."; } leaf remote-te-link-tp-id { type te-types:te-tp-id; description @@ -3833,36 +3885,85 @@ leaf admin-status { type te-types:te-admin-status; description "The administrative state of the link."; } uses te-link-info-attributes; } // te-link-attributes } // te-link-config-attributes - grouping te-link-connectivity-attributes { + grouping te-link-info-attributes { description - "Advertised TE connectivity attributes."; - leaf max-link-bandwidth { - type te-bandwidth; + "Advertised TE information attributes."; + leaf link-index { + type uint64; + description + "The link identifier. If OSPF is used, this represents an + ospfLsdbID. If IS-IS is used, this represents an isisLSPID. + If a locally configured link is used, this object represents + a unique value, which is locally defined in a router."; + } + leaf administrative-group { + type te-types:admin-groups; + description + "Administrative group or color of the link. + + This attribute covers both administrative group (defined in + RFC3630, RFC5329, and RFC5305), and extended administrative + group (defined in RFC7308)."; + } + + uses interface-switching-capability-list; + uses connectivity-label-restriction-list; + + leaf link-protection-type { + type enumeration { + enum "unprotected" { + description "Unprotected."; + } + enum "extra-traffic" { + description "Extra traffic."; + } + enum "shared" { + description "Shared."; + } + enum "1-for-1" { + description "One for one protection."; + } + enum "1-plus-1" { + description "One plus one protection."; + } + enum "enhanced" { + description "Enhanced protection."; + } + } + description + "Link Protection Type desired for this link."; + reference + "RFC4202: Routing Extensions in Support of + Generalized Multi-Protocol Label Switching (GMPLS)."; + } + + container max-link-bandwidth { + uses te-types:te-bandwidth; description "Maximum bandwidth that can be seen on this link in this direction. Units in bytes per second."; reference "RFC3630: Traffic Engineering (TE) Extensions to OSPF Version 2. RFC5305: IS-IS Extensions for Traffic Engineering."; } - leaf max-resv-link-bandwidth { - type te-bandwidth; + container max-resv-link-bandwidth { + uses te-types:te-bandwidth; description "Maximum amount of bandwidth that can be reserved in this direction in this link. Units in bytes per second."; reference "RFC3630: Traffic Engineering (TE) Extensions to OSPF Version 2. RFC5305: IS-IS Extensions for Traffic Engineering."; } list unreserved-bandwidth { key "priority"; @@ -3873,36 +3974,50 @@ reference "RFC3630: Traffic Engineering (TE) Extensions to OSPF Version 2. RFC5305: IS-IS Extensions for Traffic Engineering."; leaf priority { type uint8 { range "0..7"; } description "Priority."; } - leaf bandwidth { - type te-bandwidth; + container bandwidth { + uses te-types:te-bandwidth; description "Unreserved bandwidth for this level."; } } leaf te-default-metric { type uint32; description "Traffic engineering metric."; + reference + "RFC3630: Traffic Engineering (TE) Extensions to OSPF + Version 2. + RFC5305: IS-IS Extensions for Traffic Engineering."; } leaf te-delay-metric { type uint32; description "Traffic engineering delay metric."; + reference + "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions."; + } + leaf te-igp-metric { + type uint32; + description + "IGP metric used for traffic engineering."; + reference + "RFC3785: Use of Interior Gateway Protocol (IGP) Metric as a + Second MPLS Traffic Engineering (TE) Metric."; } container te-srlgs { description "Containing a list of SLRGs."; leaf-list value { type te-types:srlg; description "SRLG value."; reference "RFC4202: Routing Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)."; @@ -3919,129 +4034,83 @@ leaf-list id { type uint32; description "NSRLG ID, uniquely configured within a topology."; reference "RFC4872: RSVP-TE Extensions in Support of End-to-End Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; } } - } // te-link-connectivity-attributes - - grouping te-link-info-attributes { - description - "Advertised TE information attributes."; - leaf link-index { - type uint64; - description - "The link identifier. If OSPF is used, this represents an - ospfLsdbID. If IS-IS is used, this represents an isisLSPID. - If a locally configured link is used, this object represents - a unique value, which is locally defined in a router."; - } - leaf administrative-group { - type te-types:admin-groups; - description - "Administrative group or color of the link. - This attribute covers both administrative group (defined in - RFC3630, RFC5329, and RFC5305), and extended administrative - group (defined in RFC7308)."; - } - uses interface-switching-capability-list; - leaf link-protection-type { - type enumeration { - enum "unprotected" { - description "Unprotected."; - } - enum "extra-traffic" { - description "Extra traffic."; - } - enum "shared" { - description "Shared."; - } - enum "1-for-1" { - description "One for one protection."; - } - enum "1-plus-1" { - description "One plus one protection."; - } - enum "enhanced" { - description "Enhanced protection."; - } - } - description - "Link Protection Type desired for this link."; - reference - "RFC4202: Routing Extensions in Support of - Generalized Multi-Protocol Label Switching (GMPLS)."; - } - uses te-link-connectivity-attributes; } // te-link-info-attributes grouping te-link-iscd-attributes { description "TE link ISCD (Interface Switching Capability Descriptor) attributes."; reference "Sec 1.4, RFC4203: OSPF Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS). Section 1.4."; list max-lsp-bandwidth { key "priority"; max-elements "8"; description "Maximum LSP Bandwidth at priorities 0-7."; leaf priority { type uint8 { range "0..7"; } description "Priority."; } - leaf bandwidth { - type te-bandwidth; + container bandwidth { + uses te-types:te-bandwidth; description "Max LSP Bandwidth for this level"; } } } // te-link-iscd-attributes grouping te-link-state-derived { description "Link state attributes in a TE topology."; leaf oper-status { type te-types:te-oper-status; + config false; description "The current operational state of the link."; } leaf is-transitional { type empty; + config false; description "Present if the link is transitional, used as an alternative approach in lieu of inter-layer-lock-id for path computation in a TE topology covering multiple layers or multiple regions."; reference "RFC5212: Requirements for GMPLS-Based Multi-Region and Multi-Layer Networks (MRN/MLN). RFC6001: Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN)."; } uses information-source-per-link-attributes; list information-source-entry { key "information-source"; + config false; description "A list of information sources learned, including the one used."; uses information-source-per-link-attributes; uses te-link-info-attributes; } container recovery { + config false; description "Status of the recovery process."; leaf restoration-status { type te-types:te-recovery-status; description "Restoration status."; } leaf protection-status { type te-types:te-recovery-status; description @@ -4039,30 +4108,31 @@ "Status of the recovery process."; leaf restoration-status { type te-types:te-recovery-status; description "Restoration status."; } leaf protection-status { type te-types:te-recovery-status; description "Protection status."; + } } container underlay { if-feature te-topology-hierarchy; + config false; description "State attributes for te-link underlay."; leaf dynamic { type boolean; description "true if the underlay is dynamically created."; - } leaf committed { type boolean; description "true if the underlay is committed."; } } } // te-link-state-derived grouping te-link-underlay-attributes { @@ -4074,21 +4144,21 @@ leaf enabled { type boolean; description "'true' if the underlay is enabled. 'false' if the underlay is disabled."; } container primary-path { description "The service path on the underlay topology that supports this link."; - uses te-topology-ref; + uses nw:network-ref; list path-element { key "path-element-id"; description "A list of path elements describing the service path."; leaf path-element-id { type uint32; description "To identify the element in a path."; } uses te-path-element; } @@ -4099,21 +4169,21 @@ "A list of backup service paths on the underlay topology that protect the underlay primary path. If the primary path is not protected, the list contains zero elements. If the primary path is protected, the list contains one or more elements."; leaf index { type uint32; description "A sequence number to identify a backup path."; } - uses te-topology-ref; + uses nw:network-ref; list path-element { key "path-element-id"; description "A list of path elements describing the backup service path"; leaf path-element-id { type uint32; description "To identify the element in a path."; } uses te-path-element; @@ -4172,47 +4242,109 @@ leaf sharing { type boolean; description "'true' if the underlay tunnel can be shared with other TE links; 'false' if the underlay tunnel is dedicated to this TE link."; } } // tunnel } // tunnels - } // te-link-underlay-attributes + grouping te-node-augment { + description + "Augmentation for TE node."; + uses te-node-config; + uses te-node-state-derived; + container statistics { + config false; + description + "Statistics data."; + uses statistics-per-node; + } // statistics + + list tunnel-termination-point { + key "tunnel-tp-id"; + description + "A termination point can terminate a tunnel."; + leaf tunnel-tp-id { + type binary; + description + "Tunnel termination point identifier."; + } + + uses te-node-tunnel-termination-point-config; + leaf oper-status { + type te-types:te-oper-status; + config false; + description + "The current operational state of the tunnel + termination point."; + + } + uses geolocation-container; + container statistics { + config false; + description + "Statistics data."; + uses statistics-per-ttp; + } // statistics + + // Relations to other tunnel termination points + list supporting-tunnel-termination-point { + key "node-ref tunnel-tp-ref"; + description + "Identifies the tunnel termination points, that this + tunnel termination point is depending on."; + leaf node-ref { + type inet:uri; + description + "This leaf identifies the node in which the supporting + tunnel termination point is present. + This node is either the supporting node or a node in + an underlay topology."; + } + leaf tunnel-tp-ref { + type binary; + description + "Reference to a tunnel terminiation point, which is + either in the supporting node or a node in an + underlay topology."; + } + } // supporting-tunnel-termination-point + } // tunnel-termination-point + } // te-node-augment + grouping te-node-config { description "TE node configuration grouping."; - leaf-list te-node-template { if-feature template; type leafref { - path "../../../../../te/templates/node-template/name"; + path "../../../../te/templates/node-template/name"; } description "The reference to a TE node template."; } uses te-node-config-attributes; } // te-node-config grouping te-node-config-attributes { description "Configuration node attributes in a TE topology."; container te-node-attributes { description "Containing node attributes in a TE topology."; leaf admin-status { type te-types:te-admin-status; description "The administrative state of the link."; } - uses te-node-connectivity-matrix; + uses te-node-connectivity-matrices; uses te-node-info-attributes; } // te-node-attributes } // te-node-config-attributes grouping te-node-config-attributes-template { description "Configuration node attributes for template in a TE topology."; container te-node-attributes { description "Containing node attributes in a TE topology."; leaf admin-status { @@ -4214,118 +4346,85 @@ description "Configuration node attributes for template in a TE topology."; container te-node-attributes { description "Containing node attributes in a TE topology."; leaf admin-status { type te-types:te-admin-status; description "The administrative state of the link."; } uses te-node-info-attributes; - } // te-node-attributes } // te-node-config-attributes-template - grouping te-node-connectivity-matrix { + grouping te-node-connectivity-matrices { description "Connectivity matrix on a TE node."; container connectivity-matrices { description "Containing connectivity matrix on a TE node."; leaf number-of-entries { type uint16; description "The number of connectivity matrix entries. If this number is speficied in the configuration request, the number is requested number of entries, which may not all be listed in the list; if this number is reported in the state data, the number is the current number of operational entries."; } uses connectivity-label-restriction-list; - uses connectivity-matrix-entry-attributes; + uses connectivity-matrix-entry-path-attributes; list connectivity-matrix { key "id"; description "Represents node's switching limitations, i.e. limitations in interconnecting network TE links across the node."; reference "RFC7579: General Network Element Constraint Encoding for GMPLS-Controlled Networks."; leaf id { type uint32; description "Identifies the connectivity-matrix entry."; } + } // connectivity-matrix + } // connectivity-matrices + } // te-node-connectivity-matrices + + grouping te-node-connectivity-matrix-attributes { + description + "Termination point references of a connectivity matrix entry."; container from { description "Reference to source link termination point."; leaf tp-ref { type leafref { - path "../../../../../../../nt:termination-point/"+ - "nt:tp-id"; + path "../../../../../../nt:termination-point/nt:tp-id"; } description - "Relative reference to source termination point."; + "Relative reference to a termination point."; } uses connectivity-label-restriction-list; } container to { description "Reference to destination link termination point."; leaf tp-ref { type leafref { - path "../../../../../../../nt:termination-point/"+ - "nt:tp-id"; + path "../../../../../../nt:termination-point/nt:tp-id"; } description - "Relative reference to destination termination point."; + "Relative reference to a termination point."; } uses connectivity-label-restriction-list; } - uses connectivity-matrix-entry-attributes; - } // connectivity-matrix - } // connectivity-matrices - } // te-node-connectivity-matrix - - grouping te-node-connectivity-matrix-abs { - description - "Connectivity matrix on a TE node, using absolute - paths to reference termination points."; - list connectivity-matrix { - key "id"; - description - "Represents node's switching limitations, i.e. limitations - in interconnecting network TE links across the node."; - reference - "RFC7579: General Network Element Constraint Encoding - for GMPLS-Controlled Networks."; - leaf id { - type uint32; - description "Identifies the connectivity-matrix entry."; - } - container from { - uses nt:tp-ref; - description - "Reference to source NTP."; - } - container to { - uses nt:tp-ref; - description - "Reference to destination NTP."; - } - leaf is-allowed { - type boolean; - description - "true - switching is allowed, - false - switching is disallowed."; - } - } - } // te-node-connectivity-matrix-abs + uses connectivity-matrix-entry-path-attributes; + } // te-node-connectivity-matrix-attributes grouping te-node-info-attributes { description "Advertised TE information attributes."; leaf domain-id { type uint32; description "Identifies the domain that this node belongs. This attribute is used to support inter-domain links."; reference @@ -4349,60 +4449,86 @@ } leaf-list signaling-address { type inet:ip-address; description "Node signaling address."; } container underlay-topology { if-feature te-topology-hierarchy; description "When an abstract node encapsulates a topology, the attributes in this container point to said topology."; - uses te-topology-ref; + uses nw:network-ref; } } // te-node-info-attributes grouping te-node-state-derived { description "Node state attributes in a TE topology."; leaf oper-status { type te-types:te-oper-status; + config false; description "The current operational state of the node."; } uses geolocation-container; leaf is-multi-access-dr { type empty; + config false; description "The presence of this attribute indicates that this TE node is a pseudonode elected as a designated router."; reference "RFC3630: Traffic Engineering (TE) Extensions to OSPF Version 2. RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual Environments."; } uses information-source-per-node-attributes; list information-source-entry { key "information-source"; + config false; description "A list of information sources learned, including the one used."; uses information-source-per-node-attributes; - uses te-node-connectivity-matrix; + uses te-node-connectivity-matrices; uses te-node-info-attributes; } } // te-node-state-derived - grouping te-node-tunnel-termination-attributes { + grouping te-node-tunnel-termination-point-config { description "Termination capability of a tunnel termination point on a TE node."; + uses te-node-tunnel-termination-point-config-attributes; + container local-link-connectivities { + description + "Containing local link connectivity list for + a tunnel termination point on a TE node."; + leaf number-of-entries { + type uint16; + description + "The number of local link connectivity list entries. + If this number is speficied in the configuration request, + the number is requested number of entries, which may not + all be listed in the list; + if this number is reported in the state data, + the number is the current number of operational entries."; + } + uses connectivity-label-restriction-list; + uses connectivity-matrix-entry-path-attributes; + } // local-link-connectivities + } // te-node-tunnel-termination-point-config + grouping te-node-tunnel-termination-point-config-attributes { + description + "Configuration attributes of a tunnel termination point on a + TE node."; leaf admin-status { type te-types:te-admin-status; description "The administrative state of the tunnel termination point."; } leaf name { type string; description "A descriptive name for the tunnel termination point."; } @@ -4460,44 +4586,33 @@ description "Switching Capability for the client layer adaption."; } leaf encoding { type identityref { base te-types:lsp-encoding-types; } description "Encoding supported by the client layer adaption."; } - leaf bandwidth { - type te-bandwidth; + container bandwidth { + uses te-types:te-bandwidth; description "Bandwidth available for the client layer adaption."; } } } + } // te-node-tunnel-termination-point-config-attributes - container local-link-connectivities { - description - "Containing local link connectivity list for - a tunnel termination point on a TE node."; - leaf number-of-entries { - type uint16; + grouping te-node-tunnel-termination-point-llc-list { description - "The number of local link connectivity list entries. - If this number is speficied in the configuration request, - the number is requested number of entries, which may not - all be listed in the list; - if this number is reported in the state data, - the number is the current number of operational entries."; - } - uses connectivity-label-restriction-list; - uses connectivity-matrix-entry-attributes; + "Local link connectivity list of a tunnel termination + point on a TE node."; list local-link-connectivity { key "link-tp-ref"; description "The termination capabilities between tunnel-termination-point and link termination-point. The capability information can be used to compute the tunnel path. The Interface Adjustment Capability Descriptors (IACD) [RFC6001] on each link-tp can be derived from this local-link-connectivity list."; @@ -4497,41 +4612,67 @@ "The termination capabilities between tunnel-termination-point and link termination-point. The capability information can be used to compute the tunnel path. The Interface Adjustment Capability Descriptors (IACD) [RFC6001] on each link-tp can be derived from this local-link-connectivity list."; reference "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN)."; + leaf link-tp-ref { type leafref { - path "../../../../../../nt:termination-point/nt:tp-id"; + path "../../../../../nt:termination-point/nt:tp-id"; } description "Link termination point."; } - uses connectivity-label-restriction-list; - uses connectivity-matrix-entry-attributes; + uses connectivity-matrix-entry-path-attributes; } // local-link-connectivity - } // local-link-connectivities - } // te-node-tunnel-termination-attributes + } // te-node-tunnel-termination-point-config grouping te-path-element { description "A group of attributes defining an element in a TE path such as TE node, TE link, TE atomic resource or label."; uses te-types:explicit-route-hop_config; } // te-path-element + grouping te-termination-point-augment { + description + "Augmentation for TE termination point."; + leaf te-tp-id { + type te-types:te-tp-id; + description + "An identifier to uniquely identify a TE termination + point."; + } + container te { + must "../te-tp-id"; + presence "TE support."; + description + "Indicates TE support."; + + uses te-termination-point-config; + leaf oper-status { + type te-types:te-oper-status; + config false; + description + "The current operational state of the link termination + point."; + } + uses geolocation-container; + } // te + } // te-termination-point-augment + grouping te-termination-point-config { description "TE termination point configuration grouping."; leaf admin-status { type te-types:te-admin-status; description "The administrative state of the link termination point."; } leaf name { type string; @@ -4543,26 +4684,103 @@ type uint32; description "Inter layer lock ID, used for path computation in a TE topology covering multiple layers or multiple regions."; reference "RFC5212: Requirements for GMPLS-Based Multi-Region and Multi-Layer Networks (MRN/MLN). RFC6001: Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN)."; } - } // te-termination-point-config + grouping te-topologies-augment { + description + "Augmentation for TE topologies."; + container te { + presence "TE support."; + description + "Indicates TE support."; + + container templates { + description + "Configuration parameters for templates used for TE + topology."; + + list node-template { + if-feature template; + key "name"; + leaf name { + type te-types:te-template-name; + description + "The name to identify a TE node template."; + } + description + "The list of TE node templates used to define sharable + and reusable TE node attributes."; + uses template-attributes; + uses te-node-config-attributes-template; + } // node-template + + list link-template { + if-feature template; + key "name"; + leaf name { + type te-types:te-template-name; + description + "The name to identify a TE link template."; + } + description + "The list of TE link templates used to define sharable + and reusable TE link attributes."; + uses template-attributes; + uses te-link-config-attributes; + } // link-template + } // templates + } // te + } // te-topologies-augment + + grouping te-topology-augment { + description + "Augmentation for TE topology."; + leaf provider-id { + type te-types:te-global-id; + description + "An identifier to uniquely identify a provider."; + } + leaf client-id { + type te-types:te-global-id; + description + "An identifier to uniquely identify a client."; + } + leaf te-topology-id { + type te-types:te-topology-id; + description + "It is presumed that a datastore will contain many + topologies. To distinguish between topologies it is + vital to have UNIQUE topology identifiers."; + } + + container te { + must "../provider-id and ../client-id and ../te-topology-id"; + presence "TE support."; + description + "Indicates TE support."; + + uses te-topology-config; + uses geolocation-container; + } // te + } // te-topology-augment grouping te-topology-config { description "TE topology configuration grouping."; + leaf preference { type uint8 { range "1..255"; } description "Specifies a preference for this topology. A lower number indicates a higher preference."; } leaf optimization-criterion { type identityref { @@ -4582,45 +4800,30 @@ reference "RFC4872: RSVP-TE Extensions in Support of End-to-End Generalized Multi-Protocol Label Switching (GMPLS) Recovery"; leaf id { type uint32; description "Identify the NSRLG entry."; } leaf disjointness { - type te-path-disjointness; + type te-types:te-path-disjointness; description "The type of resource disjointness."; - } } // nsrlg } // te-topology-config - grouping te-topology-ref { - description - "References a TE topology."; - leaf network-ref { - type leafref { - path "/nw:networks/nw:network/nw:network-id"; - require-instance false; - } - description - "A reference to a network-id in base ietf-network module."; - } - } // te-topology-ref - grouping template-attributes { description "Common attributes for all templates."; - leaf priority { type uint16; description "The preference value to resolve conflicts between different templates. When two or more templates specify values for one configuration attribute, the value from the template with the highest priority is used."; } leaf reference-change-policy { type enumeration { @@ -4644,142 +4846,63 @@ configuration."; } } description "This attribute specifies the action taken to a configuration node that has a reference to this template."; } } // template-attributes /* - * Configuration data nodes + * Data nodes */ augment "/nw:networks/nw:network/nw:network-types" { description "Introduce new network type for TE topology."; container te-topology { presence "Indicates TE topology."; description "Its presence identifies the TE topology type."; } } augment "/nw:networks" { description "Augmentation parameters for TE topologies."; - - container te { - presence "TE support."; - description - "Indicates TE support."; - - container templates { - description - "Configuration parameters for templates used for TE - topology."; - - list node-template { - if-feature template; - key "name"; - leaf name { - type te-types:te-template-name; - description - "The name to identify a TE node template."; - } - description - "The list of TE node templates used to define sharable - and reusable TE node attributes."; - uses template-attributes; - uses te-node-config-attributes-template; - } // node-template - - list link-template { - if-feature template; - key "name"; - leaf name { - type te-types:te-template-name; - description - "The name to identify a TE link template."; - } - description - "The list of TE link templates used to define sharable - and reusable TE link attributes."; - uses template-attributes; - uses te-link-config-attributes; - } // link-template - } // templates - } // te + uses te-topologies-augment; } augment "/nw:networks/nw:network" { when "nw:network-types/te-topology" { description "Augmentation parameters apply only for networks with TE topology type."; } description "Configuration parameters for TE topology."; - - leaf provider-id { - type te-types:te-global-id; - description - "An identifier to uniquely identify a provider."; - } - leaf client-id { - type te-types:te-global-id; - description - "An identifier to uniquely identify a client."; - } - leaf te-topology-id { - type te-types:te-topology-id; - description - "It is presumed that a datastore will contain many - topologies. To distinguish between topologies it is - vital to have UNIQUE topology identifiers."; + uses te-topology-augment; } - container te { - must "../provider-id and ../client-id and ../te-topology-id"; - presence "TE support."; - description - "Indicates TE support."; - - container config { - description - "Configuration data."; - uses te-topology-config; - } // config - container state { - config false; - description - "Operational state data."; - uses te-topology-config; - uses geolocation-container; - } // state - } // te - } augment "/nw:networks/nw:network/nw:node" { when "../nw:network-types/te-topology" { description "Augmentation parameters apply only for networks with TE topology type."; } description "Configuration parameters for TE at node level."; - leaf te-node-id { type te-types:te-node-id; description "The identifier of a node in the TE topology. A node is specific to a topology to which it belongs."; } - container te { must "../te-node-id" { description "te-node-id is mandatory."; } must "count(../nw:supporting-node)<=1" { description "For a node in a TE topology, there cannot be more than 1 supporting node. If multiple nodes are abstracted, the underlay-topology is used."; @@ -4780,186 +4903,134 @@ } must "count(../nw:supporting-node)<=1" { description "For a node in a TE topology, there cannot be more than 1 supporting node. If multiple nodes are abstracted, the underlay-topology is used."; } presence "TE support."; description "Indicates TE support."; - - container config { - description - "Configuration data."; - uses te-node-config; - } // config - container state { - config false; - description - "Operational state data."; - - uses te-node-config; - uses te-node-state-derived; - } // state - container statistics { - config false; - description - "Statistics data."; - uses statistics-per-node; - } // statistics - - list tunnel-termination-point { - key "tunnel-tp-id"; - description - "A termination point can terminate a tunnel."; - leaf tunnel-tp-id { - type binary; - description - "Tunnel termination point identifier."; - } - - container config { - description - "Configuration data."; - uses te-node-tunnel-termination-attributes; - } - container state { - config false; - description - "Operational state data."; - - uses te-node-tunnel-termination-attributes; - leaf oper-status { - type te-types:te-oper-status; - description - "The current operational state of the tunnel - termination point."; - } - uses geolocation-container; - } // state - container statistics { - config false; - description - "Statistics data."; - uses statistics-per-ttp; - } // statistics - - // Relations to other tunnel termination points - list supporting-tunnel-termination-point { - key "node-ref tunnel-tp-ref"; - description - "Identifies the tunnel termination points, that this - tunnel termination point is depending on."; - leaf node-ref { - type inet:uri; - description - "This leaf identifies the node in which the supporting - tunnel termination point is present. - This node is either the supporting node or a node in - an underlay topology."; - } - leaf tunnel-tp-ref { - type binary; - description - "Reference to a tunnel terminiation point, which is - either in the supporting node or a node in an - underlay topology."; - } - } // supporting-tunnel-termination-point - } // tunnel-termination-point + uses te-node-augment; } // te } augment "/nw:networks/nw:network/nt:link" { when "../nw:network-types/te-topology" { description "Augmentation parameters apply only for networks with TE topology type."; } description - "Configuration parameters for TE at link level"; - + "Configuration parameters for TE at link level."; container te { must "count(../nt:supporting-link)<=1" { description "For a link in a TE topology, there cannot be more than 1 supporting link. If one or more link paths are abstracted, the underlay is used."; } presence "TE support."; description "Indicates TE support."; - - container config { - description - "Configuration data."; - uses te-link-config; - } // config - container state { - config false; - description - "Operational state data."; - uses te-link-config; - uses te-link-state-derived; - } // state - container statistics { - config false; - description - "Statistics data."; - uses statistics-per-link; - } // statistics + uses te-link-augment; } // te } augment "/nw:networks/nw:network/nw:node/" + "nt:termination-point" { + when "../../nw:network-types/te-topology" { description "Augmentation parameters apply only for networks with TE topology type."; } description - "Configuration parameters for TE at termination point level"; + "Configuration parameters for TE at termination point level."; + uses te-termination-point-augment; + } - leaf te-tp-id { - type te-types:te-tp-id; + augment + "/nw:networks/nw:network/nt:link/te/bundle-stack-level/" + + "bundle/bundled-links/bundled-link" { + when "../../../../nw:network-types/te-topology" { description - "An identifier to uniquely identify a TE termination - point."; + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Augment TE link bundled link."; + leaf src-tp-ref { + type leafref { + path "../../../../../nw:node[nw:node-id = " + + "current()/../../../../nt:source/" + + "nt:source-node]/" + + "nt:termination-point/nt:tp-id"; + require-instance true; + } + description + "Reference to another TE termination point on the + same souruce node."; + } + leaf des-tp-ref { + type leafref { + path "../../../../../nw:node[nw:node-id = " + + "current()/../../../../nt:destination/" + + "nt:dest-node]/" + + "nt:termination-point/nt:tp-id"; + require-instance true; + } + description + "Reference to another TE termination point on the + same destination node."; + } } - container te { - must "../te-tp-id"; - presence "TE support."; + augment + "/nw:networks/nw:network/nw:node/te/" + + "information-source-entry/connectivity-matrices/" + + "connectivity-matrix" { + when "../../../../../nw:network-types/te-topology" { description - "Indicates TE support."; + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Augment TE node connectivity-matrix."; + uses te-node-connectivity-matrix-attributes; + } - container config { + augment + "/nw:networks/nw:network/nw:node/te/te-node-attributes/" + + "connectivity-matrices/connectivity-matrix" { + when "../../../../../nw:network-types/te-topology" { description - "Configuration data."; - uses te-termination-point-config; - } // config - container state { - config false; + "Augmentation parameters apply only for networks with + TE topology type."; + } description - "Operational state data."; - uses te-termination-point-config; - leaf oper-status { - type te-types:te-oper-status; + "Augment TE node connectivity-matrix."; + uses te-node-connectivity-matrix-attributes; + } + + augment + "/nw:networks/nw:network/nw:node/te/" + + "tunnel-termination-point/local-link-connectivities" { + when "../../../../nw:network-types/te-topology" { description - "The current operational state of the link termination - point."; + "Augmentation parameters apply only for networks with + TE topology type."; } - uses geolocation-container; - } // state - } // te + description + "Augment TE node tunnel termination point LLCs + (Local Link Connectivities)."; + uses te-node-tunnel-termination-point-llc-list; } } 8. Security Considerations The transport protocol used for retrieving/manipulating the TE topology data MUST support authentication and SHOULD support encryption. The data-model by itself does not create any security implications. @@ -5003,34 +5074,361 @@ [YANG-NET-TOPO] Clemm, A., "A Data Model for Network Topologies", draft-ietf-i2rs-yang-network-topo (Work in Progress). [YANG-PUSH] Clemm, A., "Subscribing to YANG datastore push updates", draft-clemm-netconf-yang-push (Work in Progress). [RFC5277bis] Clemm, A., "Subscribing to Event Notifications", draft-ietf-netconf-rfc5277bis (Work in Progress). [YANG-SCHEDULE] Liu, X., " A YANG Data Model for Configuration - Scheduling", draft-liu-netmod-yang-schedule-00 (Work in + Scheduling", draft-liu-netmod-yang-schedule (Work in Progress). + [YANG-NMDA] Bjorklund, M., Schoenwaelder, J., Shafer, P., + Watsen, K., and R. Wilton, "Network Management Datastore + Architecture", draft-ietf-netmod-revised-datastores (Work + in Progress). + 10.2. Informative References [RFC2702] Awduche, D., "Requirements for Traffic Engineering Over MPLS", RFC 2702, September 1999. 11. Acknowledgments The authors would like to thank Lou Berger, Sue Hares, Mazen Khaddam, Cyril Margaria and Zafar Ali for participating in design discussions and providing valuable insights. +Appendix A. Companion YANG Model for Non-NMDA Compliant Implementations + + The YANG module ietf-te-topology defined in this document is designed + to be used in conjunction with implementations that support the + Network Management Datastore Architecture (NMDA) defined in [YANG- + NMDA]. In order to allow implementations to use the model even in + cases when NMDA is not supported, the following companion module + ietf-te-topology-state is defined as a state model, which mirrors the + module ietf-te-topology defined earlier in this document. However, + all data nodes in the companion module are non-configurable, to + represent the applied configuration or the derived operational + states. + + The companion module, ietf-te-topology-state, is redundant and SHOULD + NOT be supported by implementations that support NMDA. + + As the structure of the module ietf-te-topology-state mirrors that of + the module ietf-te-topology. The YANG tree of the module ietf-te- + topology-state is not depicted separately. + +A.1. TE Topology State Yang Module + + file "ietf-te-topology-state@2017-07-02.yang" + module ietf-te-topology-state { + yang-version 1.1; + namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-state"; + + prefix "tet-s"; + + import ietf-te-types { + prefix "te-types"; + } + + import ietf-te-topology { + prefix "tet"; + } + + import ietf-network-state { + prefix "nw-s"; + } + + import ietf-network-topology-state { + prefix "nt-s"; + } + organization + "Traffic Engineering Architecture and Signaling (TEAS) + Working Group"; + + contact + "WG Web: + WG List: + + WG Chair: Lou Berger + + + WG Chair: Vishnu Pavan Beeram + + + Editor: Xufeng Liu + + + Editor: Igor Bryskin + + + Editor: Vishnu Pavan Beeram + + + Editor: Tarek Saad + + + Editor: Himanshu Shah + + + Editor: Oscar Gonzalez De Dios + "; + + description "TE topology state model"; + + revision "2017-07-02" { + description "Initial revision"; + reference "TBD"; + } + + /* + * Groupings + */ + grouping te-node-connectivity-matrix-attributes { + description + "Termination point references of a connectivity matrix entry."; + container from { + description + "Reference to source link termination point."; + leaf tp-ref { + type leafref { + path "../../../../../../nt-s:termination-point/nt-s:tp-id"; + } + description + "Relative reference to a termination point."; + } + uses tet:connectivity-label-restriction-list; + } + container to { + description + "Reference to destination link termination point."; + leaf tp-ref { + type leafref { + path "../../../../../../nt-s:termination-point/nt-s:tp-id"; + } + description + "Relative reference to a termination point."; + } + uses tet:connectivity-label-restriction-list; + } + uses tet:connectivity-matrix-entry-path-attributes; + } // te-node-connectivity-matrix-attributes + + grouping te-node-tunnel-termination-point-llc-list { + description + "Local link connectivity list of a tunnel termination + point on a TE node."; + list local-link-connectivity { + key "link-tp-ref"; + description + "The termination capabilities between + tunnel-termination-point and link termination-point. + + The capability information can be used to compute + the tunnel path. + The Interface Adjustment Capability Descriptors (IACD) + [RFC6001] on each link-tp can be derived from this + local-link-connectivity list."; + reference + "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions + for Multi-Layer and Multi-Region Networks (MLN/MRN)."; + + leaf link-tp-ref { + type leafref { + path "../../../../../nt-s:termination-point/nt-s:tp-id"; + } + description + "Link termination point."; + } + uses tet:connectivity-label-restriction-list; + uses tet:connectivity-matrix-entry-path-attributes; + } // local-link-connectivity + } // te-node-tunnel-termination-point-config + + /* + * Data nodes + */ + augment "/nw-s:networks/nw-s:network/nw-s:network-types" { + description + "Introduce new network type for TE topology."; + container te-topology { + presence "Indicates TE topology."; + description + "Its presence identifies the TE topology type."; + } + } + + augment "/nw-s:networks" { + description + "Augmentation parameters for TE topologies."; + uses tet:te-topologies-augment; + } + + augment "/nw-s:networks/nw-s:network" { + when "nw-s:network-types/te-topology" { + description + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Configuration parameters for TE topology."; + uses tet:te-topology-augment; + } + + augment "/nw-s:networks/nw-s:network/nw-s:node" { + when "../nw-s:network-types/te-topology" { + description + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Configuration parameters for TE at node level."; + leaf te-node-id { + type te-types:te-node-id; + description + "The identifier of a node in the TE topology. + A node is specific to a topology to which it belongs."; + } + container te { + must "../te-node-id" { + description + "te-node-id is mandatory."; + } + must "count(../nw-s:supporting-node)<=1" { + description + "For a node in a TE topology, there cannot be more + than 1 supporting node. If multiple nodes are abstracted, + the underlay-topology is used."; + } + presence "TE support."; + description + "Indicates TE support."; + uses tet:te-node-augment; + } // te + } + augment "/nw-s:networks/nw-s:network/nt-s:link" { + when "../nw-s:network-types/te-topology" { + description + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Configuration parameters for TE at link level."; + container te { + must "count(../nt-s:supporting-link)<=1" { + description + "For a link in a TE topology, there cannot be more + than 1 supporting link. If one or more link paths are + abstracted, the underlay is used."; + } + presence "TE support."; + description + "Indicates TE support."; + uses tet:te-link-augment; + } // te + } + + augment "/nw-s:networks/nw-s:network/nw-s:node/" + + "nt-s:termination-point" { + when "../../nw-s:network-types/te-topology" { + description + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Configuration parameters for TE at termination point level."; + uses tet:te-termination-point-augment; + } + + augment + "/nw-s:networks/nw-s:network/nt-s:link/te/bundle-stack-level/" + + "bundle/bundled-links/bundled-link" { + when "../../../../nw-s:network-types/te-topology" { + description + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Augment TE link bundled link."; + leaf src-tp-ref { + type leafref { + path "../../../../../nw-s:node[nw-s:node-id = " + + "current()/../../../../nt-s:source/" + + "nt-s:source-node]/" + + "nt-s:termination-point/nt-s:tp-id"; + require-instance true; + } + description + "Reference to another TE termination point on the + same souruce node."; + } + leaf des-tp-ref { + type leafref { + path "../../../../../nw-s:node[nw-s:node-id = " + + "current()/../../../../nt-s:destination/" + + "nt-s:dest-node]/" + + "nt-s:termination-point/nt-s:tp-id"; + require-instance true; + } + description + "Reference to another TE termination point on the + same destination node."; + } + } + + augment + "/nw-s:networks/nw-s:network/nw-s:node/te/" + + "information-source-entry/connectivity-matrices/" + + "connectivity-matrix" { + when "../../../../../nw-s:network-types/te-topology" { + description + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Augment TE node connectivity-matrix."; + + uses te-node-connectivity-matrix-attributes; + } + + augment + "/nw-s:networks/nw-s:network/nw-s:node/te/te-node-attributes/" + + "connectivity-matrices/connectivity-matrix" { + when "../../../../../nw-s:network-types/te-topology" { + description + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Augment TE node connectivity-matrix."; + uses te-node-connectivity-matrix-attributes; + } + + augment + "/nw-s:networks/nw-s:network/nw-s:node/te/" + + "tunnel-termination-point/local-link-connectivities" { + when "../../../../nw-s:network-types/te-topology" { + description + "Augmentation parameters apply only for networks with + TE topology type."; + } + description + "Augment TE node tunnel termination point LLCs + (Local Link Connectivities)."; + uses te-node-tunnel-termination-point-llc-list; + } + } + + Contributors Sergio Belotti Nokia Email: sergio.belotti@nokia.com Dieter Beller Nokia Email: Dieter.Beller@nokia.com