--- 1/draft-ietf-teas-yang-te-topo-05.txt 2016-10-29 15:15:59.134295377 -0700 +++ 2/draft-ietf-teas-yang-te-topo-06.txt 2016-10-29 15:15:59.298299437 -0700 @@ -1,27 +1,27 @@ TEAS Working Group Xufeng Liu -Internet Draft Ericsson +Internet Draft Kuatro Technologies Intended status: Standards Track Igor Bryskin Huawei Technologies Vishnu Pavan Beeram Juniper Networks Tarek Saad Cisco Systems Inc Himanshu Shah Ciena Oscar Gonzalez De Dios Telefonica -Expires: January 8, 2017 July 8, 2016 +Expires: April 28, 2017 October 28, 2016 YANG Data Model for TE Topologies - draft-ietf-teas-yang-te-topo-05 + draft-ietf-teas-yang-te-topo-06 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 January 8, 2017. + This Internet-Draft will expire on April 28, 2017. Copyright Notice Copyright (c) 2016 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 @@ -91,38 +91,37 @@ 4.1. Native TE Topologies.....................................14 4.2. Customized TE Topologies.................................16 4.3. Merging TE Topologies Provided by Multiple Providers.....18 4.4. Dealing with Multiple Abstract TE Topologies Provided by the Same Provider.................................................22 5. Modeling Considerations.......................................25 5.1. Generic network topology building blocks.................25 5.2. Technology agnostic TE Topology model....................25 5.3. Model Structure..........................................26 5.4. Topology Identifiers.....................................27 - 5.5. Generic TE Link Attributes...............................28 + 5.5. Generic TE Link Attributes...............................27 5.6. Generic TE Node Attributes...............................28 - 5.7. TED Information Sources..................................29 - 5.8. Overlay/Underlay Relationship............................30 - 5.9. Scheduling Parameters....................................31 - 5.10. Templates...............................................31 - 5.11. Notifications...........................................32 - 5.12. Open Items..............................................33 + 5.7. TED Information Sources..................................30 + 5.8. Overlay/Underlay Relationship............................31 + 5.9. Templates................................................32 + 5.10. Scheduling Parameters...................................33 + 5.11. Notifications...........................................33 6. Tree Structure................................................33 - 7. TE Topology Yang Module.......................................62 - 8. Security Considerations......................................105 - 9. IANA Considerations..........................................105 - 10. References..................................................106 - 10.1. Normative References...................................106 - 10.2. Informative References.................................106 - 11. Acknowledgments.............................................107 - Contributors....................................................107 - Authors' Addresses..............................................107 + 7. TE Topology Yang Module.......................................52 + 8. Security Considerations.......................................98 + 9. IANA Considerations...........................................98 + 10. References...................................................99 + 10.1. Normative References....................................99 + 10.2. Informative References..................................99 + 11. Acknowledgments.............................................100 + Contributors....................................................100 + Authors' Addresses..............................................100 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 @@ -1015,63 +1014,57 @@ augment /nw:networks: +--rw te! +--rw templates +--rw node-template* [name] {template}? | ............ +--rw link-template* [name] {template}? ............ 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 provider-id te-global-id - +--rw client-id te-global-id - +--rw te-topology-id te-topology-id +--rw config | ............ +--ro state ............ augment /nw:networks/nw:network/nw:node: + +--rw te-node-id? te-types:te-node-id +--rw te! - +--rw te-node-id te-node-id +--rw config | ............ +--ro state | ............ +--rw tunnel-termination-point* [tunnel-tp-id] +--rw tunnel-tp-id binary +--rw config | ............ +--ro state augment /nw:networks/nw:network/nt:link: +--rw te! +--rw config | .......... +--ro state .......... augment /nw:networks/nw:network/nw:node/nt:termination-point: + +--rw te-tp-id? te-types:te-tp-id +--rw te! - +--rw te-tp-id te-tp-id +--rw config | ............ +--ro state ............ - notifications: - +---n te-node-event - | ............ - +---n te-link-event - ............ - 5.4. Topology Identifiers The TE-Topology is uniquely identified by a key that has 3 constituents - te-topology-id, provider-id and client-id. The combination of provider-id and te-topology-id uniquely identifies a native TE Topology on a given provider. The client-id is used only when Customized TE Topologies come into play; a value of "0" is used as the client-id for native TE Topologies. augment /nw:networks/nw:network: @@ -1082,107 +1075,152 @@ 5.5. Generic TE Link Attributes The model covers the definitions for generic TE Link attributes - bandwidth, admin groups, SRLGs, switching capabilities, TE metric extensions etc. +--rw te-link-attributes ..................... +--rw admin-status? te-admin-status - +--rw performance-metric-throttle {te-performance-metric}? | ..................... +--rw link-index? uint64 +--rw administrative-group? te-types:admin-groups - +--rw max-link-bandwidth? decimal64 - +--rw max-resv-link-bandwidth? decimal64 + +--rw link-protection-type? enumeration + +--rw max-link-bandwidth? te-bandwidth + +--rw max-resv-link-bandwidth? te-bandwidth +--rw unreserved-bandwidth* [priority] | ..................... +--rw te-default-metric? uint32 - +--rw performance-metric {te-performance-metric}? - | ..................... - +--rw link-protection-type? enumeration - +--rw interface-switching-capability* [switching-capability] | ..................... +--rw te-srlgs ..................... 5.6. Generic TE Node Attributes The model covers the definitions for generic TE Node attributes. The definition of a generic connectivity matrix is shown below: +--rw te-node-attributes ........... +--rw connectivity-matrix* [id] | +--rw id uint32 | +--rw from | | +--rw tp-ref? leafref | +--rw to | | +--rw tp-ref? leafref | +--rw is-allowed? boolean + | +--rw label-restriction* [inclusive-exclusive label-start] + ........... + | +--rw underlay! {te-topology-hierarchy}? + ........... + | +--rw max-link-bandwidth? te-bandwidth + | +--rw max-resv-link-bandwidth? te-bandwidth + | +--rw unreserved-bandwidth* [priority] + ........... + | +--rw te-default-metric? uint32 + | +--rw te-delay-metric? uint32 + | +--rw te-srlgs + ........... The definition of a TTP Local Link Connectivity List is shown below: +--rw tunnel-termination-point* [tunnel-tp-id] +--rw tunnel-tp-id binary +--rw config - | +--rw termination-capability* [link-tp] - | +--rw link-tp leafref + | +--rw switching-capability? identityref + | +--rw encoding? identityref + | +--rw inter-layer-lock-id? uint32 + | +--rw protection-type? identityref + | +--rw local-link-connectivity* [link-tp-ref] + | +--rw link-tp-ref leafref + | +--rw label-restriction* [inclusive-exclusive label-start] + ........... + | +--rw max-lsp-bandwidth* [priority] + ........... + | +--rw max-link-bandwidth? te-bandwidth + | +--rw max-resv-link-bandwidth? te-bandwidth + | +--rw unreserved-bandwidth* [priority] + ........... + | +--rw te-default-metric? uint32 + | +--rw te-delay-metric? uint32 + | +--rw te-srlgs + ........... +--ro state - +--ro termination-capability* [link-tp] - | +--ro link-tp leafref - +--ro switching-capability identityref - +--ro encoding identityref + | +--ro switching-capability? identityref + | +--ro encoding? identityref + | +--ro inter-layer-lock-id? uint32 + | +--ro protection-type? identityref + | +--ro local-link-connectivity* [link-tp-ref] + | | +--ro link-tp-ref leafref + | | +--ro label-restriction* [inclusive-exclusive label-start] + ........... + | | +--ro max-lsp-bandwidth* [priority] + ........... + | | +--ro max-link-bandwidth? te-bandwidth + | | +--ro max-resv-link-bandwidth? te-bandwidth + | | +--ro unreserved-bandwidth* [priority] + ........... + | | +--ro te-default-metric? uint32 + | | +--ro te-delay-metric? uint32 + | | +--ro te-srlgs + ........... + | | +--ro value* te-types:srlg 5.7. TED Information Sources The model allows each TE topological element to have multiple TE information sources (OSPF-TE, ISIS-TE, BGP-LS, User-Configured, System-Processed, Other). Each information source is associated with a credibility preference to indicate precedence. In scenarios where a customized TE Topology is merged into a Client's native TE Topology, the merged topological elements would point to the corresponding customized TE Topology as its information source. augment /nw:networks/nw:network/nw:node: +--rw te! ........... +--ro state ........ - +--ro information-source? enumeration - +--ro information-source-state - +--ro credibility-preference? uint16 - +--ro topology - | +--ro provider-id-ref? leafref - | +--ro client-id-ref? leafref - | +--ro te-topology-id-ref? leafref - | +--ro network-id-ref? leafref - +--ro routing-instance? string + | +--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 provider-ref? leafref + | | +--ro client-ref? leafref + | | +--ro te-topology-ref? leafref + | | +--ro network-ref? leafref + | | +--ro node-ref? leafref + | +--ro information-source-entry* [information-source] + ............ augment /nw:networks/nw:network/nt:link: +--rw te! ........... +--ro state ......... - +--ro information-source? enumeration - +--ro information-source-state - | +--ro credibility-preference? uint16 - | +--ro topology - | | +--ro provider-id-ref? leafref - | | +--ro client-id-ref? leafref - | | +--ro te-topology-id-ref? leafref - | | +--ro network-id-ref? leafref - | +--ro routing-instance? string - +--ro alt-information-sources* [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 provider-ref? leafref + | | +--ro client-ref? leafref + | | +--ro te-topology-ref? leafref + | | +--ro network-ref? leafref + | | +--ro link-ref? leafref + | +--ro information-source-entry* [information-source] + ............ 5.8. Overlay/Underlay Relationship The model captures overlay and underlay relationship for TE nodes/links. For example - in networks where multiple TE Topologies are built hierarchically, this model allows the user to start from a specific topological element in the top most topology and traverse all the way down to the supporting topological elements in the bottom most topology. @@ -1192,196 +1230,168 @@ ("te-topology-hierarchy"). augment /nw:networks/nw:network/nw:node: +--rw te! +--rw te-node-id te-node-id +--rw config | +--rw te-node-template* leafref {template}? | +--rw te-node-attributes | .................... | +--rw underlay-topology {te-topology-hierarchy}? - | +--rw provider-id-ref? leafref - | +--rw client-id-ref? leafref - | +--rw te-topology-id-ref? leafref - | +--rw network-id-ref? leafref + | +--rw provider-ref? leafref + | +--rw client-ref? leafref + | +--rw te-topology-ref? leafref + | +--rw network-ref? leafref augment /nw:networks/nw:network/nt:link: +--rw te! +--rw config | ......... | +--rw te-link-attributes | .................... | +--rw underlay! {te-topology-hierarchy}? | | +--rw underlay-primary-path - | | | +--rw provider-id-ref? leafref - | | | +--rw client-id-ref? leafref - | | | +--rw te-topology-id-ref? leafref - | | | +--rw network-id-ref? leafref + | | | +--rw provider-ref? leafref + | | | +--rw client-ref? leafref + | | | +--rw te-topology-ref? leafref + | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | ............... | | +--rw underlay-backup-path* [index] | | | +--rw index uint32 - | | | +--rw provider-id-ref? leafref - | | | +--rw client-id-ref? leafref - | | | +--rw te-topology-id-ref? leafref - | | | +--rw network-id-ref? leafref + | | | +--rw provider-ref? leafref + | | | +--rw client-ref? leafref + | | | +--rw te-topology-ref? leafref + | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | ............... | | +--rw underlay-protection-type? uint16 - | | +--rw underlay-trail-src + | | +--rw underlay-tunnel-src | | | ........... - | | | +--rw network-ref? leafref - | | +--rw underlay-trail-des - | | ........... - -5.9. Scheduling Parameters - The model allows time scheduling parameters to be specified for each - topological element or for the topology as a whole. These parameters - allow the provider to present different topological views to the - client at different time slots. The use of "scheduling parameters" is - optional and this functionality is tagged as a "feature" - ("configuration-schedule"). The YANG data model for configuration - scheduling is defined in [YANG-SCHEDULE] and imported by the TE - Topology module. + | | +--rw underlay-tunnel-des + | | ........... -5.10. Templates +5.9. Templates The data model provides the users with the ability to define templates and apply them to link and node configurations. The use of "template" configuration is optional and this functionality is tagged as a "feature" ("template"). +--rw topology* [provider-id client-id te-topology-id] | ........... | +--rw node* [te-node-id] | | +--rw te-node-template? leafref {template}? | | .......... | +--rw link* [source-te-node-id source-te-link-id dest-te-node-id dest-te-link-id] | +--rw te-link-template? leafref {template}? | .......... + augment /nw:networks: + +--rw te! + +--rw templates +--rw node-template* [name] {template}? - | +--rw name te-template-name + | +--rw name te-types:te-template- + name | +--rw priority? uint16 | +--rw reference-change-policy? enumeration | +--rw te-node-attributes - | .......... + .......... +--rw link-template* [name] {template}? - +--rw name te-template-name + +--rw name te-types:te-template- + name +--rw priority? uint16 +--rw reference-change-policy? enumeration +--rw te-link-attributes .......... Multiple templates can be specified to a configuration element. When two or more templates specify values for the same configuration field, the value from the template with the highest priority is used. The reference-change-policy specifies the action that needs to be taken when the template changes on a configuration element that has a reference to this template. The choices of action include taking no action, rejecting the change to the template and applying the change to the corresponding configuration. [Editor's Note: The notion of "templates" has wider applicability. It is possible for this to be discussed in a separate document.] +5.10. Scheduling Parameters + + The model allows time scheduling parameters to be specified for each + topological element or for the topology as a whole. These parameters + allow the provider to present different topological views to the + client at different time slots. The use of "scheduling parameters" is + optional. + + The YANG data model for configuration scheduling is defined in [YANG- + SCHEDULE], which allows specifying configuration schedules without + altering this data model. + 5.11. Notifications Notifications are a key component of any topology data model. - [YANG-PUSH] defines a subscription and push mechanism for YANG - datastores. This mechanism currently allows the user to: + [YANG-PUSH] and [RFC5277bis] define a subscription and push mechanism + for YANG datastores. This mechanism currently allows the user to: - Subscribe notifications on a per client basis - Specify subtree filters or xpath filters so that only interested contents will be sent. - Specify either periodic or on-demand notifications. - The authors would like to recommend the use of this mechanism for the - TE-Topology notifications. They would also like to suggest the - following extensions to [YANG-PUSH] - - - Specify specific entities that will trigger the push - notifications. These entities can be specified by xpath, like the - way a filter is specified. - - - Specify or limit the triggering event type, e.g. "add", "delete", - "modify", or "all". The system sends the push notifications only - when such events happen on the triggering entities. - - - Have an option to request either "incremental" or "full" - notifications for an entity. For "incremental", the notification - will contain only the changed attributes. - -5.12. Open Items - - - Coordinating changes to [YANG-PUSH]: The changes to [YANG-PUSH] - discussed in Section 4.10 will need to be coordinated with the - authors of that draft. - 6. Tree Structure module: ietf-te-topology augment /nw:networks/nw:network/nw:network-types: +--rw te-topology! augment /nw:networks: +--rw te! +--rw templates +--rw node-template* [name] {template}? | +--rw name te-types:te-template- name | +--rw priority? uint16 | +--rw reference-change-policy? enumeration | +--rw te-node-attributes - | +--rw schedules - | | +--rw schedule* [schedule-id] - | | +--rw schedule-id uint32 - | | +--rw start? yang:date-and-time - | | +--rw schedule-duration? string - | | +--rw repeat-interval? string | +--rw admin-status? te-types:te-admin-status | +--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 provider-id-ref? leafref - | +--rw client-id-ref? leafref - | +--rw te-topology-id-ref? leafref - | +--rw network-id-ref? leafref + | +--rw provider-ref? leafref + | +--rw client-ref? leafref + | +--rw te-topology-ref? leafref + | +--rw network-ref? leafref +--rw link-template* [name] {template}? +--rw name te-types:te-template- name +--rw priority? uint16 +--rw reference-change-policy? enumeration +--rw te-link-attributes - +--rw schedules - | +--rw schedule* [schedule-id] - | +--rw schedule-id uint32 - | +--rw start? yang:date-and-time - | +--rw schedule-duration? string - | +--rw repeat-interval? string +--rw access-type? te-types:te- link-access-type +--rw external-domain | +--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 underlay-primary-path - | | +--rw provider-id-ref? leafref - | | +--rw client-id-ref? leafref - | | +--rw te-topology-id-ref? leafref - | | +--rw network-id-ref? leafref + | | +--rw provider-ref? leafref + | | +--rw client-ref? leafref + | | +--rw te-topology-ref? leafref + | | +--rw network-ref? leafref | | +--rw path-element* [path-element-id] | | +--rw path-element-id uint32 | | +--rw (type)? | | +--:(ipv4-address) | | | +--rw v4-address? inet:ipv4- address | | | +--rw v4-prefix-length? uint8 | | | +--rw v4-loose? boolean | | +--:(ipv6-address) | | | +--rw v6-address? inet:ipv6- @@ -1391,24 +1401,24 @@ | | +--:(as-number) | | | +--rw as-number? uint16 | | +--:(unnumbered-link) | | | +--rw router-id? inet:ip- address | | | +--rw interface-id? uint32 | | +--:(label) | | +--rw value? uint32 | +--rw underlay-backup-path* [index] | | +--rw index uint32 - | | +--rw provider-id-ref? leafref - | | +--rw client-id-ref? leafref - | | +--rw te-topology-id-ref? leafref - | | +--rw network-id-ref? leafref + | | +--rw provider-ref? leafref + | | +--rw client-ref? leafref + | | +--rw te-topology-ref? leafref + | | +--rw network-ref? leafref | | +--rw path-element* [path-element-id] | | +--rw path-element-id uint32 | | +--rw (type)? | | +--:(ipv4-address) | | | +--rw v4-address? inet:ipv4- address | | | +--rw v4-prefix-length? uint8 | | | +--rw v4-loose? boolean | | +--:(ipv6-address) | | | +--rw v6-address? inet:ipv6- @@ -1417,490 +1427,518 @@ | | | +--rw v6-loose? boolean | | +--:(as-number) | | | +--rw as-number? uint16 | | +--:(unnumbered-link) | | | +--rw router-id? inet:ip- address | | | +--rw interface-id? uint32 | | +--:(label) | | +--rw value? uint32 | +--rw underlay-protection-type? uint16 - | +--rw underlay-trail-src + | +--rw underlay-tunnel-src | | +--rw tp-ref? leafref | | +--rw node-ref? leafref | | +--rw network-ref? leafref - | +--rw underlay-trail-des + | +--rw underlay-tunnel-des | +--rw tp-ref? leafref | +--rw node-ref? leafref | +--rw network-ref? leafref +--rw admin-status? te-types:te- admin-status - +--rw performance-metric-throttle {te-performance- - metric}? - | +--rw unidirectional-delay-offset? uint32 - | +--rw measure-interval? uint32 - | +--rw advertisement-interval? uint32 - | +--rw suppression-interval? uint32 - | +--rw threshold-out - | | +--rw unidirectional-delay? - uint32 - | | +--rw unidirectional-min-delay? - uint32 - | | +--rw unidirectional-max-delay? - uint32 - | | +--rw unidirectional-delay-variation? - uint32 - | | +--rw unidirectional-packet-loss? - decimal64 - | | +--rw unidirectional-residual-bandwidth? - decimal64 - | | +--rw unidirectional-available-bandwidth? - decimal64 - | | +--rw unidirectional-utilized-bandwidth? - decimal64 - | +--rw threshold-in - | | +--rw unidirectional-delay? - uint32 - | | +--rw unidirectional-min-delay? - uint32 - | | +--rw unidirectional-max-delay? - uint32 - | | +--rw unidirectional-delay-variation? - uint32 - | | +--rw unidirectional-packet-loss? - decimal64 - | | +--rw unidirectional-residual-bandwidth? - decimal64 - | | +--rw unidirectional-available-bandwidth? - decimal64 - | | +--rw unidirectional-utilized-bandwidth? - decimal64 - | +--rw threshold-accelerated-advertisement - | +--rw unidirectional-delay? - uint32 - | +--rw unidirectional-min-delay? - uint32 - | +--rw unidirectional-max-delay? - uint32 - | +--rw unidirectional-delay-variation? - uint32 - | +--rw unidirectional-packet-loss? - decimal64 - | +--rw unidirectional-residual-bandwidth? - decimal64 - | +--rw unidirectional-available-bandwidth? - decimal64 - | +--rw unidirectional-utilized-bandwidth? - decimal64 +--rw link-index? uint64 +--rw administrative-group? te- types:admin-groups +--rw interface-switching-capability* [switching- capability] - | +--rw switching-capability - identityref - | +--rw encoding? - identityref + | +--rw switching-capability identityref + | +--rw encoding? identityref | +--rw max-lsp-bandwidth* [priority] - | | +--rw priority uint8 - | | +--rw bandwidth? decimal64 - | +--rw time-division-multiplex-capable - | +--rw minimum-lsp-bandwidth? decimal64 - | +--rw indication? enumeration + | +--rw priority uint8 + | +--rw bandwidth? te-bandwidth +--rw link-protection-type? enumeration - +--rw max-link-bandwidth? decimal64 - +--rw max-resv-link-bandwidth? decimal64 + +--rw max-link-bandwidth? te-bandwidth + +--rw max-resv-link-bandwidth? te-bandwidth +--rw unreserved-bandwidth* [priority] | +--rw priority uint8 - | +--rw bandwidth? decimal64 + | +--rw bandwidth? te-bandwidth +--rw te-default-metric? uint32 - +--rw performance-metric {te-performance-metric}? - | +--rw measurement - | | +--rw unidirectional-delay? - uint32 - | | +--rw unidirectional-min-delay? - uint32 - | | +--rw unidirectional-max-delay? - uint32 - | | +--rw unidirectional-delay-variation? - uint32 - | | +--rw unidirectional-packet-loss? - decimal64 - | | +--rw unidirectional-residual-bandwidth? - decimal64 - | | +--rw unidirectional-available-bandwidth? - decimal64 - | | +--rw unidirectional-utilized-bandwidth? - decimal64 - | +--rw normality - | +--rw unidirectional-delay? te- - types:performance-metric-normality - | +--rw unidirectional-min-delay? te- - types:performance-metric-normality - | +--rw unidirectional-max-delay? te- - types:performance-metric-normality - | +--rw unidirectional-delay-variation? te- - types:performance-metric-normality - | +--rw unidirectional-packet-loss? te- - types:performance-metric-normality - | +--rw unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | +--rw unidirectional-available-bandwidth? te- - types:performance-metric-normality - | +--rw unidirectional-utilized-bandwidth? te- - types:performance-metric-normality + +--rw te-delay-metric? uint32 +--rw te-srlgs +--rw value* te-types:srlg 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 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 config - | +--rw schedules - | | +--rw schedule* [schedule-id] - | | +--rw schedule-id uint32 - | | +--rw start? yang:date-and-time - | | +--rw schedule-duration? string - | | +--rw repeat-interval? string | +--rw preference? uint8 | +--rw optimization-criterion? identityref +--ro state - +--ro schedules - | +--ro schedule* [schedule-id] - | +--ro schedule-id uint32 - | +--ro start? yang:date-and-time - | +--ro schedule-duration? string - | +--ro repeat-interval? string +--ro preference? uint8 +--ro optimization-criterion? identityref + +--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 te-node-id te-types:te-node-id +--rw config | +--rw te-node-template* leafref {template}? | +--rw te-node-attributes - | +--rw schedules - | | +--rw schedule* [schedule-id] - | | +--rw schedule-id uint32 - | | +--rw start? yang:date-and-time - | | +--rw schedule-duration? string - | | +--rw repeat-interval? string | +--rw admin-status? te-types:te-admin-status | +--rw connectivity-matrix* [id] | | +--rw id uint32 | | +--rw from | | | +--rw tp-ref? leafref | | +--rw to | | | +--rw tp-ref? leafref | | +--rw is-allowed? boolean | | +--rw label-restriction* [inclusive-exclusive label- start] | | | +--rw inclusive-exclusive enumeration | | | +--rw label-start te-types:generalized- label | | | +--rw label-end? te-types:generalized- label | | | +--rw range-bitmap? binary - | | +--rw max-link-bandwidth? decimal64 - | | +--rw max-resv-link-bandwidth? decimal64 + | | +--rw underlay! {te-topology-hierarchy}? + | | | +--rw underlay-primary-path + | | | | +--rw provider-ref? leafref + | | | | +--rw client-ref? leafref + | | | | +--rw te-topology-ref? leafref + | | | | +--rw network-ref? leafref + | | | | +--rw path-element* [path-element-id] + | | | | +--rw path-element-id uint32 + | | | | +--rw (type)? + | | | | +--:(ipv4-address) + | | | | | +--rw v4-address? inet:ipv4- + address + | | | | | +--rw v4-prefix-length? uint8 + | | | | | +--rw v4-loose? boolean + | | | | +--:(ipv6-address) + | | | | | +--rw v6-address? inet:ipv6- + address + | | | | | +--rw v6-prefix-length? uint8 + | | | | | +--rw v6-loose? boolean + | | | | +--:(as-number) + | | | | | +--rw as-number? uint16 + | | | | +--:(unnumbered-link) + | | | | | +--rw router-id? inet:ip- + address + | | | | | +--rw interface-id? uint32 + | | | | +--:(label) + | | | | +--rw value? uint32 + | | | +--rw underlay-backup-path* [index] + | | | | +--rw index uint32 + | | | | +--rw provider-ref? leafref + | | | | +--rw client-ref? leafref + | | | | +--rw te-topology-ref? leafref + | | | | +--rw network-ref? leafref + | | | | +--rw path-element* [path-element-id] + | | | | +--rw path-element-id uint32 + | | | | +--rw (type)? + | | | | +--:(ipv4-address) + | | | | | +--rw v4-address? inet:ipv4- + address + | | | | | +--rw v4-prefix-length? uint8 + | | | | | +--rw v4-loose? boolean + | | | | +--:(ipv6-address) + | | | | | +--rw v6-address? inet:ipv6- + address + | | | | | +--rw v6-prefix-length? uint8 + | | | | | +--rw v6-loose? boolean + | | | | +--:(as-number) + | | | | | +--rw as-number? uint16 + | | | | +--:(unnumbered-link) + | | | | | +--rw router-id? inet:ip- + address + | | | | | +--rw interface-id? uint32 + | | | | +--:(label) + | | | | +--rw value? uint32 + | | | +--rw underlay-protection-type? uint16 + | | | +--rw underlay-tunnel-src + | | | | +--rw tp-ref? leafref + | | | | +--rw node-ref? leafref + | | | | +--rw network-ref? leafref + | | | +--rw underlay-tunnel-des + | | | +--rw tp-ref? leafref + | | | +--rw node-ref? leafref + | | | +--rw network-ref? leafref + | | +--rw max-link-bandwidth? te-bandwidth + | | +--rw max-resv-link-bandwidth? te-bandwidth | | +--rw unreserved-bandwidth* [priority] | | | +--rw priority uint8 - | | | +--rw bandwidth? decimal64 + | | | +--rw bandwidth? te-bandwidth | | +--rw te-default-metric? uint32 - | | +--rw performance-metric {te-performance-metric}? - | | | +--rw measurement - | | | | +--rw unidirectional-delay? - uint32 - | | | | +--rw unidirectional-min-delay? - uint32 - | | | | +--rw unidirectional-max-delay? - uint32 - | | | | +--rw unidirectional-delay-variation? - uint32 - | | | | +--rw unidirectional-packet-loss? - decimal64 - | | | | +--rw unidirectional-residual-bandwidth? - decimal64 - | | | | +--rw unidirectional-available-bandwidth? - decimal64 - | | | | +--rw unidirectional-utilized-bandwidth? - decimal64 - | | | +--rw normality - | | | +--rw unidirectional-delay? te- - types:performance-metric-normality - | | | +--rw unidirectional-min-delay? te- - types:performance-metric-normality - | | | +--rw unidirectional-max-delay? te- - types:performance-metric-normality - | | | +--rw unidirectional-delay-variation? te- - types:performance-metric-normality - | | | +--rw unidirectional-packet-loss? te- - types:performance-metric-normality - | | | +--rw unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | | | +--rw unidirectional-available-bandwidth? te- - types:performance-metric-normality - | | | +--rw unidirectional-utilized-bandwidth? te- - types:performance-metric-normality + | | +--rw te-delay-metric? uint32 | | +--rw te-srlgs | | +--rw value* te-types:srlg | +--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 provider-id-ref? leafref - | +--rw client-id-ref? leafref - | +--rw te-topology-id-ref? leafref - | +--rw network-id-ref? leafref + | +--rw provider-ref? leafref + | +--rw client-ref? leafref + | +--rw te-topology-ref? leafref + | +--rw network-ref? leafref +--ro state | +--ro te-node-template* leafref {template}? | +--ro te-node-attributes - | | +--ro schedules - | | | +--ro schedule* [schedule-id] - | | | +--ro schedule-id uint32 - | | | +--ro start? yang:date-and-time - | | | +--ro schedule-duration? string - | | | +--ro repeat-interval? string | | +--ro admin-status? te-types:te-admin-status | | +--ro connectivity-matrix* [id] | | | +--ro id uint32 | | | +--ro from | | | | +--ro tp-ref? leafref | | | +--ro to | | | | +--ro tp-ref? leafref | | | +--ro is-allowed? boolean | | | +--ro label-restriction* [inclusive-exclusive label- start] | | | | +--ro inclusive-exclusive enumeration | | | | +--ro label-start te-types:generalized- label | | | | +--ro label-end? te-types:generalized- label | | | | +--ro range-bitmap? binary - | | | +--ro max-link-bandwidth? decimal64 - | | | +--ro max-resv-link-bandwidth? decimal64 + | | | +--ro underlay! {te-topology-hierarchy}? + | | | | +--ro underlay-primary-path + | | | | | +--ro provider-ref? leafref + | | | | | +--ro client-ref? leafref + | | | | | +--ro te-topology-ref? leafref + | | | | | +--ro network-ref? leafref + | | | | | +--ro path-element* [path-element-id] + | | | | | +--ro path-element-id uint32 + | | | | | +--ro (type)? + | | | | | +--:(ipv4-address) + | | | | | | +--ro v4-address? inet:ipv4- + address + | | | | | | +--ro v4-prefix-length? uint8 + | | | | | | +--ro v4-loose? boolean + | | | | | +--:(ipv6-address) + | | | | | | +--ro v6-address? inet:ipv6- + address + | | | | | | +--ro v6-prefix-length? uint8 + | | | | | | +--ro v6-loose? boolean + | | | | | +--:(as-number) + | | | | | | +--ro as-number? uint16 + | | | | | +--:(unnumbered-link) + | | | | | | +--ro router-id? inet:ip- + address + | | | | | | +--ro interface-id? uint32 + | | | | | +--:(label) + | | | | | +--ro value? uint32 + | | | | +--ro underlay-backup-path* [index] + | | | | | +--ro index uint32 + | | | | | +--ro provider-ref? leafref + | | | | | +--ro client-ref? leafref + | | | | | +--ro te-topology-ref? leafref + | | | | | +--ro network-ref? leafref + | | | | | +--ro path-element* [path-element-id] + | | | | | +--ro path-element-id uint32 + | | | | | +--ro (type)? + | | | | | +--:(ipv4-address) + | | | | | | +--ro v4-address? inet:ipv4- + address + | | | | | | +--ro v4-prefix-length? uint8 + | | | | | | +--ro v4-loose? boolean + | | | | | +--:(ipv6-address) + | | | | | | +--ro v6-address? inet:ipv6- + address + | | | | | | +--ro v6-prefix-length? uint8 + | | | | | | +--ro v6-loose? boolean + | | | | | +--:(as-number) + | | | | | | +--ro as-number? uint16 + | | | | | +--:(unnumbered-link) + | | | | | | +--ro router-id? inet:ip- + address + | | | | | | +--ro interface-id? uint32 + | | | | | +--:(label) + | | | | | +--ro value? uint32 + | | | | +--ro underlay-protection-type? uint16 + | | | | +--ro underlay-tunnel-src + | | | | | +--ro tp-ref? leafref + | | | | | +--ro node-ref? leafref + | | | | | +--ro network-ref? leafref + | | | | +--ro underlay-tunnel-des + | | | | +--ro tp-ref? leafref + | | | | +--ro node-ref? leafref + | | | | +--ro network-ref? leafref + | | | +--ro max-link-bandwidth? te-bandwidth + | | | +--ro max-resv-link-bandwidth? te-bandwidth | | | +--ro unreserved-bandwidth* [priority] | | | | +--ro priority uint8 - | | | | +--ro bandwidth? decimal64 + | | | | +--ro bandwidth? te-bandwidth | | | +--ro te-default-metric? uint32 - | | | +--ro performance-metric {te-performance-metric}? - | | | | +--ro measurement - | | | | | +--ro unidirectional-delay? - uint32 - | | | | | +--ro unidirectional-min-delay? - uint32 - | | | | | +--ro unidirectional-max-delay? - uint32 - | | | | | +--ro unidirectional-delay-variation? - uint32 - | | | | | +--ro unidirectional-packet-loss? - decimal64 - | | | | | +--ro unidirectional-residual-bandwidth? - decimal64 - | | | | | +--ro unidirectional-available-bandwidth? - decimal64 - | | | | | +--ro unidirectional-utilized-bandwidth? - decimal64 - | | | | +--ro normality - | | | | +--ro unidirectional-delay? te- - types:performance-metric-normality - | | | | +--ro unidirectional-min-delay? te- - types:performance-metric-normality - | | | | +--ro unidirectional-max-delay? te- - types:performance-metric-normality - | | | | +--ro unidirectional-delay-variation? te- - types:performance-metric-normality - | | | | +--ro unidirectional-packet-loss? te- - types:performance-metric-normality - | | | | +--ro unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | | | | +--ro unidirectional-available-bandwidth? te- - types:performance-metric-normality - | | | | +--ro unidirectional-utilized-bandwidth? te- - types:performance-metric-normality + | | | +--ro te-delay-metric? uint32 | | | +--ro te-srlgs | | | +--ro value* te-types:srlg | | +--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 provider-id-ref? leafref - | | +--ro client-id-ref? leafref - | | +--ro te-topology-id-ref? leafref - | | +--ro network-id-ref? leafref + | | +--ro provider-ref? leafref + | | +--ro client-ref? leafref + | | +--ro te-topology-ref? leafref + | | +--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? enumeration + | +--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 provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | +--ro routing-instance? string + | | +--ro provider-ref? leafref + | | +--ro client-ref? leafref + | | +--ro te-topology-ref? leafref + | | +--ro network-ref? leafref + | | +--ro node-ref? leafref | +--ro information-source-entry* [information-source] - | +--ro information-source enumeration + | +--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 provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | +--ro routing-instance? string + | | +--ro provider-ref? leafref + | | +--ro client-ref? leafref + | | +--ro te-topology-ref? leafref + | | +--ro network-ref? leafref + | | +--ro node-ref? leafref | +--ro connectivity-matrix* [id] | | +--ro id uint32 | | +--ro from | | | +--ro tp-ref? leafref | | +--ro to | | | +--ro tp-ref? leafref | | +--ro is-allowed? boolean | | +--ro label-restriction* [inclusive-exclusive label- start] | | | +--ro inclusive-exclusive enumeration | | | +--ro label-start te-types:generalized- label | | | +--ro label-end? te-types:generalized- label | | | +--ro range-bitmap? binary - | | +--ro max-link-bandwidth? decimal64 - | | +--ro max-resv-link-bandwidth? decimal64 + | | +--ro underlay! {te-topology-hierarchy}? + | | | +--ro underlay-primary-path + | | | | +--ro provider-ref? leafref + | | | | +--ro client-ref? leafref + | | | | +--ro te-topology-ref? leafref + | | | | +--ro network-ref? leafref + | | | | +--ro path-element* [path-element-id] + | | | | +--ro path-element-id uint32 + | | | | +--ro (type)? + | | | | +--:(ipv4-address) + | | | | | +--ro v4-address? inet:ipv4- + address + | | | | | +--ro v4-prefix-length? uint8 + | | | | | +--ro v4-loose? boolean + | | | | +--:(ipv6-address) + | | | | | +--ro v6-address? inet:ipv6- + address + | | | | | +--ro v6-prefix-length? uint8 + | | | | | +--ro v6-loose? boolean + | | | | +--:(as-number) + | | | | | +--ro as-number? uint16 + | | | | +--:(unnumbered-link) + | | | | | +--ro router-id? inet:ip- + address + | | | | | +--ro interface-id? uint32 + | | | | +--:(label) + | | | | +--ro value? uint32 + | | | +--ro underlay-backup-path* [index] + | | | | +--ro index uint32 + | | | | +--ro provider-ref? leafref + | | | | +--ro client-ref? leafref + | | | | +--ro te-topology-ref? leafref + | | | | +--ro network-ref? leafref + | | | | +--ro path-element* [path-element-id] + | | | | +--ro path-element-id uint32 + | | | | +--ro (type)? + | | | | +--:(ipv4-address) + | | | | | +--ro v4-address? inet:ipv4- + address + | | | | | +--ro v4-prefix-length? uint8 + | | | | | +--ro v4-loose? boolean + | | | | +--:(ipv6-address) + | | | | | +--ro v6-address? inet:ipv6- + address + | | | | | +--ro v6-prefix-length? uint8 + | | | | | +--ro v6-loose? boolean + | | | | +--:(as-number) + | | | | | +--ro as-number? uint16 + | | | | +--:(unnumbered-link) + | | | | | +--ro router-id? inet:ip- + address + | | | | | +--ro interface-id? uint32 + | | | | +--:(label) + | | | | +--ro value? uint32 + | | | +--ro underlay-protection-type? uint16 + | | | +--ro underlay-tunnel-src + | | | | +--ro tp-ref? leafref + | | | | +--ro node-ref? leafref + | | | | +--ro network-ref? leafref + | | | +--ro underlay-tunnel-des + | | | +--ro tp-ref? leafref + | | | +--ro node-ref? leafref + | | | +--ro network-ref? leafref + | | +--ro max-link-bandwidth? te-bandwidth + | | +--ro max-resv-link-bandwidth? te-bandwidth | | +--ro unreserved-bandwidth* [priority] | | | +--ro priority uint8 - | | | +--ro bandwidth? decimal64 + | | | +--ro bandwidth? te-bandwidth | | +--ro te-default-metric? uint32 - | | +--ro performance-metric {te-performance-metric}? - | | | +--ro measurement - | | | | +--ro unidirectional-delay? - uint32 - | | | | +--ro unidirectional-min-delay? - uint32 - | | | | +--ro unidirectional-max-delay? - uint32 - | | | | +--ro unidirectional-delay-variation? - uint32 - | | | | +--ro unidirectional-packet-loss? - decimal64 - | | | | +--ro unidirectional-residual-bandwidth? - decimal64 - | | | | +--ro unidirectional-available-bandwidth? - decimal64 - | | | | +--ro unidirectional-utilized-bandwidth? - decimal64 - | | | +--ro normality - | | | +--ro unidirectional-delay? te- - types:performance-metric-normality - | | | +--ro unidirectional-min-delay? te- - types:performance-metric-normality - | | | +--ro unidirectional-max-delay? te- - types:performance-metric-normality - | | | +--ro unidirectional-delay-variation? te- - types:performance-metric-normality - | | | +--ro unidirectional-packet-loss? te- - types:performance-metric-normality - | | | +--ro unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | | | +--ro unidirectional-available-bandwidth? te- - types:performance-metric-normality - | | | +--ro unidirectional-utilized-bandwidth? te- - types:performance-metric-normality + | | +--ro te-delay-metric? uint32 | | +--ro te-srlgs | | +--ro value* te-types:srlg | +--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 provider-id-ref? leafref - | +--ro client-id-ref? leafref - | +--ro te-topology-id-ref? leafref - | +--ro network-id-ref? leafref + | +--ro provider-ref? leafref + | +--ro client-ref? leafref + | +--ro te-topology-ref? leafref + | +--ro network-ref? leafref + +--ro statistics + | +--ro discontinuity-time yang:date-and-time + | +--ro node + | | +--ro disables? yang:counter32 + | | +--ro enables? yang:counter32 + | | +--ro maintenance-sets? yang:counter32 + | | +--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 switching-capability? identityref | +--rw encoding? identityref | +--rw inter-layer-lock-id? uint32 | +--rw protection-type? identityref - | +--rw termination-capability* [link-tp] - | +--rw link-tp leafref + | +--rw local-link-connectivity* [link-tp-ref] + | +--rw link-tp-ref leafref | +--rw label-restriction* [inclusive-exclusive label- start] | | +--rw inclusive-exclusive enumeration | | +--rw label-start te-types:generalized- label | | +--rw label-end? te-types:generalized- label | | +--rw range-bitmap? binary | +--rw max-lsp-bandwidth* [priority] - | +--rw priority uint8 - | +--rw bandwidth? decimal64 + | | +--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 +--ro state - +--ro switching-capability? identityref - +--ro encoding? identityref - +--ro inter-layer-lock-id? uint32 - +--ro protection-type? identityref - +--ro termination-capability* [link-tp] - +--ro link-tp leafref - +--ro label-restriction* [inclusive-exclusive label- + | +--ro switching-capability? identityref + | +--ro encoding? identityref + | +--ro inter-layer-lock-id? uint32 + | +--ro protection-type? identityref + | +--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 te-types:generalized- + | | | +--ro inclusive-exclusive enumeration + | | | +--ro label-start te-types:generalized- label - | +--ro label-end? te-types:generalized- + | | | +--ro label-end? te-types:generalized- label - | +--ro range-bitmap? binary - +--ro max-lsp-bandwidth* [priority] - +--ro priority uint8 - +--ro bandwidth? decimal64 + | | | +--ro range-bitmap? binary + | | +--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 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 + | +--ro modifies? yang:counter32 + | +--ro downs? yang:counter32 + | +--ro ups? yang:counter32 + | +--ro in-service-clears? yang:counter32 + | +--ro in-service-sets? yang:counter32 + +--ro local-link-connectivity + +--ro creates? yang:counter32 + +--ro deletes? yang:counter32 + +--ro disables? yang:counter32 + +--ro enables? yang:counter32 + +--ro modifies? yang:counter32 + 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 sequence uint32 | | +--rw src-interface-ref? string | | +--rw des-interface-ref? string | +--rw te-link-template* leafref {template}? | +--rw te-link-attributes - | +--rw schedules - | | +--rw schedule* [schedule-id] - | | +--rw schedule-id uint32 - | | +--rw start? yang:date-and-time - | | +--rw schedule-duration? string - | | +--rw repeat-interval? string | +--rw access-type? te-types:te-link- access-type | +--rw external-domain | | +--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 underlay-primary-path - | | | +--rw provider-id-ref? leafref - | | | +--rw client-id-ref? leafref - | | | +--rw te-topology-id-ref? leafref - | | | +--rw network-id-ref? leafref + | | | +--rw provider-ref? leafref + | | | +--rw client-ref? leafref + | | | +--rw te-topology-ref? leafref + | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | +--rw path-element-id uint32 | | | +--rw (type)? | | | +--:(ipv4-address) | | | | +--rw v4-address? inet:ipv4- address | | | | +--rw v4-prefix-length? uint8 | | | | +--rw v4-loose? boolean | | | +--:(ipv6-address) | | | | +--rw v6-address? inet:ipv6- @@ -1909,24 +1947,24 @@ | | | | +--rw v6-loose? boolean | | | +--:(as-number) | | | | +--rw as-number? uint16 | | | +--:(unnumbered-link) | | | | +--rw router-id? inet:ip-address | | | | +--rw interface-id? uint32 | | | +--:(label) | | | +--rw value? uint32 | | +--rw underlay-backup-path* [index] | | | +--rw index uint32 - | | | +--rw provider-id-ref? leafref - | | | +--rw client-id-ref? leafref - | | | +--rw te-topology-id-ref? leafref - | | | +--rw network-id-ref? leafref + | | | +--rw provider-ref? leafref + | | | +--rw client-ref? leafref + | | | +--rw te-topology-ref? leafref + | | | +--rw network-ref? leafref | | | +--rw path-element* [path-element-id] | | | +--rw path-element-id uint32 | | | +--rw (type)? | | | +--:(ipv4-address) | | | | +--rw v4-address? inet:ipv4- address | | | | +--rw v4-prefix-length? uint8 | | | | +--rw v4-loose? boolean | | | +--:(ipv6-address) | | | | +--rw v6-address? inet:ipv6- @@ -1934,768 +1972,268 @@ | | | | +--rw v6-prefix-length? uint8 | | | | +--rw v6-loose? boolean | | | +--:(as-number) | | | | +--rw as-number? uint16 | | | +--:(unnumbered-link) | | | | +--rw router-id? inet:ip-address | | | | +--rw interface-id? uint32 | | | +--:(label) | | | +--rw value? uint32 | | +--rw underlay-protection-type? uint16 - | | +--rw underlay-trail-src + | | +--rw underlay-tunnel-src | | | +--rw tp-ref? leafref | | | +--rw node-ref? leafref | | | +--rw network-ref? leafref - | | +--rw underlay-trail-des + | | +--rw underlay-tunnel-des | | +--rw tp-ref? leafref | | +--rw node-ref? leafref | | +--rw network-ref? leafref | +--rw admin-status? te-types:te- admin-status - | +--rw performance-metric-throttle {te-performance- - metric}? - | | +--rw unidirectional-delay-offset? uint32 - | | +--rw measure-interval? uint32 - | | +--rw advertisement-interval? uint32 - | | +--rw suppression-interval? uint32 - | | +--rw threshold-out - | | | +--rw unidirectional-delay? uint32 - | | | +--rw unidirectional-min-delay? uint32 - | | | +--rw unidirectional-max-delay? uint32 - | | | +--rw unidirectional-delay-variation? uint32 - | | | +--rw unidirectional-packet-loss? - decimal64 - | | | +--rw unidirectional-residual-bandwidth? - decimal64 - | | | +--rw unidirectional-available-bandwidth? - decimal64 - | | | +--rw unidirectional-utilized-bandwidth? - decimal64 - | | +--rw threshold-in - | | | +--rw unidirectional-delay? uint32 - | | | +--rw unidirectional-min-delay? uint32 - | | | +--rw unidirectional-max-delay? uint32 - | | | +--rw unidirectional-delay-variation? uint32 - | | | +--rw unidirectional-packet-loss? - decimal64 - | | | +--rw unidirectional-residual-bandwidth? - decimal64 - | | | +--rw unidirectional-available-bandwidth? - decimal64 - | | | +--rw unidirectional-utilized-bandwidth? - decimal64 - | | +--rw threshold-accelerated-advertisement - | | +--rw unidirectional-delay? uint32 - | | +--rw unidirectional-min-delay? uint32 - | | +--rw unidirectional-max-delay? uint32 - | | +--rw unidirectional-delay-variation? uint32 - | | +--rw unidirectional-packet-loss? - decimal64 - | | +--rw unidirectional-residual-bandwidth? - decimal64 - | | +--rw unidirectional-available-bandwidth? - decimal64 - | | +--rw unidirectional-utilized-bandwidth? - decimal64 | +--rw link-index? uint64 | +--rw administrative-group? te-types:admin- groups | +--rw interface-switching-capability* [switching- capability] | | +--rw switching-capability identityref | | +--rw encoding? identityref | | +--rw max-lsp-bandwidth* [priority] - | | | +--rw priority uint8 - | | | +--rw bandwidth? decimal64 - | | +--rw time-division-multiplex-capable - | | +--rw minimum-lsp-bandwidth? decimal64 - | | +--rw indication? enumeration + | | +--rw priority uint8 + | | +--rw bandwidth? te-bandwidth | +--rw link-protection-type? enumeration - | +--rw max-link-bandwidth? decimal64 - | +--rw max-resv-link-bandwidth? decimal64 + | +--rw max-link-bandwidth? te-bandwidth + | +--rw max-resv-link-bandwidth? te-bandwidth | +--rw unreserved-bandwidth* [priority] | | +--rw priority uint8 - | | +--rw bandwidth? decimal64 + | | +--rw bandwidth? te-bandwidth | +--rw te-default-metric? uint32 - | +--rw performance-metric {te-performance-metric}? - | | +--rw measurement - | | | +--rw unidirectional-delay? uint32 - | | | +--rw unidirectional-min-delay? uint32 - | | | +--rw unidirectional-max-delay? uint32 - | | | +--rw unidirectional-delay-variation? uint32 - | | | +--rw unidirectional-packet-loss? - decimal64 - | | | +--rw unidirectional-residual-bandwidth? - decimal64 - | | | +--rw unidirectional-available-bandwidth? - decimal64 - | | | +--rw unidirectional-utilized-bandwidth? - decimal64 - | | +--rw normality - | | +--rw unidirectional-delay? te- - types:performance-metric-normality - | | +--rw unidirectional-min-delay? te- - types:performance-metric-normality - | | +--rw unidirectional-max-delay? te- - types:performance-metric-normality - | | +--rw unidirectional-delay-variation? te- - types:performance-metric-normality - | | +--rw unidirectional-packet-loss? te- - types:performance-metric-normality - | | +--rw unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | | +--rw unidirectional-available-bandwidth? te- - types:performance-metric-normality - | | +--rw unidirectional-utilized-bandwidth? te- - types:performance-metric-normality + | +--rw te-delay-metric? uint32 | +--rw te-srlgs | +--rw value* te-types:srlg +--ro state - +--ro (bundle-stack-level)? - | +--:(bundle) - | | +--ro bundled-links - | | +--ro bundled-link* [sequence] + | +--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-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 schedules - | | +--ro schedule* [schedule-id] - | | +--ro schedule-id uint32 - | | +--ro start? yang:date-and-time - | | +--ro schedule-duration? string - | | +--ro repeat-interval? string - | +--ro access-type? te-types:te-link- + | | +--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 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 underlay-primary-path - | | | +--ro provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | | +--ro path-element* [path-element-id] - | | | +--ro path-element-id uint32 - | | | +--ro (type)? - | | | +--:(ipv4-address) - | | | | +--ro v4-address? inet:ipv4- + | | +--ro external-domain + | | | +--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 underlay-primary-path + | | | | +--ro provider-ref? leafref + | | | | +--ro client-ref? leafref + | | | | +--ro te-topology-ref? leafref + | | | | +--ro network-ref? leafref + | | | | +--ro path-element* [path-element-id] + | | | | +--ro path-element-id uint32 + | | | | +--ro (type)? + | | | | +--:(ipv4-address) + | | | | | +--ro v4-address? inet:ipv4- address - | | | | +--ro v4-prefix-length? uint8 - | | | | +--ro v4-loose? boolean - | | | +--:(ipv6-address) - | | | | +--ro v6-address? inet:ipv6- + | | | | | +--ro v4-prefix-length? uint8 + | | | | | +--ro v4-loose? boolean + | | | | +--:(ipv6-address) + | | | | | +--ro v6-address? inet:ipv6- address - | | | | +--ro v6-prefix-length? uint8 - | | | | +--ro v6-loose? boolean - | | | +--:(as-number) - | | | | +--ro as-number? uint16 - | | | +--:(unnumbered-link) - | | | | +--ro router-id? inet:ip-address - | | | | +--ro interface-id? uint32 - | | | +--:(label) - | | | +--ro value? uint32 - | | +--ro underlay-backup-path* [index] - | | | +--ro index uint32 - | | | +--ro provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | | +--ro path-element* [path-element-id] - | | | +--ro path-element-id uint32 - | | | +--ro (type)? - | | | +--:(ipv4-address) - | | | | +--ro v4-address? inet:ipv4- + | | | | | +--ro v6-prefix-length? uint8 + | | | | | +--ro v6-loose? boolean + | | | | +--:(as-number) + | | | | | +--ro as-number? uint16 + | | | | +--:(unnumbered-link) + | | | | | +--ro router-id? inet:ip-address + | | | | | +--ro interface-id? uint32 + | | | | +--:(label) + | | | | +--ro value? uint32 + | | | +--ro underlay-backup-path* [index] + | | | | +--ro index uint32 + | | | | +--ro provider-ref? leafref + | | | | +--ro client-ref? leafref + | | | | +--ro te-topology-ref? leafref + | | | | +--ro network-ref? leafref + | | | | +--ro path-element* [path-element-id] + | | | | +--ro path-element-id uint32 + | | | | +--ro (type)? + | | | | +--:(ipv4-address) + | | | | | +--ro v4-address? inet:ipv4- address - | | | | +--ro v4-prefix-length? uint8 - | | | | +--ro v4-loose? boolean - | | | +--:(ipv6-address) - | | | | +--ro v6-address? inet:ipv6- + | | | | | +--ro v4-prefix-length? uint8 + | | | | | +--ro v4-loose? boolean + | | | | +--:(ipv6-address) + | | | | | +--ro v6-address? inet:ipv6- address - | | | | +--ro v6-prefix-length? uint8 - | | | | +--ro v6-loose? boolean - | | | +--:(as-number) - | | | | +--ro as-number? uint16 - | | | +--:(unnumbered-link) - | | | | +--ro router-id? inet:ip-address - | | | | +--ro interface-id? uint32 - | | | +--:(label) - | | | +--ro value? uint32 - | | +--ro underlay-protection-type? uint16 - | | +--ro underlay-trail-src + | | | | | +--ro v6-prefix-length? uint8 + | | | | | +--ro v6-loose? boolean + | | | | +--:(as-number) + | | | | | +--ro as-number? uint16 + | | | | +--:(unnumbered-link) + | | | | | +--ro router-id? inet:ip-address + | | | | | +--ro interface-id? uint32 + | | | | +--:(label) + | | | | +--ro value? uint32 + | | | +--ro underlay-protection-type? uint16 + | | | +--ro underlay-tunnel-src + | | | | +--ro tp-ref? leafref + | | | | +--ro node-ref? leafref + | | | | +--ro network-ref? leafref + | | | +--ro underlay-tunnel-des | | | +--ro tp-ref? leafref | | | +--ro node-ref? leafref | | | +--ro network-ref? leafref - | | +--ro underlay-trail-des - | | +--ro tp-ref? leafref - | | +--ro node-ref? leafref - | | +--ro network-ref? leafref - | +--ro admin-status? te-types:te- + | | +--ro admin-status? te-types:te- admin-status - | +--ro performance-metric-throttle {te-performance- - metric}? - | | +--ro unidirectional-delay-offset? uint32 - | | +--ro measure-interval? uint32 - | | +--ro advertisement-interval? uint32 - | | +--ro suppression-interval? uint32 - | | +--ro threshold-out - | | | +--ro unidirectional-delay? uint32 - | | | +--ro unidirectional-min-delay? uint32 - | | | +--ro unidirectional-max-delay? uint32 - | | | +--ro unidirectional-delay-variation? uint32 - | | | +--ro unidirectional-packet-loss? - decimal64 - | | | +--ro unidirectional-residual-bandwidth? - decimal64 - | | | +--ro unidirectional-available-bandwidth? - decimal64 - | | | +--ro unidirectional-utilized-bandwidth? - decimal64 - | | +--ro threshold-in - | | | +--ro unidirectional-delay? uint32 - | | | +--ro unidirectional-min-delay? uint32 - | | | +--ro unidirectional-max-delay? uint32 - | | | +--ro unidirectional-delay-variation? uint32 - | | | +--ro unidirectional-packet-loss? - decimal64 - | | | +--ro unidirectional-residual-bandwidth? - decimal64 - | | | +--ro unidirectional-available-bandwidth? - decimal64 - | | | +--ro unidirectional-utilized-bandwidth? - decimal64 - | | +--ro threshold-accelerated-advertisement - | | +--ro unidirectional-delay? uint32 - | | +--ro unidirectional-min-delay? uint32 - | | +--ro unidirectional-max-delay? uint32 - | | +--ro unidirectional-delay-variation? uint32 - | | +--ro unidirectional-packet-loss? - decimal64 - | | +--ro unidirectional-residual-bandwidth? - decimal64 - | | +--ro unidirectional-available-bandwidth? - decimal64 - | | +--ro unidirectional-utilized-bandwidth? - decimal64 - | +--ro link-index? uint64 - | +--ro administrative-group? te-types:admin- + | | +--ro link-index? uint64 + | | +--ro administrative-group? te-types:admin- groups - | +--ro interface-switching-capability* [switching- + | | +--ro interface-switching-capability* [switching- capability] - | | +--ro switching-capability identityref - | | +--ro encoding? identityref - | | +--ro max-lsp-bandwidth* [priority] + | | | +--ro switching-capability identityref + | | | +--ro encoding? identityref + | | | +--ro max-lsp-bandwidth* [priority] | | | +--ro priority uint8 - | | | +--ro bandwidth? decimal64 - | | +--ro time-division-multiplex-capable - | | +--ro minimum-lsp-bandwidth? decimal64 - | | +--ro indication? enumeration - | +--ro link-protection-type? enumeration - | +--ro max-link-bandwidth? decimal64 - | +--ro max-resv-link-bandwidth? decimal64 - | +--ro unreserved-bandwidth* [priority] - | | +--ro priority uint8 - | | +--ro bandwidth? decimal64 - | +--ro te-default-metric? uint32 - | +--ro performance-metric {te-performance-metric}? - | | +--ro measurement - | | | +--ro unidirectional-delay? uint32 - | | | +--ro unidirectional-min-delay? uint32 - | | | +--ro unidirectional-max-delay? uint32 - | | | +--ro unidirectional-delay-variation? uint32 - | | | +--ro unidirectional-packet-loss? - decimal64 - | | | +--ro unidirectional-residual-bandwidth? - decimal64 - | | | +--ro unidirectional-available-bandwidth? - decimal64 - | | | +--ro unidirectional-utilized-bandwidth? - decimal64 - | | +--ro normality - | | +--ro unidirectional-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-min-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-max-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-delay-variation? te- - types:performance-metric-normality - | | +--ro unidirectional-packet-loss? te- - types:performance-metric-normality - | | +--ro unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | | +--ro unidirectional-available-bandwidth? te- - types:performance-metric-normality - | | +--ro unidirectional-utilized-bandwidth? te- - types:performance-metric-normality - | +--ro te-srlgs - | +--ro value* te-types:srlg - +--ro oper-status? te-types:te-oper-status - +--ro is-transitional? empty - +--ro information-source? enumeration - +--ro information-source-state - | +--ro credibility-preference? uint16 - | +--ro topology - | | +--ro provider-id-ref? leafref - | | +--ro client-id-ref? leafref - | | +--ro te-topology-id-ref? leafref - | | +--ro network-id-ref? leafref - | +--ro routing-instance? string - +--ro information-source-entry* [information-source] - | +--ro information-source enumeration + | | | +--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 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 provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | +--ro routing-instance? string - | +--ro link-index? uint64 - | +--ro administrative-group? te-types:admin- + | | +--ro provider-ref? leafref + | | +--ro client-ref? leafref + | | +--ro te-topology-ref? leafref + | | +--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 provider-ref? leafref + | | | +--ro client-ref? leafref + | | | +--ro te-topology-ref? leafref + | | | +--ro network-ref? leafref + | | | +--ro link-ref? leafref + | | +--ro link-index? uint64 + | | +--ro administrative-group? te-types:admin- groups - | +--ro interface-switching-capability* [switching- + | | +--ro interface-switching-capability* [switching- capability] - | | +--ro switching-capability identityref - | | +--ro encoding? identityref - | | +--ro max-lsp-bandwidth* [priority] + | | | +--ro switching-capability identityref + | | | +--ro encoding? identityref + | | | +--ro max-lsp-bandwidth* [priority] | | | +--ro priority uint8 - | | | +--ro bandwidth? decimal64 - | | +--ro time-division-multiplex-capable - | | +--ro minimum-lsp-bandwidth? decimal64 - | | +--ro indication? enumeration - | +--ro link-protection-type? enumeration - | +--ro max-link-bandwidth? decimal64 - | +--ro max-resv-link-bandwidth? decimal64 - | +--ro unreserved-bandwidth* [priority] - | | +--ro priority uint8 - | | +--ro bandwidth? decimal64 - | +--ro te-default-metric? uint32 - | +--ro performance-metric {te-performance-metric}? - | | +--ro measurement - | | | +--ro unidirectional-delay? uint32 - | | | +--ro unidirectional-min-delay? uint32 - | | | +--ro unidirectional-max-delay? uint32 - | | | +--ro unidirectional-delay-variation? uint32 - | | | +--ro unidirectional-packet-loss? - decimal64 - | | | +--ro unidirectional-residual-bandwidth? - decimal64 - | | | +--ro unidirectional-available-bandwidth? - decimal64 - | | | +--ro unidirectional-utilized-bandwidth? - decimal64 - | | +--ro normality - | | +--ro unidirectional-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-min-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-max-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-delay-variation? te- - types:performance-metric-normality - | | +--ro unidirectional-packet-loss? te- - types:performance-metric-normality - | | +--ro unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | | +--ro unidirectional-available-bandwidth? te- - types:performance-metric-normality - | | +--ro unidirectional-utilized-bandwidth? te- - types:performance-metric-normality - | +--ro te-srlgs - | +--ro value* te-types:srlg - +--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 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 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 tunnel-id? uint16 + +--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 + +--ro ups? yang:counter32 + +--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 te-tp-id te-types:te-tp-id +--rw config - | +--rw schedules - | | +--rw schedule* [schedule-id] - | | +--rw schedule-id uint32 - | | +--rw start? yang:date-and-time - | | +--rw schedule-duration? string - | | +--rw repeat-interval? string | +--rw interface-switching-capability* [switching-capability] | | +--rw switching-capability identityref | | +--rw encoding? identityref | | +--rw max-lsp-bandwidth* [priority] - | | | +--rw priority uint8 - | | | +--rw bandwidth? decimal64 - | | +--rw time-division-multiplex-capable - | | +--rw minimum-lsp-bandwidth? decimal64 - | | +--rw indication? enumeration + | | +--rw priority uint8 + | | +--rw bandwidth? te-bandwidth | +--rw inter-layer-lock-id? uint32 +--ro state - +--ro schedules - | +--ro schedule* [schedule-id] - | +--ro schedule-id uint32 - | +--ro start? yang:date-and-time - | +--ro schedule-duration? string - | +--ro repeat-interval? string +--ro interface-switching-capability* [switching-capability] | +--ro switching-capability identityref | +--ro encoding? identityref | +--ro max-lsp-bandwidth* [priority] - | | +--ro priority uint8 - | | +--ro bandwidth? decimal64 - | +--ro time-division-multiplex-capable - | +--ro minimum-lsp-bandwidth? decimal64 - | +--ro indication? enumeration + | +--ro priority uint8 + | +--ro bandwidth? te-bandwidth +--ro inter-layer-lock-id? uint32 - notifications: - +---n te-node-event - | +--ro event-type? te-types:te-topology-event- - type - | +--ro node-ref? leafref - | +--ro network-ref? leafref - | +--ro te-topology! - | +--ro te-node-attributes - | | +--ro schedules - | | | +--ro schedule* [schedule-id] - | | | +--ro schedule-id uint32 - | | | +--ro start? yang:date-and-time - | | | +--ro schedule-duration? string - | | | +--ro repeat-interval? string - | | +--ro admin-status? te-types:te-admin-status - | | +--ro connectivity-matrix* [id] - | | | +--ro id uint32 - | | | +--ro from - | | | | +--ro tp-ref? leafref - | | | | +--ro node-ref? leafref - | | | | +--ro network-ref? leafref - | | | +--ro to - | | | | +--ro tp-ref? leafref - | | | | +--ro node-ref? leafref - | | | | +--ro network-ref? leafref - | | | +--ro is-allowed? boolean - | | +--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 provider-id-ref? leafref - | | +--ro client-id-ref? leafref - | | +--ro te-topology-id-ref? leafref - | | +--ro network-id-ref? leafref - | +--ro oper-status? te-types:te-oper-status - | +--ro is-multi-access-dr? empty - | +--ro information-source? enumeration - | +--ro information-source-state - | | +--ro credibility-preference? uint16 - | | +--ro topology - | | | +--ro provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | +--ro routing-instance? string - | +--ro information-source-entry* [information-source] - | +--ro information-source enumeration - | +--ro information-source-state - | | +--ro credibility-preference? uint16 - | | +--ro topology - | | | +--ro provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | +--ro routing-instance? string - | +--ro connectivity-matrix* [id] - | | +--ro id uint32 - | | +--ro from - | | | +--ro tp-ref? leafref - | | | +--ro node-ref? leafref - | | | +--ro network-ref? leafref - | | +--ro to - | | | +--ro tp-ref? leafref - | | | +--ro node-ref? leafref - | | | +--ro network-ref? leafref - | | +--ro is-allowed? boolean - | +--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 provider-id-ref? leafref - | +--ro client-id-ref? leafref - | +--ro te-topology-id-ref? leafref - | +--ro network-id-ref? leafref - +---n te-link-event - +--ro event-type? te-types:te-topology-event- - type - +--ro link-ref? leafref - +--ro network-ref? leafref - +--ro te-topology! - +--ro te-link-attributes - | +--ro schedules - | | +--ro schedule* [schedule-id] - | | +--ro schedule-id uint32 - | | +--ro start? yang:date-and-time - | | +--ro schedule-duration? string - | | +--ro repeat-interval? string - | +--ro access-type? te-types:te-link- - access-type - | +--ro external-domain - | | +--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 underlay-primary-path - | | | +--ro provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | | +--ro path-element* [path-element-id] - | | | +--ro path-element-id uint32 - | | | +--ro (type)? - | | | +--:(ipv4-address) - | | | | +--ro v4-address? inet:ipv4-address - | | | | +--ro v4-prefix-length? uint8 - | | | | +--ro v4-loose? boolean - | | | +--:(ipv6-address) - | | | | +--ro v6-address? inet:ipv6-address - | | | | +--ro v6-prefix-length? uint8 - | | | | +--ro v6-loose? boolean - | | | +--:(as-number) - | | | | +--ro as-number? uint16 - | | | +--:(unnumbered-link) - | | | | +--ro router-id? inet:ip-address - | | | | +--ro interface-id? uint32 - | | | +--:(label) - | | | +--ro value? uint32 - | | +--ro underlay-backup-path* [index] - | | | +--ro index uint32 - | | | +--ro provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | | +--ro path-element* [path-element-id] - | | | +--ro path-element-id uint32 - | | | +--ro (type)? - | | | +--:(ipv4-address) - | | | | +--ro v4-address? inet:ipv4-address - | | | | +--ro v4-prefix-length? uint8 - | | | | +--ro v4-loose? boolean - | | | +--:(ipv6-address) - | | | | +--ro v6-address? inet:ipv6-address - | | | | +--ro v6-prefix-length? uint8 - | | | | +--ro v6-loose? boolean - | | | +--:(as-number) - | | | | +--ro as-number? uint16 - | | | +--:(unnumbered-link) - | | | | +--ro router-id? inet:ip-address - | | | | +--ro interface-id? uint32 - | | | +--:(label) - | | | +--ro value? uint32 - | | +--ro underlay-protection-type? uint16 - | | +--ro underlay-trail-src - | | | +--ro tp-ref? leafref - | | | +--ro node-ref? leafref - | | | +--ro network-ref? leafref - | | +--ro underlay-trail-des - | | | +--ro tp-ref? leafref - | | | +--ro node-ref? leafref - | | | +--ro network-ref? leafref - | | +--ro dynamic? boolean - | | +--ro committed? boolean - | +--ro admin-status? te-types:te-admin- - status - | +--ro performance-metric-throttle {te-performance-metric}? - | | +--ro unidirectional-delay-offset? uint32 - | | +--ro measure-interval? uint32 - | | +--ro advertisement-interval? uint32 - | | +--ro suppression-interval? uint32 - | | +--ro threshold-out - | | | +--ro unidirectional-delay? uint32 - | | | +--ro unidirectional-min-delay? uint32 - | | | +--ro unidirectional-max-delay? uint32 - | | | +--ro unidirectional-delay-variation? uint32 - | | | +--ro unidirectional-packet-loss? decimal64 - | | | +--ro unidirectional-residual-bandwidth? decimal64 - | | | +--ro unidirectional-available-bandwidth? decimal64 - | | | +--ro unidirectional-utilized-bandwidth? decimal64 - | | +--ro threshold-in - | | | +--ro unidirectional-delay? uint32 - | | | +--ro unidirectional-min-delay? uint32 - | | | +--ro unidirectional-max-delay? uint32 - | | | +--ro unidirectional-delay-variation? uint32 - | | | +--ro unidirectional-packet-loss? decimal64 - | | | +--ro unidirectional-residual-bandwidth? decimal64 - | | | +--ro unidirectional-available-bandwidth? decimal64 - | | | +--ro unidirectional-utilized-bandwidth? decimal64 - | | +--ro threshold-accelerated-advertisement - | | +--ro unidirectional-delay? uint32 - | | +--ro unidirectional-min-delay? uint32 - | | +--ro unidirectional-max-delay? uint32 - | | +--ro unidirectional-delay-variation? uint32 - | | +--ro unidirectional-packet-loss? decimal64 - | | +--ro unidirectional-residual-bandwidth? decimal64 - | | +--ro unidirectional-available-bandwidth? decimal64 - | | +--ro unidirectional-utilized-bandwidth? decimal64 - | +--ro link-index? uint64 - | +--ro administrative-group? te-types:admin- - groups - | +--ro interface-switching-capability* [switching-capability] - | | +--ro switching-capability identityref - | | +--ro encoding? identityref - | | +--ro max-lsp-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? decimal64 - | | +--ro time-division-multiplex-capable - | | +--ro minimum-lsp-bandwidth? decimal64 - | | +--ro indication? enumeration - | +--ro link-protection-type? enumeration - | +--ro max-link-bandwidth? decimal64 - | +--ro max-resv-link-bandwidth? decimal64 - | +--ro unreserved-bandwidth* [priority] - | | +--ro priority uint8 - | | +--ro bandwidth? decimal64 - | +--ro te-default-metric? uint32 - | +--ro performance-metric {te-performance-metric}? - | | +--ro measurement - | | | +--ro unidirectional-delay? uint32 - | | | +--ro unidirectional-min-delay? uint32 - | | | +--ro unidirectional-max-delay? uint32 - | | | +--ro unidirectional-delay-variation? uint32 - | | | +--ro unidirectional-packet-loss? decimal64 - | | | +--ro unidirectional-residual-bandwidth? decimal64 - | | | +--ro unidirectional-available-bandwidth? decimal64 - | | | +--ro unidirectional-utilized-bandwidth? decimal64 - | | +--ro normality - | | +--ro unidirectional-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-min-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-max-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-delay-variation? te- - types:performance-metric-normality - | | +--ro unidirectional-packet-loss? te- - types:performance-metric-normality - | | +--ro unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | | +--ro unidirectional-available-bandwidth? te- - types:performance-metric-normality - | | +--ro unidirectional-utilized-bandwidth? te- - types:performance-metric-normality - | +--ro te-srlgs - | +--ro value* te-types:srlg - +--ro oper-status? te-types:te-oper-status - +--ro is-transitional? empty - +--ro information-source? enumeration - +--ro information-source-state - | +--ro credibility-preference? uint16 - | +--ro topology - | | +--ro provider-id-ref? leafref - | | +--ro client-id-ref? leafref - | | +--ro te-topology-id-ref? leafref - | | +--ro network-id-ref? leafref - | +--ro routing-instance? string - +--ro information-source-entry* [information-source] - | +--ro information-source enumeration - | +--ro information-source-state - | | +--ro credibility-preference? uint16 - | | +--ro topology - | | | +--ro provider-id-ref? leafref - | | | +--ro client-id-ref? leafref - | | | +--ro te-topology-id-ref? leafref - | | | +--ro network-id-ref? leafref - | | +--ro routing-instance? string - | +--ro link-index? uint64 - | +--ro administrative-group? te-types:admin- - groups - | +--ro interface-switching-capability* [switching-capability] - | | +--ro switching-capability identityref - | | +--ro encoding? identityref - | | +--ro max-lsp-bandwidth* [priority] - | | | +--ro priority uint8 - | | | +--ro bandwidth? decimal64 - | | +--ro time-division-multiplex-capable - | | +--ro minimum-lsp-bandwidth? decimal64 - | | +--ro indication? enumeration - | +--ro link-protection-type? enumeration - | +--ro max-link-bandwidth? decimal64 - | +--ro max-resv-link-bandwidth? decimal64 - | +--ro unreserved-bandwidth* [priority] - | | +--ro priority uint8 - | | +--ro bandwidth? decimal64 - | +--ro te-default-metric? uint32 - | +--ro performance-metric {te-performance-metric}? - | | +--ro measurement - | | | +--ro unidirectional-delay? uint32 - | | | +--ro unidirectional-min-delay? uint32 - | | | +--ro unidirectional-max-delay? uint32 - | | | +--ro unidirectional-delay-variation? uint32 - | | | +--ro unidirectional-packet-loss? decimal64 - | | | +--ro unidirectional-residual-bandwidth? decimal64 - | | | +--ro unidirectional-available-bandwidth? decimal64 - | | | +--ro unidirectional-utilized-bandwidth? decimal64 - | | +--ro normality - | | +--ro unidirectional-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-min-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-max-delay? te- - types:performance-metric-normality - | | +--ro unidirectional-delay-variation? te- - types:performance-metric-normality - | | +--ro unidirectional-packet-loss? te- - types:performance-metric-normality - | | +--ro unidirectional-residual-bandwidth? te- - types:performance-metric-normality - | | +--ro unidirectional-available-bandwidth? te- - types:performance-metric-normality - | | +--ro unidirectional-utilized-bandwidth? te- - types:performance-metric-normality - | +--ro te-srlgs - | +--ro value* te-types:srlg - +--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 geolocation + +--ro altitude? int64 + +--ro latitude? geographic-coordinate-degree + +--ro longitude? geographic-coordinate-degree 7. TE Topology Yang Module - file "ietf-te-topology@2016-07-08.yang" + file "ietf-te-topology@2016-10-21.yang" module ietf-te-topology { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology"; - // replace with IANA namespace when assigned prefix "tet"; + import ietf-yang-types { + prefix "yang"; + } import ietf-inet-types { prefix "inet"; } - import ietf-schedule { - prefix "sch"; - } - import ietf-te-types { prefix "te-types"; } import ietf-network { prefix "nw"; } import ietf-network-topology { prefix "nt"; @@ -2728,67 +2266,112 @@ Editor: Himanshu Shah Editor: Oscar Gonzalez De Dios "; description "TE topology model"; - revision "2016-07-08" { + revision "2016-10-21" { description "Initial revision"; reference "TBD"; } /* * Features */ - - feature configuration-schedule { - description - "This feature indicates that the system supports - configuration scheduling."; - } - feature te-topology-hierarchy { description "This feature indicates that the system allows underlay and/or overlay TE topology hierarchy."; - - } - - feature te-performance-metric { - description - "This feature indicates that the system supports - TE performance metric."; - reference - "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. - RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. - RFC7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; } feature template { description "This feature indicates that the system supports template configuration."; } /* * Typedefs */ + typedef geographic-coordinate-degree { + type decimal64 { + fraction-digits 8; - /* - * Identities - */ + } + 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."; + + } + enum "ospfv3" { + description "OSPFv3."; + } + enum "isis" { + description "ISIS."; + } + enum "bgp-ls" { + description "BGP-LS."; + reference + "RFC7752: North-Bound Distribution of Link-State and + Traffic Engineering (TE) Information Using BGP"; + } + enum "system-processed" { + description "System processed entity."; + } + enum "other" { + description "Other source."; + } + } + description + "Describining the type of source that has provided the + related information, and the source credibility."; + } // te-info-source /* * 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"; @@ -2828,80 +2411,143 @@ 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-restrictions - grouping information-source-attributes { + grouping geolocation-container { description - "The attributes identifying source that has provided the - related information, and the source credibility."; - leaf information-source { - type enumeration { - enum "unknown" { - description "The source is unknown."; - } - enum "locally-configured" { - description "Configured entity."; - } - enum "ospfv2" { - description "OSPFv2."; - } - enum "ospfv3" { - description "OSPFv3."; - } - enum "isis" { - description "ISIS."; + "A container containing a GPS location."; + container geolocation{ + description + "A container containing a GPS location."; + leaf altitude { + type int64; + units millimeter; + description + "Distance above the sea level."; } - enum "system-processed" { - description "System processed entity."; + leaf latitude { + type geographic-coordinate-degree { + range "-90..90"; } - enum "other" { - description "Other source."; + description + "Relative position north or south on the Earth's surface."; } + leaf longitude { + type geographic-coordinate-degree { + range "-180..180"; } description - "Indicates the source of the information."; + "Angular distance east or west on the Earth's surface."; } - container information-source-state { + } // gps-location + } // geolocation-container + + grouping information-source-state-attributes { description - "The container contains state attributes related to - the information source."; + "The attributes identifying source that has provided the + related information, and the source credibility."; leaf credibility-preference { type uint16; description "The preference value to calculate the traffic engineering database credibility value used for tie-break selection between different information-source values. Higher value is more preferable."; } + leaf logical-network-element { + type string; + description + "When applicable, this is the name of a logical network + element from which the information is learned."; + } // logical-network-element + leaf network-instance { + type string; + description + "When applicable, this is the name of a network-instance + from which the information is learned."; + } // 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; + description + "Indicates the source of the information."; + } + container information-source-state { + 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; - } // topology - leaf routing-instance { - type string; + 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 - "When applicable, this is the name of a routing instance - from which the information is learned."; - } // routing-information + "A reference to a link-id."; } - } // information-source-attributes + } // 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; + description + "Indicates the source of the information."; + } + container information-source-state { + 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."; + } + } // 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"; description "List of Interface Switching Capabilities Descriptors (ISCD) for this link."; reference @@ -2916,271 +2562,324 @@ description "Switching Capability for this interface."; } leaf encoding { type identityref { base te-types:lsp-encoding-types; } description "Encoding supported by this interface."; } - list max-lsp-bandwidth { - key "priority"; - max-elements "8"; + uses te-link-iscd-attributes; + } // interface-switching-capability + } // interface-switching-capability-list + + grouping statistics-per-link { description - "Maximum LSP Bandwidth at priorities 0-7."; - leaf priority { - type uint8 { - range "0..7"; - } - description "Priority."; - } - leaf bandwidth { - type decimal64 { - fraction-digits 2; - } + "Statistics attributes per TE link."; + leaf discontinuity-time { + type yang:date-and-time; + mandatory true; description - "Max LSP Bandwidth for this level"; - } + "The time on the most recent occasion at which any one or + more of this interface's counters suffered a + discontinuity. If no such discontinuities have occurred + since the last re-initialization of the local management + subsystem, then this node contains the time the local + management subsystem re-initialized itself."; } - container time-division-multiplex-capable { - when "../switching-capability = 'TDM'" { - description "Valid only for TDM"; + /* Administrative attributes */ + leaf disables { + type yang:counter32; + description + "Number of times that link was disabled."; } + leaf enables { + type yang:counter32; description - "Interface has time-division multiplex capabilities."; - - leaf minimum-lsp-bandwidth { - type decimal64 { - fraction-digits 2; + "Number of times that link was enabled."; } + leaf maintenance-clears { + type yang:counter32; description - "Minimum LSP Bandwidth. Units in bytes per second."; + "Number of times that link was put out of maintenance."; } - leaf indication { - type enumeration { - enum "standard" { + leaf maintenance-sets { + type yang:counter32; description - "Indicates support of standard SONET/SDH."; + "Number of times that link was put in maintenance."; } - enum "arbitrary" { + leaf modifies { + type yang:counter32; description - "Indicates support of arbitrary SONET/SDH."; + "Number of times that link was modified."; } + /* Operational attributes */ + leaf downs { + type yang:counter32; + description + "Number of times that link was set to operational down."; } + leaf ups { + type yang:counter32; description - "Indication whether the interface supports Standard or - Arbitrary SONET/SDH"; + "Number of times that link was set to operational up."; } - } // time-division-multiplex-capable - } // interface-switching-capability - } // interface-switching-capability-list - - grouping performance-metric-attributes { + /* Recovery attributes */ + leaf fault-clears { + type yang:counter32; description - "Link performance information in real time."; - reference - "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. - RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. - RFC7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - leaf unidirectional-delay { - type uint32 { - range 0..16777215; + "Number of times that link experienced fault clear event."; } - description "Delay or latency in micro seconds."; + leaf fault-detects { + type yang:counter32; + description + "Number of times that link experienced fault detection."; } - leaf unidirectional-min-delay { - type uint32 { - range 0..16777215; + leaf protection-switches { + type yang:counter32; + description + "Number of times that link experienced protection + switchover."; } - description "Minimum delay or latency in micro seconds."; + leaf protection-reverts { + type yang:counter32; + description + "Number of times that link experienced protection + reversion."; } - leaf unidirectional-max-delay { - type uint32 { - range 0..16777215; + leaf restoration-failures { + type yang:counter32; + description + "Number of times that link experienced restoration + failure."; } - description "Maximum delay or latency in micro seconds."; + leaf restoration-starts { + type yang:counter32; + description + "Number of times that link experienced restoration + start."; } - leaf unidirectional-delay-variation { - type uint32 { - range 0..16777215; + leaf restoration-successes { + type yang:counter32; + description + "Number of times that link experienced restoration + success."; } - description "Delay variation in micro seconds."; + leaf restoration-reversion-failures { + type yang:counter32; + description + "Number of times that link experienced restoration reversion + failure."; } - leaf unidirectional-packet-loss { - type decimal64 { - fraction-digits 6; - range "0 .. 50.331642"; + leaf restoration-reversion-starts { + type yang:counter32; + description + "Number of times that link experienced restoration reversion + start."; } + leaf restoration-reversion-successes { + type yang:counter32; description - "Packet loss as a percentage of the total traffic sent - over a configurable interval. The finest precision is - 0.000003%."; + "Number of times that link experienced restoration reversion + success."; } - leaf unidirectional-residual-bandwidth { - type decimal64 { - fraction-digits 2; + } // statistics-per-link + + grouping statistics-per-node { + description + "Statistics attributes per TE node."; + leaf discontinuity-time { + type yang:date-and-time; + mandatory true; + description + "The time on the most recent occasion at which any one or + more of this interface's counters suffered a + discontinuity. If no such discontinuities have occurred + since the last re-initialization of the local management + subsystem, then this node contains the time the local + management subsystem re-initialized itself."; } + container node { description - "Residual bandwidth that subtracts tunnel - reservations from Maximum Bandwidth (or link capacity) - [RFC3630] and provides an aggregated remainder across QoS - classes."; + "Containing TE node level statistics attributes."; + leaf disables { + type yang:counter32; + description + "Number of times that node was disabled."; } - leaf unidirectional-available-bandwidth { - type decimal64 { - fraction-digits 2; + leaf enables { + type yang:counter32; + description + "Number of times that node was enabled."; } + leaf maintenance-sets { + type yang:counter32; description - "Available bandwidth that is defined to be residual - bandwidth minus the measured bandwidth used for the - actual forwarding of non-RSVP-TE LSP packets. For a - bundled link, available bandwidth is defined to be the - sum of the component link available bandwidths."; + "Number of times that node was put in maintenance."; } - leaf unidirectional-utilized-bandwidth { - type decimal64 { - fraction-digits 2; + leaf maintenance-clears { + type yang:counter32; + description + "Number of times that node was put out of maintenance."; } + leaf modifies { + type yang:counter32; description - "Bandwidth utilization that represents the actual - utilization of the link (i.e. as measured in the router). - For a bundled link, bandwidth utilization is defined to - be the sum of the component link bandwidth - utilizations."; + "Number of times that node was modified."; } - } // performance-metric-attributes - - grouping performance-metric-normality-attributes { + } // node + container connectivity-matrix-entry { description - "Link performance metric normality attributes."; + "Containing connectivity matrix entry level statistics + attributes."; + leaf creates { + type yang:counter32; + description + "Number of times that a connectivity matrix entry was + created."; reference - "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. - RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. - RFC7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - leaf unidirectional-delay { - type te-types:performance-metric-normality; - description "Delay normality."; + "RFC6241. Section 7.2 for 'create' operation. "; } - leaf unidirectional-min-delay { - type te-types:performance-metric-normality; - description "Minimum delay or latency normality."; + leaf deletes { + type yang:counter32; + description + "Number of times that a connectivity matrix entry was + deleted."; + reference + "RFC6241. Section 7.2 for 'delete' operation. "; } - leaf unidirectional-max-delay { - type te-types:performance-metric-normality; - description "Maximum delay or latency normality."; + leaf disables { + type yang:counter32; + description + "Number of times that a connectivity matrix entry was + disabled."; } - leaf unidirectional-delay-variation { - type te-types:performance-metric-normality; - description "Delay variation normality."; - + leaf enables { + type yang:counter32; + description + "Number of times that a connectivity matrix entry was + enabled."; } - leaf unidirectional-packet-loss { - type te-types:performance-metric-normality; - description "Packet loss normality."; + leaf modifies { + type yang:counter32; + description + "Number of times that a connectivity matrix entry was + modified."; } - leaf unidirectional-residual-bandwidth { - type te-types:performance-metric-normality; - description "Residual bandwidth normality."; + } // connectivity-matrix-entry + } // statistics-per-node + + grouping statistics-per-ttp { + description + "Statistics attributes per TE TTP (Tunnel Termination Point)."; + leaf discontinuity-time { + type yang:date-and-time; + mandatory true; + description + "The time on the most recent occasion at which any one or + more of this interface's counters suffered a + discontinuity. If no such discontinuities have occurred + since the last re-initialization of the local management + subsystem, then this node contains the time the local + management subsystem re-initialized itself."; } - leaf unidirectional-available-bandwidth { - type te-types:performance-metric-normality; - description "Available bandwidth normality."; + container tunnel-termination-point { + description + "Containing TE TTP (Tunnel Termination Point) level + statistics attributes."; + /* Administrative attributes */ + leaf disables { + type yang:counter32; + description + "Number of times that TTP was disabled."; } - leaf unidirectional-utilized-bandwidth { - type te-types:performance-metric-normality; - description "Bandwidth utilization normality."; + leaf enables { + type yang:counter32; + description + "Number of times that TTP was enabled."; } - } // performance-metric-normality-attributes - - grouping performance-metric-throttle-container { + leaf maintenance-clears { + type yang:counter32; description - "A container controlling performance metric throttle."; - container performance-metric-throttle { - if-feature te-performance-metric; - must "suppression-interval >= measure-interval" { - error-message - "suppression-interval cannot be less then - measure-interval."; + "Number of times that TTP was put out of maintenance."; + } + leaf maintenance-sets { + type yang:counter32; description - "Constraint on suppression-interval and - measure-interval."; + "Number of times that TTP was put in maintenance."; } + leaf modifies { + type yang:counter32; description - "Link performance information in real time."; - reference - "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. - RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. - RFC7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - - leaf unidirectional-delay-offset { - type uint32 { - range 0..16777215; + "Number of times that TTP was modified."; } + /* Operational attributes */ + leaf downs { + type yang:counter32; description - "Offset value to be added to the measured delay value."; + "Number of times that TTP was set to operational down."; } - leaf measure-interval { - type uint32; - default 30; + leaf ups { + type yang:counter32; description - "Interval in seconds to measure the extended metric - values."; + "Number of times that TTP was set to operational up."; } - leaf advertisement-interval { - type uint32; + leaf in-service-clears { + type yang:counter32; description - "Interval in seconds to advertise the extended metric - values."; + "Number of times that TTP was taken out of service + (TE tunnel was released)."; } - leaf suppression-interval { - type uint32 { - range "1 .. max"; + leaf in-service-sets { + type yang:counter32; + description + "Number of times that TTP was put in service by a TE + tunnel (TE tunnel was set up)."; } - default 120; + } // tunnel-termination-point + + container local-link-connectivity { description - "Interval in seconds to suppress advertising the extended - metric values."; + "Containing TE LLCL (Local Link Connectivity List) level + statistics attributes."; + leaf creates { + type yang:counter32; + description + "Number of times that an LLCL entry was created."; + reference + "RFC6241. Section 7.2 for 'create' operation. "; } - container threshold-out { - uses performance-metric-attributes; + leaf deletes { + type yang:counter32; description - "If the measured parameter falls outside an upper bound - for all but the min delay metric (or lower bound for - min-delay metric only) and the advertised value is not - already outside that bound, anomalous announcement will be - triggered."; + "Number of times that an LLCL entry was deleted."; + reference + "RFC6241. Section 7.2 for 'delete' operation."; } - container threshold-in { - uses performance-metric-attributes; + leaf disables { + type yang:counter32; description - "If the measured parameter falls inside an upper bound - for all but the min delay metric (or lower bound for - min-delay metric only) and the advertised value is not - already inside that bound, normal (anomalous-flag cleared) - announcement will be triggered."; + "Number of times that an LLCL entry was disabled."; } - container threshold-accelerated-advertisement { + leaf enables { + type yang:counter32; description - "When the difference between the last advertised value and - current measured value exceed this threshold, anomalous - announcement will be triggered."; - uses performance-metric-attributes; + "Number of times that an LLCL entry was enabled."; } + leaf modifies { + type yang:counter32; + description + "Number of times that an LLCL entry was modified."; } - } // performance-metric-throttle-container + } // local-link-connectivity + } // statistics-per-ttp grouping te-link-augment { description "Augmentation for TE link."; container te { presence "TE support."; description "Indicates TE support."; @@ -3189,22 +2888,30 @@ "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 + } // te } // 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 @@ -3292,21 +2998,20 @@ "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."; container te-link-attributes { description "Link attributes in a TE topology."; - uses sch:schedules; leaf access-type { 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 @@ -3356,44 +3062,39 @@ Traffic Engineering (TE)"; uses te-link-underlay-attributes; } // underlay leaf admin-status { type te-types:te-admin-status; description "The administrative state of the link."; } - uses performance-metric-throttle-container; uses te-link-info-attributes; } // te-link-attributes } // te-link-config-attributes grouping te-link-connectivity-attributes { description "Advertised TE connectivity attributes."; leaf max-link-bandwidth { - type decimal64 { - fraction-digits 2; - } + type 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 decimal64 { - fraction-digits 2; - } + type 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"; @@ -3405,55 +3106,34 @@ "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 decimal64 { - fraction-digits 2; - } + type te-bandwidth; description "Unreserved bandwidth for this level."; } } leaf te-default-metric { type uint32; description - "Traffic Engineering Metric."; - } - container performance-metric { - if-feature te-performance-metric; - description - "Link performance information in real time."; - reference - "RFC7471: OSPF Traffic Engineering (TE) Metric Extensions. - RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions. - RFC7823: Performance-Based Path Selection for Explicitly - Routed Label Switched Paths (LSPs) Using TE Metric - Extensions"; - container measurement { - description - "Measured performance metric values. Static configuration - and manual overrides of these measurements are also - allowed."; - uses performance-metric-attributes; + "Traffic engineering metric."; } - container normality - { + leaf te-delay-metric { + type uint32; description - "Performance metric normality values."; - uses performance-metric-normality-attributes; - } + "Traffic engineering delay metric."; } container te-srlgs { description "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)."; @@ -3504,28 +3184,53 @@ } 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; + 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; description "The current operational state of the link."; - } leaf is-transitional { type empty; 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 @@ -3526,27 +3231,27 @@ "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-attributes; + uses information-source-per-link-attributes; list information-source-entry { key "information-source"; description "A list of information sources learned, including the one used."; - uses information-source-attributes; + uses information-source-per-link-attributes; uses te-link-info-attributes; } container recovery { description "Status of the recovery process."; leaf restoration-status { type te-types:te-recovery-status; description "Restoration status."; } @@ -3568,20 +3273,31 @@ leaf dynamic { type boolean; description "true if the underlay is dynamically created."; } leaf committed { type boolean; description "true if the underlay is committed."; } + leaf tunnel-id { + type uint16; + description + "Tunnel identifier used in the SESSION that remains constant + over the life of the tunnel. + This attribute is used together with underlay-tunnel-src + and underlay-tunnel-src. + The detailed information of this tunnel can be retrieved + from the ietf-te model."; + reference "RFC3209"; + } } // te-link-state-underlay-attributes grouping te-link-underlay-attributes { description "Attributes for te-link underlay."; reference "RFC4206: Label Switched Paths (LSP) Hierarchy with Generalized Multi-Protocol Label Switching (GMPLS) Traffic Engineering (TE)"; container underlay-primary-path { description @@ -3623,88 +3340,99 @@ description "To identify the element in a path."; } uses te-path-element; } } // underlay-backup-path leaf underlay-protection-type { type uint16; description "Underlay protection type desired for this link"; } - container underlay-trail-src { + container underlay-tunnel-src { uses nt:tp-ref; description - "Source TE link of the underlay trail."; + "Source TE link of the underlay tunnel."; } - container underlay-trail-des { + container underlay-tunnel-des { uses nt:tp-ref; description - "Destination TE link of the underlay trail."; - + "Destination TE link of the underlay tunnel."; } } // te-link-underlay-attributes grouping te-node-augment { description "Augmentation for TE node."; - container te { - presence "TE support."; - description - "Indicates TE support."; - leaf te-node-id { type te-types:te-node-id; - mandatory true; 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"; + 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-capability; + uses te-node-tunnel-termination-attributes; } - container state { config false; description "Operational state data."; - uses te-node-tunnel-termination-capability; + uses te-node-tunnel-termination-attributes; + uses geolocation-container; } // state + container statistics { + config false; + description + "Statistics data."; + uses statistics-per-ttp; + } // statistics } // tunnel-termination-point } // te } // te-node-augment grouping te-node-config { description "TE node configuration grouping."; leaf-list te-node-template { if-feature template; type leafref { @@ -3713,61 +3441,42 @@ 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."; - uses sch:schedules; leaf admin-status { type te-types:te-admin-status; description "The administrative state of the link."; } uses te-node-connectivity-matrix; uses te-node-info-attributes; } // te-node-attributes } // te-node-config-attributes - grouping te-node-config-attributes-notification { - description - "Configuration node attributes for template in a TE topology."; - container te-node-attributes { - description "Containing node attributes in a TE topology."; - uses sch:schedules; - leaf admin-status { - type te-types:te-admin-status; - description - "The administrative state of the link."; - } - uses te-node-connectivity-matrix-abs; - uses te-node-info-attributes; - } // te-node-attributes - } // te-node-config-attributes-notification - 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."; - uses sch:schedules; 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 { description "Connectivity matrix on a TE node."; list connectivity-matrix { key "id"; description "Represents node's switching limitations, i.e. limitations in interconnecting network TE links across the node."; reference @@ -3799,20 +3508,32 @@ description "Reference to destination NTP."; } leaf is-allowed { type boolean; description "true - switching is allowed, false - switching is disallowed."; } uses connectivity-label-restriction-list; + container underlay { + if-feature te-topology-hierarchy; + presence + "Indicates the underlay exists for this link."; + 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-connectivity-attributes; } } // 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"; @@ -3887,38 +3606,39 @@ } } // 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; description "The current operational state of the node."; } + uses geolocation-container; leaf is-multi-access-dr { type empty; 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-attributes; + uses information-source-per-node-attributes; list information-source-entry { key "information-source"; description "A list of information sources learned, including the one used."; - uses information-source-attributes; + uses information-source-per-node-attributes; uses te-node-connectivity-matrix; uses te-node-info-attributes; } } // te-node-state-derived grouping te-node-state-derived-notification { description "Node state attributes in a TE topology."; leaf oper-status { type te-types:te-oper-status; description @@ -3929,33 +3648,34 @@ type empty; 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-attributes; + uses information-source-per-node-attributes; list information-source-entry { key "information-source"; description "A list of information sources learned, including the one used."; - uses information-source-attributes; + uses information-source-per-node-attributes; uses te-node-connectivity-matrix-abs; uses te-node-info-attributes; } + } // te-node-state-derived-notification - grouping te-node-tunnel-termination-capability { + grouping te-node-tunnel-termination-attributes { description "Termination capability of a tunnel termination point on a TE node."; leaf switching-capability { type identityref { base te-types:switching-capabilities; } description "Switching Capability for this interface."; @@ -3979,111 +3699,89 @@ for Multi-Layer and Multi-Region Networks (MLN/MRN)."; } leaf protection-type { type identityref { base te-types:lsp-prot-type; } description "The protection type that this tunnel termination point is capable of."; } - - list termination-capability { - key "link-tp"; + 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 - termination-capability list."; + local-link-connectivity list."; reference "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN)."; - leaf link-tp { + leaf link-tp-ref { type leafref { path "../../../../../nt:termination-point/nt:tp-id"; } description "Link termination point."; } uses connectivity-label-restriction-list; - - list max-lsp-bandwidth { - key "priority"; - max-elements "8"; - description - "Maximum LSP Bandwidth at priorities 0-7."; - reference - "RFC6001: Generalized MPLS (GMPLS) Protocol Extensions - for Multi-Layer and Multi-Region Networks (MLN/MRN)."; - leaf priority { - type uint8 { - range "0..7"; - } - description "Priority."; - } - leaf bandwidth { - type decimal64 { - fraction-digits 2; - } - description - "Max LSP Bandwidth for this level."; - } - } // max-lsp-bandwidth + uses te-link-iscd-attributes; + uses te-link-connectivity-attributes; } // termination-capability - } // te-node-tunnel-termination-capability + } // te-node-tunnel-termination-attributes 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-subobject; } // te-path-element grouping te-termination-point-augment { description "Augmentation for TE termination point."; - container te { - presence "TE support."; - description - "Indicates TE support."; - leaf te-tp-id { type te-types:te-tp-id; - mandatory true; description "An identifier to uniquely identify a TE termination point."; } + container te { + must "../te-tp-id"; + presence "TE support."; + description + "Indicates TE support."; + container config { description "Configuration data."; uses te-termination-point-config; } // config container state { config false; description "Operational state data."; uses te-termination-point-config; + uses geolocation-container; } // state } // te } // te-termination-point-augment grouping te-termination-point-config { description "TE termination point configuration grouping."; - uses sch:schedules; uses interface-switching-capability-list; leaf inter-layer-lock-id { 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 @@ -4135,64 +3834,62 @@ uses te-link-config-attributes; } // link-template } // templates } // te } // te-topologies-augment grouping te-topology-augment { description "Augmentation for TE topology."; - container te { - presence "TE support."; - description - "Indicates TE support."; - leaf provider-id { type te-types:te-global-id; - mandatory true; description "An identifier to uniquely identify a provider."; } leaf client-id { type te-types:te-global-id; - mandatory true; description "An identifier to uniquely identify a client."; } leaf te-topology-id { type te-types:te-topology-id; - mandatory true; 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."; + 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 } // te-topology-augment grouping te-topology-config { description "TE topology configuration grouping."; - uses sch:schedules; 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 { @@ -4197,67 +3894,67 @@ leaf optimization-criterion { type identityref { base te-types:te-optimization-criterion; } description "Optimization criterion applied to this topology."; reference "RFC3272: Overview and Principles of Internet Traffic Engineering."; } - } // te-topology-config grouping te-topology-ref { description "References a TE topology."; - leaf provider-id-ref { + + leaf provider-ref { type leafref { path "/nw:networks/nw:network[nw:network-id = " - + "current()/../network-id-ref]/tet:te/tet:provider-id"; + + "current()/../network-ref]/tet:provider-id"; require-instance false; } description "A reference to a provider-id."; } - leaf client-id-ref { + leaf client-ref { type leafref { path "/nw:networks/nw:network[nw:network-id = " - + "current()/../network-id-ref]/tet:te/tet:client-id"; + + "current()/../network-ref]/tet:client-id"; require-instance false; } description "A reference to a client-id."; } - leaf te-topology-id-ref { + leaf te-topology-ref { type leafref { path "/nw:networks/nw:network[nw:network-id = " - + "current()/../network-id-ref]/tet:te/tet:te-topology-id"; + + "current()/../network-ref]/tet:te-topology-id"; require-instance false; } description "A reference to a te-topology-id."; } - leaf network-id-ref { + 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 te-topology-type { description "Identifies the TE topology type."; + container te-topology { presence "Indicates TE topology."; description "Its presence identifies the TE topology type."; } } // te-topology-type grouping template-attributes { description "Common attributes for all templates."; @@ -4349,57 +4047,20 @@ + "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"; uses te-termination-point-augment; } - - /* - * Operational state data nodes - */ - - /* - * Notifications - */ - - notification te-node-event { - description "Notification event for TE node."; - leaf event-type { - type te-types:te-topology-event-type; - description "Event type."; - } - uses nw:node-ref; - uses te-topology-type; - uses tet:te-node-config-attributes-notification; - uses tet:te-node-state-derived-notification; - } - - notification te-link-event { - description "Notification event for TE link."; - leaf event-type { - type te-types:te-topology-event-type; - description "Event type"; - } - uses nt:link-ref; - uses te-topology-type; - uses tet:te-link-config-attributes; - uses tet:te-link-state-derived; - } - - augment "/te-link-event/te-link-attributes/underlay" { - description "Add state attributes to te-link underlay."; - uses te-link-state-underlay-attributes; - } } 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. @@ -4438,20 +4099,23 @@ [RFC3945] Mannie, E., "Generalized Multi-Protocol Label Switching (GMPLS) Architecture", October 2004. [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 Progress). 10.2. Informative References [RFC2702] Awduche, D., "Requirements for Traffic Engineering Over MPLS", RFC 2702, September 1999. 11. Acknowledgments @@ -4466,21 +4130,21 @@ Nokia Email: sergio.belotti@nokia.com Dieter Beller Nokia Email: Dieter.Beller@nokia.com Authors' Addresses Xufeng Liu - Ericsson + Kuatro Technologies Email: xliu@kuatrotech.com Igor Bryskin Huawei Technologies Email: Igor.Bryskin@huawei.com Vishnu Pavan Beeram Juniper Networks Email: vbeeram@juniper.net